Firmware

Joy / Sorrow

Loud83/100

Firmware set with build guides for Patch.Init().

forElectro-Smith Patch.Init()·by@Eight4aWish

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

Downloads
0
Stars
5
Forks
0
Commits
372
Last commit
Download mirth-v1.1.0

mirth-v1.1.0-card.zip· 1.4 MB· +2 files

Custom license· Eight4aWish/eurorack_daisy_patch_init·eight4awish.com/modules/·downloads come from the creator’s GitHub releases

371
Commits
17
Releases
371 commits and 17 releases in the last year
Activity · last 12 months
17 releases
  1. mirth-v1.1.0Mirth v1.1.0Latest3 files

    "One for sorrow, two for mirth…"

    Neural amp captures on a Daisy patch.Init() with a 64×48 OLED — nineteen not-amps, captures bent inside the network until they stop sounding like amps, and a new bank, FILTERS: two real filters as neural networks.

    What's new in 1.1.0

    • FILTERS, a third bank: a Doepfer A-124 Wasp and a Behringer Swords, learned from recordings of each with its cutoff under CV. Seven on the card: the Wasp's low-pass as an amp-style capture at one setting, then six GRU networks — Wasp low-pass (at one Res, and with Res), the Wasp low-pass with its own take-to-take unpredictability as a granular layer, Wasp high-pass, Swords, and Swords with its self-oscillation added. FREQ and RES, and RES goes to 11.
    • Nineteen not-amps (twelve in 1.0.0). New: four random-weight networks whose steer scales every weight (RND1, 4, 6, 7 SCALE); MUTATE KAY, every weight of the Kay 703 nudged one fixed random way; TANH BJT, a soft clipper in every neuron; LINEAR ORG and RATE F57. FRZ E TR has gone: the three freezes sounded too alike.
    • The knobs are rearranged: 1 MIX, 2 STEER (FREQ in FILTERS), 3 RES, 4 DRIVE into the network, −20 to +20 dB, unity at noon, now in every bank. B7 steps through the patches (held 1.5 s: the next bank), so the patch knob and the bypass have gone; MIX fully down is the dry input.
    • Copy a .nam straight to the card. At boot Mirth converts any A2 .nam in the root: it names the capture from the file, levels it with the rest, writes the .a2nb beside it, and moves the .nam into nam_done/ (or nam_refused/, with the reason on the screen). About three seconds a file.
    • The starter set is re-levelled by A-weighted loudness, not RMS, so the bass amps no longer sound quiet (moves of up to 4.3 dB). Same networks.
    • A six-row screen: the patch and its place in the bank (AMP 2/12), the knobs laid out as they sit on the panel, the CPU load, and on a filter its network's cycles per sample. The splash shows the build.

    What's in it

    • AMPS: NAM A2-Lite captures read off the microSD card. Twelve come with it (the starter set); add your own by copying A2 .nam downloads to the card. Up to 32 on a card.
    • NOT-AMPS: nineteen, each one transform — sine, soft-clip, straightened or rectified neurons, a held layer, a fold inside the network, feedback, a divided sample rate, weights pushed past another amp, nudged at random, or random from the start — and one control, STEER (CV_2 + CV_6), that moves while it plays. Chosen by measurement to sit outside the region where 236 real amp captures sound, then by ear.
    • FILTERS: seven, with FREQ (CV_2 + CV_6) and RES (CV_3 + CV_7, to 11).
    • MIX (CV_1 + CV_5), dry to wet; DRIVE (CV_4 + CV_8), −20 to +20 dB.
    • B7: short press the next patch, held 1.5 s the next bank. The OLED shows the patch, an input meter, CPU load and the knobs.
    • A capture is built in (the Orange TH100), so a module with no card still plays.

    Updating from 1.0.0

    1. Replace mirth-v1.0.0.bin on the card with mirth-v1.1.0.bin (still the only .bin).
    2. Replace the twelve starter .a2nb files with the zip's — the same networks, re-levelled.
    3. Copy the zip's notamps/ folder to the root. The four RND not-amps and MUTATE KAY are built from it; without it they show N need cap.
    4. Copy the seven f1_…f7_ filter files to the root. A card with none skips FILTERS.
    5. The panel labels have changed with the knobs: print the new label layer.

    Install

    Runs via the Daisy bootloader, which needs installing once (Daisy Web Programmer, Bootloader section). Then:

    1. Card: one FAT32 partition of 2 GB or less, rest unallocated — a full-size volume fails at start-up, and exFAT is not read.
    2. Copy mirth-v1.1.0.bin to the root (it must be the only .bin), and everything in mirth-v1.1.0-card.zip beside it, the notamps folder included.
    3. On a Mac: rm -f /Volumes/DAISY/._* /Volumes/DAISY/notamps/._* afterwards.
    4. Power-cycle. The splash reads MIRTH, with the build under it.

    Full guide: https://eight4awish.com/modules/mirth/ (amps and not-amps) and https://eight4awish.com/modules/mirth-filters/ (the filters, and how they were trained)

    Known limits

    • A patch can no longer be chosen by CV: B7 steps through them.
    • CV is read once a block, about 1 kHz: no audio-rate modulation.
    • The RATE not-amps run 48·R samples late and FLT4 54 ms late; the dry side is delayed to match, so MIX stays in time.
    • CPU peaks: TANH BJT 84%, FLT7 76% in its oscillation zone, SINE BUG 75%.
    • FLT1 plays the one setting it was captured at: FREQ and RES do nothing there.
    • The Wasp networks learned resonance weakly above 7, so the dial lifts it; 10 to 11 is over-resonance, fed back, which rings and oscillates more than the real Wasp does.
    • Up to 32 captures on a card, counting notamps/ and FLT1; up to 16 filters.

    Licence & credits

    Mirth is MIT. The A2 engine is Keith Shepherd's, from bkshepherd/DaisySeedProjects (MIT), based on code nadavb shared on the Daisy forum. The twelve starter captures are their creators' — eight CC BY, four CC0 — each credited in STARTER_CAPTURES.md, inside the card zip. The filter networks were trained on recordings of the rack's own Wasp and Swords, CC BY 4.0, credited in FILTERS.md, also in the zip; the five notamps/ files are random numbers, CC0. Built on Electrosmith's libDaisy.

    Licence notices for everything compiled into mirth-v1.1.0.bin (the engine, the built-in Orange TH100, FatFs, libDaisy, ST's HAL and CMSIS): mirth-v1.1.0-NOTICES.txt, attached. Corresponding source: this repo at tag mirth-v1.1.0, daisy_neural/.

    Not affiliated with, or endorsed by, Neural Amp Modeler, TONE3000, the makers of the amplifiers and pedals captured, Doepfer, Behringer, or Electrosmith.

  2. mirth_lite-v1.1.0Mirth Lite v1.1.03 files

    "One for sorrow, two for mirth…"

    Mirth for a stock Daisy patch.Init(), no screen: neural amp captures, nineteen not-amps, and a new bank, FILTERS: two real filters as neural networks. Same engine, captures, not-amps, filters and knobs as Mirth; the LED stands in for the screen.

    What's new in 1.1.0

    • FILTERS, a third bank: a Doepfer A-124 Wasp and a Behringer Swords, learned from recordings of each with its cutoff under CV. Seven on the card, with FREQ and RES, and RES goes to 11.
    • Nineteen not-amps (twelve in 1.0.0): RND1, 4, 6 and 7 SCALE, MUTATE KAY, TANH BJT, LINEAR ORG and RATE F57 are new; FRZ E TR has gone.
    • The knobs are rearranged: 1 MIX, 2 STEER (FREQ in FILTERS), 3 RES, 4 DRIVE, −20 to +20 dB, unity at noon, in every bank.
    • B7 does it all: short press the next patch, held 1.5 s the next bank. The B8 toggle no longer picks the bank, and the bypass has gone; MIX fully down is the dry input.
    • The LED blinks the bank first: one, two or three quick flickers (AMPS, NOT-AMPS, FILTERS), a pause, then the patch's number, a long blink per five.
    • Copy a .nam straight to the card: converted at the next boot; look in nam_done/ and nam_refused/ for what happened, since there is no screen to say.
    • The starter set is re-levelled by A-weighted loudness, not RMS. Same networks.

    Controls

    ControlAMPSNOT-AMPSFILTERS
    CV_1 (+ CV_5)MIXMIXMIX
    CV_2 (+ CV_6)—STEERFREQ
    CV_3 (+ CV_7)——RES, to 11
    CV_4 (+ CV_8)DRIVEDRIVEDRIVE
    B7 short / held 1.5 snext patch / next bank
    B8 toggleunused
    LEDthe bank as flickers, then the patch's number (7 is long-short-short), then lit. One blip: the built-in Orange TH100 is playing. A fast flicker that never stops: no captures on the card

    Lite starts on the first amp and blinks it.

    Updating from 1.0.0

    1. Replace mirth_lite-v1.0.0.bin on the card with mirth_lite-v1.1.0.bin (the only .bin).
    2. Replace the twelve starter .a2nb files with the zip's, and copy its notamps/ folder and the seven f1_…f7_ filter files to the root.
    3. The toggle's job has moved to B7 held.

    Install

    As Mirth: the Daisy bootloader once (Daisy Web Programmer, Bootloader section); a card with one FAT32 partition of 2 GB or less; mirth_lite-v1.1.0.bin as the only .bin in the root and everything in mirth-v1.1.0-card.zip beside it; on a Mac, rm -f /Volumes/DAISY/._* /Volumes/DAISY/notamps/._*; power-cycle.

    Full guide: https://eight4awish.com/modules/mirth/ (amps and not-amps) and https://eight4awish.com/modules/mirth-filters/ (the filters, and how they were trained)

    Licence & credits

    As Mirth: MIT, with Keith Shepherd's A2 engine (MIT), the twelve credited starter captures (STARTER_CAPTURES.md) and the filter networks (FILTERS.md, CC BY 4.0), both in the card zip; the five notamps/ files are random numbers, CC0. Licence notices for everything compiled into mirth_lite-v1.1.0.bin: mirth_lite-v1.1.0-NOTICES.txt, attached. Corresponding source: this repo at tag mirth_lite-v1.1.0, daisy_neural/ (make LITE=1).

    Not affiliated with, or endorsed by, Neural Amp Modeler, TONE3000, the makers of the amplifiers and pedals captured, Doepfer, Behringer, or Electrosmith.

  3. wish_patch_init-v1.0.0Wish on Daisy patch.Init() v1.0.02 files

    Granular textures for a stock Electrosmith Daisy patch.init(), based on Beads, Émilie Gillet's texture synthesizer for Mutable Instruments. It records whatever comes in and plays it back as grains, with four recording qualities, a delay mode, a reverb, and a wavetable synth for when nothing comes in. No screen, no hardware changes: flash it and play.

    It is Wish for the patch.init: the same Beads DSP, compiled from the source Mutable published on 12 October 2026, with the same pot laws and load governor. The Patch SM is the same STM32H750 at the same 480 MHz.

    Eight for a wish.

    What's in it

    • Four knobs on three layers. Toggle down, PLAY: TIME, SIZE, DENSITY, PITCH. Toggle up, TONE: SHAPE, DRY/WET, FEEDBACK, REVERB. Hold B7, RANDOM: Beads' four attenuverters as randomisers for TIME, SIZE, SHAPE and PITCH (noon none; clockwise every new grain gets the same degree of randomness, anticlockwise the degree is itself random, so some grains stay put and others land anywhere). A knob takes a parameter over only once it reaches its value, so changing layer never makes anything jump.
    • Tap B7 to freeze; the LED is lit while frozen.
    • Hold B7 for 2 s, turning nothing, for settings: knob 1 the quality (digital, vintage digital, clean tape, dirty tape), knob 2 the input (Mono, Stereo, or Synth: Beads' wavetables, no input), knob 3 the gate output. The LED blinks the new value's number. Tap B7 to leave.
    • Jacks: CV_5 V/oct, CV_6 TIME CV, CV_7 SIZE CV, CV_8 DENSITY CV. Gate in 1 SEED, gate in 2 FREEZE, gate out 1 Beads' grain gates. Audio in and out, L and R.
    • V/oct calibration: hold B7 through power-on, then 1 V and 3 V into CV_5, pressing B7 after each.
    • The settings, the knob values of the two layers not under the hand, and the calibration are saved and restored at power-on.

    Differences from Beads

    • Twelve knobs become four on three layers, and four buttons become one. CV is added at full depth, so the randomisers work whether or not a jack is patched.
    • There is no SEED button. The internal clock runs, and DENSITY sets it (noon is no grains). Triggers into gate in 1 take over, as on Beads: fully clockwise every trigger plays, anticlockwise divides them; the internal clock comes back a few seconds after they stop.
    • The patch.init can't tell a patched jack from an empty one, so the input mode is a setting.
    • The grain gates have their own jack, so they no longer take audio R. As on Beads, the audio is mono while the gate output is on.
    • Dirty tape runs Beads' own 48 kHz path, as libDaisy has no 24 kHz setting.
    • At the heaviest settings (digital stereo, dense grains, random pitch) the grains are thinned automatically to keep the module responsive.
    • No SHAPE CV or ASSIGN jack, input gain is automatic only, and a frozen buffer is not kept through a power cycle.

    Flashing

    It runs from SRAM through the Daisy bootloader, like Joy and Mirth.

    1. Install the Daisy bootloader once, if the module doesn't have it: the Daisy Web Programmer, Bootloader section.
    2. Format a microSD card as one FAT32 partition of 2 GB or less.
    3. Copy wish_patch_init-v1.0.0.bin to its root, as the only .bin there. On a Mac, delete the hidden ._ copy macOS makes.
    4. Insert the card and power-cycle. Then take the card out, or it will be flashed again whenever the module starts with a different firmware on it.

    Over USB instead: make program-dfu during the bootloader's ~2 s window after reset.

    To get a first sound: audio into IN L, toggle up and DRY/WET fully clockwise, toggle down and DENSITY clockwise of noon. The full manual is the README.

    Full guide: https://eight4awish.com/modules/wish-patch-init/

    Licence & credits

    Wish on Daisy patch.Init() is MIT. The DSP is Beads by Émilie Gillet (Mutable Instruments), MIT, from pichenettes/eurorack — thank you, Émilie, for opening it up. Built on Electrosmith's libDaisy (MIT). Not affiliated with, or endorsed by, Mutable Instruments or Electrosmith.

    Source: this repo at tag wish_patch_init-v1.0.0, daisy_beads_patch_init/, with daisy_beads/src/ and common/.

    Licence notices for everything compiled into wish_patch_init-v1.0.0.bin (Beads and stmlib, libDaisy, ST's HAL and CMSIS): wish_patch_init-v1.0.0-NOTICES.txt, attached.

  4. secret-v1.1.0Secret v1.1.02 files

    A chaotic oscillator for the Hermetic Modular Alchemy Lab (V2). Twelve strange attractors played as sound, with V/oct, and TAME — one knob that settles each attractor onto one of its own repeating orbits.

    Seven for a secret, never to be told. Successor to the Teensy 4.1 Chaos module, whose six attractors are the first six here.

    What's new in 1.1.0

    • TAME is delayed feedback control (Pyragas, 1992). It compares the voice with itself one note-period ago and nudges one of its equations towards repeating. On an orbit of the system's own that repeats at the note, the nudge vanishes, so the tone TAME settles on is the attractor's own, not a looped slice of it. Strongest on Rössler, Coupled Rössler, Moore–Spiegel and Duffing (whose subharmonics are drawn onto the note); Hindmarsh–Rose's bursts regularise; Van der Pol and the Brusselator are periodic already. Lorenz, Chua and Lorenz–Lü–Chen have no orbit it can find, so TAME leaves them free.
    • B2 has no job for now. v1.0.0's Auto, Force and Sync went with the old TAME.
    • 480 MHz (was 400), with every model's step cap re-measured: most models now reach higher before their pitch plateaus.
    • Cleaner note starts. In Gated mode a gate re-seeds the attractor only from silence; a gate while the last note is still sounding retriggers the envelope and the trajectory carries on. Each channel's attack waits for a zero crossing.
    • The forced Brusselator sounds at the note; in v1.0.0 it mostly sat an octave below.

    What's in it

    • Twelve models on B1, shown by the colour of its LEDs: Rössler, Van der Pol, Lorenz, Chua, Duffing, Coupled Rössler · driven pendulum, Lorenz–Lü–Chen, Moore–Spiegel, forced Brusselator, chaotic Colpitts, Hindmarsh–Rose.
    • TAME (P4, CV on J6). TAME at 0 is the Teensy's voice, unchanged.
    • V/oct on J3, TUNE 27.5–880 Hz. Gate on J4, with Drone/Gated on B3 and AD/SR envelope macros on P5/P6.
    • X/Y CV out on J7/J8 — the raw attractor, for a scope. Tiliqua's xbeam draws it.
    • Audio L = X, R = Y on J9/J10.

    Known limits

    • Hindmarsh–Rose (~190 Hz), Chua (~520 Hz), Colpitts (~660 Hz) and Moore–Spiegel (~880 Hz) top out at mid settings; above that, the pitch plateaus rather than the module overloading.
    • On Colpitts, the orbit TAME finds sits about three semitones from the free voice.
    • V/oct uses the board's factory calibration, which sets each jack's zero but not its scale.
    • CV is read at 1 kHz: no audio-rate FM. X/Y CV updates at 2 kHz.
    • No presets; the button choices reset at power-on.

    Flashing

    No SD card, no Daisy bootloader — the Alchemy Lab has its own.

    1. Connect the front-panel USB-C.
    2. Power on holding B3. The rings spin a warm-white comet, then breathe.
    3. Load secret-v1.1.0.bin in the Hermetic Modular Web Programmer.
    4. Power-cycle. B1 lights orange: Rössler.

    Do not use the Daisy Web Programmer or the SD-card route.

    Full guide: https://eight4awish.com/modules/secret/

    Licence & credits

    Secret and chaos_core are MIT. Built on Hermetic Modular's Alchemy SDK (MIT) and Electrosmith's libDaisy (MIT), as pinned by the SDK. Not affiliated with, or endorsed by, Hermetic Modular or Electrosmith.

    Source: this repo at tag secret-v1.1.0, daisy_chaos/.

    Licence notices for everything compiled into secret-v1.1.0.bin (the Alchemy SDK, libDaisy, FatFs, ST's HAL and CMSIS): secret-v1.1.0-NOTICES.txt, attached.

  5. wish-v1.0.0Wish v1.0.02 files

    Granular textures for the Hermetic Modular Alchemy Lab (V2), based on Beads, Émilie Gillet's texture synthesizer for Mutable Instruments. It records whatever comes in and plays it back as grains, with four recording qualities, a delay mode, a reverb, and a wavetable synth for when nothing is patched in. The DSP is Beads' own, compiled from the source Mutable published on 12 October 2026.

    Eight for a wish.

    What's in it

    • Six knobs: TIME, SIZE, SHAPE, DENSITY, PITCH, DRY/WET. Hold B3 for a second layer: Beads' four attenuverters as randomisers, each on its own parameter's knob (noon none; clockwise every new grain gets the same degree of randomness, anticlockwise the degree is itself random, so some grains stay put and others land anywhere), plus FEEDBACK and REVERB.
    • B1 FREEZE. B2 SEED: tap for a grain, hold for a stream, hold 4 s (or B2 + B1) to return to the internal clock. Tap B3 for the four qualities in Beads' order and colours: digital, vintage digital, clean tape, dirty tape.
    • B3 + B1: input Mono (J1), Stereo, or Synth (Beads' wavetables, no input). B3 + B2: J10 carries Beads' grain gates.
    • Jacks: J1/J2 audio in, J3 V/oct, J4 SEED trigger, J5 FREEZE gate, J6 TIME CV, J7 SIZE CV, J8 DENSITY CV, J9/J10 audio out. CV is added at full depth; attenuate off-module.
    • The quality, input mode, gate output and the second layer's knobs are saved and restored at power-on.

    Differences from Beads

    • Twelve pots become six on two layers. Because CV is always added at full depth, the randomisers work whether or not a jack is patched, and V/oct tracks without a knob at full; Beads' "CV sets the amount of randomness" setting is not there.
    • The Alchemy Lab can't tell a patched jack from an empty one, so the input mode is a setting, and SEED counts as patched while triggers arrive, handing back to the internal clock a few seconds after they stop.
    • Dirty tape runs Beads' own 48 kHz path, as libDaisy has no 24 kHz setting.
    • At the heaviest settings (digital stereo, dense grains, random pitch) the grains are thinned automatically to keep the module responsive.
    • No SHAPE CV or ASSIGN jack, input gain is automatic only, and a frozen buffer is not kept through a power cycle.

    Flashing

    No SD card, no Daisy bootloader — the Alchemy Lab has its own.

    1. Connect the front-panel USB-C.
    2. Power on holding B3. The rings spin a warm-white comet, then breathe.
    3. Load wish-v1.0.0.bin in the Hermetic Modular Web Programmer.
    4. Power-cycle. B2's LEDs breathe amber: the internal clock is seeding grains.

    Do not use the Daisy Web Programmer or the SD-card route.

    To get a first sound: audio into J1, DRY/WET fully clockwise, TIME fully anticlockwise, then turn DENSITY clockwise from noon (noon is no grains). The full manual is the README.

    Licence & credits

    Wish is MIT. The DSP is Beads by Émilie Gillet (Mutable Instruments), MIT, from pichenettes/eurorack — thank you, Émilie, for opening it up. Built on Hermetic Modular's Alchemy SDK (MIT) and Electrosmith's libDaisy (MIT), as pinned by the SDK. Not affiliated with, or endorsed by, Mutable Instruments, Hermetic Modular or Electrosmith.

    Source: this repo at tag wish-v1.0.0, daisy_beads/.

    Licence notices for everything compiled into wish-v1.0.0.bin (Beads and stmlib, the Alchemy SDK, libDaisy, FatFs, ST's HAL and CMSIS): wish-v1.0.0-NOTICES.txt, attached.

    Show all 2 files
  6. mirth-v1.0.0Mirth v1.0.03 files

    "One for sorrow, two for mirth…"

    Neural amp captures on a Daisy patch.Init() with a 64×48 OLED — and twelve not-amps, captures bent inside the network until they stop sounding like amps.

    What's in it

    • AMPS: NAM A2-Lite captures read off the microSD card, chosen with CV_3. Twelve come with it (the starter set, below); add your own by converting A2 .nam downloads with tools/nam_to_a2nb.py. Up to 32 on a card.
    • NOT-AMPS: twelve not-amps, each a starter capture with one transform — sine neurons, a straightened or rectified activation, a held layer, a fold inside the network, feedback, a divided sample rate, weights pushed past another amp — and one control, STEER (CV_4 + CV_8), that moves while it plays. Chosen by measurement to sit outside the region where real amps sound, then by ear.
    • MIX (CV_2 + CV_6), dry to wet; TRIM (CV_1 + CV_5), −20 to +20 dB, unity at noon.
    • B7: short press bypass, held 1.5 s change bank. The OLED shows the capture, an input meter for setting the trim, CPU load, and the steer.
    • A capture is built in (the Orange TH100), so a module with no card still plays.

    Install

    Runs via the Daisy bootloader, which needs installing once (Daisy Web Programmer, Bootloader section). Then:

    1. Card: one FAT32 partition of 2 GB or less, rest unallocated — a full-size volume fails at start-up, and exFAT is not read.
    2. Copy mirth-v1.0.0.bin to the root (it must be the only .bin), and the twelve .a2nb files from mirth-v1.0.0-captures.zip beside it.
    3. On a Mac: rm -f /Volumes/DAISY/._* afterwards.
    4. Power-cycle. The splash reads MIRTH.

    Full guide: https://eight4awish.com/modules/mirth/

    Licence & credits

    Mirth is MIT. The A2 engine is Keith Shepherd's, from bkshepherd/DaisySeedProjects (MIT), based on code nadavb shared on the Daisy forum. The twelve starter captures are their creators' — eight CC BY, four CC0 — each credited in STARTER_CAPTURES.md, inside the captures zip. Built on Electrosmith's libDaisy.

    Licence notices for everything compiled into mirth-v1.0.0.bin (the engine, the built-in Orange TH100, FatFs, libDaisy, ST's HAL and CMSIS): mirth-v1.0.0-NOTICES.txt, attached. Corresponding source: this repo at tag mirth-v1.0.0, daisy_neural/.

    Not affiliated with, or endorsed by, Neural Amp Modeler, TONE3000, the makers of the amplifiers and pedals captured, or Electrosmith.

  7. mirth_lite-v1.0.0Mirth Lite v1.0.03 files

    Mirth for a stock patch.init(), no screen: the same engine, captures, not-amps and knobs, with the B8 toggle choosing the bank.

    Controls

    • B8 toggle: bank — up AMPS, down NOT-AMPS.
    • B7 short press bypass; held 0.6 s re-blinks the slot number.
    • LED: blinks the slot number on a change (a long blink is five), then lit when the network is in circuit. A fast flicker that never stops: no captures on the card.
    • Knobs and CV as Mirth: TRIM, MIX, CAPTURE, STEER.

    Install

    As Mirth: Daisy bootloader once, a 2 GB FAT32 card, mirth_lite-v1.0.0.bin plus the twelve .a2nb files from mirth-v1.0.0-captures.zip, then rm -f /Volumes/DAISY/._* on a Mac.

    Licence

    MIT. The A2 engine is Keith Shepherd's (MIT), based on nadavb's forum code; the captures are credited in STARTER_CAPTURES.md. Notices: mirth_lite-v1.0.0-NOTICES.txt, attached. Source: this repo at tag mirth_lite-v1.0.0. Not affiliated with, or endorsed by, Neural Amp Modeler, TONE3000 or Electrosmith.

  8. secret-v1.0.0Secret v1.0.02 files

    A chaotic oscillator for the Hermetic Modular Alchemy Lab (V2). Twelve strange attractors played as sound, with V/oct, and TAME — one knob from free chaos to a locked note, with the gritty, pitched middle reachable on every model.

    Seven for a secret, never to be told. Successor to the Teensy 4.1 Chaos module, whose six attractors are the first bank here.

    What's in it

    • Twelve models on B1, shown by the colour of its LEDs: Rössler, Van der Pol, Lorenz, Chua, Duffing, Coupled Rössler · driven pendulum, Lorenz–Lü–Chen, Moore–Spiegel, forced Brusselator, chaotic Colpitts, Hindmarsh–Rose.
    • TAME (P4, CV on J6). Spirals lock to a drive at the note's frequency and stay chaotic; driven systems follow it onto subharmonics; Lorenz and Chua are pulled back to a stored point on the attractor once a cycle. B2 picks Auto, Force or Sync. TAME at 0 is the Teensy's voice, unchanged.
    • V/oct on J3, TUNE 27.5–880 Hz. Gate on J4, with Drone/Gated on B3 and AD/SR envelope macros on P5/P6.
    • X/Y CV out on J7/J8 — the raw attractor, for a scope. Tiliqua's xbeam draws it.
    • Audio L = X, R = Y on J9/J10.

    Known limits

    • Hindmarsh–Rose (~200 Hz), Chua (~410 Hz), Colpitts (~570 Hz) and Moore–Spiegel (~730 Hz) top out inside the playing range at mid settings; above that, the pitch plateaus rather than the module overloading.
    • V/oct uses the board's factory calibration, which sets each jack's zero but not its scale.
    • CV is read at 1 kHz: no audio-rate FM. X/Y CV updates at 2 kHz.
    • No presets; the button choices reset at power-on.

    Flashing

    No SD card, no Daisy bootloader — the Alchemy Lab has its own.

    1. Connect the front-panel USB-C.
    2. Power on holding B3. The rings spin a warm-white comet, then breathe.
    3. Load secret-v1.0.0.bin in the Hermetic Modular Web Programmer.
    4. Power-cycle. B1 lights orange: Rössler.

    Do not use the Daisy Web Programmer or the SD-card route.

    Full guide: https://eight4awish.com/modules/secret/

    Licence & credits

    Secret and chaos_core are MIT. Built on Hermetic Modular's Alchemy SDK (MIT) and Electrosmith's libDaisy (MIT), as pinned by the SDK. Not affiliated with, or endorsed by, Hermetic Modular or Electrosmith.

    Source: this repo at tag secret-v1.0.0, daisy_chaos/.

    Licence notices for everything compiled into secret-v1.0.0.bin (the Alchemy SDK, libDaisy, FatFs, ST's HAL and CMSIS): secret-v1.0.0-NOTICES.txt, attached.

  9. sorrow-v2.4.1Sorrow v2.4.12 files

    Four changes, all of them things you can hear. The banks are re-derived, so this is a bigger jump than the version number suggests.

    Every node keeps all three voices

    The rank match that fits our patterns onto Grids' own value distribution was matching each lane globally, across all 25 nodes at once. That reproduces Émilie's distribution exactly but says nothing about how the zeros get shared out — and 62% of her values are zero. Any node quieter than the other 24 collected the bottom of the distribution and lost a drum entirely.

    Ten, eleven and fourteen of 25 nodes had a silent voice in Latin, Traditional and Club. Émilie has none, in 75 node-lanes — she does not leave a drum out. Matching per node instead fixes it by construction: our nth-busiest node inherits her nth-busiest node's shape, every one of her 1,200 values still used exactly once.

    The map is arranged for the values it actually holds

    Arranging ran before shaping, so the layout was optimised for numbers the nodes didn't end up with. Now the other way round. Measured as how much neighbours differ against how much distant cells differ — at 100% every knob move is a jump to something unrelated:

    beforenow
    Latin93%87%
    Traditional92%85%
    Club84%80%
    Grids' own91%

    Original plays at Émilie's tempo

    Her 32 bytes per lane are one bar at Grids' 32nd-note step rate. Sorrow steps once per 16th, so read raw they played as two bars — a uniform 2× time stretch. Her node 17 has a kick on all four quarters of a bar; it was coming out as a kick on beats one and three of two bars, at half the density.

    Each 32nd pair is now merged onto one 16th, keeping the louder, and her bar repeats for Sorrow's second. That keeps 409 of her 415 hits — the six lost are pairs where both 32nds fire, which a 16th grid cannot represent. Merging rather than dropping matters for node 24, where every hit is a 32nd late (swing written into the grid); dropping would have taken 7 of its 15.

    Chaos re-rolls once per bar

    Upstream re-rolls at the start of each pattern, and on real Grids a pattern is a bar. Sorrow's 32 steps are two, so chaos was running at half the intended rate. It now rolls every 16 steps. Since the nodes repeat 82–86% between their two bars, a fresh roll at the bar line is also what tells them apart.

    Wildness past noon

    Wildness widened each parameter's range but kept drawing uniformly inside it, so the shape of the draw was identical at every setting — a parameter landed in the outer fifth of its range 20% of the time whatever the knob did. The box got wider and you still landed in the middle of it, and the middle of even the widest range is a usable sound.

    The knob is now two halves. Below noon nothing has changed — the ranges open exactly as they used to, reaching today's full width at 12 o'clock, so every kit the module could make it still makes at the same odds. Above noon the draw polarises toward the ends of each range, the family choice tilts toward the physical-modelling voices, and model selection biases toward the exotic.

    potsynth kickmodal kickin outer 20%all six past halfway
    0.0054%0%20%1.5%
    0.5033%34%20%1.5%
    1.0020%53%59%68%

    Boot value moved 0.35 → 0.175, which is the same sound on the new curve.

    Firmware for real Grids

    The three WAV/hex builds at https://eight4awish.com/notes/grids-patterns/ are rebuilt from the same re-derived banks. Still untested on hardware — that call for testers stands.

    Flashing

    Copy sorrow-v2.4.1.bin to the root of a FAT32 SD card — it must be the only .bin on the card — and power-cycle. Two slow blinks means it started. On a Mac, run dot_clean /Volumes/<card> afterwards, because Finder writes a hidden ._ twin that also ends in .bin.

    Full build guide: https://eight4awish.com/modules/sorrow/

    Licence & credits

    GPL-3.0-or-later. Sorrow's pattern generator is a port of Mutable Instruments Grids by Émilie Gillet, which is GPL-3.0-or-later, so the whole firmware is too. Corresponding source: this repo at tag sorrow-v2.4.1, daisy_grids/. The drum voices are Electrosmith's DaisySP (MIT), several of them ports of Émilie Gillet's Plaits and Rings.

    The GPL's full text, and the notices for everything else compiled into sorrow-v2.4.1.bin (DaisySP, libDaisy, ST's HAL and CMSIS): sorrow-v2.4.1-NOTICES.txt, attached.

    Not affiliated with, or endorsed by, Mutable Instruments or Electrosmith.

  10. sorrow-v2.3.1Sorrow v2.3.11 file

    The Club bank is now actually club. Everything else is untouched — same code, same voices, same Original, Traditional and Latin banks, byte for byte.

    Club is picked out of Groove MIDI by rhythmic signature rather than by genre label: four-to-the-floor with offbeat hats, breakbeat, half-time. The function deciding which of those a pattern is worked out the beat grid as steps // 4, which quietly assumes a window is exactly four beats long. A step is a sixteenth, so a bar is always sixteen steps — the assumption is true for a one-bar window and wrong for the two-bar windows Sorrow uses, where it put the beats on half notes and the "offbeat hats" on beats two and four.

    So the test named four-to-the-floor was really matching kick on one and three, hats on two and four. A rock pattern. Every Sorrow Club bank up to and including v2.3.0 was selected that way, and it sounded like it.

    Corrected, the pool changes completely:

    v2.3.0v2.3.1
    breakbeat9991,653
    four-to-the-floor1,632860
    half-time599256
    balanced pool1,797768
    steps changed per cell move22.119.4

    Less movement, because the corrected pool is under half the size — half-time is genuinely rare in Groove MIDI and it sets the balance. No dead edges either way, and both are well clear of the 12.0 the old centroid banks managed.

    Firmware for real Grids hardware is unaffected. Those banks are cut at one bar, where the assumption happened to be true; they re-derive bit-identical, so the WAV and hex downloads on the site are unchanged.

    Flashing

    Copy sorrow-v2.3.1.bin to the root of a FAT32 SD card — it must be the only .bin on the card — and power-cycle. Two slow blinks means it started. On a Mac, run dot_clean /Volumes/<card> afterwards, because Finder writes a hidden ._ twin that also ends in .bin.

    Full build guide: https://eight4awish.com/modules/sorrow/

  11. sorrow-v2.3.0Sorrow v2.3.01 file

    The pattern banks move now. Club, Traditional and Latin have all been re-derived. Nothing about the module changed — same controls, same voices, same firmware size — but turning X or Y does roughly twice as much as it did.

    The old banks were cluster centroids from a self-organising map. Two problems with that, and I had measured neither:

    • A SOM's objective function is to minimise the difference between neighbouring cells. Grids' X/Y interpolates between neighbours, so an algorithm that makes neighbours similar is an algorithm that makes the knob boring.
    • Its nodes are averages of thousands of patterns, and averages regress toward each other. Twenty-five averages are less distinctive than twenty-five archetypes — which is what Émilie picked, by hand.

    So the banks are now real patterns: twenty-five chosen by farthest-point sampling, each as unlike the ones already picked as the corpus allows, then arranged on the 5×5 to make the map a journey rather than a shuffle. Measured as steps that change state when X or Y moves one cell, at mid density:

    per edgedead edges
    v2.2.0 banks (centroids)12.01 of 40
    v2.3.0 banks (real patterns)22.10 of 40
    Grids' own factory map13.80 of 40

    A dead edge is a neighbour pair differing by three steps or fewer — a knob move you cannot hear.

    Club has a new source. It used to come from the Lakh MIDI dataset. Under the old method that was fine, because a centroid over sixty thousand patterns is nobody's drum part. The new method embeds real patterns, and traced back, all twenty-five nodes were two-bar windows of named commercial recordings, eight of them reproducing their source rhythm bit for bit. Club is now derived from Groove MIDI like the others, selected by rhythmic signature — four-to-the-floor, breakbeat, half-time — instead of by genre label. It measures the same or better, and every bank in the module is now CC BY 4.0.

    All three derived banks regenerate bit for bit from the tooling in daisy_grids/tools/groove_nodes/, given the dataset.

    Émilie's original bank is untouched.

    Flashing

    Copy sorrow-v2.3.0.bin to the root of a FAT32 SD card — it must be the only .bin on the card — and power-cycle. Two slow blinks means it started. On a Mac, run dot_clean /Volumes/<card> afterwards, because Finder writes a hidden ._ twin that also ends in .bin.

    Full build guide: https://eight4awish.com/modules/sorrow/

  12. sorrow-v2.2.0Sorrow v2.2.01 file

    One pulse, one step. Send Sorrow a 16th-note clock and it follows — at any tempo, swung or straight.

    Earlier versions measured the incoming pulse period and guessed whether you were sending 24, 8, 4, 2 or 1 ppqn, then divided or multiplied to suit. That is gone, and the module is better for it:

    • Swing passes straight through. A swung clock from Pam's or similar gives a swung pattern, because nothing is interpreting the timing any more. It used to work only by accident — a swung clock alternates long-short, so half its pulses measured into the wrong resolution band, and it survived only because a new band needed three consecutive sightings before being accepted.
    • The same at every tempo. Detection only separated the candidates cleanly between 88 and 176 BPM; outside that a sub-quarter clock could be misread by a factor of two.
    • It cannot drift. Every step is now driven by a real rising edge. Multiplying used to predict intermediate steps from the last measured period, which smeared under any tempo change.
    • No uncorrectable guesses. There is no manual ratio anywhere on the module, so a misdetection could not be fixed — the bar LED just showed you it was wrong.

    A 32-step pattern is two bars. Unpatched, the internal clock runs at 120 BPM as before.

    If you are upgrading: set your clock source to sixteenths. A quarter-note clock now gives a quarter of the speed rather than being multiplied up.

    Flashing

    Copy sorrow-v2.2.0.bin to the root of a FAT32 SD card — it must be the only .bin on the card — and power-cycle. Two slow blinks means it started. On a Mac, run dot_clean /Volumes/<card> afterwards, because Finder writes a hidden ._ twin that also ends in .bin.

    Full build guide: https://eight4awish.com/modules/sorrow/

  13. sorrow-v2.1.0Sorrow v2.1.01 file

    A fourth pattern bank: Latin.

    Derived from the Groove MIDI Dataset filtered to latin, jazz, afro-cuban, afrobeat, New Orleans, reggae and highlife — 4,793 two-bar patterns. It is the most coherent map in the module: neighbouring cells differ 41.9% less than random pairs, against 38.8% for Traditional and 14.8% for Grids' own, so X/Y morphs more smoothly across it. Its cells come out recognisably single-style — 76% bossa, 67% afrobeat, 55% songo, 51% jazz.

    Hold B7 now cycles four banks, each announcing itself: Original / Club / Traditional / Latin.

    Flashing

    Needs the Daisy bootloader on the module (one time — see the build guide). Then copy sorrow-v2.1.0.bin to the root of a FAT32 SD card, make sure it is the only .bin on the card, and power-cycle. Two slow blinks means it started.

    On a Mac, dot_clean /Volumes/<card> after copying — Finder writes a hidden ._ twin that also ends in .bin and competes for the bootloader's attention.

    Also

    Derive a bank from your own MIDI with tools/groove_nodes/, and there is now tooling to put one on a real Mutable Grids — untested on hardware, testers wanted.

  14. sorrow-v2.0.0Sorrow v2.0.01 file

    A drum machine for the Daisy patch.Init(), based on Mutable Instruments Grids. It has its own drum voices, so it works as a self-contained beatbox with nothing else patched — and it drives external modules at the same time, rather than instead.

    Flashing

    Runs from SRAM via the Daisy bootloader, so it is a one-time bootloader install and then the firmware goes on with an SD card.

    1. Plug the module in with a USB-C data cable, hold BOOT, tap RESET, release BOOT.
    2. Open the Daisy Web Programmer and flash the bootloader from its Bootloader section. Once per module.
    3. Copy sorrow-v2.0.0.bin to the root of a FAT32 card as the only .bin on it, insert, power-cycle.

    Two slow LED blinks means it started.

    What it does

    Rolling a kit. Flip the B8 toggle out and back for a new kit. Each of the three slots is filled from a pool of ten DaisySP models — the synthetic and 808-lineage drum models, both metallic hi-hats, and physical-modelling voices for something stranger.

    Wildness is the single control over how far a roll may go: which models are eligible, how far their parameters roam, and whether the three slots agree on a family or clash.

    Three pattern banks, cycled by holding B7, each announced by voice:

    • Original — Grids' own map
    • Club — derived from the Lakh MIDI Dataset, selected by rhythmic signature rather than genre label
    • Traditional — derived from the Groove MIDI Dataset, human drummers

    Both derived banks come from a 5×5 self-organising map over tens of thousands of two-bar patterns, so neighbouring points are musically related and X/Y morphs rather than jumps.

    Per-part density for kick, snare and hat on top of the master, and automatic clock detection — feed it 24, 8, 4, 2 or 1 ppqn and it works out the division itself.

    Audio and triggers together — the internal kit plays the audio outs while the gate outputs fire from the same pattern.

    Runs at 48 kHz. Per-model levels and CPU cost are measured on the target at boot, so a kit is never assembled that the processor cannot afford.

    Source

    GPL-3.0-or-later. The corresponding source for this binary is the sorrow-v2.0.0 tag in this repository.

    Bank derivation tooling is in daisy_grids/tools/groove_nodes/ — point it at your own MIDI library to derive a bank of your own genres.

  15. joy_lite-v1.4.0Joy Lite v1.4.02 files

    Joy Lite — a screenless macro oscillator for the Electrosmith Daisy Patch Init.

    The no-OLED sibling of Joy — same generation, same version. A curated 16 Braids models Plaits doesn't cover, in two toggle banks, navigated by LED + button + toggle.

    New in v1.4.0

    Same core changes as Joy:

    • 96 kHz — Braids's native rate (earlier builds ran an octave sharp at 48 kHz).
    • FM input on CV_8 — Braids's FM at full depth (≈6 semitones/V, not 1 V/oct).
    • Drone when ungated — sings continuously with nothing patched to Gate In 1; first gate hands the VCA to the AD envelope.

    Upgrading from v1.3: pitch drops an octave; saved calibration unaffected. Keep the old pitch with -DVOCT_BASE_MIDI=60.

    Models (two banks of 8, toggle-selected)

    • Bank A — CSAW · Saw-Sync · Ring-Mod · VOSIM · Digi-Filter BP · Chaotic-FM · QPSK · TOY
    • Bank B — Square-Sync · Buzz · Saw-Comb · Digi-Filter LP · Digi-Filter HP · Clocked-Noise · Twin-Peaks · ????

    Controls & calibration

    Toggle (B8) = bank A/B; B7 short = next model (LED blinks the number), B7 long = re-blink. Hold B7 at power-up for LED-guided calibration (solid = feed 1 V + press; blinking = feed 3 V + press; flurry = done).

    Install

    Daisy bootloader, same as Joy: SD card (dot_clean on macOS) or make program-dfu; first time make program-boot.

    Licence

    MIT, based on Mutable Instruments Braids by Émilie Gillet (MIT). Source: this repo at tag joy_lite-v1.4.0. Licence notices for everything compiled into joy_lite.bin (Braids and stmlib, libDaisy, ST's HAL and CMSIS): joy_lite-v1.4.0-NOTICES.txt, attached. Not affiliated with, or endorsed by, Mutable Instruments or Electrosmith.

  16. joy-v1.4.0Joy v1.4.02 files

    Joy — a macro oscillator for the Electrosmith Daisy Patch Init.

    "Two for joy…"

    48 Braids models with a 64×48 OLED navigator, on-module V/Oct calibration.

    New in v1.4.0

    • 96 kHz — Braids's native rate. The DSP now runs at the rate Braids's increment/delay tables are generated for. Earlier builds ran it at 48 kHz, an octave sharp with time constants at double speed and extra aliasing on bright models. Now it behaves exactly as written.
    • FM input on CV_8 — Braids's FM at full attenuverter depth (≈6 semitones/V, deliberately not 1 V/oct; a depth control, applied per render block).
    • Drone when ungated — with nothing patched to Gate In 1 the oscillator sings continuously (stock-Braids behaviour); the first gate edge hands the VCA to the AD envelope, click-free.

    Upgrading from v1.3: pitch drops an octave (v1.3 ran an octave sharp). Your saved V/Oct calibration is unaffected. To keep the old pitch, rebuild with -DVOCT_BASE_MIDI=60.

    Install

    Runs via the Daisy bootloader. SD card: copy joy.bin to a FAT32 card root (only .bin; on macOS dot_clean it), power-cycle. Or make program-dfu during the bootloader grace period. First time only: make program-boot.

    Calibration

    Hold B7 at power-up: OLED prompts 1 V (press), 3 V (press), done — saved to flash.

    Licence & credits

    MIT. Based on Mutable Instruments Braids by Émilie Gillet (MIT). Corresponding source: this repo at tag joy-v1.4.0.

    Licence notices for everything compiled into joy.bin (Braids and stmlib, libDaisy, ST's HAL and CMSIS): joy-v1.4.0-NOTICES.txt, attached.

    Not affiliated with, or endorsed by, Mutable Instruments or Electrosmith.

    Show all 2 files
  17. sorrow-v1.0.1Sorrow v1.0.11 file

    Sorrow — a drum module for the Electrosmith Daisy Patch Init.

    "One for sorrow…"

    3 synthetic drum voices (kick / snare / hi-hat) driven by an X/Y pattern generator, with density and chaos controls, CV modulation inputs, and an external clock input.

    What changed in v1.0.1

    No functional change — the firmware is identical to v1.0.0. This release:

    • renames the module to Sorrow, and
    • re-tags the corresponding source on main. The old daisy_grids-v1.0.0 tag pointed at a pre-rebase commit that is no longer reachable from any branch — which matters here, because the GPL requires the corresponding source to remain available.

    Install

    Sorrow runs from internal flash. Put the Patch Init in DFU mode (hold BOOT, tap RESET), then:

    dfu-util -a 0 -s 0x08000000:leave -D sorrow.bin
    

    or make program-dfu from daisy_grids/.

    Note: this writes internal flash, so it will overwrite a Daisy bootloader if one is installed on that module.

    Licence — GPL-3.0-or-later

    Sorrow is based on the Grids pattern generator by Émilie Gillet (Mutable Instruments), which Émilie licensed GPL-3.0-or-later (unlike most of the eurorack sources, which are MIT). Sorrow therefore inherits copyleft.

    Corresponding source for this binary is this repository at tag sorrow-v1.0.1.

    If you redistribute Sorrow — source or binary, modified or not — you must pass on the complete corresponding source under the GPL and may not add further restrictions.

    Not affiliated with, or endorsed by, Mutable Instruments or Electrosmith. "Grids" and "Mutable Instruments" are marks of their owner, and "Daisy" of Electrosmith; they are used here only to describe this firmware's origin.