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