Sunday, November 20, 2016

Receiving High Resolution MIDI Control Data using Teensy

High resolution MIDI control data can be sent from one device to another by combining two, standard MIDI continuous control messages - giving 14 bits of resolution (16384 values) as opposed to just 7 (128 values).

The high seven bits are sent first via a MIDI control message using controller 0 - 31. The low seven bits are sent second via a MIDI control message using controller 32 - 63. Thus, each channel can send up to 32 different pairs of high resolution.

To receive this data using a Teensy and the relevant USB MIDI functions, it's simply a matter of reversing this process to reconstruct the data values.

In this example, a two-dimensional array holds the high byte values in preparation for the low values. Values are reconstructed, and then printed to the serial port for viewing on the Serial Monitor. A basic Max patch is used to send high resolution MIDI data.

Download here: