diff --git a/src/API.ts b/src/API.ts index f8ccf60..cef113a 100644 --- a/src/API.ts +++ b/src/API.ts @@ -1650,6 +1650,7 @@ export class UserAPI { let tobin: boolean[] = convert.split("").map((x: string) => x === "1"); return this.beat(div) && tobin.beat(div); }; + bry = this.binrhythm; // ============================================================= // Low Frequency Oscillators @@ -1775,7 +1776,7 @@ export class UserAPI { * @see noise */ const period = 1 / freq; - const t = (Date.now() / 1000 ) % period; + const t = (Date.now() / 1000) % period; return (t / period < duty ? 1 : -1); }; @@ -2659,4 +2660,5 @@ export class UserAPI { public getThemes = (): string[] => { return Object.keys(colorschemes); } + } diff --git a/src/IO/SampleLoading.ts b/src/IO/SampleLoading.ts index 148838d..4a52921 100644 --- a/src/IO/SampleLoading.ts +++ b/src/IO/SampleLoading.ts @@ -1,34 +1,34 @@ /** - * This code is taken from https://github.com/tidalcycles/strudel/pull/839. The logic is written by + * This code is taken from https://github.com/tidalcycles/strudel/pull/839. The logic is written by * daslyfe (Jade Rose Rowland). I have tweaked it a bit to fit the needs of this project (TypeScript), * etc... Many thanks for this piece of code! This code is initially part of the Strudel project: * https://github.com/tidalcycles/strudel. */ // @ts-ignore -import { registerSound, onTriggerSample } from "superdough"; +import { registerSound, onTriggerSample } from "superdough"; export const isAudioFile = (filename: string) => ['wav', 'mp3'].includes(filename.split('.').slice(-1)[0]); interface samplesDBConfig { - dbName: string, - table: string, - columns: string[], - version: number + dbName: string, + table: string, + columns: string[], + version: number } export const samplesDBConfig = { - dbName: 'samples', - table: 'usersamples', - columns: ['data_url', 'title'], - version: 1 + dbName: 'samples', + table: 'usersamples', + columns: ['data_url', 'title'], + version: 1 } async function bufferToDataUrl(buf: Buffer) { return new Promise((resolve) => { var blob = new Blob([buf], { type: 'application/octet-binary' }); var reader = new FileReader(); - reader.onload = function (event: Event) { + reader.onload = function(event: Event) { // @ts-ignore resolve(event.target.result); }; @@ -65,7 +65,7 @@ const processFilesForIDB = async (files: FileList) => { }; -export const registerSamplesFromDB = (config: samplesDBConfig, onComplete = () => {}) => { +export const registerSamplesFromDB = (config: samplesDBConfig, onComplete = () => { }) => { openDB(config, (objectStore: IDBObjectStore) => { let query = objectStore.getAll(); query.onsuccess = (event: Event) => { @@ -107,49 +107,49 @@ export const registerSamplesFromDB = (config: samplesDBConfig, onComplete = () = }; export const openDB = (config: samplesDBConfig, onOpened: Function) => { - const { dbName, version, table, columns } = config + const { dbName, version, table, columns } = config - if (!('indexedDB' in window)) { - console.log('This browser doesn\'t support IndexedDB') - return - } - const dbOpen = indexedDB.open(dbName, version); + if (!('indexedDB' in window)) { + console.log('This browser doesn\'t support IndexedDB') + return + } + const dbOpen = indexedDB.open(dbName, version); - dbOpen.onupgradeneeded = (_event) => { - const db = dbOpen.result; - const objectStore = db.createObjectStore(table, { keyPath: 'id', autoIncrement: false }); - columns.forEach((c: any) => { - objectStore.createIndex(c, c, { unique: false }); - }); + dbOpen.onupgradeneeded = (_event) => { + const db = dbOpen.result; + const objectStore = db.createObjectStore(table, { keyPath: 'id', autoIncrement: false }); + columns.forEach((c: any) => { + objectStore.createIndex(c, c, { unique: false }); + }); + }; + dbOpen.onerror = function(err: Event) { + console.log('Error opening DB: ', (err.target as IDBOpenDBRequest).error); + } + dbOpen.onsuccess = function(_event: Event) { + const db = dbOpen.result; + db.onversionchange = function() { + db.close(); + alert("Database is outdated, please reload the page.") }; - dbOpen.onerror = function (err: Event) { - console.log('Error opening DB: ', (err.target as IDBOpenDBRequest).error); - } - dbOpen.onsuccess = function (_event: Event) { - const db = dbOpen.result; - db.onversionchange = function() { - db.close(); - alert("Database is outdated, please reload the page.") - }; - const writeTransaction = db.transaction([table], 'readwrite'), - objectStore = writeTransaction.objectStore(table); - // Writing in the database here! - onOpened(objectStore) - } + const writeTransaction = db.transaction([table], 'readwrite'), + objectStore = writeTransaction.objectStore(table); + // Writing in the database here! + onOpened(objectStore) + } } export const uploadSamplesToDB = async (config: samplesDBConfig, files: FileList) => { await processFilesForIDB(files).then((files) => { const onOpened = (objectStore: IDBObjectStore, _db: IDBDatabase) => { - // @ts-ignore - files.forEach((file: File) => { - if (file == null) { - return; - } - objectStore.put(file); - }); - }; - openDB(config, onOpened); + // @ts-ignore + files.forEach((file: File) => { + if (file == null) { + return; + } + objectStore.put(file); + }); + }; + openDB(config, onOpened); }); -}; \ No newline at end of file +}; diff --git a/src/documentation/inlineHelp.ts b/src/documentation/inlineHelp.ts index 0daf2fb..d0dd249 100644 --- a/src/documentation/inlineHelp.ts +++ b/src/documentation/inlineHelp.ts @@ -788,7 +788,7 @@ const completionDatabase: CompletionDatabase = { name: "counter", category: "patterns", description: "Counter/iterator", - example: "counter('my_counter_, 20, 1)", + example: "counter('my_counter', 20, 1)", }, drunk: { name: "drunk", diff --git a/src/main.ts b/src/main.ts index 9c57d22..bf03c5a 100644 --- a/src/main.ts +++ b/src/main.ts @@ -578,12 +578,11 @@ export class Editor { // @ts-ignore this.hydra_backend = new Hydra({ canvas: this.interface.hydra_canvas as HTMLCanvasElement, - width: 1280, - height: 768, detectAudio: false, enableStreamCapture: false, }); this.hydra = this.hydra_backend.synth; + this.hydra.setResolution(1280, 768); (globalThis as any).hydra = this.hydra; }