March 30th, 2011

Great projects coming in… pellegrini space time keyboard

I’ve been unpardonably slow pointing out some of the great projects that are rolling in using Control. I’m going to post a few in the next couple of days.

First up is the pelligrini space time keyboard by Roger Pelligrini. It’s inspired by the Haken Continuum and allows you to do some pretty wild pitch bending action. Roger wrote some nice Javascript to have a large MultiTouchXY widget trigger notes when touches first hit the widget but then trigger pitchbends when the touches are moved.

Check out the interface
Eye candy of the synths used to make the video

March 1st, 2011

Control 1.2 available in App Store

I’m going to post a longer change list in the forum, but the big new feature is the ability to define custom handlers for OSC addresses (and MIDI messages) in interfaces. This means Control can respond to arbitrary OSC/MIDI messages in any way you see fit; previously it could only update the values of widgets.

Basically you define a delegate object with a single method, either processOSC or processMIDI. Then set the assign this object to the delegate property of the oscManager in javascript. Here’s a simple example that defines OSC addresses for changing the page of an interface:

oscManager.delegate = {
    processOSC : function(oscAddress, typetags, args) {
        switch(oscAddress) {
            case "/nextPage":
            case "/previousPage":
            case "/changeToPage":

MIDI works the same way except you get midiType (cc, noteon etc) channel, number and value instead of the address, typetags and arguments. This should enable the creation of much more dynamic interfaces… OSC messages can now add widgets, delete widgets, change many values at once etc.

February 9th, 2011

Control 1.1 is up + github repository

Lots of bugfixes + bi-directional communication. The bi-directional communication works the same way as on a JazzMutant Lemur… if a slider outputs to OSC address /volume, just send a message to the address /volume at Control’s ip to change the value of the slider.

IMPORTANT: For whatever reason I hardcoded Control’s OSC receive port to 51000. I’ve already programmed a preference in the next update where you can specify it, but, that’s what we’ve got for now.

Also, Control is now open-sourced under the MIT license. You can view / download the source at GitHub. Let me know if you’d like to contribute.

January 29th, 2011

Control forum is up

Here is the new forum to post questions and make comments. And hopefully post some interfaces!:

January 27th, 2011

Sequencer interface update

I updated the sequencer I showed in yesterday’s video. You can download the new version from the same URL:

In addition to giving a 8 x 16 drum grid to program beats, the sequencer also has 8 multisliders (effectively step sequencers) in it that you can use to send volume changes, filter messages, whatever. The slider step sequencers are mapped to CC 10 – 17. You can change which one you’re controlling using the slider in the upper right corner. BPM control is right underneath.

I posted an Ableton .als with the midi mapping all setup to control an Impulse (multisliders mapped to volume).

Unfortunately I uncovered a few bugs with the multislider widget. They’re fixed in this interface (I overwrote the slider widget javascript) for the most part, but a couple of the bugs will have to wait until the next app update.

Image of a step sequencer running in Control

8x16 step sequencer in Control

January 26th, 2011

New video + kind review

Peter Kirn over at has some kind things to say about Control and the ideas behind it. I’m looking forward to talking to him more about the concepts he outlined.

I’ve also created a new video showing some more advanced Control interfaces (minus the Charlie voiceover). Both the files shown are available to download at These give a better idea of the types of behaviors JavaScript support enables.

Control – more advanced interfaces from charlie roberts on Vimeo.

January 23rd, 2011

New and Noteworthy

So fancy. My poor metronome never got selected by Apple as New and Noteworthy, but I know deep in my heart it deserved it too. And they can’t take that away from me. Ever.

Too bad the app screenshot looks bad when it’s that small…

Taken 1/23/2011 from iTunes

January 21st, 2011

App Store Approved!

iTunes Link

2.5 weeks and two demo videos later and Control is approved for app store distribution. It should go live in the next 24 hours.

In preparation of people wanting to create their own interfaces I’ve uploaded a template file to the interfaces folder. This file just includes a button that brings up the main tab menu and a button that refreshes the current interface. The refresh button allows you to make changes to your JSON (such as adding or moving widgets) and then see the changes immediately after pressing refresh. The refresh button only works if your computer still has the same IP address that it had when you originally downloaded the interface. If the IP address of your computer changes, you can simply reload the interface by adding it again in the Interfaces tab, and then the refresh button will work with the new address.

I’m also including a screenshot from the iPad App Store showing the MultiTouchXY widget tracking 12 finger positions. Although the iPad / iPhone can only track 11 fingers concurrently you can have many more positions tracked in the MultiTouchXY widget and move around different sets of touches simultaneously. This interface also shows how scripting allows you to easily add more touches to track using the “add touch” button.

January 14th, 2011

Demo movie

I posted a short movie of using Control with Ableton Live. For ease of production I ran control in the Simulator rather than on an actual device, but it gets the idea across.

Warning: the video is pretty dull. I’ll try to put out some more exciting ones sometime soon.

Intro to Control: Free MIDI / OSC software for iOS from charlie roberts on Vimeo.

This work is licensed under GPL - 2009 | Powered by Wordpress using a heavily modified version of the theme aav1