From 177f5c14318ee1f8176f4e5a7f452ef88bb65acf Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 1 May 2025 12:39:24 +0200 Subject: [PATCH 01/17] Publish - @strudel/codemirror@1.2.0 - @strudel/core@1.2.0 - @strudel/csound@1.2.0 - @strudel/draw@1.2.0 - @strudel/gamepad@1.2.0 - hs2js@0.2.0 - @strudel/hydra@1.2.0 - @strudel/midi@1.2.0 - @strudel/mini@1.2.0 - @strudel/motion@1.2.0 - @strudel/mqtt@1.2.0 - @strudel/osc@1.2.0 - @strudel/reference@1.2.0 - @strudel/repl@1.2.0 - @strudel/sampler@0.2.0 - @strudel/serial@1.2.0 - @strudel/soundfonts@1.2.0 - superdough@1.2.0 - @strudel/tidal@0.2.0 - @strudel/tonal@1.2.0 - @strudel/transpiler@1.2.0 - @strudel/web@1.2.0 - @strudel/webaudio@1.2.0 - @strudel/xen@1.2.0 --- packages/codemirror/package.json | 2 +- packages/core/package.json | 2 +- packages/csound/package.json | 2 +- packages/draw/package.json | 2 +- packages/gamepad/package.json | 71 ++++++++++++++++---------------- packages/hs2js/package.json | 2 +- packages/hydra/package.json | 2 +- packages/midi/package.json | 2 +- packages/mini/package.json | 2 +- packages/motion/package.json | 69 +++++++++++++++---------------- packages/mqtt/package.json | 2 +- packages/osc/package.json | 2 +- packages/reference/package.json | 4 +- packages/repl/package.json | 2 +- packages/sampler/package.json | 2 +- packages/serial/package.json | 2 +- packages/soundfonts/package.json | 2 +- packages/superdough/package.json | 2 +- packages/tidal/package.json | 2 +- packages/tonal/package.json | 2 +- packages/transpiler/package.json | 2 +- packages/web/package.json | 2 +- packages/webaudio/package.json | 2 +- packages/xen/package.json | 2 +- 24 files changed, 91 insertions(+), 95 deletions(-) diff --git a/packages/codemirror/package.json b/packages/codemirror/package.json index 44326b7c7..1c3d93c7c 100644 --- a/packages/codemirror/package.json +++ b/packages/codemirror/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/codemirror", - "version": "1.1.0", + "version": "1.2.0", "description": "Codemirror Extensions for Strudel", "main": "index.mjs", "publishConfig": { diff --git a/packages/core/package.json b/packages/core/package.json index 9123259a5..c6a686613 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/core", - "version": "1.1.0", + "version": "1.2.0", "description": "Port of Tidal Cycles to JavaScript", "main": "index.mjs", "type": "module", diff --git a/packages/csound/package.json b/packages/csound/package.json index cf71dfbc3..198f3714d 100644 --- a/packages/csound/package.json +++ b/packages/csound/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/csound", - "version": "1.1.0", + "version": "1.2.0", "description": "csound bindings for strudel", "main": "index.mjs", "type": "module", diff --git a/packages/draw/package.json b/packages/draw/package.json index e93f3ed22..3aec41ba4 100644 --- a/packages/draw/package.json +++ b/packages/draw/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/draw", - "version": "1.1.0", + "version": "1.2.0", "description": "Helpers for drawing with Strudel", "main": "index.mjs", "type": "module", diff --git a/packages/gamepad/package.json b/packages/gamepad/package.json index 199c5d034..101ea42b9 100644 --- a/packages/gamepad/package.json +++ b/packages/gamepad/package.json @@ -1,38 +1,37 @@ { - "name": "@strudel/gamepad", - "version": "1.1.0", - "description": "Gamepad Inputs for strudel", - "main": "index.mjs", - "type": "module", - "publishConfig": { - "main": "dist/index.mjs" - }, - "scripts": { - "build": "vite build", - "prepublishOnly": "npm run build" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/tidalcycles/strudel.git" - }, - "keywords": [ - "titdalcycles", - "strudel", - "pattern", - "livecoding", - "algorave" - ], - "author": "Yuta Nakayama ", - "license": "AGPL-3.0-or-later", - "bugs": { - "url": "https://github.com/tidalcycles/strudel/issues" - }, - "homepage": "https://github.com/tidalcycles/strudel#readme", - "dependencies": { - "@strudel/core": "workspace:*" - }, - "devDependencies": { - "vite": "^6.0.11" - } + "name": "@strudel/gamepad", + "version": "1.2.0", + "description": "Gamepad Inputs for strudel", + "main": "index.mjs", + "type": "module", + "publishConfig": { + "main": "dist/index.mjs" + }, + "scripts": { + "build": "vite build", + "prepublishOnly": "npm run build" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/tidalcycles/strudel.git" + }, + "keywords": [ + "titdalcycles", + "strudel", + "pattern", + "livecoding", + "algorave" + ], + "author": "Yuta Nakayama ", + "license": "AGPL-3.0-or-later", + "bugs": { + "url": "https://github.com/tidalcycles/strudel/issues" + }, + "homepage": "https://github.com/tidalcycles/strudel#readme", + "dependencies": { + "@strudel/core": "workspace:*" + }, + "devDependencies": { + "vite": "^6.0.11" + } } - \ No newline at end of file diff --git a/packages/hs2js/package.json b/packages/hs2js/package.json index 34bb7f368..e068458de 100644 --- a/packages/hs2js/package.json +++ b/packages/hs2js/package.json @@ -1,6 +1,6 @@ { "name": "hs2js", - "version": "0.1.0", + "version": "0.2.0", "description": "Experimental Haskell in JavaScript interpreter", "main": "src/index.mjs", "type": "module", diff --git a/packages/hydra/package.json b/packages/hydra/package.json index c687d5497..68d744124 100644 --- a/packages/hydra/package.json +++ b/packages/hydra/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/hydra", - "version": "1.1.0", + "version": "1.2.0", "description": "Hydra integration for strudel", "main": "hydra.mjs", "type": "module", diff --git a/packages/midi/package.json b/packages/midi/package.json index c7c5f4988..9e81b7d21 100644 --- a/packages/midi/package.json +++ b/packages/midi/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/midi", - "version": "1.1.0", + "version": "1.2.0", "description": "Midi API for strudel", "main": "index.mjs", "type": "module", diff --git a/packages/mini/package.json b/packages/mini/package.json index d05d60364..cd910d003 100644 --- a/packages/mini/package.json +++ b/packages/mini/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/mini", - "version": "1.1.0", + "version": "1.2.0", "description": "Mini notation for strudel", "main": "index.mjs", "type": "module", diff --git a/packages/motion/package.json b/packages/motion/package.json index cc117a268..ebd3d997d 100644 --- a/packages/motion/package.json +++ b/packages/motion/package.json @@ -1,38 +1,37 @@ { - "name": "@strudel/motion", - "version": "1.1.0", - "description": "DeviceMotion API for strudel", - "main": "index.mjs", - "type": "module", - "publishConfig": { - "main": "dist/index.mjs" - }, - "scripts": { - "build": "vite build", - "prepublishOnly": "npm run build" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/tidalcycles/strudel.git" - }, - "keywords": [ - "titdalcycles", - "strudel", - "pattern", - "livecoding", - "algorave" - ], - "author": "Yuta Nakayama ", - "license": "AGPL-3.0-or-later", - "bugs": { - "url": "https://github.com/tidalcycles/strudel/issues" - }, - "homepage": "https://github.com/tidalcycles/strudel#readme", - "dependencies": { - "@strudel/core": "workspace:*" - }, - "devDependencies": { + "name": "@strudel/motion", + "version": "1.2.0", + "description": "DeviceMotion API for strudel", + "main": "index.mjs", + "type": "module", + "publishConfig": { + "main": "dist/index.mjs" + }, + "scripts": { + "build": "vite build", + "prepublishOnly": "npm run build" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/tidalcycles/strudel.git" + }, + "keywords": [ + "titdalcycles", + "strudel", + "pattern", + "livecoding", + "algorave" + ], + "author": "Yuta Nakayama ", + "license": "AGPL-3.0-or-later", + "bugs": { + "url": "https://github.com/tidalcycles/strudel/issues" + }, + "homepage": "https://github.com/tidalcycles/strudel#readme", + "dependencies": { + "@strudel/core": "workspace:*" + }, + "devDependencies": { "vite": "^6.0.11" - } + } } - \ No newline at end of file diff --git a/packages/mqtt/package.json b/packages/mqtt/package.json index ef5c3c680..f9d6be4f3 100644 --- a/packages/mqtt/package.json +++ b/packages/mqtt/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/mqtt", - "version": "1.1.0", + "version": "1.2.0", "description": "MQTT API for strudel", "main": "mqtt.mjs", "type": "module", diff --git a/packages/osc/package.json b/packages/osc/package.json index 5c56bb2e3..ec05ac64c 100644 --- a/packages/osc/package.json +++ b/packages/osc/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/osc", - "version": "1.1.0", + "version": "1.2.0", "description": "OSC messaging for strudel", "main": "osc.mjs", "type": "module", diff --git a/packages/reference/package.json b/packages/reference/package.json index f69aa6536..fd7edadff 100644 --- a/packages/reference/package.json +++ b/packages/reference/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/reference", - "version": "1.1.0", + "version": "1.2.0", "description": "Headless reference of all strudel functions", "main": "index.mjs", "type": "module", @@ -31,8 +31,6 @@ "url": "https://github.com/tidalcycles/strudel/issues" }, "homepage": "https://github.com/tidalcycles/strudel#readme", - "dependencies": { - }, "devDependencies": { "vite": "^6.0.11" } diff --git a/packages/repl/package.json b/packages/repl/package.json index 7a48ad3fd..08b302666 100644 --- a/packages/repl/package.json +++ b/packages/repl/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/repl", - "version": "1.1.0", + "version": "1.2.0", "description": "Strudel REPL as a Web Component", "module": "index.mjs", "publishConfig": { diff --git a/packages/sampler/package.json b/packages/sampler/package.json index 252fe9350..b0f27f86a 100644 --- a/packages/sampler/package.json +++ b/packages/sampler/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/sampler", - "version": "0.1.0", + "version": "0.2.0", "description": "", "keywords": [ "tidalcycles", diff --git a/packages/serial/package.json b/packages/serial/package.json index 74cef80ab..8a0467bef 100644 --- a/packages/serial/package.json +++ b/packages/serial/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/serial", - "version": "1.1.0", + "version": "1.2.0", "description": "Webserial API for strudel", "main": "serial.mjs", "type": "module", diff --git a/packages/soundfonts/package.json b/packages/soundfonts/package.json index af6d2b969..57227bdb6 100644 --- a/packages/soundfonts/package.json +++ b/packages/soundfonts/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/soundfonts", - "version": "1.1.0", + "version": "1.2.0", "description": "Soundsfont support for strudel", "main": "index.mjs", "publishConfig": { diff --git a/packages/superdough/package.json b/packages/superdough/package.json index 5fb8439bf..dd0ed52bb 100644 --- a/packages/superdough/package.json +++ b/packages/superdough/package.json @@ -1,6 +1,6 @@ { "name": "superdough", - "version": "1.1.0", + "version": "1.2.0", "description": "simple web audio synth and sampler intended for live coding. inspired by superdirt and webdirt.", "main": "index.mjs", "type": "module", diff --git a/packages/tidal/package.json b/packages/tidal/package.json index 1758732d6..30b9390f8 100644 --- a/packages/tidal/package.json +++ b/packages/tidal/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/tidal", - "version": "0.1.0", + "version": "0.2.0", "description": "Experimental Tidal Code interpreter", "module": "tidal.mjs", "repository": { diff --git a/packages/tonal/package.json b/packages/tonal/package.json index e642fa4e3..e3589c1f1 100644 --- a/packages/tonal/package.json +++ b/packages/tonal/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/tonal", - "version": "1.1.0", + "version": "1.2.0", "description": "Tonal functions for strudel", "main": "index.mjs", "publishConfig": { diff --git a/packages/transpiler/package.json b/packages/transpiler/package.json index 55140f802..deb407617 100644 --- a/packages/transpiler/package.json +++ b/packages/transpiler/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/transpiler", - "version": "1.1.0", + "version": "1.2.0", "description": "Transpiler for strudel user code. Converts syntactically correct but semantically meaningless JS into evaluatable strudel code.", "main": "index.mjs", "type": "module", diff --git a/packages/web/package.json b/packages/web/package.json index b06e5a489..779e6f008 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/web", - "version": "1.1.0", + "version": "1.2.0", "description": "Easy to setup, opiniated bundle of Strudel for the browser.", "module": "web.mjs", "publishConfig": { diff --git a/packages/webaudio/package.json b/packages/webaudio/package.json index 81b75c036..b92b71a11 100644 --- a/packages/webaudio/package.json +++ b/packages/webaudio/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/webaudio", - "version": "1.1.0", + "version": "1.2.0", "description": "Web Audio helpers for Strudel", "main": "index.mjs", "type": "module", diff --git a/packages/xen/package.json b/packages/xen/package.json index 74c3aba73..e7e5f2cee 100644 --- a/packages/xen/package.json +++ b/packages/xen/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/xen", - "version": "1.1.0", + "version": "1.2.0", "description": "Xenharmonic API for strudel", "main": "index.mjs", "type": "module", From 9ceebd467965efb39546c34056264e5435390597 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 1 May 2025 12:47:56 +0200 Subject: [PATCH 02/17] hotfix: reference package vite config --- packages/reference/vite.config.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/reference/vite.config.js b/packages/reference/vite.config.js index 5df3edc1b..44ff1e405 100644 --- a/packages/reference/vite.config.js +++ b/packages/reference/vite.config.js @@ -1,5 +1,4 @@ import { defineConfig } from 'vite'; -import { dependencies } from './package.json'; import { resolve } from 'path'; // https://vitejs.dev/config/ @@ -11,9 +10,6 @@ export default defineConfig({ formats: ['es'], fileName: (ext) => ({ es: 'index.mjs' })[ext], }, - rollupOptions: { - external: [...Object.keys(dependencies)], - }, target: 'esnext', }, }); From 6398b5fb38b7a32e704171432c9869d2255b232b Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 1 May 2025 12:48:43 +0200 Subject: [PATCH 03/17] hotfix: make broken hs2js + tidal packages private to opt out of release - some issue with the build command --- packages/hs2js/package.json | 1 + packages/tidal/package.json | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/hs2js/package.json b/packages/hs2js/package.json index e068458de..c650dfc83 100644 --- a/packages/hs2js/package.json +++ b/packages/hs2js/package.json @@ -1,6 +1,7 @@ { "name": "hs2js", "version": "0.2.0", + "private": true, "description": "Experimental Haskell in JavaScript interpreter", "main": "src/index.mjs", "type": "module", diff --git a/packages/tidal/package.json b/packages/tidal/package.json index 30b9390f8..8e4871617 100644 --- a/packages/tidal/package.json +++ b/packages/tidal/package.json @@ -1,6 +1,7 @@ { "name": "@strudel/tidal", "version": "0.2.0", + "private": true, "description": "Experimental Tidal Code interpreter", "module": "tidal.mjs", "repository": { From f2a9e2d4e6c66f1a475adffee2e80a286eb6144b Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 1 May 2025 12:51:54 +0200 Subject: [PATCH 04/17] hotfix: downgrade reference to be able to get 1.2.0 --- packages/reference/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/reference/package.json b/packages/reference/package.json index fd7edadff..ef2395390 100644 --- a/packages/reference/package.json +++ b/packages/reference/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/reference", - "version": "1.2.0", + "version": "1.1.0", "description": "Headless reference of all strudel functions", "main": "index.mjs", "type": "module", From 570291466130dc2be13fcf9b29d18cbc63c969a9 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 1 May 2025 12:52:12 +0200 Subject: [PATCH 05/17] Publish - @strudel/reference@1.2.0 --- packages/reference/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/reference/package.json b/packages/reference/package.json index ef2395390..fd7edadff 100644 --- a/packages/reference/package.json +++ b/packages/reference/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/reference", - "version": "1.1.0", + "version": "1.2.0", "description": "Headless reference of all strudel functions", "main": "index.mjs", "type": "module", From 7bec92ca99bfbd383e6c9b3005810fd22625aeaf Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 1 May 2025 23:13:32 +0200 Subject: [PATCH 06/17] fix: superdough worklets bundling --- packages/superdough/superdough.mjs | 2 +- .../vite-plugin-bundle-audioworklet.js | 46 +++++++++++++++++++ packages/superdough/vite.config.js | 3 +- 3 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 packages/superdough/vite-plugin-bundle-audioworklet.js diff --git a/packages/superdough/superdough.mjs b/packages/superdough/superdough.mjs index 0c4d2395a..a1dc30b7c 100644 --- a/packages/superdough/superdough.mjs +++ b/packages/superdough/superdough.mjs @@ -8,7 +8,7 @@ import './feedbackdelay.mjs'; import './reverb.mjs'; import './vowel.mjs'; import { clamp, nanFallback, _mod } from './util.mjs'; -import workletsUrl from './worklets.mjs?worker&url'; +import workletsUrl from './worklets.mjs?audioworklet'; import { createFilter, gainNode, getCompressor, getWorklet } from './helpers.mjs'; import { map } from 'nanostores'; import { logger } from './logger.mjs'; diff --git a/packages/superdough/vite-plugin-bundle-audioworklet.js b/packages/superdough/vite-plugin-bundle-audioworklet.js new file mode 100644 index 000000000..13351cc5c --- /dev/null +++ b/packages/superdough/vite-plugin-bundle-audioworklet.js @@ -0,0 +1,46 @@ +import { createLogger, build } from 'vite'; + +const end = '?audioworklet'; + +export function bundleAudioWorkletPlugin() /* : PluginOption */ { + let viteConfig /* : UserConfig */; + + return { + name: 'vite-plugin-bundle-audioworklet', + apply: 'build', + enforce: 'post', + + config(config) { + viteConfig = config; + }, + + async transform(_code, id) { + if (!id.endsWith(end)) { + return; + } + const entry = id.replace(end, ''); + const quietLogger = createLogger(); + quietLogger.info = () => undefined; + + const output = await build({ + configFile: false, + clearScreen: false, + customLogger: quietLogger, + build: { + lib: { + entry, + name: '_', + formats: ['iife'], + }, + write: false, + }, + }); + if (!(output instanceof Array)) { + throw new Error('Expected output to be Array'); + } + const iife = output[0].output[0].code; + const encoded = Buffer.from(iife, 'utf8').toString('base64'); + return `export default "data:text/javascript;base64,${encoded}";`; + }, + }; +} diff --git a/packages/superdough/vite.config.js b/packages/superdough/vite.config.js index d94e37f41..a38b9b223 100644 --- a/packages/superdough/vite.config.js +++ b/packages/superdough/vite.config.js @@ -1,10 +1,11 @@ import { defineConfig } from 'vite'; import { dependencies } from './package.json'; import { resolve } from 'path'; +import { bundleAudioWorkletPlugin } from './vite-plugin-bundle-audioworklet'; // https://vitejs.dev/config/ export default defineConfig({ - plugins: [], + plugins: [bundleAudioWorkletPlugin()], build: { lib: { entry: resolve(__dirname, 'index.mjs'), From fdbbcd2dd250b47f3f17f392e084dee2c932e3d8 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 1 May 2025 23:26:04 +0200 Subject: [PATCH 07/17] add vite-plugin-bundle-audioworklet and use it both from website and superdough --- packages/superdough/package.json | 3 ++- packages/superdough/vite.config.js | 2 +- .../package.json | 19 +++++++++++++++++++ .../vite-plugin-bundle-audioworklet.js | 6 ++++-- pnpm-lock.yaml | 17 ++++++++++++++--- website/astro.config.mjs | 2 ++ website/package.json | 3 ++- 7 files changed, 44 insertions(+), 8 deletions(-) create mode 100644 packages/vite-plugin-bundle-audioworklet/package.json rename packages/{superdough => vite-plugin-bundle-audioworklet}/vite-plugin-bundle-audioworklet.js (89%) diff --git a/packages/superdough/package.json b/packages/superdough/package.json index dd0ed52bb..79c4349ed 100644 --- a/packages/superdough/package.json +++ b/packages/superdough/package.json @@ -32,7 +32,8 @@ }, "homepage": "https://github.com/tidalcycles/strudel#readme", "devDependencies": { - "vite": "^6.0.11" + "vite": "^6.0.11", + "vite-plugin-bundle-audioworklet": "workspace:*" }, "dependencies": { "nanostores": "^0.11.3" diff --git a/packages/superdough/vite.config.js b/packages/superdough/vite.config.js index a38b9b223..10ac0f06c 100644 --- a/packages/superdough/vite.config.js +++ b/packages/superdough/vite.config.js @@ -1,7 +1,7 @@ import { defineConfig } from 'vite'; import { dependencies } from './package.json'; import { resolve } from 'path'; -import { bundleAudioWorkletPlugin } from './vite-plugin-bundle-audioworklet'; +import bundleAudioWorkletPlugin from 'vite-plugin-bundle-audioworklet'; // https://vitejs.dev/config/ export default defineConfig({ diff --git a/packages/vite-plugin-bundle-audioworklet/package.json b/packages/vite-plugin-bundle-audioworklet/package.json new file mode 100644 index 000000000..82dc2f1d2 --- /dev/null +++ b/packages/vite-plugin-bundle-audioworklet/package.json @@ -0,0 +1,19 @@ +{ + "name": "vite-plugin-bundle-audioworklet", + "main": "./vite-plugin-bundle-audioworklet.js", + "version": "0.1.0", + "description": "", + "keywords": [ + "tidalcycles", + "strudel", + "pattern", + "livecoding", + "algorave" + ], + "author": "Felix Roos ", + "license": "AGPL-3.0-or-later", + "type": "module", + "devDependencies": { + "vite": "^6.0.11" + } +} diff --git a/packages/superdough/vite-plugin-bundle-audioworklet.js b/packages/vite-plugin-bundle-audioworklet/vite-plugin-bundle-audioworklet.js similarity index 89% rename from packages/superdough/vite-plugin-bundle-audioworklet.js rename to packages/vite-plugin-bundle-audioworklet/vite-plugin-bundle-audioworklet.js index 13351cc5c..4c5634ba4 100644 --- a/packages/superdough/vite-plugin-bundle-audioworklet.js +++ b/packages/vite-plugin-bundle-audioworklet/vite-plugin-bundle-audioworklet.js @@ -2,12 +2,12 @@ import { createLogger, build } from 'vite'; const end = '?audioworklet'; -export function bundleAudioWorkletPlugin() /* : PluginOption */ { +function bundleAudioWorkletPlugin() /* : PluginOption */ { let viteConfig /* : UserConfig */; return { name: 'vite-plugin-bundle-audioworklet', - apply: 'build', + /* apply: 'build', */ enforce: 'post', config(config) { @@ -44,3 +44,5 @@ export function bundleAudioWorkletPlugin() /* : PluginOption */ { }, }; } + +export default bundleAudioWorkletPlugin; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 32fd711e2..e8667c5dc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -41,7 +41,7 @@ importers: version: 2.2.7 '@vitest/coverage-v8': specifier: 3.0.4 - version: 3.0.4(vitest@3.0.4(@types/debug@4.1.12)(@types/node@22.10.10)(@vitest/ui@3.0.4)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0)) + version: 3.0.4(vitest@3.0.4) '@vitest/ui': specifier: ^3.0.4 version: 3.0.4(vitest@3.0.4) @@ -476,6 +476,9 @@ importers: vite: specifier: ^6.0.11 version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) + vite-plugin-bundle-audioworklet: + specifier: workspace:* + version: link:../vite-plugin-bundle-audioworklet packages/tidal: dependencies: @@ -540,6 +543,12 @@ importers: specifier: ^3.0.4 version: 3.0.4(@types/debug@4.1.12)(@types/node@22.10.10)(@vitest/ui@3.0.4)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) + packages/vite-plugin-bundle-audioworklet: + devDependencies: + vite: + specifier: ^6.0.11 + version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) + packages/web: dependencies: '@strudel/core': @@ -780,6 +789,9 @@ importers: sharp: specifier: ^0.33.5 version: 0.33.5 + vite-plugin-bundle-audioworklet: + specifier: workspace:* + version: link:../packages/vite-plugin-bundle-audioworklet workbox-window: specifier: ^7.3.0 version: 7.3.0 @@ -7561,7 +7573,6 @@ packages: workbox-google-analytics@7.0.0: resolution: {integrity: sha512-MEYM1JTn/qiC3DbpvP2BVhyIH+dV/5BjHk756u9VbwuAhu0QHyKscTnisQuz21lfRpOwiS9z4XdqeVAKol0bzg==} - deprecated: It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained workbox-navigation-preload@7.0.0: resolution: {integrity: sha512-juWCSrxo/fiMz3RsvDspeSLGmbgC0U9tKqcUPZBCf35s64wlaLXyn2KdHHXVQrb2cqF7I0Hc9siQalainmnXJA==} @@ -10248,7 +10259,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@3.0.4(vitest@3.0.4(@types/debug@4.1.12)(@types/node@22.10.10)(@vitest/ui@3.0.4)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0))': + '@vitest/coverage-v8@3.0.4(vitest@3.0.4)': dependencies: '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 1.0.2 diff --git a/website/astro.config.mjs b/website/astro.config.mjs index 631584220..151c48fc1 100644 --- a/website/astro.config.mjs +++ b/website/astro.config.mjs @@ -5,6 +5,7 @@ import remarkToc from 'remark-toc'; import rehypeSlug from 'rehype-slug'; import rehypeAutolinkHeadings from 'rehype-autolink-headings'; import rehypeUrls from 'rehype-urls'; +import bundleAudioWorkletPlugin from 'vite-plugin-bundle-audioworklet'; import tailwind from '@astrojs/tailwind'; import AstroPWA from '@vite-pwa/astro'; @@ -134,6 +135,7 @@ export default defineConfig({ site, base, vite: { + plugins: [bundleAudioWorkletPlugin()], ssr: { // Example: Force a broken package to skip SSR processing, if needed // external: ['fraction.js'], // https://github.com/infusion/Fraction.js/issues/51 diff --git a/website/package.json b/website/package.json index 257ff6430..8e980f1ca 100644 --- a/website/package.json +++ b/website/package.json @@ -73,6 +73,7 @@ "@vite-pwa/astro": "^0.5.0", "html-escaper": "^3.0.3", "sharp": "^0.33.5", - "workbox-window": "^7.3.0" + "workbox-window": "^7.3.0", + "vite-plugin-bundle-audioworklet": "workspace:*" } } From f993056fb1989c22463afb51f00bdf5d18f5373b Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 1 May 2025 23:30:14 +0200 Subject: [PATCH 08/17] fix: tests -> use vite plugin in tests as well --- vitest.config.ts => vitest.config.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) rename vitest.config.ts => vitest.config.js (66%) diff --git a/vitest.config.ts b/vitest.config.js similarity index 66% rename from vitest.config.ts rename to vitest.config.js index 026f0b7c6..b16857c4e 100644 --- a/vitest.config.ts +++ b/vitest.config.js @@ -1,7 +1,9 @@ -import { configDefaults, defineConfig } from 'vitest/config'; +import { defineConfig } from 'vitest/config'; +import bundleAudioWorkletPlugin from './packages/vite-plugin-bundle-audioworklet/vite-plugin-bundle-audioworklet'; /// export default defineConfig({ + plugins: [bundleAudioWorkletPlugin()], test: { reporters: 'verbose', isolate: false, From 22f114be5973a0be93572e7159bef732a00516b0 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 1 May 2025 23:35:20 +0200 Subject: [PATCH 09/17] update metadata --- packages/vite-plugin-bundle-audioworklet/package.json | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/packages/vite-plugin-bundle-audioworklet/package.json b/packages/vite-plugin-bundle-audioworklet/package.json index 82dc2f1d2..443818cf1 100644 --- a/packages/vite-plugin-bundle-audioworklet/package.json +++ b/packages/vite-plugin-bundle-audioworklet/package.json @@ -4,14 +4,11 @@ "version": "0.1.0", "description": "", "keywords": [ - "tidalcycles", - "strudel", - "pattern", - "livecoding", - "algorave" + "vite", + "audioworklet" ], "author": "Felix Roos ", - "license": "AGPL-3.0-or-later", + "license": "MIT", "type": "module", "devDependencies": { "vite": "^6.0.11" From 6f2e026e4accb67f8ce5f3d138ea6c6fedf083d7 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 1 May 2025 23:49:47 +0200 Subject: [PATCH 10/17] fix: import in vitest config --- package.json | 3 ++- pnpm-lock.yaml | 3 +++ vitest.config.js => vitest.config.mjs | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) rename vitest.config.js => vitest.config.mjs (80%) diff --git a/package.json b/package.json index df50f1f41..01c3e7d5d 100644 --- a/package.json +++ b/package.json @@ -71,6 +71,7 @@ "jsdoc-json": "^2.0.2", "lerna": "^8.1.9", "prettier": "^3.4.2", - "vitest": "^3.0.4" + "vitest": "^3.0.4", + "vite-plugin-bundle-audioworklet": "workspace:*" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e8667c5dc..46c458872 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -75,6 +75,9 @@ importers: prettier: specifier: ^3.4.2 version: 3.4.2 + vite-plugin-bundle-audioworklet: + specifier: workspace:* + version: link:packages/vite-plugin-bundle-audioworklet vitest: specifier: ^3.0.4 version: 3.0.4(@types/debug@4.1.12)(@types/node@22.10.10)(@vitest/ui@3.0.4)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) diff --git a/vitest.config.js b/vitest.config.mjs similarity index 80% rename from vitest.config.js rename to vitest.config.mjs index b16857c4e..dcdde1133 100644 --- a/vitest.config.js +++ b/vitest.config.mjs @@ -1,5 +1,5 @@ import { defineConfig } from 'vitest/config'; -import bundleAudioWorkletPlugin from './packages/vite-plugin-bundle-audioworklet/vite-plugin-bundle-audioworklet'; +import bundleAudioWorkletPlugin from 'vite-plugin-bundle-audioworklet'; /// export default defineConfig({ From 306a6db8dc8513315961a6c74ef662540159f139 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 1 May 2025 23:52:36 +0200 Subject: [PATCH 11/17] hotfix: remove broken tauri workflow --- .github/workflows/tauri.yml | 62 ------------------------------------- 1 file changed, 62 deletions(-) delete mode 100644 .github/workflows/tauri.yml diff --git a/.github/workflows/tauri.yml b/.github/workflows/tauri.yml deleted file mode 100644 index 07fd91be8..000000000 --- a/.github/workflows/tauri.yml +++ /dev/null @@ -1,62 +0,0 @@ -name: Tauri Builder -on: - push: - tags: - - "v*" - workflow_dispatch: - -jobs: - release: - strategy: - fail-fast: false - matrix: - platform: [macos-latest, ubuntu-latest, windows-latest] - include: - - os: ubuntu-latest - rust_target: x86_64-unknown-linux-gnu - - os: macos-latest - rust_target: x86_64-apple-darwin - - os: macos-latest - rust_target: aarch64-apple-darwin - - os: windows-latest - rust_target: x86_64-pc-windows-msvc - runs-on: ${{ matrix.platform }} - steps: - - name: Checkout repository - uses: actions/checkout@v3 - - uses: pnpm/action-setup@v2 - with: - version: 8.6.2 - - - name: Node.js setup - uses: actions/setup-node@v3 - with: - node-version: latest - # node-version-file: '.nvmrc' - - - name: Install Rust (Stable) - run: - curl https://sh.rustup.rs -sSf | sh -s -- -y - - - name: Install dependencies (ubuntu only) - if: matrix.platform == 'ubuntu-latest' - run: | - sudo apt-get update - sudo apt-get install -y libgtk-3-dev webkit2gtk-4.0 libappindicator3-dev librsvg2-dev patchelf libasound2-dev - - - name: Install app dependencies from lockfile and build web - run: pnpm install - - - name: Build the app - uses: tauri-apps/tauri-action@v0 - - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - # tauri-action replaces \_\_VERSION\_\_ with the app version - tagName: ${{ github.ref_name }} - releaseName: "Strudel v__VERSION__" - releaseBody: | - See the assets to download this version and install. - releaseDraft: true - prerelease: false From 8f58d5788f741597aa647132df7e97cfbb82aa88 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 1 May 2025 23:54:13 +0200 Subject: [PATCH 12/17] Publish - @strudel/csound@1.2.1 - @strudel/midi@1.2.1 - @strudel/repl@1.2.1 - @strudel/soundfonts@1.2.1 - superdough@1.2.1 - vite-plugin-bundle-audioworklet@0.1.1 - @strudel/web@1.2.1 - @strudel/webaudio@1.2.1 --- packages/csound/package.json | 2 +- packages/midi/package.json | 2 +- packages/repl/package.json | 2 +- packages/soundfonts/package.json | 2 +- packages/superdough/package.json | 2 +- packages/vite-plugin-bundle-audioworklet/package.json | 2 +- packages/web/package.json | 2 +- packages/webaudio/package.json | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/csound/package.json b/packages/csound/package.json index 198f3714d..dbd94d128 100644 --- a/packages/csound/package.json +++ b/packages/csound/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/csound", - "version": "1.2.0", + "version": "1.2.1", "description": "csound bindings for strudel", "main": "index.mjs", "type": "module", diff --git a/packages/midi/package.json b/packages/midi/package.json index 9e81b7d21..f2c31d55b 100644 --- a/packages/midi/package.json +++ b/packages/midi/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/midi", - "version": "1.2.0", + "version": "1.2.1", "description": "Midi API for strudel", "main": "index.mjs", "type": "module", diff --git a/packages/repl/package.json b/packages/repl/package.json index 08b302666..c7d659ef3 100644 --- a/packages/repl/package.json +++ b/packages/repl/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/repl", - "version": "1.2.0", + "version": "1.2.1", "description": "Strudel REPL as a Web Component", "module": "index.mjs", "publishConfig": { diff --git a/packages/soundfonts/package.json b/packages/soundfonts/package.json index 57227bdb6..cc97ae826 100644 --- a/packages/soundfonts/package.json +++ b/packages/soundfonts/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/soundfonts", - "version": "1.2.0", + "version": "1.2.1", "description": "Soundsfont support for strudel", "main": "index.mjs", "publishConfig": { diff --git a/packages/superdough/package.json b/packages/superdough/package.json index 79c4349ed..6cdf8b312 100644 --- a/packages/superdough/package.json +++ b/packages/superdough/package.json @@ -1,6 +1,6 @@ { "name": "superdough", - "version": "1.2.0", + "version": "1.2.1", "description": "simple web audio synth and sampler intended for live coding. inspired by superdirt and webdirt.", "main": "index.mjs", "type": "module", diff --git a/packages/vite-plugin-bundle-audioworklet/package.json b/packages/vite-plugin-bundle-audioworklet/package.json index 443818cf1..f803ae065 100644 --- a/packages/vite-plugin-bundle-audioworklet/package.json +++ b/packages/vite-plugin-bundle-audioworklet/package.json @@ -1,7 +1,7 @@ { "name": "vite-plugin-bundle-audioworklet", "main": "./vite-plugin-bundle-audioworklet.js", - "version": "0.1.0", + "version": "0.1.1", "description": "", "keywords": [ "vite", diff --git a/packages/web/package.json b/packages/web/package.json index 779e6f008..4977f86ec 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/web", - "version": "1.2.0", + "version": "1.2.1", "description": "Easy to setup, opiniated bundle of Strudel for the browser.", "module": "web.mjs", "publishConfig": { diff --git a/packages/webaudio/package.json b/packages/webaudio/package.json index b92b71a11..56e72e961 100644 --- a/packages/webaudio/package.json +++ b/packages/webaudio/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/webaudio", - "version": "1.2.0", + "version": "1.2.1", "description": "Web Audio helpers for Strudel", "main": "index.mjs", "type": "module", From 53e50d81b045bd50cfc5ce0a8a8c8a9a0b85692a Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 1 May 2025 23:56:29 +0200 Subject: [PATCH 13/17] also use worklet plugin in web package --- packages/web/package.json | 3 ++- packages/web/vite.config.js | 2 ++ pnpm-lock.yaml | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/web/package.json b/packages/web/package.json index 4977f86ec..2554f89d3 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -41,6 +41,7 @@ }, "devDependencies": { "@rollup/plugin-replace": "^6.0.2", - "vite": "^6.0.11" + "vite": "^6.0.11", + "vite-plugin-bundle-audioworklet": "workspace:*" } } diff --git a/packages/web/vite.config.js b/packages/web/vite.config.js index 99b93956f..5df028605 100644 --- a/packages/web/vite.config.js +++ b/packages/web/vite.config.js @@ -2,9 +2,11 @@ import { defineConfig } from 'vite'; import { dependencies } from './package.json'; import { resolve } from 'path'; import replace from '@rollup/plugin-replace'; +import bundleAudioWorkletPlugin from 'vite-plugin-bundle-audioworklet'; // https://vitejs.dev/config/ export default defineConfig({ + plugins: [bundleAudioWorkletPlugin()], base: './', plugins: [], build: { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 46c458872..b0cab19cd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -576,6 +576,9 @@ importers: vite: specifier: ^6.0.11 version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) + vite-plugin-bundle-audioworklet: + specifier: workspace:* + version: link:../vite-plugin-bundle-audioworklet packages/webaudio: dependencies: From 685b4f172b3631977c89a63e9ac7ebcd0a989f6f Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 1 May 2025 23:57:09 +0200 Subject: [PATCH 14/17] fix: duplicate key --- packages/web/vite.config.js | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/web/vite.config.js b/packages/web/vite.config.js index 5df028605..ada45bc78 100644 --- a/packages/web/vite.config.js +++ b/packages/web/vite.config.js @@ -8,7 +8,6 @@ import bundleAudioWorkletPlugin from 'vite-plugin-bundle-audioworklet'; export default defineConfig({ plugins: [bundleAudioWorkletPlugin()], base: './', - plugins: [], build: { lib: { entry: resolve(__dirname, 'web.mjs'), From e9e2e881e5b72e523066e3d1f0f8105e4c93f283 Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Thu, 1 May 2025 23:58:49 +0200 Subject: [PATCH 15/17] fix: repl package build --- packages/repl/package.json | 3 ++- packages/repl/vite.config.js | 3 ++- packages/web/vite.config.js | 2 +- pnpm-lock.yaml | 3 +++ 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/repl/package.json b/packages/repl/package.json index c7d659ef3..6e8ad29d1 100644 --- a/packages/repl/package.json +++ b/packages/repl/package.json @@ -46,6 +46,7 @@ }, "devDependencies": { "@rollup/plugin-replace": "^6.0.2", - "vite": "^6.0.11" + "vite": "^6.0.11", + "vite-plugin-bundle-audioworklet": "workspace:*" } } diff --git a/packages/repl/vite.config.js b/packages/repl/vite.config.js index 674e0ebb4..c1ef1bf7f 100644 --- a/packages/repl/vite.config.js +++ b/packages/repl/vite.config.js @@ -1,11 +1,12 @@ import { defineConfig } from 'vite'; import { resolve } from 'path'; import replace from '@rollup/plugin-replace'; +import bundleAudioWorkletPlugin from 'vite-plugin-bundle-audioworklet'; // https://vitejs.dev/config/ export default defineConfig({ base: './', - plugins: [], + plugins: [bundleAudioWorkletPlugin()], build: { lib: { entry: resolve(__dirname, 'index.mjs'), diff --git a/packages/web/vite.config.js b/packages/web/vite.config.js index ada45bc78..671bf2825 100644 --- a/packages/web/vite.config.js +++ b/packages/web/vite.config.js @@ -6,8 +6,8 @@ import bundleAudioWorkletPlugin from 'vite-plugin-bundle-audioworklet'; // https://vitejs.dev/config/ export default defineConfig({ - plugins: [bundleAudioWorkletPlugin()], base: './', + plugins: [bundleAudioWorkletPlugin()], build: { lib: { entry: resolve(__dirname, 'web.mjs'), diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b0cab19cd..a23c80924 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -431,6 +431,9 @@ importers: vite: specifier: ^6.0.11 version: 6.0.11(@types/node@22.10.10)(jiti@2.4.2)(lightningcss@1.29.1)(terser@5.37.0)(yaml@2.7.0) + vite-plugin-bundle-audioworklet: + specifier: workspace:* + version: link:../vite-plugin-bundle-audioworklet packages/sampler: dependencies: From 9cf1cd2656b394b44117663d4a477f606f81958b Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Fri, 2 May 2025 00:02:50 +0200 Subject: [PATCH 16/17] revert web + repl versions for next try --- packages/repl/package.json | 2 +- packages/web/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/repl/package.json b/packages/repl/package.json index 6e8ad29d1..a99447451 100644 --- a/packages/repl/package.json +++ b/packages/repl/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/repl", - "version": "1.2.1", + "version": "1.2.0", "description": "Strudel REPL as a Web Component", "module": "index.mjs", "publishConfig": { diff --git a/packages/web/package.json b/packages/web/package.json index 2554f89d3..cb42104ec 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/web", - "version": "1.2.1", + "version": "1.2.0", "description": "Easy to setup, opiniated bundle of Strudel for the browser.", "module": "web.mjs", "publishConfig": { From 8d02d4270a7f33f1acc9be00f6344d38f430b4af Mon Sep 17 00:00:00 2001 From: Felix Roos Date: Fri, 2 May 2025 00:03:18 +0200 Subject: [PATCH 17/17] Publish - @strudel/repl@1.2.1 - @strudel/web@1.2.1 --- packages/repl/package.json | 2 +- packages/web/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/repl/package.json b/packages/repl/package.json index a99447451..6e8ad29d1 100644 --- a/packages/repl/package.json +++ b/packages/repl/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/repl", - "version": "1.2.0", + "version": "1.2.1", "description": "Strudel REPL as a Web Component", "module": "index.mjs", "publishConfig": { diff --git a/packages/web/package.json b/packages/web/package.json index cb42104ec..2554f89d3 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -1,6 +1,6 @@ { "name": "@strudel/web", - "version": "1.2.0", + "version": "1.2.1", "description": "Easy to setup, opiniated bundle of Strudel for the browser.", "module": "web.mjs", "publishConfig": {