[Ardour-Dev] OSC next
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):
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.
More information about the Ardour-Dev