Firmware

legio-stutterer

Hype24/100

Stutter → tape delay → DJ filter firmware for the Noise Engineering Legio (Daisy Patch SM)

legio-stutterer is custom firmware for the Noise Engineering Legio, by @tashian. Open source under MIT.

forNoise Engineering Legio·by@tashian

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

Downloads
0
Stars
0
Forks
0
Commits
22
Last commit
Get the source

No release files yet. Build from source.

MIT· tashian/legio-stutterer·downloads come from the creator’s GitHub releases

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

legio-stutterer

Alternative firmware for the Noise Engineering Legio Eurorack module. The build target is legio_tape. This firmware runs a stuttering looper, a tape delay, and a DJ filter, in stereo, with clock sync.

This firmware is part of a family of alternative firmwares for the Noise Engineering Legio platform (Daisy Patch SM, STM32H750):

You can flash any of these firmwares onto a Legio module through DFU. To restore the stock firmware, use Noise Engineering's customer portal.

Signal chain

input → stutter → tape delay (wet/dry) → DJ filter → soft clip → output

Controls

ControlFunction
Top encoder, rotateSets the tape speed. Turn clockwise to speed up, counterclockwise to slow down. The speed change is inertial.
Top encoder, short tapTurns the stutter on or off.
Top encoder, long-press (0.75 s or more)Resets the tape speed to 1×.
Middle knobSets the stutter subdivision: 1, 1/2, 1/4, 1/8, 1/16, or 1/32, across the knob's travel.
Bottom knobSets the DJ filter. Turn counterclockwise for a low-pass sweep, or clockwise for a high-pass sweep. Noon is bypass.
Left switchSets the clock multiplier for the tape and the stutter: ×2, =1, or ÷2.
Right switchSets the wet/dry mix: 100%, 50%, or 0%.
Gate inputExternal clock input. If the input receives no edges for 2 seconds, the clock falls back to 120 BPM.
V/OCT inputCurrently disabled. The firmware reads this jack but ignores the value. This input is intended to pitch the tape, added to the value set by the encoder. Before you re-enable it, calibrate the ADC for your module. See "Open issues" in AGENTS.md.
Top CV (above the middle knob)Modulates the stutter subdivision. The hardware sums this signal with the middle knob.
Bottom CV (above the bottom knob)Modulates the filter. The hardware sums this signal with the bottom knob.

Bypass mode

To start the module in bypass mode, hold the encoder while you power on the module, or while you press the Daisy reset button. In bypass mode, audio passes through with no DSP applied, and both LEDs show solid dim white. Use this mode to check the audio path separately from the DSP. To return to normal mode, power-cycle the module without holding the encoder.

Build

make -C lib/libDaisy   # one-time
make -C lib/DaisySP    # one-time
make                   # builds build/legio_tape.bin

Flash

  1. Put the module into DFU mode. See the Legio documentation. On most modules, hold BOOT and RESET on the Patch SM submodule.
  2. Run make program-dfu.

Read the serial debug output

ls /dev/tty.usbmodem*
screen /dev/tty.usbmodem<TAB> 115200

The firmware prints a status line at about 5 Hz: clk=...ms ext=... stut=... sp=... filt=... wet=.... To quit screen, press Ctrl-a k, then y.

Run host-side tests

make -C test

This command builds and runs the DSP unit tests on your host machine, with g++. You do not need Daisy hardware.

Spec and design notes

See docs/superpowers/specs/2026-05-09-legio-firmware-design.md and AGENTS.md for the file layout, behavior notes, and Legio hardware notes.

License

MIT. See LICENSE. The libDaisy and DaisySP submodules are MIT-licensed by Electrosmith.