API for control surfaces?

Does anyone know whether there an easy way to interface with a control surface independently (ie. writing scripts/python to set/get parameters), or if documentation exists anywhere? Or whom should I be asking? The only place I’ve seen control surfaces on Linux mentioned is in connection to Ardour, so I thought the people here would know best.

Thanks heaps

Hmm… I wonder if the easiest way would be to write something that receives/posts MIDI events with the controller. Then you’d just need to know what messages the thing uses…

Your question is remarkably unclear - I can’t tell if you are asking about how to create a control surface, or how to make Ardour respond to a control surface.

Assuming the latter, you can control most of Ardour using OSC. There is no documentation on this, you have to read the source code (libs/surfaces/osc).

Assuming the former, there’s now way to really answer this without knowing a lot more about the goals you have for the control surface.

person, if you want to see what MIDI messages your controller sends, see my response to this thread. There is a feature in Ardour which lets you trace Ardour’s MIDI input/output in a terminal.

If you decide to investigate OSC and create a more advanced interface to map a control surface to Ardour, let us know; I could certainly use something like that.

I was under the impression that “control surface” was an unambiguous term, but I am guessing this is not the case nowadays from paul’s response. I was referring to things like the BCF2000 (http://en.wikipedia.org/wiki/Audio_Control_Surface) but paul mentioning “creating a control surface” makes it sound like there are software components also sharing the name. Sorry for my ignorance about this.

duffrecords: Thanks! I’m still not sure if I want to shell out for the hardware just to experiment with this idea I’ve had (I’d like to control things other than MIDI devices with hardware faders and knobs), but I’m just scoping out how realistic it is at the moment.

People do build their own control surfaces (google for MIDI box). I was not clear (and I’m still not really clear) on whether you are thinking about taking an existing control surface and using the messages it sends to do something, or whether you want to build a control surface from scratch.

Hello Paul,

Where can I find that source code (libs/surfaces/osc) on a mac?


The same place you would find the source code on any system, you would check it out from Ardour’s SVN.


Thanks for the advice seablade however I’m still not sure what you mean by that. So far, what I’ve done was to right click on Ardour.app and select “show package contents”, then go through everything I could find there looking for any code related to OSC commands, but I haven’t had any luck yet.

@maxbreakwell: i’m confused. you seem to know what source code is. Ardour.app is an application bundle: compiled, ready to run. There is no source code in Ardour.app. You either need the source tar ball from http://ardour.org/download or to use subversion as described at http://ardour.org/download_full

OK Cool!

I did need to download the tarball version. Thanks for the help!