[sdiy] MIDI control syntax to debug 16 bits values on the MIDI steam using MIDI-OX MIDI monitor ?

brianw brianw at audiobanshee.com
Sun Jan 12 00:04:07 CET 2025



On Jan 11, 2025, at 2:50 PM, Gordonjcp wrote:
> On Sat, Jan 11, 2025 at 04:49:26PM -0500, Jean-Pierre Desrochers via Synth-diy wrote:
>> I’m debugging a PIC program that normally sends MIDI data on one of the micro’s UART port.
>> 
>> And that works fine.
>> 
>> But I’m in a debugging section where I’d like to use this MIDI output port
>> to output 16 bits datas  (2 consecutives bytes) wired on my Windows MIDI-OX MIDI stream monitor.
>> The thing is that this program check the incoming MIDI command data values
>> and do not show those that would exceed standard MIDI specs..
>> 
>> So my question is :
>> 
>> Is there a MIDI command (SYSEX or whatever..) that I could put 2 consecutive 8 bits datas in
>> and would be accepted in the standard MIDI protocol ??
> 
> Do what everyone else does and send it as sysex with the 8-bit bytes broken up into 4-bit nybbles

That works, and it's quite easy to implement, but not everyone does it that way. When there is a lot more than 16 bits, some manufacturers were more efficient in packing 7 bits per byte, or at least more than 4 bits.

Ensoniq packed 16-bit sample data into three SysEx bytes, with the 4 high bits in the first byte, 6 middle bits in the second byte, and the lowest 6 bits in the third byte. When sending a 16-bit wavesample, this was quite a bit faster than 4-bit chunks.

The one thing for certain is that nobody puts more than 7 bits in each byte, because that breaks the MIDI stream.

Brian




More information about the Synth-diy mailing list