Tetra Sampler
Morph between three generated sound faces.
A sixteen-pad drum machine whose whole kit morphs across three faces at once.
Engine preview
VST3
A morphing sampler usually morphs one sound. Tetra Box morphs a whole kit. Every one of the sixteen pads carries its own three-corner triangle, and the corners are ALIGNED across the machine: corner one of the kick, corner one of the snare and corner one of the hat all belong to the kit's first theme. That alignment is the entire instrument. Because the corners agree, a single global triangle position is meaningful for all sixteen pads at once, and dragging it does not retune one voice, it walks the kit from one coherent face to another.
The pads sit on the Maschine default note map — sixteen contiguous notes from MIDI 36, pad 1 at the bottom left — so a pad controller plugged in and set to its factory group just works, with no remapping. Notes outside that window fold back onto the sixteen by default, which means a melodic MIDI stream, an arpeggio, anything, can drive the machine; the strict setting instead ignores them, for when the machine shares a port with something else. Which notes the pads answer to is a setting, not kit data: the preferences popover swaps the whole set for General MIDI percussion keys, the classic MPC bank A order, or sixteen chromatic semitones from C2 or middle C, and a single pad can still be moved onto a note of its own from the inspector's advanced row.
Two sources fill a pad's triangle, and the difference is worth stating plainly. The two kits it opens on read pregenerated latent-morph banks on every pad and every ambience bed — rendered barycentric lattices of related sounds in the lab's tetra-morph-strategy-bank/v1 format, loaded through the same reader Tetra Sampler uses. Every bank pad also declares a synthesized fallback rendered from the drum-kit recipes — seeded, deterministic, no assets fetched — so a bank that fails to load degrades that pad rather than the instrument, and the three original kits behind them are built from those recipes end to end.
Because these are one-shots, moving the triangle does not bend anything already ringing — a drum hit is a fact once it has happened. It re-resolves each pad's lattice cell so the NEXT strike is the morphed one, which is also why the pad waveforms redraw live as you move. What happens when a pad is hit while it is still sounding is a policy: cut steals with a short fade, the classic mono drum-voice behaviour that a kick wants; layer stacks strikes to a cap and steals the oldest, which is what a cymbal with a tail worth keeping wants. The kit sets a default per pad and the face lets you override it. Choke groups are separate and cut across pads, so a closed hat still kills a ringing open one whatever mode either is in.
In the browser this is a preview instrument: the DSP is hand-written Web Audio owned by the module face, in the same honesty class as Tetra Sampler and Percussion Synth — enough to hear the morph, the choke and the strike variation, but not covered by any parity claim. The same engine is exposed on /patch as a web-instrument node, MIDI in to audio out, so it can be wired into a patch like any other instrument. The downloadable VST3 / CLAP / AU / standalone build is different: it runs a dedicated optimized sampler engine with the Grey Studio kit compiled in, verified byte-identical across its five lanes and against the plugin render at three block sizes, and keeps the same morph triangle, voice policy, choke groups and per-pad tune — without the reverb, ambience layer or chord pads for now.
The downloadable Tetra Box release supports the hosts and systems listed below.
Works in Ableton Live, Reaper, Cubase, Studio One, Bitwig and FL Studio.
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) | Builtweb bundle sha256 4c6d255de887… · 274 KB | Built, but no downloadable archive was recorded. |
| Browser package (WASM) | Builtweb bundle sha256 056ac1a789c3… · 2.0 MB | Built, but no downloadable archive was recorded. |
| VST3 | Builtdarwin-arm64Steinberg validator + VST3 host render: passed bundle sha256 8d6f1fa3c739… · 2.2 MB | CodexTetraBox-vst3-darwin-arm64.zip archive sha256 a49aaac1c956… · 2.2 MB · darwin-arm64 |
| 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
browser-js = browser-wasm = vst3 qualified against their own recorded digests. Not recorded: au, clap, standalone.
Migration fallback: a page-only authored drawing, not yet runtime or export truth. Dashed cables carry modulation, not audio.
A strike arrives from a pad click, a keyboard row or MIDI in, with velocity taken from how high up the pad it landed. The pad's global morph point resolves to a lattice cell — up to three clips with barycentric weights.
One buffer source starts per loaded layer, each behind a gain carrying its equal-power blend weight times velocity squared times the pad's own gain. Vary, when it is up, wanders the strike point inside a radius around the morph position, so repeats select different neighbouring material rather than just jittering in level.
The pad's voice policy decides what happens to anything already sounding there, and the choke table cuts across pads independently. Decay trims each one-shot's tail as a fraction of its rendered length.
The three theme backdrops crossfade behind the translucent face on the same weights the sound is using, with the kit's declared canvas animation running underneath.
A rack is a fixed rig: several modules already wired together, playable as one instrument. This module is one of the pieces.
Sloop writes a pattern, Tetra Box plays it on sixteen pads, Guitarabin colours the output.
3 modules · sloop → tetra-box → guitarabin
Morph between three generated sound faces.
A sample-free drum synth with ten circuits and sixteen steps.
Generative MIDI loops.