← trusch.io

Gamma Firmware

Custom firmware for the thisisnoise Gamma — a handheld synthesizer that fits in your pocket. Built on the Daisy Seed (STM32H750, Cortex-M7 at 480 MHz). The audio engine runs in C++; the menu, display, presets, and full MIDI 2.0 stack are in Rust, with Rust progressively taking over subsystems.

Signal chain diagram
Two independent voices — each with oscillators, ADSR, filter, and effects.

Two Voices

The note voice (right side) plays single notes via 2 oscillators. The chord voice (left side) plays triads via 8 oscillators. Both sides have their own ADSR, filter (LP/HP/BP, Moog ladder), and effects chain — overdrive, bitcrush, wavefold, FM, chorus, delay, reverb — all mappable to the 4 knobs and 2 thumbsticks.

MIDI 2.0

The Gamma speaks both MIDI 1.0 and MIDI 2.0 UMP over USB. Hosts that support UMP get protocol negotiation, high-resolution velocity, and Group Terminal Blocks. Everyone else gets standard USB-MIDI 1.0 transparently. It can also send MIDI out — knobs, sticks, and buttons all emit CC or note messages to drive external gear.

// MIDI routing example
Note  → In Ch: 1   mono lead from keyboard
Chord → In Ch: 2   4-voice pads from left hand
Chord → Out Ch: 3  gamma buttons → eurorack
Thru  → On         forward keyboard downstream

Specs

ComponentDetails
MCUDaisy Seed — STM32H750, Cortex-M7, 480 MHz
Audio48 kHz, 4-sample block size
Oscillators10 audio (2 note + 8 chord) + 6 LFO
Scales24 built-in, encoder-switchable on the fly
Presets30 factory + 21 user slots, saved to QSPI flash
MIDI1.0 and 2.0 UMP over USB High Speed
DisplaySSD1306 128×64 OLED, I²C @ 1 MHz

checkout on github →