Hi Jörn,
I've just discovered this thread (and haven't found time to go through
the tail of it). I just wanted to add that we (clam developers at
BarcelonaMedia) are facing the same problem for the 3D audio systems,
and so we'd clearly advocate for having this functionality -- either
being Ladspa 1.2 or LV2 extension(?), I have no strong opinion on that.
However we currently workaround this problem by doing the following: we
always define the acoustic scene outside ardour (in blender for
example), and then we export to the ardour automations writing directly
in the ardour xml session. By doing this you can control the problem
since you can detect the time your control would have a circular jump
(say from -180 to +180). There you insert two controls (-180 and 180)
separated with the minimum time unit.
Regards
Pau
El dj 18 de 06 de 2009 a les 18:28 +0200, en/na Jörn Nettingsmeier va
escriure:
hi everybody!
as discussed in another thread, i would like to propose a new LADSPA
release 1.2, which should include the following changes:
1. addition of a port range hint flag LADSPA_HINT_PERIODIC to denote
periodic behaviour of a control port to be added to the
LADSPA_PortRangeHintDescriptor bit field.
if present, both LADSPA_HINT_BOUNDED_BELOW and
LADSPA_HINT_BOUNDED_ABOVE must be specified as well. moreover,
both LowerBound and UpperBound must be present in the corresponding
LADSPA_PortRangeHint struct.
the presence of LADSPA_HINT_PERIODIC implies that LowerBound is
equivalent to UpperBound.
hosts should consider displaying a widget that reflects the periodic
nature of the corresponding control value, such as a rotary control.
hosts that interpolate between control values defined by the user
(such as automation points in a DAW) should take into account that
the shortest path between two given values might cross the
boundary defined by LowerBound resp. UpperBound and behave
accordingly.
usage example: soundfield rotators, circular panners
2. addition of a port range hint flag LADSPA_HINT_ENUMERATED to inform
hosts that an integer-type port (as denoted by LADSPA_HINT_INTEGER)
should be annotated with a set of labels rather than numbers.
LADSPA_HINT_ENUMERATED mandates the following:
LADSPA_HINT_INTEGER is set.
LADSPA_HINT_BOUNDED_BELOW and LADSPA_HINT_BOUNDED_ABOVE must be set.
in LADSPA_PortRangeHint, LowerBound must be 0, UpperBound must be >0.
the number of labels provided must be equal to (UpperBound - 1).
some of these mandatory settings are redundant and could be handled
as being implicit.
however, for the sake of backwards compatibility and to to allow
older hosts to display a meaningful UI even if they don't implement
the new flag yet, all these items MUST be set.
as to the location of the actual enum of labels: fons adriaensen
suggests adding them to the end of the PortNames array.
this implies that for multiple enum-labelled controls, the labels
would have to be concatenated and the host would have to tell them
apart by keeping track of the corresponding UpperBound offsets, which
might become a little messy. your comments are welcome.
best,
jörn
_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev(a)lists.linuxaudio.org
http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev