Merge branch 'main' into uzu

This commit is contained in:
Felix Roos 2025-05-02 08:16:52 +02:00
commit 30fd4c5dec
No known key found for this signature in database
37 changed files with 200 additions and 171 deletions

View file

@ -1,6 +1,6 @@
{
"name": "@strudel/codemirror",
"version": "1.1.0",
"version": "1.2.0",
"description": "Codemirror Extensions for Strudel",
"main": "index.mjs",
"publishConfig": {

View file

@ -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",

View file

@ -1,6 +1,6 @@
{
"name": "@strudel/csound",
"version": "1.1.0",
"version": "1.2.1",
"description": "csound bindings for strudel",
"main": "index.mjs",
"type": "module",

View file

@ -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",

View file

@ -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 <nkymut@gmail.com>",
"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 <nkymut@gmail.com>",
"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"
}
}

View file

@ -1,6 +1,7 @@
{
"name": "hs2js",
"version": "0.1.0",
"version": "0.2.0",
"private": true,
"description": "Experimental Haskell in JavaScript interpreter",
"main": "src/index.mjs",
"type": "module",

View file

@ -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",

View file

@ -1,6 +1,6 @@
{
"name": "@strudel/midi",
"version": "1.1.0",
"version": "1.2.1",
"description": "Midi API for strudel",
"main": "index.mjs",
"type": "module",

View file

@ -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",

View file

@ -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 <nkymut@gmail.com>",
"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 <nkymut@gmail.com>",
"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"
}
}
}

View file

@ -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",

View file

@ -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",

View file

@ -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"
}

View file

@ -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',
},
});

View file

@ -1,6 +1,6 @@
{
"name": "@strudel/repl",
"version": "1.1.0",
"version": "1.2.1",
"description": "Strudel REPL as a Web Component",
"module": "index.mjs",
"publishConfig": {
@ -46,6 +46,7 @@
},
"devDependencies": {
"@rollup/plugin-replace": "^6.0.2",
"vite": "^6.0.11"
"vite": "^6.0.11",
"vite-plugin-bundle-audioworklet": "workspace:*"
}
}

View file

@ -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'),

View file

@ -1,6 +1,6 @@
{
"name": "@strudel/sampler",
"version": "0.1.0",
"version": "0.2.0",
"description": "",
"keywords": [
"tidalcycles",

View file

@ -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",

View file

@ -1,6 +1,6 @@
{
"name": "@strudel/soundfonts",
"version": "1.1.0",
"version": "1.2.1",
"description": "Soundsfont support for strudel",
"main": "index.mjs",
"publishConfig": {

View file

@ -1,6 +1,6 @@
{
"name": "superdough",
"version": "1.1.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",
@ -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"

View file

@ -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';

View file

@ -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'),

View file

@ -1,6 +1,7 @@
{
"name": "@strudel/tidal",
"version": "0.1.0",
"version": "0.2.0",
"private": true,
"description": "Experimental Tidal Code interpreter",
"module": "tidal.mjs",
"repository": {

View file

@ -1,6 +1,6 @@
{
"name": "@strudel/tonal",
"version": "1.1.0",
"version": "1.2.0",
"description": "Tonal functions for strudel",
"main": "index.mjs",
"publishConfig": {

View file

@ -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",

View file

@ -0,0 +1,16 @@
{
"name": "vite-plugin-bundle-audioworklet",
"main": "./vite-plugin-bundle-audioworklet.js",
"version": "0.1.1",
"description": "",
"keywords": [
"vite",
"audioworklet"
],
"author": "Felix Roos <flix91@gmail.com>",
"license": "MIT",
"type": "module",
"devDependencies": {
"vite": "^6.0.11"
}
}

View file

@ -0,0 +1,48 @@
import { createLogger, build } from 'vite';
const end = '?audioworklet';
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}";`;
},
};
}
export default bundleAudioWorkletPlugin;

View file

@ -1,6 +1,6 @@
{
"name": "@strudel/web",
"version": "1.1.0",
"version": "1.2.1",
"description": "Easy to setup, opiniated bundle of Strudel for the browser.",
"module": "web.mjs",
"publishConfig": {
@ -41,6 +41,7 @@
},
"devDependencies": {
"@rollup/plugin-replace": "^6.0.2",
"vite": "^6.0.11"
"vite": "^6.0.11",
"vite-plugin-bundle-audioworklet": "workspace:*"
}
}

View file

@ -2,11 +2,12 @@ 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({
base: './',
plugins: [],
plugins: [bundleAudioWorkletPlugin()],
build: {
lib: {
entry: resolve(__dirname, 'web.mjs'),

View file

@ -1,6 +1,6 @@
{
"name": "@strudel/webaudio",
"version": "1.1.0",
"version": "1.2.1",
"description": "Web Audio helpers for Strudel",
"main": "index.mjs",
"type": "module",

View file

@ -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",