Skip to content

Add external MIDI device synchronization on pedalboard load#113

Open
sastraxi wants to merge 6 commits intoTreeFallSound:pistomp-v3from
sastraxi:feat/external-midi
Open

Add external MIDI device synchronization on pedalboard load#113
sastraxi wants to merge 6 commits intoTreeFallSound:pistomp-v3from
sastraxi:feat/external-midi

Conversation

@sastraxi
Copy link
Copy Markdown
Contributor

@sastraxi sastraxi commented Jan 7, 2026

I wanted each pedalboard to be assigned to a specific Source Audio C4 preset: with this pedal you can load 128 of them and then switch 'em via MIDI CC. This "external MIDI sync" implementation extends the global and pedalboard-specific YAML config to allow sending messages to a specific expected MIDI device (via MIDI port name match) when a pedalboard is loaded.

When configured, the External MIDI manager automatically sends configured messages when a pedalboard is loaded. In line with the pre-existing code, pedalboard-specific configs overwrite the global config. In my case, I use the global config to send a bypass CC to my external MIDI device, and then override this in specific pedalboard configs to enable the pedal and set it to the correct preset for that board.

  • New modalapi/external_midi.py: ExternalMidiOut, ExternalMidiManager, EXTERNAL_INSTANCE_ID (used by downsteam branches)
  • Port auto-detection via fnmatch glob patterns (auto_detect: ["*HX Stomp*"])
  • Configurable per-port MIDI messages sent on every pedalboard load
  • Per-pedalboard override via <pedalboard>.pedalboard/config.yml
  • Config template: full external_midi: section with documented format

@sastraxi sastraxi force-pushed the feat/external-midi branch from 382cb91 to aa21b4b Compare January 7, 2026 06:18
Comment thread modalapi/modhandler.py Outdated
Comment thread typings/rtmidi/_rtmidi.pyi
Introduces ExternalMidiManager and ExternalMidiOut for sending MIDI
messages to external devices (e.g. Source Audio C4, HX Stomp) on
pedalboard load. Config is per-device with glob-based port auto-detection
and per-pedalboard message override via config.yml.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@sastraxi sastraxi force-pushed the feat/external-midi branch from e557a1e to 8c68f3c Compare April 19, 2026 19:20
@sastraxi sastraxi changed the title Add External MIDI sync Add external MIDI device synchronization on pedalboard load Apr 19, 2026
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