2009/6/13 Jörn Nettingsmeier <nettings(a)folkwang-hochschule.de>de>:
hi everyone!
sorry if this has been discussed before, but i didn't find anything in
the archives...
consider the case of periodic control values of LADSPA plugins, for
instance the azimuth in a horizontal panner or the phase shift in a phaser.
currently, they are usually marked as BOUNDED_BELOW and BOUNDED_ABOVE,
but the host has no way of knowing that the upper bound is next to the
lower bound, so that it can chose the shortest path to the next value
when interpolating automation control points.
take ardour, for example: if i want to spin a source 360 degrees, i have
to start at 0, set a control point at 180, set another control point at
the exact next sample to -180 and then onwards. if there is even a
single sample between the control points, the interpolation will cause
the image to jump in weird ways, because it doesn't know that 180 == -180.
does it make sense to add a new hint to LADSPA, something like
LADSPA_HINT_PERIODIC? it would mandate LADSPA_HINT_BOUNDED_BELOW and
LADSPA_HINT_BOUNDED_ABOVE as well as the respective port range hints,
*and* imply that LowerBound is equivalent to UpperBound in the port
range hint structure.
this would enable hosts to do the Right Thing(tm).
Hi,
I think it makes no sense nowadays to do something like that, for two reasons:
* LADSPA is old, hence old LADSPA hosts will not support that and
new/maintained ones are not likely to support that, since many are
focusing on newer APIs;
* An LV2 extension would allow you to do that quite easily in LV2,
which is probably preferable these days.
That said, I can already hear people who disagree with me shouting and
screaming.
Stefano