Tone.js drum sounds per row

2026-03-24

What happened

Each row now has a sound selector: midi (default) or one of seven built-in drum voices — kick, snare, closed hi-hat, open hi-hat, clap, tom, rim. Drum rows trigger Tone.js synths (MembraneSynth for kick/tom, NoiseSynth for snare/chh/clap, MetalSynth for ohh/rim) at the scheduler's precise Web Audio timestamps. Tone.js syncs to the existing AudioContext on first play.

MIDI rows behave exactly as before. Mixed rows work — you can run a kick on the browser's built-in sounds while sending snare and hi-hat to an external MIDI device.

The original PD version obviously had no audio output, just MIDI. This makes it self-contained: you can use it without any hardware connected.

Tweet draft

added built-in drum sounds to the browser sequencer — each row picks midi or kick/snare/chh/ohh/clap/tom/rim. Tone.js MembraneSynth, NoiseSynth, MetalSynth. mix browser audio and MIDI out on separate rows


commit: d80defb

← All devlog entries