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

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)
↑ up