Music notation is powerful because it’s a standard. You can share it between musicians and understand what it means. What if, instead of being confined to individual, platform-specific apps, digital controls for music were the same way? We’re not just talking a MIDI message here or there, either – someone could walk in with some new-fangled noisemaker they just build in hardware or software, and all you’d need to talk to it and change its sound would be a Web browser.

At first glance, the generically-titled “Control” seems like just another iPhone / iPad touchscreen controller, in an already-crowded field. But look closer, and you see the first steps toward a future where browsing someone’s synth is as easy and accessible as browsing this site. By building on cross-platform, open Web standards, and then providing a basic but elegant way to send interaction as messages, Control is more significant than just a convenient wireless touchscreen on your phone. As such, it embodies some ideas some of us (cough) have been hoping would catch on.

It’s available free today for iOS devices, with other platforms possible soon.

First, it is Web nerd compliant, with JSON and WebKit and HTML Canvas and CSS. But what does that actually mean?

  • Included templates: Built-in controllers for DJ interfaces, a Game of Life, and a multi-touch widget that tracks two more fingers than you have … on your hands.
  • Make your own templates: Templates are specified as JSON, which some advocates describe a more efficient, readable alternative to XML.
  • Dynamic interfaces: JavaScript in the interfaces means that you aren’t limited to making unsatisfying fake knobs and faders; you can make stuff that actually does things.
  • OSC interaction: Not only does Control transmit OSC messages, but you can also describe JavaScript interactions and widgets themselves using OSC. Over time, this could lead to yet more dynamic interface creation, especially if others pick up the developers’ ideas.
  • All based on Web tech – and not limited to iOS in the long haul. Control uses WebKit (the open source browser engine that’s the basis of Safari, Chrome, and others), plus open Web standards, via the new Canvas element in HTML5. Thanks to a lovely, open source toolset called PhoneGap, that means the ability to port to a variety of mobile platforms. Right now, Control is only on iOS, but Android and many other platforms could be possible. Furthermore, the developer’s ideas could be extended to desktop browsers, too, and used in other apps.
  • MIDI, too. Thanks to Core MIDI wireless support, you can transmit MIDI alongside OSC. Hardware support I hope isn’t far behind, using, you know, wires. It is a beautiful thing to buy something off eBay from 1986 and program it with your iPhone 4 (or, soon, other phone).

Developer Charlie Roberts I believe is really onto something here. These ideas could all ultimately be bigger than just this one app, which is the idea – but at the same time, having something out there makes a huge difference. (Remember MIDI?) This isn’t the first controller to use Web tech, even on iOS, but it could be the first based on technologies and ideas with OSC that could extend that implementation to other platforms and software.

CDM in one tab, your synth in another, your friend’s live set in a third? We’ve got a ways to go yet, but just having a way of avoiding mobile controller app fragmentation could make us more productive. Stay tuned for more; I hope to talk to Charlie more this week.

And check out the video…
iTunes link

  • This seems very promising, I think it might be the app that makes me sell my lemur and buy two ipads.
    So I have some questions about javascript, would it be possible to implement in an interface physics? like have a fader define the friction in the multiXY object? also could I script some kind of clock to build custom step sequencers and lfo? how hard would that be?
    I think I might have to completely dive into the programming world, less time to work on my music… ooo well

  • Hmmm, now we're getting somewhere! I've been building the logic behind my Max interfaces in JS for some time… This seems like a good way to cut out at least one direction of data..

  • Lots of potential with this, will be watching its development closely…

  • I'm playing around with it on the iphone and it really seems like a great app. I can think of so many applications… it's like getting a bit of pd/max inside the iphone (though I know I can get pd on the iphone… it's just not that easy as installing this app).
    The only limit I see in Control is the iOS platform it runs on. I mean… why can't I just copy the script files for the interfaces on the device? You guessed it… it's the usual problem.
    This could make me buy an android tablet… once everything works… if it ever will…

  • LeMel

    This is getting to be exciting. Wonder why it took so long to get to this point? I also have Hanzo's take – can't just port it by copy & run, which would be more the ethos of a web app. Still, we are getting there. The fact that it is web-style integration of parts is great. Got to find the time to play in this sandbox some more, cool!

  • Tom

    Awesome, I had a similar idea a while ago but was thinking it would be entirely a web app and couldn't figure out a low-latency way to output OSC from it. Didn't think of encapsulating a web view in an app, so the app can (presumably) do all the actual OSC/MIDI output stuff.

    Looking forward to getting stuck into this – could be ideal for some of my ideas, and if not, it's provided me with inspiration to continue building my take on a customizable controller 🙂

  • I don't like this. Not at all. Not one bit. Why make another thing that I probably would not mind and would most likely enjoy enough and get sucked into tweaking and then learning canvas techniques and maybe incorporating things like vexflow?


  • interface design with scripting capabilities is great

    i've been trying to get a 24×18 button matrix for a while and finally its here

    the lack of a GUI for interface design is a downside for me

    i love the bonjour auto-detect and the webserver interface loading

    still has some bugs that causes crashes, but thats acceptable on a free first version!


  • Anthony

    Unfortunately, this app uses GNU libraries. 

    I really, really hope it doesn't suffer the same fate as VLC.  The dev. has already expressed to desire to remove the GNU lib.

  • many "GNU libraries" are licensed under the LGPL, which does not pose any fundamental problem for distribution via the Apple app store. This is true for liblo which this app uses. The precise details depend on how the app is linked, but because of the build system for iOS apps, it basically is not an issue.

    The problem with VLC was that the actual application was under the GPL (not the LGPL), so there was no way around that under the copyright holder(s) were willing to grant Apple an exception (and they were not).

  • i'm having a bad day commenting on CDM. my comment in this thread is also wrong. Because its not possible for a user of this app to replace the instance of liblo that it uses, distribution of the app via the Apple app store violates the license of liblo.

  • It's a little confusing to me… I included included liblo unmodified and statically linked. It seems like publishing the source code might actually -technically- be enough to not be in violation, but, for the reasons Paul outlined it definitely goes against the spirit of the LGPL.

    I've decided to not mess around with it and to replace liblo with an obj-c library that has a less restricting license. Fun.

  • Still… it's sad that Apple keeps on blocking out free software… guess that a company that depends on a control maniac can't really accept the idea of free software.

    This is one of the reasons I'm always positively impressed each time an app like Control pops up on the App Store. Apple did not create the App Store for this, but fortunately we still see people who do not think as they are told to.

  • Great article, this will be very interesting to follow from a developer and musician perspective.

  • Andrew

    I can't seem to find any info on the site… Does this support control feedback? Also is there a definite plan to support coremidi over hardware in a future version? This looks especially interesting as a lemur alternative due to scripting possibilities but both of these are kind of deal breakers for me personally. If they aren't presentq or planned.

  • The next update of Control will support feedback. Hardware MIDI is on the list…  but I'm personally not motivated to work on it until the iConnectMIDI comes out.

    And then I'll be very motivated to work on it.

  • so fine.

  • 786dfsaysfv

    this looks great. very promising, but cosign on what another commenter said:

    "the lack of a GUI for interface design is a downside for me".

    i wish there was something simple, like the TouchOSC editor for Mac. where you can just create your interface by dragging around & placing some basic elements in the editor application, and then zap it over to your iPhone/iPad/etc…