Some MIDI devices utilise NRPN messages, or "Non-Registered Parameter Number", to allow users to set more than 128 parameters. With NRPN, MIDI devices can have up to 16383 parameters, with a resolution of 16383 as well. This is a power of 2 compared to what CC messages are limited to, which is 128 numbers with a resolution of 128.
How to send NRPN
If your MIDI controller does not have out-of-the-box support for NPRN messages (most don't), it is still possible to send NRPN messages. Essentially, NRPN MIDI messages are just 4 CC messages sent together.
2 CC messages sets the NRPN Number, and the other 2 CC messages sets the NRPN value.
But CC messages are just limited to 128 values, right?
That is why 2 CC messages are sent to set the NRPN Number or Value - one CC message to set the MSB and the other to set the LSB.
If you are not familiar with MSB (Most Significant Bits) or LSB (Least Significant Bits), do check out our blog post here on this subject.
Here is the sequence of CC messages you need to send:
CC#99 both sets the NRPN Number
CC#6 both sets the NRPN Value
Setting the NRPN number
Send 2 CC messages to set the MSB and LSB for the NRPN number CC#98 sets the NRPN Number LSB CC#99 sets the NRPN Number MSB
So if you want to set the NRPN number to 1624, for example, send 2 CC messages CC#98 Value 88 CC#99 Value 12
Why 88 and 12? Because 1624 in binary terms is 11001011000, and the LSB is the first 7 bits from the right, so 1011000, and the MSB is the last 7 bits from the right, so 1100, or 0001100. Both 1100 and 0001100 are the same.
1011000 in decimal terms is 88 0001100 in decimal terms is 12
Setting the NRPN Value
Similar to the NRPN number above, sending the NRPN value requires 2 CC messages as well: CC#38 sets the NRPN value LSB CC#6 sets the NRPN value MSB
So if you want to set the NRPN value to 8234, for example, send 2 CC messages CC#38 Value 42 to set the NRPN Value LSB CC#6 Value 64 to set the NRPN Value MSB
In our MIDI Editor, there is a MSB LSB calculator under Tools for you to easily calculate the MSB and LSB of a given 14-bit number.