Ok, so, most midi values are from 0 to 127, right? That’s a 7-bit number.
Part of the midi spec allows for more precision than that. So, there are certain things that take two control values, and use both to create a single number.
By putting these two 7-bit numbers values together, you get a single value that’s a 14-bit number. So, you have from 0 to 16383.
So, one of those two values is the MSB, or Most Significant Byte, and the other is the LSB, or Least Significant Byte.
You can think of it like this:
(MSB * 128) + LSB = The 14-bit Number
So, if you need to get to Bank 200, the MSB would be 1 and the LSB would be 72. (1*128)+72=200.
Or, as the bits:
[li]MSB (1) = 0000001[/li]
[li]LSB (72) = 1001000[/li]
[li]14-Bit (200) = 0000001 1001000[/li]
Now, here is the problem. Pretty much no synth has more than 128 banks. The midi spec was … a little ambitious. So, there are:
[li]Synths that require just the LSB Bank Change[/li]
[li]Synths that require just the MSB Bank Change[/li]
[li]Synths that require both … even though they still have 128 or less banks[/li]
If you’ve ever used a synth that uses NRPNs, rather than CCs? You’ve probably seen this. All 16384 NRPNs and all 16384 different values for each on of those can be done with 4 CCs.
[li]NRPN Controller MSB (CC 99)[/li]
[li]NRPN Controller LSB (CC 98)[/li]
[li]NRPN Value MSB (CC 6)[/li]
[li]NRPN Value LSB (CC 38) <- Optional[/li]
Send two CCs to set the NRPN you want to control, then send two more CCs of the value they should update to.