MIDI RPN and NRPN: Expanding MIDI Parameter Control

This article provides a comprehensive overview of MIDI Registered Parameter Numbers (RPN) and Non-Registered Parameter Numbers (NRPN). It examines how these protocols overcome the technical limitations of traditional 7-bit MIDI Continuous Controller (CC) messages, explains how they send and receive data, and details how they grant hardware synthesizers and digital audio workstations access to thousands of high-resolution controls without stepping or data bottlenecks.

The Limits of Standard MIDI CC

Standard MIDI Continuous Controller (CC) messages are inherently limited by the original MIDI 1.0 specification. Standard CC messages offer only 128 distinct controller IDs (CC 0 through CC 127), with each controller limited to a 7-bit data resolution (values from 0 to 127). For modern electronic music production and sound design, this creates two major obstacles:

  1. Parameter Starvation: Complex modern synthesizers often feature hundreds of distinct parameters, far exceeding the 128 available standard CC slots.
  2. Audible Stepping ("Zipper Noise"): A range of only 128 values is too coarse for sensitive acoustic parameters like filter cutoffs or pitch modulation, resulting in unnatural, stepped transitions.

What Are RPN and NRPN?

RPN and NRPN were designed to resolve these limitations by expanding both the addressable parameter space and the control resolution.

How RPN and NRPN Transmit Data

Neither RPN nor NRPN introduces new physical MIDI cables or low-level protocols. Instead, they use a sequence of standard CC messages combined to act as a single compound command.

Setting a parameter requires selecting the target parameter first, then sending the desired value:

  1. Parameter Selection:
    • For RPN: CC 101 (Most Significant Byte / MSB) and CC 100 (Least Significant Byte / LSB) specify the RPN address.
    • For NRPN: CC 99 (MSB) and CC 98 (LSB) specify the NRPN address.
  2. Data Entry:
    • Once addressed, the controlling device sends the actual value using Data Entry MSB (CC 6) and, optionally, Data Entry LSB (CC 38).
  3. Data Increment/Decrement (Optional):
    • Instead of absolute values, CC 96 (Data Increment) or CC 97 (Data Decrement) can step the chosen parameter up or down.
  4. Null Termination:
    • It is best practice to send an RPN or NRPN "Null" message (setting MSB and LSB to 127) immediately after data transmission to prevent subsequent, accidental Data Entry modifications.

How They Expand Control: Addressing and Resolution

RPN and NRPN dramatically scale MIDI capabilities through two distinct advantages: