[linux-audio-dev] LADSPA2: logarithmic hint

Sean Bolton musound at jps.net
Fri Apr 28 17:01:15 UTC 2006


On Apr 28, 2006, at 1:30 AM, Steve Harris wrote:
> On Thu, Apr 27, 2006 at 08:39:06AM -0700, Sean Bolton wrote:
>> Okay, Steve, I trust you have something ready to go that you feel will
>> replace it, but I'm still worried.  The discussion you and Paul had on
>> this list sounded to me like you were both conflating the need for
>> scaling a linear range (widget or MIDI CC) to an exponential one
>> (e.g. frequency port), with the need to provide unit labels for port
>> values (e.g. "dBFS").  The two are independent, and I agree with
>> Dave that the log scaling hint is essential.  It does work when bounds
>> are sensibly specified (i.e. don't include zero), and needs to be
>> extended -- not dropped -- to handle the other common cases people
>> try to (ab)use it for.
>
> Sure, the problem is that the log hint doesn't actually do what you 
> want.
> The only time I use it is for frequency ports. Extending it so that it 
> can
> cover that case would be really hard, and it only covers the one case, 
> so
> you may as well just say "this is a frequency".
>
<snip>
>
> So, what you really need is the information about what the port is 
> actualy
> representing, that way the hosts can make an intelligent choice about 
> how
> to map it to a UI feature. eg. a pitch mapping for frequency inputs, 
> and
> an IEC scale for dBs.

Yikes, now I'm sure this is headed the wrong direction!  Say you specify
that a port is representing frequency -- is it a pitch multiplier, 
where the
'knob' should be scaled by pitch (i.e. log(frequency)), or does it 
refer to
an FFT bin, so that it should be scaled linearly?

How about a delay time whose unit is 'seconds'?  Log or linear scaling?
Or a distortion drive control whose unit is technically 'radians'? How's
a host supposed to figure out how to scale that?  What should it do with
a 'magnification' port that is unitless?

It's not possible for a host to know how to scale a port from just the 
unit
labeling.  Unit labeling and input value scaling are independent,  in 
fact
are completely orthogonal except in certain conventional cases like
IEC for some (not all!) dB ranges.

I'm okay waiting until the base LADSPA2 spec is done to figure this part
out, to keep the confusion down, so long as we all realize that until we
do, LADSPA2 hosts will be even more clumsy in this regard than
LADSPA 1 hosts currently are.

And Steve -- setting my knit-picking here aside ;-) -- thank you very 
much
for all your work on this!

-Sean




More information about the Linux-audio-dev mailing list