Subject: Re: [linux-audio-dev] changing control port values with LADSPA: a serious issue?
From: Tim Goetze (tim_AT_quitte.de)
Date: Sat Mar 16 2002 - 23:27:46 EET
Paul Davis wrote:
>consider a simple case where you want to ramp a plugin parameter over
>the course of a call to process. if you obey current LADSPA semantics,
>the only ways to do this that i can think of are:
>
> 1) set the control port value to the end point, and pray that
> the plugin will ramp to it, based on the last value.
>
> 2) decide on the step size, and call process() N times with
> `step' frames, altering the control port each time.
both of which are not satisfying, as you rightly observed. overall i
think it is something of a serious issue since with current LADSPA
control ports sudden parameter changes usually result in audible
clicks, pops or other unwanted noise, depending on the plugin.
therefore i think that this aspect of LADSPA needs a change.
my proposal for a remedy is rather simple: let control port value
pointers not point to one LADSPA_Data but to an array of two.
the first represents the start, and the second the end value for the
next run*() call. the choice of interpolation method will be left to
the plugin which imo is the right place since the plugin author will
probably make a better choice than a host. in addition, compiled
plugins keep binary compatibility, though our hosts will need code
changes.
tim
This archive was generated by hypermail 2b28 : Sat Mar 16 2002 - 23:19:18 EET