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!

Wednesday, 8 July 2015

MIDI for the Arduino - Understanding MIDI Language

Computer Science for Musicians

Have you ever looked at the back pages of a synthesizer manual? It's filled with charts and tables that resemble the markings found on debris from a UFO crash site. But do not despair!

The following video will provide a crash course in Computer Science to help you take control of your Midi device. As a bonus, you can astound your band mates with your new found knowledge of Hexadecimal to Binary number conversions. Enjoy!

Thursday, 14 May 2015

Build the Auduino Granular Synth - MIDI Upgrade

Ever since I posted the original Auduino Granular Synth tutorial, I have been receiving requests to modify the circuit for MIDI control.

So, after several long nights of work I am proud to present the MIDI Update for the Auduino. This update allows the Auduino to respond to MIDI Note and Pitch Bend messages from a MIDI controller. As a fun bonus, I programmed the middle potentiometer to play a Major Pentatonic scale in the key of the note currently being held on the keyboard.

Build It

Watch this Video for construction and programming details.

The Arduino MIDI Library

This update uses the Arduino MIDI Library as a foundation. You can download the MIDI Library HERE. Make sure it is installed before you attempt to compile the software.

The Software

You can download the software HERE. Open up the program in the Arduino IDE and upload it to your Auduino circuit (Video provides details). Also included is the Drill Template for installing the MIDI Jack.

DIP Switch Option

The challenge with this project was trying to make it all fit in the existing enclosure. I didn't want to over-complicate things by adding new controls. That being said, I still thought it would be important to have the ability to change the MIDI channel.

By adding a simple 4-Position DIP Switch, you can easily change the MIDI channel that the synth responds to. Once the switch is installed, the Auduino will be set to the channel as outlined in the following chart.

Switches = MIDI Channel (0=OFF 1=ON)
0000 = 1    0001 = 2    0010 = 3    0011 = 4
0100 = 5    0101 = 6    0110 = 7    0111 = 8
1000 = 9    1001 = 10   1010 = 11   1011 = 12
1100 = 13   1101 = 14   1110 = 15   1111 = 16

Parts List (With affiliate links to


Monday, 27 April 2015

Build the Auduino Granular Synth - Line Level Upgrade

A whole new level

If you have been following this series from the beginning, hopefully you have built your own Auduino Granular Synth and enjoyed many fun filled hours making noise.

The Auduino circuit was designed to be a quick and easy project that you could slap together with a bare minimum of parts. Because of this, there are some areas of the design that have room for refinement.

The audio output of the synth comes directly from a Digital Pin on the ATMega chip and as you may know, these pins output a 5 Volt signal. Most audio amplifiers are expecting a peak-to-peak signal at a level closer to 1 Volt. This is referred to as Line Level.

The official Auduino website addresses this issue by stating "Strictly speaking, it outputs at 5V rather than the 1V line level, but most amplifiers don't seem to mind". So basically, if you are happy with the way the circuit is working, read no further and enjoy it. As for myself, being the compulsive tinkerer that I am, I wanted to see if I could make the output of the synth a little more well-behaved.

After a bit on searching, I found a filter circuit on the Munich Maker Lab page that looked promising. It is a simple circuit consisting of two capacitors and a resistor.

I built up the circuit and connected it to the output of my Auduino and was pleased when my oscilloscope showed a signal level much closer to line level. There was only one problem, the "personality" seemed to have been removed from the synth.

The original Auduino circuit has some really aggressive high end that produces some wonderfully obscene sounds when you sweep the pots in the upper registers. With the filter circuit in place, the synth was far more polite and bland.

I started modifying the circuit and found that by lowering the value of the 100nF capcitor, the high frequency magic would re-appear. After much tweaking, a 33nF cap seemed to be the sweet spot for the circuit.

Parts List (With links to Amazon)

1 x 33nF Film Capacitor
1 x 100uF Electrolytic Capacitor 25V
1 x 2.2K Resistor 1/4 Watt

Thursday, 19 March 2015

MIDI for the Arduino - Build a MIDI Output Circuit

Take Control

In this installment of the MIDI for the Arduino series, we are going to assemble a Midi Output Circuit and connect it to your Arduino UNO. This circuit is as easy as it gets.

Next we'll create a simple test program that will verify that everything is working. Download the file HERE.

If you're new to this series, check out the first article where we look at how a MIDI circuit works. This will help you understand what you are building here.

I am assembling the circuit on a small solder-less breadboard. The video will walk you through the steps of putting it together. Take your time and double check your work. Good luck!

The Arduino Midi Library can be downloaded HERE.

Schematic for the circuit.
MIDI Output Circuit

Saturday, 28 February 2015

MIDI for the Arduino - Arduino MIDI Library Input Test

Testing, Testing, 1 2 3

In this installment of the MIDI for the Arduino series, we will get our hands dirty with the software side of this project and take a look at working with the Arduino MIDI Library.

If you are new to this series, check out the last installment where we build up the Midi Input Circuit and connect it to the Arduino.

For this tutorial I am using version 4.2 of the MIDI Library and version 1.6.0 of the Arduino IDE. If you are using other versions - your mileage may vary ;)

The Arduino Midi Library can be downloaded HERE.

The MIDI Input Test program file can be found HERE.

Watch the video below for the tutorial.

Thursday, 19 February 2015

Midi for the Arduino - Build a Midi Input Circuit

Less talking, more building!

In this installment we are going to assemble a Midi Input Circuit and connect it to your Arduino UNO. The Circuit itself is actually quite simple consisting of only a handful of parts.

In the last installment, we looked at a Circuit Analysis of a Midi Input and Output Circuit. If you are new to this series, I suggest you check it out. It will give you a better understanding of what you are actually building. Now, let's put this knowledge to use and start building the hardware.

I am assembling the circuit on a small solder-less breadboard. The video will walk you through the steps of putting it together. Take your time and double check your work. You'll be fine!

Parts List (Click links to view parts on

Schematic (I find it helpful to have a printed copy when I am building)

In the next installment, we look at the Arduino MIDI Library and write software for this circuit.