[Ardour-Dev] Using OSC for max4live-style control of ardour

Bill Gribble grib at billgribble.com
Wed Mar 19 14:08:45 PDT 2014

Hi Paul and other Ardour devs... 

I'm working on a patching system called MFP [1].  I've been adding
support for loading MFP patches as LV2 plugins [2].  Ardour is the main
LV2 host that I would primarily use for my own purposes.  The
combination of a puredata/max type patching system with a DAW
immediately brings to mind max4live.  It makes me wonder if I could do
some low-impact hacking, or use existing Ardour functionality, to
support the "meta-patching" type things people do with max4live.

Just thinking about the mechanics of how to implement the "plugin
controls DAW" control flow, OSC appears to have a lot going for it.  MFP
already has good OSC support, and Ardour has an OSC API that does the
right kinds of things.  For "get" and "set" type actions, it looks like
the pieces are already in place and just need the elbow grease to glue
them together, possibly extending the Ardour OSC API.  I'm not sure
about "observe" (where the patch gets a callback on change of a

The other direction to go, I guess, would be to try to use some linking
and dlopen() tricks to directly call Ardour's code from the plugin, but
that introduces a whole landscape of new problems and does not sound
like a nice way to spend one's time. 

My questions for the Ardour-dev community: 

1. Does OSC seem like a reasonable approach to power this kind of
control?  It seems a little weird to be sending network packets from a
plugin hosted by Ardour to a server also hosted by Ardour, but we live
in a weird world so I can get over it.  

2. Would patches to extend the Ardour OSC API be welcome?  The API in
surfaces/osc/osc.cc doesn't look like it's changed in a while.

Bill Gribble 

[1] http://github.com/bgribble/mfp
[2] the lv2plug-137 branch, this is not complete yet but getting close  

More information about the Ardour-Dev mailing list