Using OSC for max4live-style control of ardour
Bill Gribble <[email protected]>
| Newsgroups | gmane.comp.audio.ardour.devel |
|---|---|
| Message-ID | <[email protected]> |
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 property). 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. Thanks, Bill Gribble [1] http://github.com/bgribble/mfp [2] the lv2plug-137 branch, this is not complete yet but getting close