TouchOSC and Ardour
After too long a delay I finally finished my first version of a TouchOSC based transport for Ardour. One of the most difficult aspects of this project was the sheer number of Ardour’s functions that can be controlled via OSC. Deciding what to incorporate into the layout and what to leave out took hours of consideration and experimentation. I tried to keep everything as streamlined as possible only using using functions in my layout that I thought would be of the most use.
As I discussed in my previous post, you will need to run Max5 patch in the background to allow better communication between TouchOSC and Ardour. Please go ahead and download the .zip file which contains the TouchOSC layout, .maxpat file, and a .mxf file as well. Even if you don’t own Max/Msp/Jitter, the patch should work fine using the Max/Msp runtime version, which is free to download.
First, run the Max5 patch and you’ll see a very boring screen that looks like this:

Like the window says, there isn’t much to do other than to just run it in the background and have fun, but there are a few things to be aware of. Make sure TouchOSC is using the correct ports. You can change them in the patch window or on your iPhone/iPod Touch. If you are using your home’s wifi internet connection you probably won’t have to change the Ardour IP adress or the iPhone IP address, but if you setup a direct network between your computer and iPhone then you will have to change these addresses in the patch window.
The labels on the TouchOSC layout should be fairly self-explanatory, but I’ll show a picture here of each page and briefly describe what everything does.
Page 1 (displayed above)
Play — Toggles the play button
Loop — Toggles the Loop button for playback and recording
Rec — Toggles the transport Record button (In order to actually record to a track, that track must also be record enabled)
Red Fader — This will control level of whatever track is listed first in the editor view
Add mark — This will add a mark at the location off the playhead
Prev. Mark & Next Mark — Moves the playhead to the previous or next mark
Stop — Stops playback and recording
Start & End — Moves the playhead to the Start or End marker
RW — Rewinds Track
FF — Fast Forwards Track
Red Dial — Scrubbing
Save, Undo, & Redo — Saves file, undoes the last action, redoes the last undo
Page 2

Punch In – Toggles the ability to use a Punch In marker while recording
Punch Out — Toggles the ability to use a punch Punch Out marker while recording
Nudge — These two buttons will nudge the playhead back or forward by the amount of time selected in the Snap Mode section of the transport. I believe the default amount of time is 5 seconds
Snap Modes – Scroll through the options: Grid, No Grid, or Magnetic
Snap Choice — Scroll through the various grid subdivision options: CD Frames, SMPTE frames, SMPTE seconds, SMPTE mintues, seconds, mintues, Beats/32, Beats/16, Beats/8, Beats/4, Beats/3, Beats, Bars, Marks, Region Starts, Region Ends, Region Syncs, Region Bounds
Edit Point — Scrolls through the options: playhead, marker, mouse
Toggle Visual State — You can use this multitoggle to save up to 12 unique grid views. With one of the toggles in the “on” position press the Save State button and the current visual state will be saved on that toggle button. You can then switch between saved visual states easily in your project.
Global Record — This button record enables all of the tracks. It would be nice if pressing it again would disable all of them as well, but unfortunately that not how this OSC command works with Ardour. What you see is what you get with this one.
Page 3

This page allows you to control the zooming parameters of your project. The purple focus buttons modify what Ardour will in zoom on. For example, pressing the mouse button, then repeatedly pressing the green In button would zoom closer in on the location of the mouse cursor.
In — Zooms In
Out – Zooms Out
Session — Sets the zoom so that the entire session can be viewed in the editor window
Region — Sets the zoom so that the selected region can be viewed in the editor window
RegionXY — *Use with caution* Sets the zoom so that the selected region fills the entirety of the editor window. The dangerous part is that I haven’t found and effective method of getting the screen back to normal. Pressing the Session or Region buttons won’t do the trick, but if you have saved a visual state you can get back by using the appropriate multitoggle button.
*I recommend using the 1st visual state to save the session view. This way you can use the RegionXY function and still get back to normal.*
Toggle – Toggles between the current and previous visual state
Center – Centers the playhead in the editor window
Playhead – Sets the Zoom Focus to the location of the playhead
Mouse – Sets the Zoom Focus to the location of the mouse cursor
Edit – Sets the Zoom Focus to the edit location
Page 4

Set Loop Edit Range – Sets the loop points to the area selected in the editor window
Set Loop Region – Sets the loop points to the region selected in the editor window
Set Punch Edit Range – Sets the Punch In/Punch Out markers to the area selected in the editor window
Set Punch Region – Sets the Punch In/Punch Out markers to the region selected in the editor window
Two Green Play Buttons – These buttons are a little confusing, and sometimes a little unreliable, but I still found them very useful. The top button will play from the mouse cursor position to the end marker, and then, move the playhead back to a selected edit point. The bottom button will play from the mouse cursor position to a selected edit point, or, from the selected edit point to the mouse cursor position. Understand? Just try it out while your editing some files. I found that it helped me out quite a bit.
Split – Splits a region file at the edit location
Crop – Crops a region to the selected area in the editor window
Raise – Raises the region above any other regions that may be overlapping on the same track
Lower – Lowers the region beneath any other regions that may be on the same track
Export – Opens the options menu for exporting the selected region
Naturalize – Moves the Region back to its original position
Normalize – Increases the amplitude of the region to its highest level before distortion occurs
Reverse – Reverses the region’s audio file
That’s about it everything. I did my best to create this layout with only the most useful commands, grouped together by page depending on what functions I though might be used together the most.
After using this layout last night for a few hours I felt good about my creation, but I do believe that I would like to make some adjustments and upgrades along the way. If there is anything that you feel is particularly good, or awkward about this TouchOSC layout, let me know and I’ll take everything into consideration for the next version I get around to making.
Until then, I hope that everyone enjoys using Ardour and TouchOSC together while editing and recording music!





João Pais said on February 11th, 2010
Looks good. Unfortunately I don’t have an iphone (would prefer a nexus).
I also made something for pd in these days, the 1st version can be found at http://lists.puredata.info/pipermail/pd-list/2010 – 02/075887.html
maxbreakwell said on February 11th, 2010
Cool Pd Patch, João.
Actually, I believe there is an Android version of TouchOSC in the works, so that might be something for you to look forward to as well.
Allan K said on May 11th, 2010
Awesome.. also looking forward to an Android version