[LAD] [RFC] LADSPA 1.2

Pau Arumí pau.arumi at barcelonamedia.org
Sat Jun 20 12:06:19 UTC 2009


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 at lists.linuxaudio.org
> http://lists.linuxaudio.org/mailman/listinfo/linux-audio-dev




More information about the Linux-audio-dev mailing list