HOW-TO: iPhone TouchOSC + Pure Data + Ableton Live

After I posted a YouTube video and this blog demoing TouchOSC controlling Ableton Live I received a lot of messeges from people having trouble figuring out how to get it working. All of the resources to do this are available at, but this is how I got it working on my PC, step by step.

TouchOSC (pic borrowed from
TouchOSC (pic borrowed from

Let me give you a brief intro into what TouchOSC is, in case you don’t already know; TouchOSC is a nifty little iPhone app that is basically just a bunch of buttons and sliders. Okay, not that exciting on it’s own, right? However, when you link TouchOSC to another app called Pure Data (which is free open source software) you then hold in the palm of your hand a powerful MIDI controller akin the very pricey Jazzmutant Lemur.

This is the Jazzmutant Lemur, $1770.00 USD
This is the Jazzmutant Lemur, $1770.00 USD

Why is this cool? Because the Lemur is pretty awesome, but it costs nearly two grand. This setup will cost you about 3 dollars. Granted, you do need a software or hardware device to actually control via MIDI (this would also be the case with the Lemur), and while Ableton Live is not free, there are free applications out there you can easily use in place of Ableton Live.

TouchOSC uses your iPhone’s wifi connection to send data, so it is wireless MIDI controller! As with any ‘controller’, this does not make it’s own sounds. It simply ‘triggers’ another piece of software or hardware to make sounds.

Okay, enough small talk…

STEP 1 – TouchOSC

Install TouchOSC on your iPhone. It is a $3 dollar app (if I remember correctly) that you can buy and install from the app store on your iPhone (no jail breaking required). This is easy enough; just go to the app store, search for ‘TouchOSC’ and buy it. Try and resist the urge to play with it just yet, as it does nothing useful until we get all of our ducks in a row in the following steps.

[ad#In-Blog Banner]

STEP 2 – MIDI Yoke

MIDI Yoke creates several ‘virtual’ MIDI input and output ports on your computer. Think of it as a set MIDI patch cables that connect various pieces of software together, just like real MIDI cables connect hardware devices together. Go to and download & install MIDI Yoke. You will probably be asked to reboot, and this is one case where you really should reboot or the ports may not appear on your system. Just remember to bookmark this page first so you can get back to this tutorial!

STEP 3 – Pure Data

Now, the end goal here is to control Ableton Live with TouchOSC, but there is a sort of ‘middle man’ that takes the data that TouchOSC sends over your wifi network and converts it to MIDI data that your software (or hardware) can work with. This is where Pure Data comes in. I won’t go in to any more details about what Pure Data is/does. You can read up on their website if you care to learn more, but it is not necessary to understand it. Pure Data simply needs to be running on your computer with the proper file opened within it for this to work.

Go to and download the version of Pure Data for your operating system (Windows XP in my case). Install Pure Data on your system.

Also be sure to get this file:, which is the layout mappings for Pure Data that correspond to the Simple layout in TouchOSC.

Once Pure Data is installed run ‘simple-midi.pd’. This should open up in Pure Data and look like this:


At this point your may be getting an idea of what Pure Data is doing. These layouts you see above correspond to layouts that come bundled in TouchOSC, and this is sort of like the set of ‘rules’ for how your PC will interpret what TouchOSC sends.

STEP 4 – Making Them Talk

We’re almost getting down to business, I promise! We just have to get TouchOSC ‘talking’ to your computer now. So open TouchOSC on your iPhone.

Under ‘Network’ it will say ‘Not configured’. Click this so we can configure it! Now, maybe you will be lucky enough that TouchOSC will detect your computer running Pure Data and you can just click on that if it pops up. Mine didn’t. In this case you will need to know the IP address of your computer. You can find this by going to START>RUN and typing ‘cmd’, and then hit enter. This opens the Windows console, from here type ‘ipconfig /all’ and hit enter:


You will see a bunch o

f info, and your IP address will be listed in there [red arrow]. Enter this number as your ‘Host’ in TouchOSC ( in my case). For ‘Port (outgoing)’ enter 8000, and for ‘Port (incoming)’ enter 9000.

When your all done tapthe ‘<TouchOSC’ botton in the top left to return to the main screen.

Now you must select the layout for TouchOSC that corresponds to the one you opened in Pure Data. In this case choose the ‘Simple‘ layout, because that corresponds to what we are using in Pure Data. Once again tap ‘<TouchOSC’ to go back and you can now tap ‘Done’ in the top right. You should see something like this:


If you don’t see this and got an error message instead, double check your TouchOSC configuration and also be sure that you have the ‘simple-midi.pd’ Pure Data layout open on your computer! If your still not having luck your firewall or router may be causing problems. Either disable the firewall (not a good idea long term since you leave your system vulnerable) or read up on how to open port 8000 and 9000 across your local network (sorry, this is beyond the scope of what we’re doing here).

So this is getting exciting, your iPhone is looking a bit like the Lemur finally! Now, watch the layout window in Pure Data as you slide and press things in TouchOSC. They should be moving in Pure Data too!

[ad#Big Sqare]

So finally we must set the MIDI I/O in Pure Data to use the MIDI Yoke ports you installed in Step 2. All you have to do is go to ‘Media’ > ‘Midi Settings’ and choose ‘MIDI Yoke 1’ for both your MIDI input and output ports, then hit ‘ok’.


Step 5 – Setting up Ableton Live

Okay, by the end of this step you will be ready to make music! Open up Ableton Live and go to ‘Options’ > ‘Preferences’ and click ‘MIDI Sync’. From here turn on ‘Remote’ for the MIDI Yoke 1 input and output ports, then close the preferences window.


Move some sliders on TouchOSC and you should notice the MIDI activity indicator in Live (red arrow below) flashing. This means that Live is receiving MIDI data!


Now all that is left to do is map the MIDI commands to whatever you want them to do in Live. Do this by clicking the ‘MIDI’ button in the top right area in Live, near the MIDI activity lights.


Notice that things turn blue-ish, this means that you are in MIDI mapping mode. Now you can click on any blue button or slider within Ableton Live and then move any button or slider in TouchOSC and you should notice that Live automatically detects what you just did and maps it! So now just ponder on how you want everything to be mapped about in Live and then set it up by repeating this for each button, slider, etc… When finished simply click the ‘MIDI’ button again to return to normal mode and you can now control Live with your iPhone! Now go load some sounds and make music! :-)

Final notes:

1) I had hoped to supplement this with video material, but I have already burned through my Sunday afternoon just putting this together. Let me know if anything here is not clear or if I got anything wrong.

2) It’s also worth mentioning that you can also receive MIDI with TouchOSC to do some neat stuff, but I have not messed with that nor do I know how to go about setting up something like a pattern sequencer where you see the play head running across TouchOSC. That would be very cool though, so if YOU know how to do that please post a comment or point me to more info! :-P

3) This is NOT the only way to do this. You can use MAX/MSP (commercial equivalent of Pure Data) or OSCulator (for Mac). So this is just one way to do it and maybe not the best or easiest way, but it’s how I did it, and it works great!

4) I assume you know how to do other stuff in Ableton Live, like import samples/loops, and despite touching on midi mapping, you probably are already well versed in that if you’ve used any controller with Live before.

5) Does anyone know how to use the X-Y axis controller with-in Live using this setup? The method above does not seem to map the X-Y controller properly.

Good luck and happy jammin!

Leave a Reply