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.
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.
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
| Component | Details |
|---|---|
| MCU | Daisy Seed — STM32H750, Cortex-M7, 480 MHz |
| Audio | 48 kHz, 4-sample block size |
| Oscillators | 10 audio (2 note + 8 chord) + 6 LFO |
| Scales | 24 built-in, encoder-switchable on the fly |
| Presets | 30 factory + 21 user slots, saved to QSPI flash |
| MIDI | 1.0 and 2.0 UMP over USB High Speed |
| Display | SSD1306 128×64 OLED, I²C @ 1 MHz |