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/