Editor’s Note: Be sure to check out the recent Signal To Noise podcast with electronic music artist deadmau5 (also embeded at the end of this article), where he discusses the role of technology in his creative process and his full-circle approach to crafting a unique audience experience exemplified in OSC/PILOT.
If you’ve ever experienced – or seen a YouTube video of – a live set by Canadian DJ and producer Joel Zimmerman, a.k.a., deadmau5, you know that an average set brings a level of production and control over the music that few other acts can come close to. The center of his live production for years has been a customizable touch-based interface used to control Ableton Live.
In a recent interview with Joel, he told me that this software for nearly eight years was known only as “deadmau5.exe” throughout testing and development. That title changed, though, on July 30, when it was officially released to the public as “OSC/PILOT.”
Finding Its Footing
In the world of theater sound, control of devices has been commonplace for years using both MIDI and GPIO protocols. Recalling snapshots on a console, triggering sound effects and click tracks, and tying cue GOs from lighting, sound, and video departments together with one button press have all utilized this technology.
Only relatively recently has Open Sound Control (abbreviated OSC) really found its footing in the theatrical realm. Not only is it being used to trigger cues, but also in more nuanced applications where MIDI may fall short, such as playing sound effects in real time with triggers coming from networked devices.
In a fantastic example of the power of OSC in theatre, sound designer Jess Paz (Hadestown, Dear Evan Hansen) used OSC to cue typing sound effects in real time from two phones onstage, which would send broadcast OSC messages to Figure53’s QLab to play randomized typing sounds, all through an interactive interface on the phone “that looked like a keypad and screen… so that audience members really close to [the cast-members] could see something on the phone…”
As a protocol, OSC offers many advantages over other protocols. Commands are written in a dynamic, URL-style scheme, with arguments that can be tacked on to the end of these commands as required, then sent over either a peer-to-peer connection, or over a standard network.
OSC also allows for the transmission of multiple data types – including floating point numbers and 32-bit integers – whereas MIDI will only allow for integer transmission, and utilizes a high-precision timestamp down to a picosecond of accuracy, compared to MIDI’s roughly 21 millisecond clock accuracy. As Joel puts it, “everybody uses OSC… because it’s basically the most open-ended… no-bllsht protocol that’s lightweight.”
Customizable virtual controllers are nothing new, with applications such as TouchOSC and Lemur being notable predecessors. This offering from deadmau5 does seem to borrow from both applications, both in design and protocol control, with all three able to control devices via MIDI and Open Sound Control (OSC) protocols. However, while the former two applications primarily reside in the world of iOS and Android, OSC/PILOT stands above through its ability to run on a touch-screen-enabled desktop or laptop.
At time of publication, OSC/PILOT is only available for Windows machines. According to the website (oscpilot.com), it’s compatible with Windows 8.1 and Windows 10; however, a Mac build is purportedly in development. As the world of sound for theatre primarily runs on Macs, I see this as a major factor of adoption amongst the theatre community moving forward.
For my testing purposes, I used a 2015 13-inch MacBook Pro dual-booted into Windows 10 Pro. Initially, I thought I could run it within Parallels on my main machine, but a “fatal error” upon opening the application quickly put the kibosh on that plan.
Downloading and installing overall was a breeze. The website is very easy to navigate, and installation was done in a matter of seconds. When you first open OSC/PILOT, you are greeted with a default layout which looks ready for connecting to Ableton right out of the box. For my testing, however, I wanted to dig into making custom layouts. Fortunately, OSC/PILOT provides 32 “pages” to create whatever you want.
Getting OSC/PILOT to communicate with QLab is as easy as setting the program to output OSC messages to the IP address of the machine you’re running QLab on, and setting the send port to 53000. This is QLab’s default port it uses to listen for incoming OSC messages on.
Creating custom layouts on OSC/PILOT is incredibly simple. Just drag and drop “widgets” from the top selection bar onto your work surface – whether it be a button, slider, XY pad, an NDI video stream, or any of the other available widgets – in whatever configuration you want, and use the inspector in the top right corner to customize whether that widget will send MIDI or OSC messages, and what that message will be.
Pressing “tab” will take you out of edit mode, and you can use the layout as though it was live. I did have more than a couple of instances where I would inadvertently press tab while I was trying to hop between text fields to edit them, thus taking me out of edit mode, but overall, I give major props to the team behind this software for making it incredibly straightforward to use. The glowing colors on a black background make it ideal for viewing in low-light conditions where light bleed may be a major problem, and feedback of inputs to the application are relayed through glowing buttons and sliders.
Still Some Work To Do
So far, it’s looking good for integration with QLab and creating the layouts one needs. That said, the program isn’t without its faults. Aside from the lack of a Mac version, the release I first downloaded would only allow for OSC messages between 0 and 1, and with what I wanted to use it for – controlling audio levels on a channel-by-channel basis with QLab – I found I could use the slider to go between 0 and +1 dB on any given fader. This led to the workaround of using MIDI control change messages routed out of OSC/PILOT over Ethernet via rtpMIDI, then converted back into OSC messages with the correct scaling within OSCulator.
Fortunately, as of the release of version 0.98.2, OSC value ranges can now be customized, and this workaround is no longer necessary. One product of OSC/PILOT’s general release has been the very active forum community that has sprung forth, where both Joel and Malcolm Bechard of Derivative.ca actively participate.
At this point, the forum has been a hotbed for feature requests, bug fixes, and project showcases that end-users have created and shared. Indeed, the OSC range selection feature was a forum-requested addition. In my mind, there’s no doubt this forum will be an instrumental component to future development.
In summary, while sound for theatre may not necessarily have been OSC/PILOT’s target demographic, the sheer level of customization offered, coupled with the intuitive interface and active user-centric development makes this a prime candidate for designers and engineers who are looking to add an extra level of control to their systems.
Once the Mac build comes out – and even before then, in my opinion – sound designers should absolutely take a look at the added functionality OSC/PILOT can offer and take this extended downtime from theatre to test out integrating it into their workflows for when theatre returns.