Add SysEx handling for Launchpad X Programmer mode

- Parse all SysEx CIN types (start, continue, end)
- Reassemble multi-packet SysEx messages
- Handle layout select (Programmer mode = 0x7F)
- Handle Programmer/Live mode switch
This commit is contained in:
ash
2026-06-25 07:20:47 +00:00
parent 8d859ce0af
commit b5bbe24977
3 changed files with 71 additions and 0 deletions
+4
View File
@@ -114,6 +114,10 @@ void UsbMidiTransport::parse_midi_packet(const uint8_t* buffer, uint32_t size, M
event.data2 = buffer[3];
switch (cin) {
case 0x4: event.type = MidiEvent::SYSEX; break; // SysEx start/short
case 0x5: event.type = MidiEvent::SYSEX; break; // SysEx continue
case 0x6: event.type = MidiEvent::SYSEX; break; // SysEx end
case 0x7: event.type = MidiEvent::SYSEX; break; // SysEx end (single byte)
case 0x8: event.type = MidiEvent::NOTE_OFF; break;
case 0x9:
event.type = (event.data2 > 0) ? MidiEvent::NOTE_ON : MidiEvent::NOTE_OFF;