[Ardour-Dev] OSC next

Len Ovens len at ovenwerks.net
Thu May 12 15:38:17 PDT 2016

Quick question for those interested.

Right now I have 4 different kinds of fader control (route gain):
absolute gain,
gain in dB,
fader position and
fader position as an uint.

Right now these are all separate commands:


If the GUI fader is changed, the same message is sent back to the control 
surface with the new value as well so that motor faders, encoders or 
remote GUIs can track GUI changes. However, the surface needs to know 
fader (and other) positions before the user tries to change the control or 
Ardours value will jump to where the surface's fader is. So there is a new 
/set_surface command that sets some variables for each surface in use. If 
that surface has feedback turned on, the current values will be sent to the 
surface. One of the values sent with the /set_surface command is the fader 
math to use. As such ardour already knows what math to use and could be 
just using /strip/gain for all four of the above. The only advantage for 
keeping all of the commands is for backwards compatability.

So my question is: should I keep all four messages intact or just use the 
one /strip/gain? (this would also impact /master/gain and /monitor/gain 
which I am working on now)

Anyway, as always there is an OSC branch... and documentation can seen 
here if that is easier:
(The Docs will be merged when osc hits main)

My thoughts on variable control math is that the most universal method 
would be control position. I would almost prefer to only offer position 
(either as 1024 int or float 0 to 1) for any variable control. The 1024 
option is the easiest for CPUs like Arduino that do better staying away 
from floating point math. It will still work with most FP kinds of things 
that can take a minimum/maximum value. So that is perhaps the most 
universal. The current default of abs seems to be the hardest method of 
dealing with fader values for any control surface.

I personally have been using gaindB with break points to give me something 
that looks like a P&G fader (percentage values were taken from their 104mm 
model) This gives me a fader with nice dB values on the surface, but I am 
sure I could do the same with position as well.

Using only one gain math would simplify things quite a bit. My only 
concern with using position is with software that communicates with 
Ardour. I am thinking things like PD that work with gain or dB internally.

Yes, I am definitely looking for comments.

Len Ovens

More information about the Ardour-Dev mailing list