Exclude 14 bit values from regular MIDI In DAT/CHOP

The same way regular 8 bit values/channels are not showing up when a MIDI In DAT/CHOP is in 14 bit mode, it would be nice if we could exclude 14 bit channels from the regular non-14 bit mode MIDI In-s. Right now the fact that they show up there too messes up my MIDI logic.

Hey @function.store ,

14-bit MIDI events are really just two regular 7-bit MIDI events (MSB, LSB pair) joined together right, so it’s not really possible to distinguish if the incoming events were intended to be 7-bit or joined together to form 14-bit.

Since a 14-bit midi message is formed by first checking if the two received 7-bit messages form a MSB, LSB pair (i.e. MSBindex + 32 = LSBindex), maybe you could use this as a check to filter events out that satisfy this.

According to the midi spec, the MSB message must be in the index range 1-32 and the LSB message must be in the index range 33-64 (assuming One-based is true). And messages in the index range 65-96 are always treated as 7-bit. Perhaps this info can be used too.

Varad

Thank you for your answer, I figured this is the case, and was hoping there would be some message ID or something further down the protocol which could identify these two bytes belonging together.

Regarding the midi spec I was aware, and since recent versions TD also gives a nice warning about that when using 14 bit midi, but in my mind this should be solvable.

I plan on doing exactly what you mentioned, to filter the LSB at end of frame, with the added drawback of receiving a midi message on the same CC from a regular midi input in the same frame, and thus prioritizing the 14 bit only for that frame and losing the other potentially, and introducing a one frame delay essentially.