Re: [LAD] sliders/fans

From: David Robillard <d@email-addr-hidden>
Date: Fri Nov 25 2011 - 01:52:24 EET

On Thu, 2011-11-24 at 20:45 +0000, Fons Adriaensen wrote:
> 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
> > parameter values is an underlying model issue.
>
> 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
> 'VCA' faders.
>
> 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
> difference.
>
> 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
> fader_.

This isn't an "exception" to anything, you just described some
controller logic. I guess you are being pedantic and jumping on me
saying it's a "model" issue. True, it's not necessarily, depending on
your architecture. What I meant to say was it is definitely not a view
issue.

*No matter what* you have a widget which is giving you some value within
some range (possibly with some undesirable quantisation). This is true
even if you wrote the whole thing yourself from the ground up, it is
inherently true. With that value, you do whatever it is you need to do.

Some situations are indeed much more complex than others, but a widget
is still just a stupid thing that gives you a number.

-dr

_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@email-addr-hidden
http://lists.linuxaudio.org/listinfo/linux-audio-dev
Received on Fri Nov 25 04:15:02 2011

This archive was generated by hypermail 2.1.8 : Fri Nov 25 2011 - 04:15:02 EET