In this tutorial, I am going to show you how to get started using analog components via an Arduino Uno to control digital devices inside Ableton Live. This is only meant to get you started on the road to expressive, intricate and awesome micro controllers, while being incredibly fun and rewarding.
Here's a video showing the basics of how to make this work. For more details we've included the written instructions below.
No coding or soldering required!
What you will need to follow along:
- An Arduino Uno w/ the Software
- Ableton Live (Live 9 Standard or above)
- Max for Live w/ Connection Kit Pack [Free]
- 4 x Potentiometers (Any will do. I tested 5k, 10k, 100k, 500k)
- 1 x Slider Switch (Optional)
- Small Breadboard
- Assorted Breadboard Jumper Wires (~20)
**The switch is optional. Also, you only need one potentiometer if you are just looking to get started. Though, I will use four for this tutorial.
We won’t be doing any coding in this tutorial, thanks to Ableton’s free Max for Live Connection Kit Pack. So, go grab it, if you haven’t already, and install it.
First, let’s set up the breadboard with the potentiometers (pots) and the switch.
Place the 4 pots next to each other on the breadboard.
Now, we need to run some jumper wires. There are three pins to a pot. The two end pins are for ground and power, while the middle pin is the signal pin. Most controls in Ableton Live go from left to right (low to high). That means, if we are looking at the front of the pot, the first pin (1) needs to go to ground and the last pin (3) needs to go to power. If you do it the other way, the pot will invert the signal and it would just be awkward while you were using them in conjunction with Live.
The middle pin for each pot needs to go from the breadboard to one of the analog pins on the Arduino. There should be six analog inputs. A0 – A5. We will be using 5 of them. I went with A0 – A4, but it really doesn’t matter which you use, but make sure to remember which you choose.
Now, for the switch. It has 3 pins as well. We only need two though. The middle pin goes to ground and one of the outside pins goes to the analog input. Doesn’t matter which one.
The last thing we need to do is send 5v power from the Arduino to the power rail of the breadboard. Then connect the breadboard’s ground rail to any of the Arduino’s GND pin slots.
That’s all for the analog part.
Plug in your Arduino to the computer and open its software. Make sure all your libraries are up to date. We are going to load a sketch that is prebuilt and the Connection Kit will recognize and communicate with. It’s called StandardFirmata.
Go to File > Examples > Firmata > StandardFirmata
Next, go to Tools > Board ad make sure that the Arduino/Generic Uno is selected.
Then go back to Tools > Port and make sure that you choose the USB port your Arduino is using. Usually it will be COM(x). The x being a number.
Next, upload the script to your Arduino. That’s it for the coding bit!!
Now, you can open Ableton Live. Go to the Packs section of the Places section of the browser and find the Connection Kit. Open up the folder stack and choose the Arduino Max for Live Device. Drop it onto a new channel and wait for Max to start.
Before mapping you need to make sure the right Port is selected. You want to use the same one that you used to upload the sketch. Mine is COM3. If, for some reason, you don’t see the one you used in the drop down, hit the rescan button.
Next, make sure you are looking at the analog options as opposed to the digital ones.
Drop a simple delay to the right of the Arduino device. I chose the simple delay because four pot controls and an on/off switch cover most of the bases. Though, you can choose whatever device you want.
Now, you want to hit the map button for an analog pin that you have connected to one of your pots. I am using A1 as the left most pot, for example. So I click “map” for the A1 ID and then click the Feedback parameter on the Simple Delay. This should grey out the parameter. At this time if you move that first pot you should see the Feedback parameter move on the device inside Live. Awesome!
Repeat that process to map the Dry/Wet and the Left & the Right Delay Time parameters.
Now, for the Slide Switch. Click map for ID A0 (or whichever you are using). Then click the on/off button on the simple delay. Test that it works by switching the switch on and off. If the device turns on and off, you are good to go.
If, when you slide it to one side, the device turns off, but the other state makes the device blink on and off rapidly you might have an issue.
Don’t worry, first thing to do is to switch the signal wire to the other available pin on the switch. That might work. If it doesn’t, try another switch or delete and relaunch the Arduino Max Device.
What might be happening is called “contact bouncing” and you will need to do what is called “debouncing” if you can’t get it to work as is. That process is beyond the scope of this tutorial, but I got things working without debouncing the switch, so hopefully you do too!
My final mappings for the Device looked like this.
Port COM3 Connections (Analog)
The On / Off Switch
- ID A0 – Parameter – Device On
- ID A1 – Parameter – Feedback
- ID A2 – Parameter – Dry/Wet
- ID A3 – Parameter – L Time Delay (unsynced)
- ID A4 – Parameter – R Time Delay (unsynced)
Now I can not only turn the Simple Delay on and off via an analog switch, but I can adjust the dry/wet, feedback, and time amount for the left and right channels all from my little analog controller!!
I have quite a few bigger and better projects in mind for 2017! If you have any suggestions or questions don’t be afraid to comment below and I will get back to you as soon as possible.