Lab: Arduino to DAW

Originally written on August 26, 2014 by Benedetta Piantella Simeonidis
Last modified on August 27, 2016 by Tom Igoe


This page covers the process of taking MIDI messages sent from the Arduino and creating sound with them via a Digital Audio Workstation (DAW) such as Ableton LIVE, Logic or Garageband.

What You’ll Need to Know

To get the most out of this lab, you should be familiar with the following concepts. You can check how to do so in the links below:

Things You’ll Need

For this lab you will need the following parts:
breadboard_short hookup_wire arduino midi_jack
Solderless Breadboard 22-AWG hook-up wire Arduino microcontroller module MIDI Connector
resistors resistors flex_sensors MIDIsport
10Kohm resistors 220 ohm resistors Variable resistors of choice (flex sensor/photoresistor/fsr) MIDISport 2×2 or other MIDI interface


Here we have a little Arduino instrument I whipped up using the MIDI Output tutorial. It features two photocells, one controlling the pitch (or note being sent) and the other controls the volume. Now that we are sending MIDI messages, we need to get them into the computer.

To get the MIDI messages into the computer, we will need a USB MIDI interface. A MIDISport 2×2 like the one pictured can be found in the Equipment Room. The interface connects to your computer via the USB cable and to the Arduino via a MIDI cable. Connect the Arduino to the MIDI In port of the interface.

You will most likely need to download drivers for the MIDI interface you are using. Go to the manufacturer’s website and download the drivers that correspond to your interface and operating system. Once the drivers are installed, the interface should be recognized by your computer. To check this, open up the Audio MIDI Setup. If you only see the Audio setup, click Window in your task bar and select Show MIDI Window. You should then see the window pictured here and the interface should appear colored in. Interfaces that are not connected will appear faded as shown.

Now that your computer recognizes the MIDI interface, you need to set up your preferences in the DAW. In this case, we are using Ableton Live so open up the preferences window. Ableton will recognize the interface but the ports need to be set. Find your interface and where it says Input, turn on the button listed under Track. Now Live will receive MIDI messages on these ports.

Select a MIDI track and add an instrument. Live has some instruments built in or you can use a third party plugin as a sound generator. In this case, I’ve selected the Operator FM synthesizer. If I only have one instrument going in to Live, it is fine to leave the track’s MIDI input set to “All Ins.” If you have more than one, you will probably want to select a specific port as shown in the image.

The last step is to Arm the track by clicking the Arm button on the bottom of the channel strip. Now you are ready to go. Start sending MIDI from the Arduino and you should be hearing your lovely new instrument.

A good tool to have is the Snoize MIDI monitor. You can download it here:

When running the application, MIDI Monitor will show you all the information that is coming in through the MIDI interface, such as the source, channel, message and note values. This is especially useful for debugging your MIDI instrument.