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:
- Parameter Starvation: Complex modern synthesizers often feature hundreds of distinct parameters, far exceeding the 128 available standard CC slots.
- 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.
- RPN (Registered Parameter Numbers): These are globally standardized parameters managed by the MIDI Manufacturers Association (MMA) and AMEI. Because they are standardized, any MIDI-compliant device recognizes them identically. Common RPN functions include Pitch Bend Sensitivity (RPN 0), Master Fine Tuning (RPN 1), and Master Coarse Tuning (RPN 2).
- NRPN (Non-Registered Parameter Numbers): These are open, manufacturer-specific parameters. Hardware and software makers use NRPN to assign custom controls to their own synthesizers and effects units without adhering to a universal standard. A synth manufacturer can use NRPN to assign dedicated, high-resolution control to an individual oscillator's pulse-width, an envelope generator's stage, or a specific filter resonance.
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:
- 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.
- Data Entry:
- Once addressed, the controlling device sends the actual value using Data Entry MSB (CC 6) and, optionally, Data Entry LSB (CC 38).
- 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.
- 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:
- Massive Parameter Capacity: By pairing two 7-bit CC messages (MSB and LSB) to define the parameter address, both RPN and NRPN provide \(128 \times 128 = 16,384\) possible parameter IDs. This gives manufacturers virtually unlimited addressing space on a single MIDI channel, preventing CC conflicts across complex devices.
- 14-Bit High-Resolution Control: When modifying the chosen parameter, combining Data Entry MSB (CC 6) and Data Entry LSB (CC 38) produces a 14-bit data value (\(128 \times 128\)). This expands the resolution from the standard 128 steps up to 16,384 discrete steps. This high resolution eliminates zipper noise, allowing for smooth filter sweeps, precise microtuning, and expressive, fluid modulation.