strudel
last updated: Jun 17, 2025
https://strudel.cc/
https://strudel.cc/workshop/getting-started/
Strudel is a fun music notation language with an online repl. Via Lu Wilson
Unfortunately it seems like you mostly need to use Chrome with it.
Here's how to connect my keyboard and use it as a piano, via this issue. There is midi support, but right now it's really only for control knobs.
await WebMidi.enable()
const myInput = WebMidi.inputs[0];
const noteControls = Array.from(Array(128)).map(x => null)
myInput.removeListener('noteon');
myInput.removeListener('noteoff');
myInput.addListener('noteon', e => {
const [n, vel] = e.dataBytes;
superdough({ note: n, s: 'piano', postgain: vel / 127 }, 0.05, 10).then(function (x) {
noteControls[n] = x;
});
});
myInput.addListener('noteoff', e => {
const [note] = e.dataBytes;
const { mute } = noteControls[note]
mute(0.1);
noteControls[note] = null
})
sound("bd - bd -, hh hh hh hh").gain(.5)