MIDI Resolution Demystified
7-Bit, 14-Bit, NRPN, and MIDI 2.0
MIDI is usually associated with synthesizers and music software, but it can control almost any kind of parameter.
In Chromatose, MIDI knobs and faders typically control Macro Knobs , which are then mapped to visual parameters such as position, scale, color, animation speed, effect depth, feedback, and distortion.
This article explains the main resolution formats available in MIDI, how the different wireless MIDI options compare, and what to consider when choosing a controller for visual performance.
TL;DR
MIDI provides several levels of controller resolution:
MIDI 1.0 CC (7-bit)
128 controller values
MIDI 1.0 14-bit CC
16,384 controller values (via two paired CC messages)
MIDI 1.0 NRPN
16,384 custom parameter addresses (via two paired CC messages)
16,384 values per parameter (via two paired CC messages)
MIDI 2.0 CC (32-bit)
128 controller numbers
4,294,967,296 values per controller
MIDI 2.0 Assignable Controller (32-bit)
16,384 custom parameter addresses
4,294,967,296 values per parameter
For many musical tasks, standard 7-bit MIDI remains sufficient. For visual synthesis, the individual resolution steps are often easier to see.
The resolution of the physical controller and the MIDI format it transmits can therefore have a direct effect on the smoothness and precision of the visuals.
Choosing a MIDI Controller for Visuals
When buying a MIDI controller for Chromatose or other visual software, do not only consider the number of knobs and faders.
Also check what resolution the controller can actually send.
Useful questions include:
- Does it only send standard 7-bit CC values?
- Can its knobs or faders send 14-bit CC?
- Can it send NRPN?
- Does it support native MIDI 2.0 messages?
- What is the physical resolution of its encoders, faders, or sensors?
A controller may advertise 14-bit or 32-bit output while internally using a lower-resolution sensor. Scaling a low-resolution sensor into a larger MIDI number does not create additional physical accuracy.
For visual control, higher-resolution knobs and faders can produce noticeably smoother movement, color changes, and transitions etc.
Standard 7-bit MIDI remains useful for buttons, switches, preset selection, and parameters where fine adjustment is not important. For continuous visual parameters, 14-bit CC, NRPN, or MIDI 2.0 can provide significantly better results.
See our Compatible Accessories page for MIDI controllers we’ve tested with Chromatose.
What Bit Depth Means
A bit
can have two possible states: 0 or 1.
Adding more bits increases the number of values that can be represented:
| Bit depth | Number of possible values | Numeric range |
|---|---|---|
| 1-bit | 2 | 0β1 |
| 7-bit | 128 | 0β127 |
| 14-bit | 16,384 | 0β16,383 |
| 16-bit | 65,536 | 0β65,535 |
| 32-bit | 4,294,967,296 | 0β4,294,967,295 |
The number of possible values is calculated as:
MIDI can also reach 14-bit resolution by pairing two 7-bit messages: an MSB (Most Significant Byte), which sets the coarse position, and an LSB (Least Significant Byte), which fills in the fine detail. The 14-bit row below shows this pairing β try toggling a bit in each half.
A 7-bit knob can report 128 different positions. A 14-bit knob can report 16,384 positions.
This matters because the receiving software must map those positions across the full range of a parameter.
For example, imagine using a knob to move a shape across the screen:
- With 7-bit MIDI, the shape has only 128 possible horizontal positions.
- With 14-bit MIDI, it has 16,384 possible positions.
- With MIDI 2.0, the message can represent more than four billion possible positions.
Software can smooth values internally, but this may introduce latency and smoothing cannot recover detail that the controller never sent. Low-resolution input may still produce visible stepping, particularly when controlling sensitive visual parameters such as position, scale, hue, thresholds, feedback, or displacement.
For more background, see binary numbers .
MIDI 1.0 Basics
MIDI 1.0 was first published in 1983. It was created so instruments and other devices from different manufacturers could communicate using a shared set of digital messages. It does not transmit sound. It transmits instructions.
Common MIDI messages include:
- Note On: Start a note, including its note number and velocity.
- Note Off: Stop a note.
- Control Change (CC): Change a continuous parameter such as a knob, pedal, volume level, or effect amount.
- Program Change: Select a preset or program.
A MIDI 1.0 connection contains 16 MIDI channels. Messages sent on different channels allow data streams to be separated and selectively received, so different devices or parts of a system can listen only to the channels relevant to them, enabling finer control and cleaner routing in setups with many senders and receivers.
Most MIDI 1.0 message values are 7-bit values from 0 to 127. For example, a standard CC message contains:
Controller number: 0β127
Controller value: 0β127
The controller number identifies the parameter. The value describes its current position.
For example:
means that CC number 1 has been set to approximately its halfway position.
Note velocity is also always 7-bit in MIDI 1.0.
The vast majority of MIDI controllers available today still communicate primarily using MIDI 1.0. Some newer or more configurable controllers also provide high-resolution MIDI 1.0 options such as 14-bit CC and NRPN.
The MIDI Association provides a summary of MIDI 1.0 messages and a detailed CC reference table .
NRPN
NRPN
means Non-Registered Parameter Number. It’s an extension to MIDI 1.0 that expands the address space: instead of the standard 128 CC numbers, it gives you 16,384 separate parameter addresses, each holding its own 14-bit value from 0 to 16,383.
NRPN parameters are defined by the manufacturer or software developer. The same NRPN number can control completely different parameters on different devices, and Chromatose doesn’t tie its NRPN parameters to a fixed, pre-registered list of addresses either: during “MIDI Learn,” it simply listens for and learns whichever NRPN address a controller happens to send.
An NRPN update is built from four CC messages:
CC 98 = parameter address LSB
CC 6 = parameter value MSB
CC 38 = parameter value LSB
As with the MSB/LSB combining shown above, each of these bytes is built from MSB Γ 128 + LSB. NRPN just applies that twice: once for the address, once for the value.
The two address values create an NRPN controller number from 0 to 16,383.
The two Data Entry values create a parameter value from 0 to 16,383.
This gives NRPN:
16,384 possible values per parameter
Here are two examples that walk through the arithmetic:
Example 1
Parameter address:
CC 99 (address MSB) = 0
CC 98 (address LSB) = 1
Address = (0 Γ 128) + 1 = 1
Parameter value:
CC 6 (value MSB) = 0
CC 38 (value LSB) = 1
Value = (0 Γ 128) + 1 = 1
Example 2
Parameter address:
CC 99 (address MSB) = 117
CC 98 (address LSB) = 24
Address = (117 Γ 128) + 24 = 15,000
Parameter value:
CC 6 (value MSB) = 93
CC 38 (value LSB) = 96
Value = (93 Γ 128) + 96 = 12,000
Try it yourself below β the widget starts out with Example 1’s numbers.
The selected NRPN parameter remains active on that MIDI channel until another parameter is selected or the selection is cleared. This makes the protocol stateful: later Data Entry messages apply to whichever parameter was selected most recently.
Other CC numbers continue working normally while an NRPN is selected. Using NRPN does not take over the entire CC system.
NRPN is useful for visual software because it provides both high resolution and enough parameter numbers for a large application. Configurable controllers are increasingly including NRPN as an available output type, although support is still not universal.
See also the NRPN article on Wikipedia . For the canonical controller assignments, use the MIDI Association’s official reference table .
14-Bit CC
A 14-bit CC message is an extension of MIDI 1.0. It combines two ordinary 7-bit CC messages into one higher-resolution value.
As covered earlier, the first message carries the MSB β the “coarse” part of the number, similar to the left side of a decimal number, defining the general range of the value. The second carries the LSB β the “fine” detail that fills in the gaps between MSB steps.
A simple way to understand this is to think in base-10 first. If you write a number like 12,345, the left digits (12,000) determine the overall size, while the right digits (345) add precision. MIDI 14-bit values work in a similar way, but in binary instead of decimal.
Each MIDI message can only send a value from 0 to 127 (7 bits). To build a larger number, two of these values are combined:
- The MSB sets the coarse position in steps of 128.
- The LSB fills in the exact position within that step.
For example, an MSB of 10 and an LSB of 64 combine into a 14-bit value like this:
So instead of only having 128 possible positions, combining MSB and LSB gives you 16,384 possible positions, allowing much smoother and more precise control.
MIDI 1.0 reserves these controller ranges for paired CC messages:
CC 32β63 = corresponding LSB
The pair is always separated by 32:
CC 7 pairs with CC 39
CC 14 pairs with CC 46
CC 31 pairs with CC 63
The two values are combined like this:
This creates a value from 0 to 16,383.
CC numbers 64 and above are not part of this pairing system. They continue to perform their normal functions, such as sustain pedal, sound controls, effects, RPN and NRPN control, or channel mode commands.
Note on CC pairs
Not every CC pair is completely unassigned. Many have standard meanings.
For example:
CC 0 / 32 = Bank Select
CC 1 / 33 = Modulation
CC 6 / 38 = Data Entry
CC 7 / 39 = Channel Volume
Applications can still allow custom mapping, but controller manufacturers and developers need to be aware of these standard assignments.
The disadvantage of 14-bit CC is that the controller must send two messages and the receiver must combine them correctly. The messages also use more MIDI bandwidth than a normal 7-bit CC.
Unlike NRPN, covered above, 14-bit CC doesn’t add more addressable parameters β it only adds precision to the same 128 controller numbers used by standard 7-bit CC.
High-resolution CC is becoming a more common option in configurable controllers, although standard 7-bit CC remains the default on most devices.
The official CC pairings and reserved controller numbers are listed in the MIDI Association’s MIDI 1.0 CC table .
RPN
RPN means Registered Parameter Number.
RPN parameters are standardized by the MIDI specification. A particular RPN should have the same meaning across compatible devices.
Examples include:
- Pitch Bend sensitivity
- Channel fine tuning
- Channel coarse tuning
The MIDI Association’s CC reference includes the officially defined RPN assignments.
RPN works the same way as NRPN, covered above: the same combining math, the same four-message sequence, and the same stateful selection behavior. The only difference is which CC numbers select the parameter β CC 101 and CC 100 instead of CC 99 and CC 98.
Reserved CC Numbers
NRPN and RPN are both built from this shared set of reserved MIDI 1.0 CC numbers:
| Function | CC number |
|---|---|
| NRPN address MSB | 99 |
| NRPN address LSB | 98 |
| RPN address MSB | 101 |
| RPN address LSB | 100 |
| Data Entry value MSB | 6 |
| Data Entry value LSB | 38 |
| Data Increment | 96 |
| Data Decrement | 97 |
MIDI 2.0
MIDI 2.0 keeps the general ideas of MIDI 1.0 but wraps its messages in a newer packet format called the Universal MIDI Packet , or UMP. UMP is a shared container format, not tied to one MIDI version: a single UMP stream can carry MIDI 1.0 messages, MIDI 2.0 messages, or both side by side.
MIDI 2.0 messages provide much greater resolution and can carry more information in a single message.
The main resolution changes include:
| Message type | MIDI 1.0 | MIDI 2.0 |
|---|---|---|
| Note velocity | 7-bit | 16-bit |
| CC value | Usually 7-bit | 32-bit |
| Pitch Bend | 14-bit | 32-bit |
| Channel pressure | Usually 7-bit | 32-bit |
A normal MIDI 2.0 CC message still uses a controller number from 0 to 127, but its value is 32-bit:
Controller value: 0β4,294,967,295
The controller number still answers:
Which parameter is being controlled?
The 32-bit value answers:
Where is that parameter currently set?
The physical knob does not necessarily measure four billion real positions. A controller may contain a 12-bit, 14-bit, or 16-bit sensor and scale that measurement into the standard 32-bit MIDI 2.0 value range.
MIDI 2.0 also replaces the multi-message RPN and NRPN sequences with complete messages:
- Registered Controllers replace MIDI 1.0 RPN.
- Assignable Controllers replace MIDI 1.0 NRPN.
Each type provides 16,384 parameter addresses and values up to 32-bit resolution. The address and value are included together in one message, so there is no need to send CC 99, 98, 6, and 38 as a sequence.
This is simpler and more reliable because the complete parameter update arrives as one packet. The MIDI Association provides a more detailed explanation of Registered and Assignable Controllers in MIDI 2.0 .
MIDI 2.0 also introduces Groups. A UMP endpoint can contain 16 Groups, and each Group contains 16 MIDI channels:
A Group is similar to a virtual MIDI cable or port. It allows one connection to carry several independent sets of MIDI channels.
For a broader, non-normative overview, see MIDI 2.0 on Wikipedia .
Backward Compatibility
A MIDI 1.0 device cannot directly understand a native MIDI 2.0 message.
Backward compatibility is provided through negotiation, fallback, and translation:
- Two MIDI 2.0 devices can use native MIDI 2.0 messages.
- A MIDI 2.0 device can communicate using MIDI 1.0 when the other endpoint does not support MIDI 2.0.
- Software or hardware can translate between MIDI 1.0 and MIDI 2.0 where equivalent messages exist.
Translation from MIDI 2.0 to MIDI 1.0 reduces the available resolution, and some newer MIDI 2.0 features have no MIDI 1.0 equivalent.
MIDI Capability Inquiry , usually called MIDI-CI, provides mechanisms that allow compatible devices to discover and negotiate supported features.
As of 2026, MIDI 2.0 controllers and software are available, but they still represent a relatively small part of the overall MIDI market. Support is expanding, and more operating systems, controllers, instruments, and applications are beginning to implement native MIDI 2.0 features. The MIDI Association maintains a current overview in The State of MIDI 2.0 .
Wireless MIDI
Cables get in the way of movement, and a visual performance setup often already has enough of them. There are three main wireless MIDI standards worth knowing: MIDI over Bluetooth, RTP-MIDI over a WiFi or Ethernet network, and the newer Network MIDI 2.0. Chromatose supports all three β each trades off range, latency, and setup complexity differently.
MIDI over Bluetooth
MIDI over Bluetooth, usually called BLE-MIDI, sends MIDI messages over a Bluetooth Low Energy connection. No adapters, no shared network, just pairing.
Apple originally developed the encoding, and the MIDI Association adopted it as an official specification in 2015 so other manufacturers could build compatible hardware. It’s now supported across iOS, macOS, Windows, and Android.
Pros:
- Fully wireless, with no cables or adapters required.
- Works out of the box on iOS, with no extra drivers or apps to install.
- Low power draw, which suits small, battery-powered controllers well.
- Broad cross-platform support.
Cons:
- Range is limited to typical Bluetooth distances, roughly 10 meters (30 feet), less through walls or in crowded RF environments.
- Limited bandwidth compared to a wired or networked connection, which can introduce jitter under heavy, continuous CC traffic.
- Connection reliability varies between controller manufacturers and firmware versions.
- Typical pairing headaches common with all forms of Bluetooth.
Chromatose supports MIDI over Bluetooth. See the manual’s MIDI Connection section for setup steps, or the troubleshooting section if a device won’t stay connected. Wireless Bluetooth adapters like the CME WIDI Master can also add Bluetooth MIDI to existing wired gear.
RTP-MIDI
RTP-MIDI, also known as AppleMIDI or Network MIDI, sends standard MIDI 1.0 messages over an ordinary IP network instead of a MIDI cable, using Ethernet or WiFi.
The underlying protocol was proposed in 2004 and later published by the IETF, first as RFC 4695 and then, with corrections, as RFC 6295 . Apple shipped its own implementation, using Bonjour for device discovery, starting with Mac OS X Tiger in 2005. That implementation has since become the de facto standard for network MIDI, with drivers and daemons available for Windows and Linux as well.
Pros:
- Open and free to implement, with no license required.
- Includes a journaling mechanism that recovers lost packets without retransmission, keeping latency low even on an imperfect network.
- Works over a local network and, with the right configuration, over the internet.
- Built directly into Core MIDI on iOS and macOS, so no extra drivers are needed on Apple platforms.
Cons:
- Devices need to be on the same network, or specifically configured for remote access.
- Latency and jitter over WiFi are typically higher and less predictable than over wired Ethernet.
- Windows and Linux need a third-party driver or daemon to participate, since neither ships one natively.
Chromatose supports RTP-MIDI, listed as “MIDI over WiFi” in the manual’s MIDI Connection section . On a Mac, follow Apple’s instructions for sharing MIDI over a network to set up a network session, then send MIDI Clock and CC from software like Ableton Live to Chromatose over WiFi, with no cable between your computer and iOS device.
Network MIDI 2.0
Network MIDI 2.0 is a newer standard for carrying Universal MIDI Packets across a local IP network.
The first version of the specification was ratified in November 2024. It works over:
- Wired Ethernet
- Wireless LAN
- Mixed wired and wireless local networks
It can transport both MIDI 1.0 and MIDI 2.0 messages in UMP format.
Network MIDI 2.0 includes several important features:
Device Discovery
Devices can advertise themselves on the network using mDNS and DNS-SD , technologies also commonly associated with Bonjour and ZeroConf.
Instead of manually entering an IP address, an application can show a list of available MIDI devices by name.
Session Management
Users can choose which applications and devices should communicate.
Several independent MIDI sessions can share the same Ethernet or wireless connection, and connections can be changed without moving physical cables.
Peer-to-Peer Connections
Network MIDI 2.0 devices can communicate directly without routing everything through a central computer.
MIDI 1.0 and MIDI 2.0 Support
The same network connection can transport UMP messages containing either protocol. This makes Network MIDI 2.0 useful as a bridge during the transition from MIDI 1.0 to MIDI 2.0.
Performance and Reliability
Ethernet provides high bandwidth, long cable distances, and low latency. The specification also defines optional packet retransmission, error correction, and authentication mechanisms.
Network MIDI 2.0 is designed specifically around Universal MIDI Packets and supports both MIDI protocols, unlike RTP-MIDI above, which was designed primarily for MIDI 1.0 byte-stream messages.
For visual performance, Network MIDI 2.0 could make it easier to connect controllers, computers, tablets, visual systems, and stage equipment over an existing wired or wireless network. It may eventually reduce the need for dedicated USB cables or separate MIDI interfaces in some setups.
Support is still at an early stage, and both endpoints must implement the standard.
The canonical specification page is Network MIDI 2.0: User Datagram Protocol for Universal MIDI Packets .
See the manual’s MIDI Connection section for setup details.
MIDI Support in Chromatose
Chromatose currently supports these connection types:
- Wired: USB
- Wireless: MIDI over Bluetooth
- Wired/Wireless: RTP-MIDI over Network
- Wired/Wireless: Network MIDI 2.0
Chromatose currently supports these message types:
- Standard MIDI 1.0 7-bit CC
- Standard MIDI 1.0 7-bit Note On
- NRPN 14-bit
- MIDI Clock
- Native MIDI 2.0 messages (32-bit CC, Registered and Assignable Controllers) over USB and Bluetooth
RTP-MIDI (“MIDI over WiFi”) carries standard MIDI 1.0 messages, as covered above ; it does not carry native MIDI 2.0 messages.
For instructions on connecting a controller and mapping it to a Macro Knob, see the MIDI section of the manual
. If you’re seeing stepped or jerky motion with a 7-bit controller, the manual’s troubleshooting section
covers the CC Smoothing setting.
