Hey Jules and Juce community,
I’m currently working with a custom USB MIDI device that sends SysEx messages as well as note on/off and aftertouch messages.
The SysEx messages are 9 bytes long and being sent as three 3-byte packets. When just the SysEx messages are being sent all is fine, however when being sent along with something like a note on message, the SySex message is interrupted by the note on message and causes an ‘infinite loop’ within the midi input code in Juce.
To be more specific, it will receive the first packet of the SysEx message (which contains the SysEx start byte, and two Manufacturer ID bytes), but then it will receive a note on message and start looping, calling MidiDataConcatenator::pushMidiData() and processSysex() within it where the MIDI data (‘d’ variable) is always equal to the note on message.
Should the juce code be able to handle interrupted SysEx messages? I have contemplated that it could be a problem with the MIDI device itself however other MIDI software doesn’t seem to crash when the initial SysEx message is interrupted. I’m using the latest Juce tip on OS X.