Stepper
A 32-step Matrix, with ties, ratchets and a curve lane.
A step sequencer and arpeggiator on one grid.
Engine preview
Not built for macOS, Windows or Linux
Steps makes no sound. Like the arpeggiator it is a note filter: it sits between your hands and whatever voice is mounted, holds the notes you press, and fires them on a grid. The difference is what the grid says. The arpeggiator fires every step; Steps consults a sixteen-slot pattern first, and each slot answers with a velocity, 0.9 is an accent, 0.45 is a ghost note, zero is a rest. The note that fires is still the walk's choice (up, down, up-down, order played, or the seeded random), so the two halves of the name are literal: the sequencer decides WHEN and HOW HARD, the arpeggiator decides WHICH.
The step's velocity multiplies the held note's, so playing softly makes the whole pattern softer without flattening the accents, the pattern is a shape imposed on your dynamics, not a replacement for them.
Swing is the module's headline knob and it is the kit's MPC convention: 50% is straight, every second slot is delayed toward its pair partner, and 66.7% lands the pair exactly on triplet positions. The default pattern deliberately puts half its hits on the odd slots so the knob is audible the moment the page loads.
The whole pattern is ordinary params, steps.v1 through steps.v16, which is not an implementation detail but the feature: the fallback panel can edit every slot, and a share link or preset carries the groove with no bespoke serialization at all.
This is a preview module. The scheduling is real, every note is committed to the AudioContext clock as an absolute time, so timer jitter cannot move it, but the voice it drives is the website's stand-in engine, not a compiled kernel, and no parity claim applies.
Every row below is a recorded build row or the recorded absence of one. Nothing here is inferred from what this module is meant to support.
| Format | Result | Download |
|---|---|---|
| Browser package (JS) | Not built by this module's lane this module has no release.json; its packager lane records no browser program rows | Not built for the browser |
| Browser package (WASM) | Not built by this module's lane this module has no release.json; its packager lane records no browser program rows | Not built for the browser |
| VST3 | Not built no recorded artifact row for vst3; native-lane-report.json is absent or records no vst3 row for this module | Not built for macOS, Windows or Linux |
| Audio Unit | Not built no recorded artifact row for au; native-lane-report.json is absent or records no au row for this module | Not built for macOS |
| CLAP | Not built no recorded artifact row for clap; native-lane-report.json is absent or records no clap row for this module | Not built for macOS, Windows or Linux |
| Standalone app | Not built no recorded artifact row for standalone; native-lane-report.json is absent or records no standalone row for this module | Not built for macOS, Windows or Linux |
Parity
No lane recorded an artifact; there is no parity evidence.
The exact normalized graph packaged for the shared browser/native runtime and exports.
The module is the arpeggiator's architecture with one more table in the middle, and the split is identical: a pure core answers (held notes, step index, params) with a note or a rest, and a scheduler commits whatever the core says to the AudioContext clock through a lookahead window. Every musical claim, the walk orders, the velocity multiplication, the swing displacement, the rests, is a plain function checked in the test suite rather than by ear.
Swing is applied at scheduling time as an onset displacement: odd slots are delayed by the kit's musical-time maths, whose tests pin the exact triplet identity at two-thirds. The gate is clamped against the shortest surviving gap so a swung step can never overlap the note after it.
It hooks note handling exactly as the arpeggiator does: a keypress while the sequencer runs is swallowed and held, and the scheduler re-enters the engine's own noteOn with an absolute time, so the sound comes from whichever voice is mounted. It emits MIDI, not audio.
A 32-step Matrix, with ties, ratchets and a curve lane.
Walk held notes through a rhythmic pattern.
Generate a voiced chord from one note.
A compact subtractive synth for learning the signal path.