I’ve been reading through the MIDI v1.0 specifications (found on midi.org) and after just a little while, it dawned on me—no one actually followed it!
If you’ve ever used MIDI in modern days, at one point or another you probably felt frustration over the 7-bit limitation of MIDI CCs? In today’s world where VST automation offer practically unlimited resolution for controlling things like a volume fader or a filter cutoff knob, it’s a sad affair that a MIDI CC controller is only able to send integer values between 0 and 127. Or is it?
MIDI v1.0 specifies a number of control change number for specific use such as CC #7 for Volume, CC #1 for Modulation, CC #10 for Pan and so on. Some of these became ubiquitous (such as Modulation or Sustain Pedal) while some fell to the wayside. (When was the last time you used MIDI CC #71 for “Harmonic Intensity”?) Often in today’s MIDI equipped devices or software all (or most) of the 128 CCs are treated equally as 7-bit values and this is where everyone got it wrong. The specification explicitly states that custom or proprietary parameters should be controlled either with CC #16-19, 80-83 or by using NRPN. It also states that if one needs a finer resolution for some of the predefined CCs, such as Volume or Pan for example, you should use the LSB counterpart of these CCs (CC #39 in the case of Volume).
For those who are not familiar with MSB (Most Significant Byte) and LSB (Least Significant Byte), it is in essence a way of composing large number by combining 2 or more smaller ones. In the world of MIDI, it turns a 7-bit value into a 14-bit value. Controlling Volume with its LSB counterpart increases the resolution from 0-127 to 0-16,383!
It gets crazier, NRPN I mentioned earlier (stands for Non-Registered Parameter Number) allows for 16,384 freely assignable controllers all with 14-bit values.
So why didn’t this catch on? I don’t know. The number of instruments and devices that utilize NRPNs, following the specification’s recommendation, are few. Not even Cubase does it (properly). The only reason I can think of is that at the time MIDI gained a stronghold in the market, most manufacturers were fine with low resolution parameters, single CC values became the norm and 14-bit CCs got forgotten about.