subch.us SUBCH-808

SUBCH-808

A drum machine in the shape of the Roland TR-808. Eleven voices built the way the 808 built them, from ringing filters and noise and six square waves rather than samples, a sixteen-step sequencer with two patterns and an accent row, and a knob explainer on every control: click a knob's label, or an instrument's name, to read what that circuit does. Flip power, tap a pad, press Start, paint the grid.

Engine
–
CPU
–
Rate
–
Resets
–
Flip the power switch (or tap a pad) to start the audio engine.
Edit
Play
120BPM

Click a step to turn it on, drag to paint a row. The AC row accents a step for every instrument. Tap an instrument's name (or its pad above) to hear it now; keys Q–[ play the rows, shift accents, space starts and stops.

About a control

Click a knob's label, or an instrument's name strip, to read what it does.

Keep it

On the desktop with a Launchpad Mini plugged in, a Launchpad button appears: the top two pad rows are the sounds (tap to play and select), the two rows under them that sound's sixteen steps, the two below those the accent steps; the top buttons are start, edit A, edit B, clear and hand back; the right column picks the play mode and the five rhythms. Both patterns and every knob autosave in this browser. WAV renders the pattern offline from the same engine (A·B mode gives you both bars) and downloads it: drop it in Ableton or SUBCHannels. A link holds the whole machine.

Every knob what it does, and the circuit behind it

How it works the same stack as SUBCH-60, SUBCHange and Pedal Lab

No samples

The 808 could not afford samples in 1980, which is why it sounds like nothing else: every voice is a small analogue circuit. The bass drum and toms are bridged-T oscillators, a filter tuned to the edge of ringing and kicked by a pulse. The snare is two of them plus noise. The clap is noise with an envelope that retriggers three times. The hats, cymbal and cowbell come from one bank of six square-wave oscillators at non-harmonic frequencies, filtered into a hash. This page models those circuits as DSP, written from the schematics rather than solved from them (the Pedal Lab does the solving; these are cheaper), in Rust compiled to WebAssembly.

The sequencer is on the audio thread

The pattern lives in the engine's memory, and the engine counts samples. So a step lands exactly where it should, at any tempo, whatever the page is doing. The page only paints: the current step comes back in a meter message forty times a second.

Accent, shuffle, choke

The 808 had one accent for the whole machine: a step in the AC row makes every hit on that step louder, by the Accent knob. Its hats were one voice with two envelopes, so a closed hat cuts an open one off, and so does this. Shuffle is the one thing the 808 did not have; it is marked with a plus.

Nothing leaves your browser

Patterns live in this browser's storage and in the links you copy. The WAV is rendered here too. The engine is 19 KB of WebAssembly; there is no server side to any of it.

Source: the Rust crate music/hub/wasm-808 and the page under music/hub/public/subch808, with panel.js as the contract between them. Tests run the same engine in Node: every voice sounds and stops, the kick sits near 55 Hz, the sub-bass boom lasts, the sequencer steps at the tempo, the closed hat chokes the open one, the accent row is louder, every factory rhythm renders without a NaN.