@ddw_music Beware all....... Yamaha send MSB and LSB in reverse order to everyone else.. see below for how to deal with that....
Also most manufacturers... for low values.... when only 7bits are required they output just the LSB.
You might already be aware of all that.
A byte has 8 bits, bit 0 to bit 7 (0 = cleared or 1 = set).
A MIDI status byte – i.e. what sort of MIDI message it is - always has bit 7 set
A MIDI data byte – i.e. what value - always has bit 7 cleared.
Therefore a data byte can only use the lower 7 bits to determine its value
0 to 127 ($7F) or 0111 1111 (bit 0 is the rightmost 1, bit 7 is 0)
To get a value greater than 127 we join two data bytes together. The rightmost 7 bits from each byte gives a 14 bit number
0111 1111 and 0111 1111 becomes 0011 1111 1111 1111 the top 2 bits (bit14 and bit15) are ignored
So the 14bit number range is0 to 16383 ($3FFF) or 0011 1111 1111 1111(this is just 14 data bits in a 16 bit number – the 2 top (leftmost) bits are always 0).
The two bytes that make up the 14 bit number are what MIDI calls a course adjustment and a fine adjustment.
The byte that does a course adjustment is called the Most Significant Byte (MSB) and the fine adjuster is called the Least Significant Byte (LSB).
Also NRPN can be very slow over midi when data rates are high...... and SYSEX will be much faster.
David.
P.S. I have a lot of old docs and software from the decade before last..... midi stuff.... that has disappeared from the web...... stuff that can change encoder resolution on Behringer BCF units for example, which is not available in the Behringer software or on the hardware.
Just ask.