juce-framework / JUCE

JUCE is an open-source cross-platform C++ application framework for desktop and mobile applications, including VST, VST3, AU, AUv3, LV2 and AAX audio plug-ins.
https://juce.com
Other
6.68k stars 1.75k forks source link

Max Packet Size of 256 causes SysEx errors on Mac OS X / juce_mac_CoreMidi.cpp #306

Open DisasterAreaDesigns opened 7 years ago

DisasterAreaDesigns commented 7 years ago

Due to the way Mac OS handles sending USB MIDI to certain interfaces, having a max packet size of 256 bytes will cause every 256th byte in a long sysex transfer to be skipped. I've been able to work around this issue by manually changing the value in juce_mac_CoreMidi.cpp from 256 to 255.

More details here:

https://forum.juce.com/t/problem-with-sysex-transfer-over-usb-midi-on-mac/9830

Would it be possible to make the packet size defined outside the MidiOutput::sendMessageNow() function? For most applications, the default works perfectly but it would be nice to be able to specify that at run time.

norisio commented 5 years ago

I met the same problem.