R5.0 Updated June 15th 2026
Big Thanks to Sebastian sebastianmika (Sebastian Mika) · GitHub
New Features
NRPN parameter control (src/nrpn.cpp, include/nrpn.h): Full 14-bit NRPN send/receive for all synth parameters, including per-operator FM params, LFO shape/retrig/looping/link, arp mode/sequence steps, voice mode, setup settings (thru, pickup, MPE, stereo ch3, fat mode, brightness, etc.), and octave offset.
SysEx preset/settings dump (src/sysex.cpp, include/sysex.h): Receive and apply incoming SysEx preset and arp sequence data.
Setter functions (src/setters.cpp, include/setters.h): Extracted EEPROM-write logic for setup settings into reusable functions (e.g. setThru(), setFatMode(), setPickupMode()), shared between button/MIDI/NRPN code paths.
Arp sequence modes S1/S2 distinguished in display (S1/S2 instead of SE for both).
Auto-dump settings on random shuffle (reset-held sends SysEx dump of new state).
Dockerfile for reproducible build environment with python2 + platformio.
MIDI continue message now handled (triggers resync like start; e.g. Ableton does not send MIDI start, only continue)Behaviour Changes (deliberate)
NRPN replaces CC for outgoing parameter changes: Pot/fader/button movements now send NRPN messages instead of raw CC, providing full 14-bit resolution and access to all parameters. Incoming CC still accepted for backwards compatibility.
LFO & ARP clock rates unified and expanded from 11 to 13 steps: Added 1/4T (quarter note triplet) and 1/16T (sixteenth note triplet) divisions. Affects kArpRateDisplay, kMidiArpTicks, kLfoClockRates arrays in constants.h.
LFO shape selection resets variant: Selecting square/saw for the first time always starts non-inverted. Selecting noise for the first time initializes with table length 2.
Optionally the display is updated on fader/pot changes from MIDI NRPN (previously only showed values for local knob changes). Can be controlled via NRPN message and defaults to “off”.
-flto enabled in build (link-time optimization to keep firmware under 65536 bytes).Fixes
Fat/tune round-trip: Fixed fat mode being inverted when read back via NRPN.
CC=0 bank change: Banks now correctly range 0-5 inclusive; program number no longer off-by-one (i.e. accepts 0-99 ,was 0-98).
Unison note-off bug fixed.
Preset display restored after on/off toggle (display was not returning to preset view).
Seq recording wrap-around: When sequence reaches 16 steps, display resets to 1 and next note overwrites from the beginning (was silently wrapping index to 0).
Note-off in unison with pedal: Uses ym.noteOff() directly instead of deferred pedalOff array (removed stale mechanism).
Algo/feedback shift: Now uses fmShifts[number] lookup instead of hardcoded >> 5, matching the shift table correctly.
Vibrato clock rate: Uses kLfoClockRates lookup (13 values) instead of hardcoded 8-entry vibIncrements array.
8 Likes
official plugin available based on YM2612
looks cool
9 Likes
Looks super cool.
2 Likes
Edit, found a vid:
2 Likes
I picked up the plugin for my 2017 iPad Pro and it died a few days later :(. Only spent a little bit of time with it. Was very professional seeming, though. Might pick it up on PC, but I only have Linux at the moment. Has anyone tested it, there (Proton/Wine)?
Looks like the plugin now includes support for both the MKI and MKII chipset.
There is also a Windows and Mac 10-minute demo, now.