Equalization Filter Length

I’m using 32767 band equalization presets to recreate all kinds of aircraft noise out of generated Brownian
noise for flight simulation. And often the maximum filter length of 8191 is good enough. But often times
it’s also not quite cutting it as you can see. Therefore I’d like to suggest that the filter length would be
made to match the size of the spectrum analysis.

Never mind, I made a custom build with a maximum length of filter at 131071.
A far more accurate low frequency response with the new setting.

How did you do it? It is really usefull, I wish I could use filters larger than 8191.

There is a notable difference with a longer filter. The longest I could come up with
is 4194303.

Here’s the difference. This is an UH-1H Huey Helicopter in cockpit sound completely
generated in Audacity out of Brownian noise and then equalised to sound like a Huey.

Filter length: 4194303

Filter length: 8191

I’ll write a followup post with the changes to the source code.

Here are the changes I made to the source code. I made the previous max filter
length my minimum so it’s easy to pull the slider to the minimum for
comparison. The max filter length is now 4194303.

My empirical tests showed that the window size on line 148 of the
Equalization.h should be twice the size of the filter length or else Audacity
will hang. And going past 810241024 doesn’t seem to work. At least
910241024 will not work.

Line 834 of the Equalization.cpp calculates the slider length of the GUI to
match the actual filter length.

And line 152 of the Equalization.h adjusts the low frequency limit. It was
20 Hz originally but I dropped it to 1 Hz. You could argue that one can’t hear
below 20 Hz but put a decent tactile transducer under your seat and your behind
might beg to differ.


Line 181: Param( FilterLength, int, wxT(“FilterLength”), 4194303, 8191, 4194303, 0 );
Line 465: gPrefs->Read(base + wxT(“FilterLength”), &filterLength, 4194303);
Line 467: if ((mM < 8191) || (mM > 4194303)) { // corrupted Prefs?
Line 468: mM = 4194303; //default
Line 834: mMSlider = S.Id(ID_Length).AddSlider( {}, (mM - 1) / 2, 2097151, 4095);


Line 148: static const size_t windowSize = 8388608u; //MJS - work out the optimum for this at run time? Have a dialog box for it?
Line 152: enum {loFreqI=1};