Discussion:
[Ardour-Dev] OSC control of individual processors?
Jörn Nettingsmeier
2017-06-19 17:35:33 UTC
Permalink
Hi *!

I would like to be able to control a certain parameter of a certain
processor in every track/bus via OSC. The session is static.
Point is to use Ardour as an Ambisonic renderer. const N busses, const M
plugins per bus (the same set in each), const O parameters per plugin.
No need for introspection, all knowledge about parameter ranges is
hard-coded into the remote application.

Possible?

Best,

Jörn
--
Jörn Nettingsmeier
De Rijpgracht 8, 1055VR Amsterdam, Nederland
Tel. +49 177 7937487

Meister für Veranstaltungstechnik (Bühne/Studio), Tonmeister VDT
http://stackingdwarves.net
Robin Gareus
2017-06-19 17:44:33 UTC
Permalink
Post by Jörn Nettingsmeier
Hi *!
I would like to be able to control a certain parameter of a certain
processor in every track/bus via OSC.
Every track at the same time? One message to all plugins?
I don't think that's possible.

But there's "/strip/plugin/parameter" "iiif"

first int: mixer-strip-id
2nd int: Nth plugin (start counting at 1)
3rd int: parameter ID (plugin-input control)
4th param: actual control value to set as float

Hint check Window > Log for errors (parameter mismatch)

Example:

oscsend localhost 3819 /strip/plugin/parameter iiif 3 1 2 400

HTH,
robin
Jörn Nettingsmeier
2017-06-19 22:01:13 UTC
Permalink
Post by Robin Gareus
Post by Jörn Nettingsmeier
Hi *!
I would like to be able to control a certain parameter of a certain
processor in every track/bus via OSC.
Every track at the same time? One message to all plugins?
I don't think that's possible.
My bad, sorry, each track individually.
Post by Robin Gareus
But there's "/strip/plugin/parameter" "iiif"
first int: mixer-strip-id
2nd int: Nth plugin (start counting at 1)
3rd int: parameter ID (plugin-input control)
4th param: actual control value to set as float
Hint check Window > Log for errors (parameter mismatch)
oscsend localhost 3819 /strip/plugin/parameter iiif 3 1 2 400
I was using this a while ago and while it worked somehow, I hit upon a
weird bug (some params being inaccessible, I need to dig up some old
notes, I think I put it in mantis...).
But since /strip doesn't show up when I run "ardour5 -A", I thought it
had been discontinued and didn't consider it. Is there a specific reason
it's omitted from the generated list?
--
Jörn Nettingsmeier
De Rijpgracht 8, 1055VR Amsterdam, Nederland
Tel. +49 177 7937487

Meister für Veranstaltungstechnik (Bühne/Studio), Tonmeister VDT
http://stackingdwarves.net
Len Ovens
2017-06-19 22:36:12 UTC
Permalink
Post by Jörn Nettingsmeier
Post by Robin Gareus
oscsend localhost 3819 /strip/plugin/parameter iiif 3 1 2 400
I was using this a while ago and while it worked somehow, I hit upon a
weird bug (some params being inaccessible, I need to dig up some old
notes, I think I put it in mantis...).
But since /strip doesn't show up when I run "ardour5 -A", I thought it
had been discontinued and didn't consider it. Is there a specific reason
it's omitted from the generated list?
Why would strip show up if you ran ardour5 -A ? It is not a menu action.
That is there is no menu option that does /strip something. the -A switch
shows menu actions that any surface can use and send signals to the GUI.
OSC on the other hand interacts with the strips and session directly
without going through the GUI at all (except for /access_action of
course). Please see
http://manual.ardour.org/using-control-surfaces/controlling-ardour-with-osc/
for the best source of information.

--
Len Ovens
www.ovenwerks.net
Jörn Nettingsmeier
2017-06-20 11:51:01 UTC
Permalink
Post by Len Ovens
Post by Jörn Nettingsmeier
Post by Robin Gareus
oscsend localhost 3819 /strip/plugin/parameter iiif 3 1 2 400
I was using this a while ago and while it worked somehow, I hit upon a
weird bug (some params being inaccessible, I need to dig up some old
notes, I think I put it in mantis...).
But since /strip doesn't show up when I run "ardour5 -A", I thought it
had been discontinued and didn't consider it. Is there a specific
reason it's omitted from the generated list?
Why would strip show up if you ran ardour5 -A ? It is not a menu action.
That is there is no menu option that does /strip something. the -A
switch shows menu actions that any surface can use and send signals to
the GUI.
Now that you mention it, it seems utterly obvious :)
Post by Len Ovens
OSC on the other hand interacts with the strips and session
directly without going through the GUI at all (except for /access_action
of course). Please see
http://manual.ardour.org/using-control-surfaces/controlling-ardour-with-osc/
for the best source of information.
Excellent, thanks! One question: the addressing of strips seems to rely
on the banking? That means an action happens like this:
tell ardour what banksize i want and select bank N
use strip SSID relative to bank N to perform an operation.

That means I can set banksize to 0 and basically address all
tracks/buses/vcas from my remote DAW easily, but only as long as I don't
want to use a banked control surface at the same time. Which I could
live with, just trying to see if my understanding is correct. Or is
there a way of absolutely adressing strips as well?

Luxury problem: would it be feasible to have Ardour listen to more than
one OSC port, with each port having different /set_surface settings? So
that I can have my OSC remote app, my physical fader bank, *and* some
other fancy remote control at the same time?
That is assuming the banking logic is contained in the OSC code - if
it's actually higher up in the mixer (which I guess it is given that the
code is probably shared with MIDI control), then it might be messy to try...
--
Jörn Nettingsmeier
De Rijpgracht 8, 1055VR Amsterdam, Nederland
Tel. +49 177 7937487

Meister für Veranstaltungstechnik (Bühne/Studio), Tonmeister VDT
http://stackingdwarves.net
Len Ovens
2017-06-20 14:12:46 UTC
Permalink
Post by Jörn Nettingsmeier
Excellent, thanks! One question: the addressing of strips seems to rely
tell ardour what banksize i want and select bank N
use strip SSID relative to bank N to perform an operation.
That means I can set banksize to 0 and basically address all
tracks/buses/vcas from my remote DAW easily, but only as long as I don't
want to use a banked control surface at the same time. Which I could
Not true, each device may have a different banksize, a different set of
strips, different fader math, etc. That is why /set_surface is
set_surface, the command only affects the surface sending the command.
Post by Jörn Nettingsmeier
Luxury problem: would it be feasible to have Ardour listen to more than
one OSC port, with each port having different /set_surface settings? So
that I can have my OSC remote app, my physical fader bank, *and* some
other fancy remote control at the same time?
As explained above, this is not needed.
Post by Jörn Nettingsmeier
That is assuming the banking logic is contained in the OSC code - if
Each surface has it's own banksize as well as current bank. Ardour saves
each incoming OSC url along with it's set_surface settings.

The GUI settings dialog may give the impression all surfaces must share
the same settings, but the GUI only sets the defaults. That is, it sets
what settings Ardour will use for a new surface that does not send a
set_surface command. A /set_surface command will override those settings
for that surface. Ardour's OSC tries to allow both the most rudimentry OSC
surface to be used like TouchOSC, or a very complex multi-surface setup. I
am looking at being able to "link" two or more surfaces to share one bank
(like a 6 strip surface and a 10 strip surface to work as a 16 strip
surface) as well.

--
Len Ovens
www.ovenwerks.net

Loading...