[LAD] [RFC] LADSPA 1.2

Jörn Nettingsmeier nettings at folkwang-hochschule.de
Thu Jun 18 16:28:32 UTC 2009


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




More information about the Linux-audio-dev mailing list