Six percussion channels, no sample material. A five-by-five map of rhythm nodes is interpolated bilinearly to a per-step probability field, thresholded against each channel's own density, and dispatched as sample-accurate events against the audio clock.
| Channel | Model | Tune | Tone | Attack | Decay | Density | Send | Mangle | Mix | Pitch | Level |
|---|
No sample material is used at any stage. Every hit is synthesised at the moment it sounds, from oscillator and noise sources instantiated per event and torn down when their envelopes complete, using the Web Audio API only — no external libraries, no plugin host, no server component.
Pattern data is held as a five-by-five map of nodes. Each node carries three sixteen-step tables of eight-bit step levels: one for the low drum, one for the accented backbeat, one for the closed hat part. Nine of the twenty-five are authored directly and sit at the even coordinates; the sixteen between them are derived by interpolation with a fixed rotational offset, so the map varies continuously without any two nodes being identical.
At playback the map is read at a continuous coordinate. The four nodes surrounding that coordinate are interpolated bilinearly to give a level for every step of every part. Density then states how many steps of the bar fire; the map decides which, by ranking every step and taking the strongest. Opening the density up therefore adds hits in order of importance rather than at random, and velocity follows the level, so the ones that arrive last arrive quietly.
Three further channels are derived from the same field rather than stored: the open hat reads the closed hat table weighted onto the off-beat eighths, the first percussion channel reads the complement of the two drum parts so that it lands in the gaps, and the second reads the hat table in retrograde. Each is normalised and keeps its own density, so the derivation is a starting point and not a lock.
Interpolated rhythm map after Mutable Instruments Grids — © Émilie Gillet
Chaos adds a signed offset to every step level before ranking, drawn from a counter-seeded generator so that a bar is reproducible and only changes when the seed does. Above about three quarters of its travel the offset exceeds the range of the map itself, at which point placement is effectively uniform and the map stops being audible. Evolve re-seeds on a schedule; Morph walks the read coordinate a little every bar.
Any step in the grid can be held on or held off by hand. Held steps are applied after ranking and are not disturbed by density, chaos or re-seeding, so a fixed backbone can be pinned while the rest of the pattern continues to be generated.
One control, spread over eight amounts that are derived from it rather than stored, all of them acting after the pattern has been worked out, so none of them changes what the grid shows. The curve is square-law, so the lower half of the travel stays close to clean. Ratchet subdivides a step into two, three or four retriggers with a falling velocity contour. Skip removes generated hits after they have been placed, so the pattern thins without the map changing. Stutter substitutes the previous beat for the current one. Chop applies a gate to the output bus at a rate unrelated to the tempo. Bend applies a per-hit pitch offset. Crush is bit reduction by quantised transfer curve; Fold is a wavefolder ahead of it, and a little drive sits behind both. Jitter, in the clock section, is a separate control. Every channel carries its own Mangle amount in the Channels panel, so the hats can be wrecked while the kick is left alone.
Somewhere else, not something else. It loads a different kit — never the one already running — moves to a new coordinate on the map, takes a new seed, and re-rolls how open each channel is, how its voice is tuned and how long it rings, along with the pattern length, the division and the swing. Each channel's decay is drawn in proportion to what its model wants, so a hat stays a hat. The tempo, the mixer, the master level and the mangle knob are left where you put them, and the drive and filter ranges it can reach stop well short of where the mangle knob goes.
Twelve synthesis models are available to any channel, from the Channels panel. Kick and sub are single oscillators under a fast exponential pitch envelope with an optional transient. Snare and rim sum band-limited noise with two inharmonic partials. The hat and metal models are six square oscillators at fixed non-integer ratios through a high-pass and a resonant band-pass — the classic six-oscillator arrangement — with the metal model adding ring modulation and a longer decay. FM is a two-operator pair whose index falls with the amplitude envelope. Wood, tom, clap, blip and noise complete the set.
Each channel has a gain and a stereo panner, and a parallel send. The direct sum passes a compensated drive stage, then the crush and chop stages. The send sum feeds four parallel effects: a short feedback comb, a bank of modulated delays, a filtered tape echo, and a convolution reverb built from an exponentially decaying noise impulse generated at run time. Direct and effected paths meet, and only then does the signal reach the filter — a biquad with its own low-frequency oscillator — so closing the cutoff takes the whole machine down together rather than only the dry path. The master level and a limiter follow it.
Space to start and stop, S for Shuffle, R to record, 1–6 to solo a channel, 0 to clear the solos, M to cycle the display.
gregdalmata.com 2028