Wednesday, 30 September 2015

MIDI for the Arduino - Reading MIDI CC Messages

Be a Control Freak

In this installment of the MIDI for the Arduino series, we will look at using MIDI CC messages to control our Arduino board.

Before You Start

If you are new to this series you will first need to build the MIDI Input circuit described HERE.

You will also need to install the Arduino MIDI library as described HERE.

What is MIDI CC?

The 'CC" in MIDI CC stands for Continuous Controller or Control Change. Like everything on the internet, there is much debate over the correct term. I like to think of the physical knob as a Continuous Controller and the data it produces as Control Change messages. Everybody wins!!

See The Light

To demonstrate this topic, we will build up a little LED light show that can be controlled by incoming CC data. Don't be fooled by the simplicity of this project. With the right interface circuit, you could run full size stage lighting using this concept.

Build It

Download the software HERE and upload it to your Arduino. ** NOTE - Make sure you disconnect the wires from your Arduino's RX and TX pins before you send the program. If you don't, you will get an error message and the upload will fail. **

Now watch the video and follow along. Have fun!


  1. saludos! great video! como se llama e programa que usa para programar los leds con arduino via midi?

  2. Hello. This is a great video! I love the whole series. Is there a way to modify the code to make make a pin go HIGH when a MIDI MMC code for Record (0x006) is received and LOW when the code for Stop (0x01) is received? I am trying to make a "recording" light turn on, every time the Record Transport is pressed.
    Thanks in advance.

    1. Hello Dave... any chance on sharing any knowledge on making the "recording" light? I made a mistake in the last posting; the Record code is (0x06). Any help would be greatly appreciated. Thanks -Nick

    2. Hi Nick. MMC commands are actually Midi "System Exclusive" format and not Midi CC so this tutorial isn't what you need. I haven't done a Sys-ex tutorial yet but you should be able to figure it out in the Arduino Midi library docs. It's not much different than CC. Good luck.

  3. This comment has been removed by the author.