2007/2/17, Camilo Polyméris <[EMAIL PROTECTED]>:
>>> 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