A curated library of 22 effects for the Zoom MS-70CDR (ZDL family),
built on the repeat98/ZoomMultistompZDL
toolchain. Eighteen are originals (most with a full-quality Python desktop
preview in tools/audio_preview/renderers/); the rest are rebuilt/renamed
Airwindows-derived ports plus one contributed effect (Dustbox). All are grouped
under the Delay category with a custom on-device cover, and all have rebuilt release binaries in dist/.
Updated September 14, 2026: all 22 effects have individual laboratory-style graphics, LCD proportion corrections, and short pedal labels. Saved effect IDs and parameter ranges are preserved. See display notes.
Levels across the pack used to be inconsistent, and the naming was most of the reason. Galactic called it DryWet, Howl and Scorch called it Level, Oxide called it Output, and GenLoss had no level control at all. Worse, the ones called Level or Output were not crossfades: Howl’s only scaled a wet send to a 0.45 ceiling, and Scorch’s was an output gain topping out at 0.5×, so Scorch could never reach unity however far it was turned.
Now every effect ends with a real dry/wet Mix, default 50 — except Dustbox, whose fourth knob is Power. Stasis uses a true Mix while a capture is held and passes dry stereo unchanged when idle; its sixth control selects stomp or explicit capture.
Effects that saturate lift RMS regardless of input, so a few carry a named wet
trim (SC_WET_TRIM, TOTAPE9_WET_TRIM, GL_WET_TRIM) applied before the
crossfade. Those are by-ear calibration points, not derived constants.
manifest.json
against its manifest_pedal.json to see what was cut for the pedal build.Tonic is a separate Bitters-inspired effect with
distortion, a phaser, four selectable processors (Decim, Crush, FM, Ring), and
forward/reverse routing. It has its own PE controls, pedal graphic, and Effect
Manager thumbnail. dist/Tonic.ZDL is available for local testing; hardware
validation is pending, so it is not yet part of the 22-effect release pack.
Rewire and its saved-patch controls are unchanged.
All 22 effects now have samples. Open a WAV link to play or download it. These are desktop renders, not recordings from the pedal.
The original 11 files below were checked for readable WAV data, finite samples, non-silence, and full-scale clipping on September 14. They pass those checks and are retained unchanged. Their original presets were not saved, and they use the older Python algorithms rather than the current release C kernels. The checks are technical validation, not a fresh listening review or a pedal comparison. Most were peak-normalized, so these files should not be used to compare effect loudness.
| Effect | Demo | Dry source |
|---|---|---|
| Microloom | microloom.wav — lush shimmer wash | chord |
| Flower | flower.wav — Digital Bath random filter | chord |
| Shatter | shatter.wav — machine-gun stutter | drums |
| Arrakis | arrakis.wav — −2 oct beating drone | drone |
| Corrupt | corrupt.wav — PLL square synth | guitar |
| Klang | klang.wav — metallic ring mod | chord |
| GenLoss | genloss.wav — wrecked tape | chord |
| Scorch | scorch.wav — djent high-gain amp+cab | riff |
| Howl | howl.wav — self-oscillating feedback | guitar |
| Hydra | hydra.wav — double-time ghost + half-time drag | drums |
| Spiral | spiral.wav — slow 8-second rising delay | guitar |
These 11 samples run the current release C audio code on the desktop at 44.1 kHz. Only the firmware pointer plumbing is replaced with host-owned buffers. This checks the audio algorithm, but does not emulate the pedal CPU, loader, MIDI, or converters. Each starts from the release manifest defaults. Stasis changes Capture from Release to Hold at 1.5 seconds so its freeze can be heard.
The dry source is fed at 25% amplitude to leave headroom. Outputs are not loudness-matched; a peak-only safety reduction is applied if needed. Five seconds of tail and a final 100 ms fade are included. The dry links below are the original, unattenuated files, so turn them down for a level comparison.
| Effect | Sample | Dry source |
|---|---|---|
| Spool | Tape echo | guitar |
| Oxide | Tape coloration | chord |
| Galactic | Large modulated reverb | chord |
| Taffy | Variable-speed playback | guitar |
| Dissolve | Smear and glitch | drums |
| Mangle | Delay at default settings | drums |
| Rooms | Room mode reverb | chord |
| Rewire | Lo-fi processing chain | guitar |
| Dustbox | Motor-like fuzz | riff |
| Stasis | Capture at 1.5 s, then sustain | chord |
| Gyre | Grain capture | guitar |
Exact settings and source hashes make the new renders reproducible. Audio check report lists sample rate, duration, peaks, RMS and clipping checks for every WAV.
After building the release pack (which generates its parameter headers), run:
python3 tools/audio_preview/render_release_samples.py
python3 tools/audio_preview/check_samples.py
The renderer requires a host C compiler, NumPy and SoundFile. Existing Python reference demos can be explored separately with the tool below.
The Python renderers provide alternate desktop versions for auditioning:
pip install numpy scipy soundfile
python3 tools/audio_preview/make_test_signal.py input.wav # or make_drum_loop.py
python3 tools/audio_preview/preview.py render scorch input.wav out.wav --set gain=85
python3 tools/audio_preview/preview.py list # all effects + coverage
.ZDLRequires the TI C6000 compiler (see the main README). The build scripts here
point TI_ROOT at /Applications/ti/ti-cgt-c6000_8.5.0.LTS — edit if yours
differs.
python3 build_all.py flower # one effect -> dist/Flower.ZDL
python3 build_all.py scorch # etc.
Pre-built .ZDL files for all 22 are in dist/.
All pedal builds follow the repo’s safe-DSP rules: no math library (polynomial
sines, cubic soft-clips, reciprocal approximations, baked filter coefficients),
no runtime divide, persistent state in the ctx[3] arena, the ctx[11]/ctx[12]
magic shuttle preserved, and controlled persistent memory. Audio kernels avoid unsupported relocation
patterns; dynamic parameter-label callbacks use verified runtime relocations.
See release verification.
Licensing follows the parent repo (MIT for repo code).