Skip to content

feat: patch dump/load + preset management over USB MIDI - #7

Merged
joak0068 merged 3 commits into
mainfrom
feat/midi-preset-sysex
Jun 26, 2026
Merged

feat: patch dump/load + preset management over USB MIDI#7
joak0068 merged 3 commits into
mainfrom
feat/midi-preset-sysex

Conversation

@joak0068

Copy link
Copy Markdown
Collaborator

Lets Propagator drive the on-device QSPI presets it previously couldn't reach. New SysEx commands (docs/MIDI_PROTOCOL.md §3-4):
0x10 / 0x50 full live patch dump (device->editor, so a recall or a
hardware tweak syncs the UI)
0x11 patch load (set all live values)
0x20/0x21/0x22 save / recall / list the active mode's 3 QSPI slots
0x52 slot occupancy + active slot
A Program Change is an alias for recall. The slots are the same ones the
Footswitch-2 gesture uses; the hooks reuse the existing PresetCapture/Apply
glue and run from the main loop via PumpMidi. Patch values are 7-bit to
stay under libDaisy's 128-byte inbound SysEx buffer.

What this changes

Patch dump/load + preset management over USB MIDI (docs/MIDI_PROTOCOL.md §3-4).
New SysEx commands let Propagator drive the on-device presets it previously couldn't see:
0x10/0x50 dump the full live patch (device → editor, so a hardware tweak or a recall
syncs the UI), 0x11 loads a patch, and 0x20/0x21/0x22 save / recall / list the three
QSPI slots of the active mode, with 0x52 reporting slot occupancy + the active slot. A
Program Change is an alias for recall. The slots are the same ones the Footswitch-2 gesture
uses; the commands reuse the existing capture/apply glue. Patch values are 7-bit to stay
under libDaisy's 128-byte inbound SysEx buffer.

Checklist

  • New tunable values live in src/config/params.h
  • If a control changed, updated docs/MIDI_PROTOCOL.md and the params::midi map
  • Tested on hardware (Daisy Seed + Hothouse) — describe below, or note if untested

joak0068 and others added 3 commits June 26, 2026 15:34
Lets Propagator drive the on-device QSPI presets it previously couldn't
reach. New SysEx commands (docs/MIDI_PROTOCOL.md §3-4):
  0x10 / 0x50  full live patch dump (device->editor, so a recall or a
               hardware tweak syncs the UI)
  0x11         patch load (set all live values)
  0x20/0x21/0x22  save / recall / list the active mode's 3 QSPI slots
  0x52         slot occupancy + active slot
A Program Change is an alias for recall. The slots are the same ones the
Footswitch-2 gesture uses; the hooks reuse the existing PresetCapture/Apply
glue and run from the main loop via PumpMidi. Patch values are 7-bit to
stay under libDaisy's 128-byte inbound SysEx buffer.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
@joak0068
joak0068 merged commit 491bf63 into main Jun 26, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant