[LAU] USB MIDI controller - update
len at ovenwerks.net
Sun Jan 29 15:41:47 UTC 2017
On Sun, 29 Jan 2017, termtech wrote:
> On Saturday, January 28, 2017 2:37:40 PM EST Len Ovens wrote:
>> That could very well be why Mackie limited their faders to 10 bits (last 4
>> bits zeroed).
> I am interested to know /how/ it sends out the 14 bits.
> Hi byte first? Or low byte? Or selectable?
> And can it optimize by not sending redundant hi or low bytes,
> or redundant NRPN numbers?
In the mackie case and bcf2k in mackie/LC mode, faders are sent as pitch.
So the MSB and LSB are included in one event and both are sent every time.
In NRPN case... things are different. The receiver should respond to any
one of the four events based on the last received values for the the other
three. It is quite common though in the case of receiving the MSB to check
the following event to see if LSB has changed as well. The four events
should always be sent in order. Events can be left off starting at the
first event, but once one of the events is sent, all following events are
sent.... sort of. The last event is optional (at least some manufactures
treat it so - like Allen & Heath) so a receiver has to check if the last
event is there or not using a short timeout (time to transmit one byte or
event depending on the parser).
Best practice for transmitting is considered to be sending all four events
every time. This accounts (mostly) for such things as merged MIDI signals.
In theory, a MIDI merger should consider the four nrpn events as one event
and should create a new four part event even if only one is received and
then send the whole event without interleaving. However, I suspect most
just interleave by the standard midi event (1, 2 or 3 bytes).
More information about the Linux-audio-user