Slow down MIDI transfer speed to external device

Hi everybody,
I am wondering if there’s a way to slow down the MIDI transfer speed for sendMidi() or sendMessageNow()?
I try to send sysex message but the synths connected to the computer is really old and requires a very slow transfer rate like 10 bytes/s or something like that.
I tried to split the message in single bytes and drip-feed them to the synth with a timer, but it doesn’t work, because JUCE always form a full compatible MIDI message with F0 byteToSend F7 so the external synth does not get the proper message. I think the midi message compound is made with juce_MidiDataConcatenator

Is there a way to slow down the midi transfer rate to an external device ?
Or is there a way to avoid JUCE adding Midi header “F0” and EOX “F7” to every byte sent independently, and just send raw bytes via MidiOutput() ?

Thanks a lot in advance for your help
Damien

IIRC, it’s even worse than that as most platform APIs are actually in charge of SysEx messages handling, not JUCE. I also needed to build various transfer tools via MIDI but miserably failed with some devices because of how they implemented the two-way communication. The AKAI S950 to name one, can’t receive samples sent from a tool because the whole transfer is made of one SysEx message BUT you have to wait for handshakes before sending more bytes. Unfortunately you can’t leave a SysEx message “open”, do something and terminate it later. I moved to custom microcontroller-based hardware for this so I had control over the low-level MIDI protocol handling.

1 Like