From f8cbd6755780571b8aa3b1579b89a003b18b606f Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Tue, 12 Apr 2022 20:14:08 +0200 Subject: [PATCH 1/2] fix: disable highlighting --- repl/src/useRepl.mjs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/repl/src/useRepl.mjs b/repl/src/useRepl.mjs index 061cd2f3..c20a9cba 100644 --- a/repl/src/useRepl.mjs +++ b/repl/src/useRepl.mjs @@ -23,6 +23,13 @@ function useRepl({ tune, defaultSynth, autolink = true, onEvent, onDraw }) { const dirty = useMemo(() => code !== activeCode || error, [code, activeCode, error]); const pushLog = useCallback((message) => setLog((log) => log + `${log ? '\n\n' : ''}${message}`), []); + // below block allows disabling the highlighting by including "strudel disable-highlighting" in the code (as comment) + onDraw = useMemo(() => { + if (activeCode && !activeCode.includes('strudel disable-highlighting')) { + return onDraw; + } + }, [activeCode, onDraw]); + // cycle hook to control scheduling const cycle = useCycle({ onDraw, @@ -111,13 +118,6 @@ function useRepl({ tune, defaultSynth, autolink = true, onEvent, onDraw }) { } }; - // below block allows disabling the highlighting by including "strudel disable-highlighting" in the code (as comment) - onDraw = useMemo(() => { - if (activeCode && !activeCode.includes('strudel disable-highlighting')) { - return onDraw; - } - }, [activeCode, onDraw]); - const togglePlay = () => { if (!cycle.started) { activateCode(); From c604f920a061b603e1ccba533ec2920f40d8690f Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Tue, 12 Apr 2022 20:14:48 +0200 Subject: [PATCH 2/2] add root scripts --- package-lock.json | 75 +++++++++++++++++++++++++++++++++++++++++++++++ package.json | 4 ++- 2 files changed, 78 insertions(+), 1 deletion(-) diff --git a/package-lock.json b/package-lock.json index 299d7e7d..2fefcea2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1885,6 +1885,10 @@ "resolved": "packages/mini", "link": true }, + "node_modules/@strudel.cycles/osc": { + "resolved": "packages/osc", + "link": true + }, "node_modules/@strudel.cycles/tonal": { "resolved": "packages/tonal", "link": true @@ -5131,6 +5135,14 @@ "node": ">=0.10.0" } }, + "node_modules/isomorphic-ws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", + "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", + "peerDependencies": { + "ws": "*" + } + }, "node_modules/isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", @@ -6703,6 +6715,15 @@ "node": ">=0.10.0" } }, + "node_modules/osc-js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/osc-js/-/osc-js-2.3.1.tgz", + "integrity": "sha512-DjpfUcyTsMmD7uLdyjqsT9zwuNkUOG8yJMc56H9spTCRqTls5vLt5QnlVploVqSRwQ2stvcc+CsY18ouxab9mg==", + "dependencies": { + "isomorphic-ws": "4.0.1", + "ws": "8.5.0" + } + }, "node_modules/osenv": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", @@ -9085,6 +9106,26 @@ "node": ">=6" } }, + "node_modules/ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/xmlcreate": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz", @@ -9266,6 +9307,13 @@ "@strudel.cycles/tone": "^0.0.4" } }, + "packages/osc": { + "version": "0.0.1", + "license": "GPL-3.0-or-later", + "dependencies": { + "osc-js": "^2.3.0" + } + }, "packages/tonal": { "name": "@strudel.cycles/tonal", "version": "0.0.3", @@ -10847,6 +10895,12 @@ "@strudel.cycles/tone": "^0.0.4" } }, + "@strudel.cycles/osc": { + "version": "file:packages/osc", + "requires": { + "osc-js": "^2.3.0" + } + }, "@strudel.cycles/tonal": { "version": "file:packages/tonal", "requires": { @@ -13407,6 +13461,12 @@ "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "dev": true }, + "isomorphic-ws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", + "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", + "requires": {} + }, "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", @@ -14632,6 +14692,15 @@ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, + "osc-js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/osc-js/-/osc-js-2.3.1.tgz", + "integrity": "sha512-DjpfUcyTsMmD7uLdyjqsT9zwuNkUOG8yJMc56H9spTCRqTls5vLt5QnlVploVqSRwQ2stvcc+CsY18ouxab9mg==", + "requires": { + "isomorphic-ws": "4.0.1", + "ws": "8.5.0" + } + }, "osenv": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", @@ -16490,6 +16559,12 @@ } } }, + "ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "requires": {} + }, "xmlcreate": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.4.tgz", diff --git a/package.json b/package.json index d78b901a..4702ff10 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,9 @@ "main": "strudel.mjs", "scripts": { "test": "npm run test --workspaces --if-present", - "bootstrap": "lerna bootstrap" + "bootstrap": "lerna bootstrap", + "repl": "cd repl && npm run start", + "osc": "cd packages/osc && npm run server" }, "workspaces": [ "packages/*"