When Apple released the iPhone they completely re-invented our well-established notion of what is a mobile phone. Up until then email, messaging, web browsing and voice mail protocols were clumsy and poorly integrated. The iPhone changed all of this. However, the biggest change was not only the additional app’s that came with the iPhone, but the opportunity for developers to access the sophisticated iPhone SDK for developing new software. What is more, Apple provided developers with a marketing launchpad – the Appstore – which has given developers the ability to effectively and easily market their own software to the iPhone user base. Of course the iPad has also emerged out of this same technological leap.
So why am I writing about the iPhone and the iPad, and where do these come in use in the music studio? Well this firstly leads to one of the other major developments of the iPhone and the iPad – multitouch technology. The iPhone and the iPad are effectively a wireless multitouch controller, and if they are mapped to software, we have an extremely portable and handy piece of equipment in the studio and at live gigs.
There are a large number of developers who have already realised this potential, and very quickly we have seen a proliferation of different apps intended for a similar task. By now there are literally hundreds of music apps, and tens of tens of music software controller apps. Some of these include ProRemote, ProRemote Light, ProTransport, TrixMix, Pro-XY, MrMr, TouchOSC, ITM MidiLab, ITM Pad, c74, iOSC, iTM Tilt, Remokon for OSC, OSCemote, rain., Griid Pro, Runxt Life, Breath OSC Interface, Hex OSC S, Control, eyoControl, OSC Physics, Griid Pro, SonicLife, Ardumote HD, [v] Remote for iPad, GyrOSC, touchAble, expressionPad, Kapture Pad, DrawJong, Live Music Coder M^2 OSC, OraisonLight, dot E++, HexaChrom, and Runxt Life Plus. All of these apps use a method of transmitting information over the WiFi network – this method is commonly called the Open Sound Control protocol, or simply OSC. The advantages of OSC over the older MIDI standard are primarily speed and throughput, internet connectivity, the potential of wireless, data type and data resolution. MIDI on the other hand is limited largely to 7-bit data ranges (128 points of resolution), and as a serial protocol, also limited to approximately one message per millisecond. For a lot of these applications, unless your music software has UDP protocol capabilities (such as MaxMSP), you will need an OSC-to-MIDI server application like OSCulator. Some server applications are developed specifically for certain iPad/iPhone apps, and automatically map the relevant data streams to specific MIDI control change (CC) channels. For example, iTM Tilt can be paired with the TouchMIDI server application to automatically route the OSC messages to respective MIDI CC channels.
It is the wireless connectivity that is particularly accommodating for engineers and musicians. Whilst this discussion doesn’t involve the vast proliferation of music software controller apps, I do want to focus on a couple of versatile apps that are particularly useful in the studio. These are apps that allow one to wirelessly control your DAW of choice, whether it be ProTools, Logic, Cubase, or Live. The iPhone and iPad apps in question are iTeleport: Jaadu VNC for iPhone/iPad and ProRemote.
Jaadu VNC is an application that relies on remote desktop services effectively allowing you to view your computer screen from a different physical location, whether it is the next room, the other end of the building, the other end of town, or the other end of the world. The beauty of Jaadu VNC is its a cost effective solution for controlling any preferred DAW. Jaadu VNC supports integration with Windows, Mac, and Linux operating systems. The only downside is that isn’t the most responsive app as it has to refresh your entire screen regularly over the WAN or LAN.
ProRemote is a more efficient and responsive controller app for a variety of DAWs – ProTools, Logic, Live, Cubase, MIO Console, and Digital Performer. However it is one of the more expensive apps available. The app sends OSC messages over WiFi which are received by another program called ProRemoteServer which is to be launched on the DAW computer. Currently this app only officially supports Mac, but a beta version of the ProRemoteServer application for Windows is available to run on Windows XP.
There are also music controller apps where the user interface is completely programmable such as TouchOSC, MrMr, C74, and Ardumote HD. TouchOSC has an editor utility downloadable from the hexler.net website allowing the user to custom design their own multi-touch control work surfaces. There are already some varied templates available from the same website.
OSC messages can be received directly in software such as MaxMSP, which has an udpreceive object designed to stream information received over the network via a UDP port number. Provided TouchOSC is sending OSC data over the same port that MaxMSP is receiving from, and both devices are on the same network, communication should be seemless. Please note that firewalls can interfere with UDP messaging, as firewalls will block transmission of UDP messages over certain port numbers. To be sure, it is best to switch off your firewall within your computers OS settings, however it is possible to keep the firewall active and open specific port numbers (perhaps this can be a topic of further discussion).
In this example, all devices are running off a wireless router in a LAN configuration. TouchOSC is set to send UDP messages over port 7400. I have since launched MaxMSP, and am receiving OSC messages via this port (these are printed to the Max window:
We can see that each OSC message displayed in the Max window has the prefix “/accxyz”, so what we need to do is direct messages with this prefix to a specific outlet so they are separated from any other kinds of messages received. We can do this with a route object, and the three numbers referring to acceleration over the x-, y-, and z-axis, can be unpacked into different numerical streams again in the following way: