Forums > MaxMSP

Bad quality / non-linearity of fffb~


EMV
May 30, 2010 | 2:13 pm

While playing around with fffb~, I noticed that it alters the sound quite a lot even when all the bands are set to flat.
With musical input, you can hear the difference when putting fffb~ in the signal chain.

Further experiments are demonstrated in the patch below. Ideally, the signal going through fffb~ and the signal bypassing it should be identical, meaning they should cancel each other out.
The patch shows that this is never the case for the full spectrum: at different amplitude ratios of the bypassed and filtered signals, different parts of the spectrum are canceled out.

Is there a way to improve the linearity of the frequency response of fffb~?

___

– Pasted Max Patch, click to expand. –

May 30, 2010 | 2:48 pm

Hi.

Your problem is with phase response, not frequency response. Unfortunately, there is no way to have a flat phase response with an infinite impulse response filter such as reson~ or fffb~ (or biquad~, fwiw).

The only way to achieve it is using a finite impulse response filter such as buffir~, which in turns is much more computationally expensive and introduces latency.

Sorry for the bad news!
aa


May 30, 2010 | 2:59 pm

& what about a symetrical setup? :)

-110



EMV
May 31, 2010 | 11:33 am

Thanks andrea. I’ll look into buffir~, computer power or latency are not that big of a problem.

@ Roman: Can you explain what you mean by a symmetrical setup?
Of course if I put a flat fffb~ on the ‘bypass’ channel as well, the two sides will cancel each other out just fine.
But this still leaves me with the unwanted change in phase response.

Would an fft-based approach as in the forbidden planet example yield better results? (I’ll try it out anyway, but maybe someone can shoot down the idea before I try).

What I’m trying to do is build a patch that corrects the frequency response of a speaker system by taking a 1/3 octave full-band noise measurement and applying the inverse with a 1/3 octave EQ.


Viewing 4 posts - 1 through 4 (of 4 total)