Reed is a from-scratch firmware project for the M-VAVE FM-1. The voice is a fixed-point port of OpenWurli's modal reed, electrostatic pickup and hammer models. No samples, no impulse responses: seven reeds modes, a field-solved pickup law and the 200A's amplifier character, running on a 32-bit JieLi AC79.
Euler–Bernoulli mode ratios with tip mass, per-note inharmonicity, damping and the velocity-dependent hammer dwell. Quadrature oscillators, no per-sample sines.
A 2D field-solved capacitance-vs-overlap law, one moving reed against a fixed plate node. The nonlinearity is in the source, exactly as in the 200A.
Gaussian contact dwell, register-dependent onset, attack noise and the progressive felt damper. High modes die first.
Input coupling, preamp asymmetry, Twin-T/LDR tremolo, volume pot, feedback shelf, crossover distortion and the 4×8″ speaker. Calibrated against OpenWurli.
Q30 reed, Q24 gain staging, Q28 biquads, 32×32→64 MACs. The same C99 source builds for the AC79 and for WebAssembly, bit-identically.
The target is a 360 MHz pi32v2 with 8 voices by default (32-slot capacity), the FM-1 keybed, encoders and LCD. The firmware layer builds on Felucca's BSP; the emulator is the reference.
The voice path is a direct fixed-point port of OpenWurli's physics. The amplifier and speaker are a calibrated behavioural model in v0.1; the exact circuit solver is the next milestone. See the porting notes for what is exact and what is approximated.
| Stage | Status | What it means |
|---|---|---|
| Desktop engine | working | Offline WAV renderer and host test suite. |
| Browser emulator | working | WASM in an AudioWorklet; play it above. |
| FM-1 firmware | alpha | BSP integration and UI written; not yet validated on a unit. |
| Web installer | planned | Ships with the first hardware-validated image. No firmware is published yet. |
No download is offered before the firmware is tested on real hardware. The build guide has the current bring-up instructions and the recovery path. Installing custom firmware is always at your own risk.
The physics, calibration and the Wurlitzer 200A research. GPL-3.0.
The FM-1 firmware architecture, UI and the proof that a custom firmware fits. GPL-3.0.
The JieLi AC79 board layer: audio DMA, key scan, LCD, USB, update loader. MPL-2.0.