MidiOut->sendMessageNow doesn't flush on short sysex mess


#1

Hi,

Sending “F0 00 F7” doesn’t seem to transmit until another sysex message is sent later. I think it might be because in juce_MidiOutput.cpp, if the message size is not greater than 3 bytes, midiOutShortMsg is being called, and I don’t think midiOutShortMsg works for sysex messages.

Best regards,

Stephen

PS. Juce is amazing.


#2

Hmm - ok, that’s interesting. How about this tweak to juce_win32_Midi.cpp:

[code]void MidiOutput::sendMessageNow (const MidiMessage& message)
{
const MidiOutHandle* const handle = (const MidiOutHandle*) internal;

if (message.getRawDataSize() > 3 
     || message.isSysEx())
{

[/code]


#3

Seems to do the trick. I’ve tried it in my test application and now 3 byte sysex messages are passing successfully.

Cheers,

Stephen