Mod

zen-delay-mod

Rising62/100

Zen Delay Guildfordia's Mod - unofficial firmware mod (patcher) for the Erica Synths Zen Delay: tap divisions, MIDI CC, input send, freeze

zen-delay-mod is a mod for the Erica Synths Zen Delay, by @guildfordia. 1 star on GitHub.

forErica Synths Zen Delay·by@guildfordia

Unclaimed. Is this yours? Sign in with GitHub as @guildfordia to claim it.

Downloads
0
Star
1
Forks
0
Commits
6
Last commit
Get the source

No release files yet. Build from source.

Custom license· guildfordia/zen-delay-mod·guildfordia.github.io/zen-delay-mod/·downloads come from the creator’s GitHub releases

6
Commits
0
Releases
6 commits and 0 releases in the last year
Activity · last 12 months

Zen Delay Guildfordia's Mod

An unofficial firmware mod for the Erica Synths Zen Delay (firmware 1.1.0): tap tempo with musical divisions, MIDI CC control, input send for dub throws, freeze, and a TAP LED that shows what the delay is doing.

Unofficial, at your own risk. Not affiliated with or endorsed by Erica Synths or Ninja Tune. Installing modified firmware may void your warranty. The update only rewrites the application, never the Zen's bootloader: you can always go back to the official firmware (see Going back).

This repository contains no Erica Synths code. You download the official update file from Erica Synths, and the patcher turns it into the modded update file on your own computer.

What it adds

Three time modes, chosen with the TAP button

ModeHow to get thereDELAY TIME knob
FREE (at power-on)hold TAP 1.5 s, release before 3 sfree delay time (as stock)
TAPtap a tempodivisions of the tapped tempo
SYNChold TAP 3 sdivisions of the incoming MIDI clock
  • Turning the knob never changes the mode. Entering FREE keeps the current delay until the knob reaches it (no jump). After a tap or a mode change, TAP/SYNC stay at x1 until the knob passes 12 o'clock.
  • MIDI clock is only followed in SYNC; TAP keeps your tempo even if a clock is running.
  • Tap tempo needs at least 250 ms between taps (two faster taps = freeze, below). For faster delays, tap slower and use a division.

Divisions (TAP and SYNC) — 13 equal zones, x1 at 12 o'clock

/8 /4 /3 /2 /1.5 /1.33 | x1 | x1.33 x1.5 x2 x3 x4 x8

With a quarter-note beat: /2 = eighth, /3 = eighth triplet, /1.33 = dotted eighth, /1.5 = quarter triplet, x1.5 = dotted quarter…

Freeze

  • Double TAP (second press less than 250 ms after the first), or CC 22.
  • The input stops feeding the delay and the feedback is held at exactly 1: what is in the delay loops forever. In tape modes the tape character keeps evolving; digital modes are stable.
  • Pedal and CC share the same state ("last touched wins").

TAP LED

StateLED
FREEoff
TAPshort flash on each beat
SYNCon, short blackout on each received clock beat (steady on = no clock)
Frozenfast blink

MIDI CC — channel 16 ("last touched wins": moving the knob takes over again)

CCFunctionValues
20FEEDBACK0-127
21INPUT SEND (dub throws: the repeats keep going)0 = closed … 127 = open (default)
22FREEZE0-63 off, 64-127 on
23DELAY TIME0-127 (FREE: time, TAP/SYNC: division)
24DELAY MODE5 zones: off, tape, tape ping-pong, digital ping-pong, digital
25TAPany value > 0 = one tap
26Time mode0-42 FREE, 43-85 TAP, 86-127 SYNC

Dub throw: keep CC 21 at 0, open it briefly on the hit you want to throw, with FEEDBACK around 1-2 o'clock.

Other changes

  • The FEEDBACK and DELAY TIME knobs no longer take over by themselves (ADC drift), so CC values stay put.
  • The internal debug messages (serial port, not connected to anything) are switched off; that freed the room for the mod's code.

Not reachable by firmware

CUTOFF, RESONANCE, VCF MODE, DRIVE, DRY/WET, IN LEVEL and BYPASS are analog / hardware: no MIDI control, and BYPASS cannot be combined with TAP. The VINTAGE delay mode is an analog loop and is not affected by the mod.

Installing

  1. Download the official update ZenDelay_V1.1.0.wav from Erica Synths (Zen Delay support / firmware page).
  2. Patch it (Python 3 with numpy):
    pip install numpy
    python zen_patch.py ZenDelay_V1.1.0.wav zen_delay_guildfordia_mod.wav
    
    The patcher refuses any other file, checks its result and writes the modded update file.
  3. Flash it like an official update:
    • Zen off, hold TAP while powering on: TAP blinks fast = update mode.
    • IN LEVEL at 12 o'clock, cable into L IN, nothing in R IN.
    • Play the file unaltered at 48 kHz, from start to end (about 89 s). A computer's headphone output worked best for us; on macOS, python tools/hp_flash.py zen_delay_guildfordia_mod.wav does it (needs sounddevice). Audio interfaces / mixers work too but failed more often.
    • Slow TAP blink + yellow IN LEVEL LED = failed update. Nothing is broken: power-cycle into update mode and play the file again.
  4. Power-cycle normally (without TAP). Check: after a few taps, the TAP LED flashes on the beat.

The modded file uses longer pauses between memory blocks than the official one (3.5 s instead of 2.5 s): it gives the Zen more time to erase its flash and made updates much more reliable in our tests. Do not lengthen the short pauses after blocks 4 and 5: the bootloader takes a long silence there as the end of the update and starts a half-written program.

Going back to the official firmware

Flash ZenDelay_V1.1.0.wav from Erica Synths the same way.

For developers

  • patch.json: the mod's bytes only, applied by zen_patch.py (input and output fingerprints checked).
  • src/: the hooks in ARM Thumb assembly (*.S), the linker script and patch1.py, which rebuilds the patched image from the decoded official image (needs arm-none-eabi binutils). Each hook's header explains where it plugs in and why.
  • tools/qpsk_decode.py / tools/qpsk_encode.py: decoder and encoder for the update file format.
  • Ideas, bug reports and improvements are welcome in the GitHub issues.

Credits

  • The update file format is the Mutable Instruments stm-audio-bootloader (QPSK), MIT licence, by Émilie Gillet; the decoder/encoder here are independent re-implementations of that format.
  • Mod by guildfordia, developed with the help of an AI assistant (Claude) and tested on real hardware.

Licence

The mod's own code and files are under the MIT licence. This licence does not cover the Zen Delay firmware, which belongs to Erica Synths and is not included here. "Erica Synths", "Zen Delay" and "Ninja Tune" are trademarks of their respective owners, used only to say which device this mod is for.