Sound Design Workshop: iTweak

Image placeholder title
Image placeholder title

FIG. 1: My TouchOSC iPad control surface for Reason has color-coded rows for controlling four Combinators. The OSCulator document in the middle converts TouchOSC's OSC messages to MIDI messages that match Reason's default remote settings. Reason's Hardware Interface module uses MIDI channels to route these messages to the target device

If you don't want to wait for a commercial iOS-device control surface for your favorite DAW or virtual instrument, and you're willing to forgo some advanced features (two-way communication, for example), designing your own is much easier than you might think. You'll want to use OpenSound Control (OSC) because it is designed for network communication, and if you're not targeting an application that supports OSC, you'll need to convert the OSC messages to MIDI.

Hexler TouchOSC ($4.99 from the iTunes store) is an iOS application that hosts OSC control surfaces and handles WiFi communication with your computer. The free downloadable companion program TouchOSC Editor lets you design the control-surface GUI on your computer (Mac, Win, or Linux) and upload it to your iOS device. OSCulator ($39, Mac) lets you easily map OSC messages to MIDI messages and provides a MIDI port for routing these messages to your MIDI applications. The process for Windows is a bit more involved; it is documented on the Hexler website. Here are the details for a control panel that I use frequently with Propellerhead Reason.

TouchOSC Editor offers graphic elements for use as buttons, faders, knobs, labels, and LEDs. You can get as device specific as you like in your design, but you'll save lots of time and probably build a more useful control surface if you keep it generic. One way to do that with Reason is to target the Combinator module. That lets you control any Reason device by wrapping it in a Combinator and mapping its controls to the Combinator's.

Figure 1 shows the layout I use on my iPad. It controls as many as four Combinators along with four mixer channels into which the Combinators are routed. I've avoided labeling any of the iPad elements for the Combinators, relying instead on the labels on the Combinator to remind me of their function. I can use this iPad control surface with any Reason song that has a Combinator in it, ignoring any unused Combinator and mixer controls.

Once you design a control surface and upload it to your iOS device, launch OSCulator and ensure the iOS device's TouchOSC outgoing port matches OSCulator's input port (8000 by default). Touch the iOS device graphic controls one at a time and each will appear as a separate message line in the OSCulator window. These lines are ordered alphabetically by control name, so if you rename the controls in a logical fashion as you create them in TouchOSC Editor, you'll be able to easily identify the line corresponding to each control. (Edit only the part of the name after the last slash and limit yourself to lowercase letters and numerals.)

The next step is to set the MIDI event type, number, and channel for each line. Then lock the OSCulator document (Command + L) and save it. You'll need to open this document each time you use the TouchOSC control surface.

You can use your target's MIDI-learn function to map OSCulator's MIDI output to the desired controls, but in Reason, it's easier to set up OSCulator as an Advanced MIDI input and use Reason's built-in MIDI routings. Use a different MIDI channel for the mixer and each set of Combinator controls, and use Reason's Hardware Interface panel to route the controls by channel to the corresponding Reason devices.

Len Sasso is a freelance writer and frequent EM contributor.