On Thu, Nov 24, 2011 at 02:21:25PM -0500, David Robillard wrote:
> Agreed. Everything here is about the *view*. How that maps to actual
Not always. Consider the case of 'VCA' groups for faders. That
is: you have a slider that controls the gain of a group of
channels (without those being mixed). The effective channel
gain (in dB) is the sum of the per channel fader value and
the one from the group fader. The model sees only this sum.
Now a fader has to go down to zero gain (-inf dB). So you would
map the lowest possible (finite) value of the widget to something
that the model (the DSP code) would translate to 'off'.
The question is then: is this exception handled by the widget and
the DSP code, or by the DSP code only ?
Suppose the minimum value of the widget would correspond to say
-100 dB if not handled specially. If you just have a single fader
per channel, you could arrange for the model or the DSP code to
translate that to 'off'. That is no longer the case if you have
There are two thing you'd expect from such a system:
* If either the channel or the group fader is at minimum, then
the channel must be off (zero gain).
* If the channel fader is at -50 dB, and the group at -60 dB
you don't want zero gain, but -110 dB. Becaus either fader is
still in a position where you'd expect that moving it makes a
In other words, you'd expect such a system to behave as if you
had two faders in series.
Now if the DSP code only sees the sum of the two values (as it
should, having a VCA group is just a user interface issue), then
that implies that the mapping of the minimum fader position (e.g.
-100 dB) to something that would be interpreted as 'off' by the
DSP code (e.g. -9999999 dB) _must be done by each individual
Vor uns liegt ein weites Tal, die Sonne scheint - ein Glitzerstrahl.
Linux-audio-dev mailing list