MIDI Basics — Control Change (CC)

This is another article about MIDI, this time about control.

In the previous post, we talked a little about the basics of MIDI. Here’s a brief reminder of the most important points:

  • MIDI is a standard of communication between digital musical instruments
  • An instrument can send or receive signals from or to another instrument or computer (or even a phone)
  • A MIDI message is basically a set of some simple information, e.g. a MIDI keyboard can send to a sound module a message: the A₃ key was pressed with a velocity (impact of the key) of x. The sound module (hardware with an audio output, or software on a computer) in response to such a message either reproduces the appropriate sound from its memory (sampler) or generates it (a synthesizer).
  • There are several types of MIDI messages. The first is pressing a key: Note-On.
  • Another type of message is CC, or Control Change, which will be discussed in this article.

A MIDI CC message (similarly to Note-On) is a set of a few simple pieces of information, namely:

  • MIDI channel (described in another article)
  • The number of the controller (a number from 0 to 127, and actually from 1 to 119, without 0 and 32, because the numbers 120–127, 0 and 32 are reserved for a slightly different type of message, which is not relevant at the moment)
  • The controller value (a number from 0 to 127)

What is CC used for?

The simplest, most common example is the modulation wheel on keyboards.

A modulation wheel sends not one but a whole stream of MIDI messages with values corresponding to how much you turn the wheel. The message is sent only when you turn the wheel. When you stop the wheel in any position, the MIDI information ceases to be sent.

How fast is it sent?

Very fast, or fast enough. Imagine that you turn the wheel from minimum to maximum as fast as you can. With a high probability, all possible values will be sent in 127 subsequent messages. Since the wheel is initially in position 0, the first message will be sent with the value 1 and the last message will be 127. The intervals between individual messages will be equal to approximately a few milliseconds. However, even if some values are omitted, this will not have any influence on the final effect. And the final effect is, in this case, the depth of the sound modulation.

What does the modulation mean exactly?

Well, it is very important in the context of what I will be describing. Specifically, it depends on the MIDI receiver — the sound module, or the effect in the DAW or in the synthesizer, or in anything else that is compatible with the MIDI standard.

For example, if you are playing on a MIDI keyboard, and in your virtual plugin in DAW or in a sound module built into a physical digital instrument you have chosen the “Grand Piano” sound, the modulation messages will most likely be ignored. The grand piano sound usually does not provide any modulation — it has to replicate as accurately as possible the sound of a real piano. But if you use the “Hammond Organ” sound, changing the value of modulation will, for example, change the speed of vibration that is so characteristic for this instrument.

There is usually a pitch-bend wheel next to the modulation wheel, but it will be described in one of the next posts.

In addition to the modulation wheel also knobs, sliders and the expression pedals send a similar sequence of messages — changing values due to turning or rotation.

And which knob send which CC number?

If the built-in firmware allows for their configuration, you can assign any controller number to particular knobs, including once again CC #1 for modulation, but usually the numbers of subsequent controllers are assigned to them. The official full list can be found here.

So, for example, does №2 — Breath Controller — have to be associated with some breath controller?

No — it’s just a convention, i.e. if you have a digital aerophone and switch it to CC mode (not playing, i.e. Note-On/Off), it should send CC #2 messages.

In the case of configurable controllers, you can assign any number from 1 to 119 (not exactly any to be consistent with the convention, but for the sake of this explanation, let’s assume that this is the case) to any knob, slider or pedal.

But what does it give us that we send these messages to another device?

We already know that the modulation controller is sometimes appropriately interpreted and sometimes ignored, and what about other controller numbers?

This is a similar case — sometimes they are automatically interpreted, and sometimes not. However, in most cases, especially in virtual instruments in each DAW we can assign individual controllers as we like e.g. to CC #2 we can assign “depth of reverb” in the plug-in.

We may not even know what CC number is being sent by a particular controller knob, because in the DAW there is usually a “MIDI Learn” function which listens to what is currently being sent and remembers it under a given function, in this case a reverb.

And what about the buttons and switches?

They can also send CC and be received by another MIDI device or DAW, usually to turn the effect on and off.

And what values turn on and turn off if we have a range of values from 0–127?

Well, according to the specification, values ≤63 are OFF and ≥64 are ON. Typically, a footswitch controller only sends values 0 and 127. Toggle buttons or a sustain pedal send 127 when they are pressed, and 0 when released, as in the case of the keys on a keyboard, except that a keyboard sends two separate types of messages: Note-On and Note-Off, and the value in the range of 0–127 is velocity (which seems a bit pointless for Note-Off, but theoretically the speed of letting go can also be appropriately interpreted).

How else (apart from wheels, knobs, buttons, switches, pedals, sliders, keys, pads, etc.) is it possible to control effects via MIDI CC?

There are no limits. As I mentioned earlier, you can control them using your breath or by moving your hand: https://gallery.leapmotion.com/geco-midi/,

You can even control effects by moving your lips. This movement can be detected by an iPhone and used to control a wah-wah effect:


In the next articles, we will write more about other types of MIDI messages and how to physically connect MIDI devices — wired and wireless, as well as how to turn a non-MIDI device into a MIDI device.

Follow us so you don’t miss out 👀