zvenson / obervave
git clone https://github.com/zvenson/obervave.git
v1.5.3 · 1d ago
—
—
stars, 24h
+35
stars, 7 days · #1,172
+35
stars, 30 days · #8,013
35
★ total · +35% this week
2
forks · 10 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageC
LicenseGPL-3.0
Created2026-10-13 (7d ago)
Last push1d ago
Watchers3
OwnerUser
Links
README excerpt
# OberVave **One 8-voice analog-style polysynth for the M-VAVE FM-1, with chorus, delay and a plate reverb.** OberVave turns the FM-1 into a single, deep instrument in the spirit of the classic American 8-voice poly synths of 1979-84: two oscillators a voice with hard sync and cross-modulation, a 12 / 24 dB filter with an SEM-style lowpass-to-highpass morph, two envelopes, an LFO, an arpeggiator, a two-track step sequencer, 99 programs (64 factory sounds), and three effects after the voices. No second engine: one synth, as far as the chip goes. > **Status: 1.5.3, runs on the FM-1.** Install it from thefirmwarehub.com or with > `tools/fm1_install.py docs/firmware/obervave-1.5.3.fwsc` (identity `FM-1_955`). 1.5.3: the update loader shows what it > does (UPDATE MODE with a running light while it waits, WRITING with 20 segments and the percent, UPDATE FAILED), in the > Firmware Hub's look; the idea from Skiff. 1.5.2 opened the FM-1's **TRS MIDI IN** > jack: a keyboard, a drum machine or a sequencer through a TRS-to-DIN adapter plays OberVave (notes, CC, program > change, clock, start / stop; if nothing plays, try the other adapter type, A or B). Before, only USB-MIDI reached it. > The keys now send their notes on the MIDI channel set on the GLOBAL page (they always went out on channel 1). > 1.5 has 99 program slots: 64 factory > sounds (32 new ones on 33-64: arpeggios, brass, pads, keys, basses, leads, effects), 65-99 start as INIT. SAVE now > saves anywhere: tap SAVE, turn PRESETS to the slot (the header shows its number and what is there), tap SAVE again. > The programs saved with 1.4 come along on the first start. > 1.4.3 gave each sound its own HOLD: > the arp of track A and of track B latch on their own (one's HOLD held the other's notes, one's HOLD off stopped both). > 1.4.2 kept the notes in time while > the screen redraws (they stumbled under CC streams and live tweaking; chords on the SMK-37 came in staggered). > 1.4.1 gave each sound its own > arpeggiator (in 1.4 track B's sound did not arpeggiate). 1.4 gave track B a sound of its own > (two sounds on the eight voices, see the sequencer) and opens the sequencer on TRACKS, A and B one > under the other as in SLOOP. 1.3.1 coloured the sequencer by track (A blue, B orange). 1.3 gave the sequencer the whole > screen and works it as SLOOP's step page (KNOB 1 moves the step cursor, the keys write into it), and switches and > saves patterns as zp12 does its loops (see the sequencer). Do not install 1.1: its USB-MIDI out is > broken, and once it runs no installer gets another firmware back on (1.2 fixed it). **Play it in your browser:** `docs/sim/` is the firmware itself (the same C sources, compiled to WebAssembly) with the FM-1's screen, keys, buttons and knobs, your computer keyboard or a MIDI keyboard. Build it with `sh web/sim/build.sh`, try it with `python3 -m http.server -d docs/sim` (see `web/sim/build.sh` for the two tools). **M-Vave SMK-37:** see SMK-37 instructions. Hear it: the video is