On Sun, 12 May 2002, Likai Liu wrote:

> I certainly agree that envelope control can be implemented by the host 
> passing dynamically changing parameters to the plugin. I have already 
> given a lot of thought on that. Consider the situation of a volume 
> adjustment plugin with host-controlled parameter as the envelope. 
> Suppose each buffer size is 128 samples, which is reasonably small for 
> dynamic parameter. When we want to do a fade-out, the host sends the 
> buffer to the volume adjustment plugin, specifying a decreasing, 
> negative gain each time. The problem is, for every 128 samples, there is 
> a leap of the control parameter, resulting in audiable steps of the 
> volume. Depending on the amount of parameter changes, this can be quite 
> audiable as clicks, even more so than how linear interpolation compares 
> to cubic resampling method. As Steve Harris pointed out, linear 
> interpolation does not have acceptable quality. I think it's even 
> pointless trying to convince him to accept the clicks caused by stepped 
> host-controlled dynamic parameters. Using arrays is one of the 
> extensible solutions on top of ladspa.

The easiest solution to this kind of problem (parameter change faster than
nr. of run() calls) is to make the parameter (here: the envelope) another
audio input stream - this way you get 1:1 parameter:sample mapping. The
host can be used to feed generated waves to such a port quite easily [for
GLAME we of course use another plugin for this wave generation, but that
again is not possible with LADSPA].

Richard.

--
Richard Guenther <[EMAIL PROTECTED]>
WWW: http://www.tat.physik.uni-tuebingen.de/~rguenth/
The GLAME Project: http://www.glame.de/

Reply via email to