Controlling plugins via osc

Hi all,

I’m using Ardour 3.3 on Ubuntu 13.04 and I’d like to use OSC to control plugin parameters.

Looking at the documentation I can’t find a way to do this. Is it possible?


I’d really like to know if this is possible as I’m dumping large amounts of time into work arounds, atm.

For an ongoing project I try develop a system to arrange multiple tracks for an ambisonics environment and Ardour would be perfect for this.
Only, I’d like to be able to interactively control several plugin parameters (Ambisonics rotation and distance cues via reverb, delay and filter) with a Lemur multitouch controller and record the controller data into automation.

The MIDI functioality of the Lemur is of no use, because I can’t get WINE to expose the data from the Jazzmutant MIDI daemon to the system.
A work around would be using PD as a bridge between OSC and Alsa-MIDI and a2jmidid to funnel the data into Ardour via Jack. It works, but due to a bug in the intel video driver, pd keeps crashing my X-Server and that’s a show stopper.

So, is there a way to use OSC directly for plugin parameter control and automation? Ardour claims to be first class in terms of OSC control but if one can’t drill through to the plugins, this statement would stretch it a bit.

I don’t think it is possible at the moment - as I recall, whenever the subject has been raised in the past (normally with respect to MIDI control of plugin parameters) it seems that the devs think this would be incompatible with automation and / or custom plugin GUIs for some reason. This isn’t the case on any other DAW, and as far as I can tell, neither should it be on Ardour. Plugin parameters are abstracted to “ports” within ardour, so I would expect it should be possible to have a scheme in which any external controller (OSC, MIDI etc) could just hook into the plugin parameters at this level, exactly as the automation does, and the plugin (and any custom GUI) would respond correctly without any plugin re-design.

REGISTER_CALLBACK (serv, “/ardour/routes/plugin/parameter”, “iiif”, route_plugin_parameter)

enough of a clue?

@paul: Ah, sorry, feel free to remove my previous post if it is (as I suspect) incorrect and no longer relevant (for some reason I’m not able to edit my own posts anymore)

The editing old posts is actually a CSS issue, this is a reminder I need to go back and look at the CSS to see if I can fix it. Sorry about that.


@paul: Does this mean OSC control of plugin parameters is already implemented? If so, could you please point me to the relevant part of the documentation or give me an quick outline of how to use it?

loopt: it is implemented, there’s no documentation about but if you are already using OSC to do stuff, the above line should tell you enough. i guess i can expand a bit: the message takes 4 parameters: the remote-ID of the track/bus (like all “routes” messages), the plugin number (starting from zero), the parameter number (starting from zero) and a floating point value.

Thanks Paul, got it working.
And yes, the line of code should have told me. Just couldn’t switch off dumb user mode, sorry.


Hmm, the next question would be how to control the automation state (manual, play, write, touch) via OSC.
Had a look at the source code but couldn’t find anything…

I was able to set up OSC control of several Ardour- and plugin-parameters. But now I want to remotely control the recording of those parameters into automation curves. I have 5 parameters per track and 4 of them go together with the same slider on the Lemur.
It is a bit of a pain to manually switch them one by one from play to write for every recording (‘touch’ doesn’t seem to work with OSC control, btw.).