• James

Sending MIDI NRPN messages

Overview

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.


Morningstar MC6 MIDI Controller
Morningstar MC6 MIDI Controller

 

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.

For this, a Decimal to Binary calculator, and Binary to Decimal calculator are your best friends.


Here is the sequence of CC messages you need to send:


CC#98

CC#99 both sets the NRPN Number


CC#38

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.



0 comments

Recent Posts

See All