[linux-audio-dev] processing plugin standard wrapper

Stefano D'Angelo zanga.mail at gmail.com
Sat Feb 17 06:19:05 UTC 2007


2007/2/17, Camilo Polyméris <cpolymeris at gmx.net>:
>
> >>> Ok, i get the context now. As you say, I'am both teacher and researcher,
> >>> but my field is Software Engineering and my knowledge on theoretical DSP
> >>> is not that mature, so don't take my DSP related statements so serious.
> >>> To my level of knowledge, i could say that most of the plugins are not
> >>> just LTI so, the kind of optimization you suggest would be not general
> >>> just appliable to consecutive adjacent LTI systems. At the same time is
> >>> something that may have a lot of sense in FreeADSP.
> >>>
> >> I actually don't know how many plugins are LTI, but, for example, a
> >> lot of delays, reverbs, choruses, eq. filters, compressors, modulators
> >> and "sound mixers" should be, and that's quite enough after all.
> >> Consider that in the case of commonly used guitar effects the only
> >> non-linear effects by their nature should be hardware-simulators
> >> (valves, amps, etc.), distortions and synths.
> >>
> >
> > Not sure at all, but i thought compressor was an example of non linear
> > transformation and they normally have an adaptive behavior which make them
> > not time invariant, so you cannot model it as a single H(f). It is very easy
> > to find a plugin which has been introduced non-linearity o time-variation
> > thought the main function (a filter, chorus, reverb...) is LTI. We are also
> > used other kinds of transformations such as sine shifting that are far from
> > linear also.
> You are right. Compressors are the archetypical examples of non-linear
> filters. Delays, reverbs, chori, etc. are non-TI (they depend of past
> input).
> Still, there may be other properties which could be exploited for
> optimization, as Stefano suggests. For example, you could collapse
> several equalizers to one filter. Or if two consecutive plugins do FFT,
> the first could pass the information to the second in the frequency domain.
> Neither of these would work with current plugin architectures, though.
> While I didn't think of plugins, but rather of more low-level components
> (constructs of an audio-oriented programming language, or similar), I
> have also been playing with a similar idea, but have not come to any
> conclusions yet. I hope the linux-audio-dev comunity does.

Yes, compressors are non-linear because their output depends on the
value of the input, however reverbs, choruses, etc. are linear, no
matter that they depend on past input (also low-pass and high-pass
filters depend on past input really :-)
If you are not convinced a simple delay could have this transformation equation:

y(t) = sum ( alpha_k * delta (x - kT) )

with k >= 0. If you do

T(a*x1(t) + b*x2(t)) = a*y1(t) + b*y2(t) = a*T(x1(t)) + b*T(x2(t))

y1 and y2 are different only because of alpha_k coefficients, so the
filter is definitively linear :-)

Stefano



More information about the Linux-audio-dev mailing list