MIDI Overview
If you’re a musician you’ve likely heard of MIDI. Maybe you are just getting started or maybe you use it with every project. MIDI describes a number of things, which we go over in this post here —> What Is MIDI? If you’re new to MIDI or not familiar with it at all, we recommend starting with that article before reading this one.
What is MIDI CC?
This article is going to focus on the communication side of the MIDI square. Specifically, a thing called MIDI CC or MIDI Continuous Controllers. So if you find yourself asking the question, “What is MIDI CC?” this is the article for you. The most common use MIDI message is what note to play in music, but MIDI messages don’t have to be just about notes. They can also be about effects applied, volume, panning, etc. That’s where MIDI CC comes in. MIDI CC is a type message in your MIDI that is typically used for making your sounds and recordings more expressive or human sounding. As an example, turning a knob that controls the level of reverb at a given moment. The purpose of MIDI CC is to add more control over your sound apart from simply the notes being played.
MIDI CC works through 128 control change messages. These messages and can be assigned to different elements of a MIDI controller, like a knob, slider, or mod wheel. The MIDI CC numbers go from 0 to 127 and they have assigned default actions. Once you’ve mapped the CCs to your controller you will have more flexibility in crafting and manipulating your sounds from your MIDI controller / keyboard.
Here is a list of the default MIDI CCs :
MIDI CC # | Use | Description |
0 | Bank Select (MSB) | Allows you to switch banks for selecting presets. |
1 | Modulation Wheel (MSB) | Controls the modulation effect applied to the mod wheel. |
2 | Breath Controller (MSB) | Controller often used for aftertouch. |
3 | Undefined (MSB) | |
4 | Foot Pedal (MSB) | Controller for foot pedal. |
5 | Portamento Time (MSB) | Controller for portamento (glide between 2 different notes). |
6 | Data Entry (MSB) | Controller for SYSEX, NRPN and RPN values |
7 | Volume (MSB) | Controller for audio volume. |
8 | Balance (MSB) | Controller for balance of stereo audio left, middle, or right. |
9 | Undefined (MSB) | |
10 | Pan (MSB) | Controller for panning audio left, middle, or right. |
11 | Expression (MSB) | Controller for expression pedal or similar live modulation. |
12 | Effect Controller 1 (MSB) | Controller for effects. |
13 | Effect Controller 2 (MSB) | Controller for effects. |
14 | Undefined (MSB) | |
15 | Undefined (MSB) | |
16 – 19 | General Purpose (MSB) | General controllers for additional modulation. |
20 – 31 | Undefined (MSB) | |
32 | Bank Select (LSB) | Works with CC #0. Allows you to switch more banks for selecting presets, if available. |
33 | Modulation Wheel (LSB) | Works with CC #2. Additional modulation control for mod wheel. |
34 | Breath Controller (LSB) | Works with CC #2. Additional modulation control for breath controller. |
35 | Undefined (LSB) | |
36 | Foot Pedal (LSB) | Works with CC #4. Additional modulation control for foot pedal. |
37 | Portamento Time (LSB) | Works with CC #5. Additional modulation control for portamento. |
38 | Data Entry (LSB) | Works with CC #6. Additional control for SYSEX, NRPN, or RPN messages. |
39 | Volume (LSB) | Works with CC #7. Additional modulation control for volume. |
40 | Balance (LSB) | Works with CC #8. Additional modulation control for balance. |
41 | Undefined (LSB) | |
42 | Pan (LSB) | Works with CC #10. Additional modulation control for pan. |
43 | Expression (LSB) | Works with CC #11. Additional modulation control for expression. |
44 | Effect Controller 1 (LSB) | Works with CC #12. Additional modulation control for effects. |
45 | Effect Controller 2 (LSB) | Works with CC #13. Additional modulation control for effects. |
46 – 63 | Undefined | |
64 | Sustain Pedal (ON/OFF) | This is a commonly used CC for most controllers / synths. It’s an on/off switch for controlling sustain. |
65 | Portamento (ON/OFF) | Simple on/off switch for portamento |
66 | Sostenuto (ON/OFF) | Simple on/off switch for active notes to turn sustain on and off. |
67 | Soft Pedal (ON/OFF) | Simple on/off switch for soft pedal. |
68 | Legato (ON/OFF) | Simple on/off switch for legato. |
69 | Hold Pedal 2 | Alternative sustain control. Notes fade out according to release parameters rather than when the pedal is released. |
70 | Sound Controller 1 | Controller for affecting how sound is produced. |
71 | Sound Controller 2 | Controller for voltage controlled filter (VCF) / resonance. |
72 | Sound Controller 3 | Controller for release of the voltage controlled amplifier (VCA). |
73 | Sound Controller 4 | Controller for attack in envelope (ASDR). |
74 | Sound Controller 5 | Controller for voltage controlled filter (VCF) cutoff. |
75 – 79 | Additional Sound Controllers | Additional controllers for effects, filters, etc. |
80 – 84 | General Purpose Switches | General purpose ON/OFF switches. |
85 – 90 | Undefined | |
91 | Effect 1 Depth | Controller for reverb. |
92 | Effect 2 Depth | Controller for tremolo. |
93 | Effect 3 Depth | Controller for chorus. |
94 | Effect 4 Depth | Controller for detuning. |
95 | Effect 5 Depth | Controller for phasing. |
96 | Data Increment | Controller for incrementing (+1) data for SYSEX, NRPN, RPN. |
97 | Data Decrement | Controller for decrementing (+1) data for SYSEX, NRPN, RPN. |
98 | Non-Registered Parameter Number (LSB) | Works with CC #6, #38, #96, and #97. Selects the NRPN parameter. |
99 | Non-Registered Parameter Number (MSB) | Works with CC #6, #38, #96, and #97. Selects the NRPN parameter. |
100 | Registered Parameter Number (LSB) | Works with CC #6, #38, #96, and #97. Selects the RPN parameter. |
101 | Registered Parameter Number (MSB) | Works with CC #6, #38, #96, and #97. Selects the RPN parameter. |
102 – 119 | Undefined | |
120 | Channel Mute | Simple mute button. Mutes all sound regardless of sustain or similar effects. |
121 | Reset All Controllers | Resets all controllers to defaults. |
122 | Local Keyboard (ON/OFF) | This turns the local keyboard sound on and off. In most scenarios, you’ll want this off. |
123 | All Notes (ON/OFF) | This turn all notes on or off, like mute however sustain and release will continue. |
124 | OMNI Mode OFF | This turns OMNI Mode OFF. |
125 | OMNI Mode ON | This turns OMNI Mode ON. |
126 | Mono Mode | This turns off Poly Mode. Sets instrument to play in a monophonic mode. |
127 | Poly Mode | This turns off Mono Mode. Sets instrument to play in a polyphonic mode. |