Has anyone ever come across a device that allows sysex messages with bytes > 127 in them? I was under the impression that such a byte immediately terminates sysex but I’m being told that apparently some control surfaces use such bytes for displaying text characters that are represented by bytes > 127?
A System Exclusive code set begins with 11110000 (240 decimal or F0 hex), followed by the manufacturer ID#, then by an unspecified number of data bytes of any ranges from 0-127) and ends with 11110111 (decimal 247 or F7 hex), meaning End of SysEx message.
Source: http://www.indiana.edu/~emusic/etext/MIDI/chapter3_MIDI9.shtml
So it might work as long the value isn’t 247
I think it would be flaky at best; it wouldn’t be beyond the realms of possibility that a particular synth might not even really check for F7 as the end marker, but assume that the MSB being 1 is the end of the SYSEX data.
Found this in the “File Dump Data Packet” section of this document
so to be sure you should just encode any 7 bytes of 8-bit data into 8 bytes.
No, as they note – the values have to be between 0 and 127
I agree – it’s not me trying to do this — one of our users was claiming to have a device that requires sysex messages with bytes > 127 and I wasn’t convinced, but wanted to verify.
Remember that many control surfaces don’t interface over MIDI but instead (or additionally? Nothing would surprise me in this arena) use the Mackie Control interface or some other USB HID protocol, so it’s entirely possible that they’re using 8-bit data, just not inside SysEx messages, or they’re using something like the 8->7 bit tunneling technique that @richie pointed at above.