• Welcome to ASR. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

DecayCore — Free FIR room correction with temporal decay control, automatic optimization and measurement workflow

As I understand it, DecayCore don't have resolution settings for the FIR filter - 1/24 octave for low frequencies, 1/3 octave for highs, etc.? What is your default filter resolution?
DecayCore uses frequency-dependent smoothing that varies continuously based on frequency and acoustic confidence:

  • Bass (below ~120 Hz): ~1/96 octave — very fine, because modal behavior in the bass warrants precision
  • Midrange transition (~120–350 Hz): blends progressively wider
  • Treble (above ~350 Hz): ~1/3 octave — broader, because trying to correct the high end at 1/96 oct resolution mostly just ends up chasing measurement noise
On top of that, there's an Adaptive FDW layer that dynamically adjusts the effective smoothing width per frequency bin (between 1/96 and 1/2 oct) based on how "trustworthy" each part of the measurement looks. If a frequency region has low acoustic confidence, it gets extra smoothing to avoid overcorrecting garbage data.

So the effective behavior ends up being similar to what you described — fine resolution at lows, broader at highs — but it's driven automatically by the pipeline rather than set manually.
 
So I tried it today. I used measurements I did with REW a while ago and that current room correction is based on. I use drc-fir as correction engine, the rest around it I build myself. I have a script for editing the drc config with regards to frequency dependent window lenghts etc.

DecayCore works well out of the box giving good bass correction in the upper layers that is similar to what I am using as well. That said you can see the massive lack of lower bass with the default setting (red).

1780940781827.png


I was wondering why I stopped at 300hz until I found the switch. Unfortunately trying to use it full range as I do currently with my correction (tho you can see its a very very mild correction in higher frequencies) does not work at all for me with DecayCore. No matter the target curve I use it massively overcorrects the higher frequencies into the wrong direction even and it also overcorrects the lower regions leading to a very bright sound (blue line). However the deep bass I was missing before seems to have returned.

I've attached the measurements if you want to take a look. Maybe it's user error I don't know.
 

Attachments

Last edited:
Bass (below ~120 Hz): ~1/96 octave
Oh! For the first time I see such a monstrous resolution, these are Hertz fractions - what's the point? All artifacts from the microphone and all zeros will also be included here
 
So I tried it today. I used measurements I did with REW a while ago and that current room correction is based on. I use drc-fir as correction engine, the rest around it I build myself. I have a script for editing the drc config with regards to frequency dependent window lenghts etc.

DecayCore works well out of the box giving good bass correction in the upper layers that is similar to what I am using as well. That said you can see the massive lack of lower bass with the default setting (red).

View attachment 537772

I was wondering why I stopped at 300hz until I found the switch. Unfortunately trying to use it full range as I do currently with my correction (tho you can see its a very very mild correction in higher frequencies) does not work at all for me with DecayCore. No matter the target curve I use it massively overcorrects the higher frequencies into the wrong direction even and it also overcorrects the lower regions leading to a very bright sound (blue line). However the deep bass I was missing before seems to have returned.

I've attached the measurements if you want to take a look. Maybe it's user error I don't know.
Hi,

No user error. I checked these and I get same results. I will investigate this. These are first measurements that I know, that behaves like that on program.

I pressume that these are nearfield monitors? What is distance between mic and speakers?

And one, not so important question, why do you wanna correct so high?
 
I pressume that these are nearfield monitors? What is distance between mic and speakers?

And one, not so important question, why do you wanna correct so high?
These are Audio First Fidelias, measurement distance is ~1m. Why correct so high...why not? Isn't the point of frequency dependend windowing that you can do it, have at lot correction in the bass and very little in the highs? I use a very soft correction, here are my current settings for DRC-FIR:

Code:
Parameters (old -> new):
BCSampleRate               48000  ->  48000         
EPBandSplit                    6  ->  6             
EPLowerWindow                600  ->  600           
EPPFFinalWindow              600  ->  600           
EPUpperWindow                 14  ->  14            
EPWindowExponent            0.65  ->  0.65          
EPWindowGap                   14  ->  14            
ISPELowerWindow              300  ->  300           
ISPEUpperWindow              225  ->  225           
MPBandSplit                    6  ->  6             
MPLowerWindow              14400  ->  14400         
MPPFFinalWindow            14400  ->  14400         
MPUpperWindow                 24  ->  24            
MPWindowExponent             1.0  ->  1.0           
MPWindowGap                   24  ->  24            
MSFilterDelay                300  ->  300           
MSOutWindow                16384  ->  16384         
PLOutWindow                    0  ->  0             
PSFilterLen                16383  ->  16383         
PSNormFactor                 1.0  ->  1.0           
PSOutWindow                16384  ->  16384         
PTFilterLen                65536  ->  65536         
PTReferenceWindow          28800  ->  28800         
RTBandSplit                    6  ->  6             
RTLowerWindow              14400  ->  14400         
RTOutWindow                48000  ->  48000         
RTUpperWindow                 24  ->  24            
RTWindowExponent             1.0  ->  1.0           
RTWindowGap                   24  ->  24            

Frequency-dependent MP windowing (one-sided):
  Freq        Window
     20 Hz :   3.00 cyc /   150.00 ms
    100 Hz :   3.38 cyc /    33.79 ms
   1000 Hz :   4.01 cyc /     4.01 ms
  20000 Hz :   5.00 cyc /     0.25 ms

Frequency-dependent EP windowing (one-sided):
  Freq        Window
     20 Hz :   0.12 cyc /     6.25 ms
    100 Hz :   0.26 cyc /     2.60 ms
   1000 Hz :   0.74 cyc /     0.74 ms
  20000 Hz :   2.92 cyc /     0.15 ms

Excess-phase lower window (20 Hz, one-sided):  0.12 cycles / 6.25 ms
Excess-phase upper window (20 kHz, one-sided): 2.92 cycles / 0.15 ms

When done well, I prefer full range correction to just stopping at Schröder.


e: To be more precise. These are Audio First Fidelias crossed over to custom build stereo subwoofers at 100hz. The crossover is part of the measurement so I can correct the full system including the XO. XO is 24db/LR using custom IIR filters.
 
Did you buy speakers for $2000 to listen to them from a distance of 1 meter?))
Most near field monitors are fine at that distance, and many are significantly more expensive. The most comparable on Genelec's selection chart is probably the 8330A.

correct-monitors-spl-chart.jpg
 
Oh! For the first time I see such a monstrous resolution, these are Hertz fractions - what's the point? All artifacts from the microphone and all zeros will also be included here
The 1/96 octave setting is used internally for DSP processing, target curve fitting & correction filter design. At that resolution the filter designer can see the true shape of the room's transfer function before deciding how much to correct.

You're right that at 1/96 all measurement noise, microphone self-noise, and acoustic nulls are visible — that's intentional. The correction algorithm needs to see them to make informed decisions about what to fix and what to leave alone. Blindly smoothing before the design stage can cause the filter to over-correct in the wrong places.

The resolution also relates directly to FFT bins.
For example : A typical room measurement at 48 kHz with a 128k FFT gives a bin spacing of ~0.37 Hz. At 1 kHz, one octave spans roughly 1000 Hz, so 1/96 of an octave is about 10 Hz — meaning roughly 27 raw FFT bins fall inside a single 1/96-octave smoothing window. The "monstrous" resolution is simply fine enough to operate near the native bin density of the measurement, preserving real acoustic features instead of averaging them away prematurely.
 
So I tried it today. I used measurements I did with REW a while ago and that current room correction is based on. I use drc-fir as correction engine, the rest around it I build myself. I have a script for editing the drc config with regards to frequency dependent window lenghts etc.

DecayCore works well out of the box giving good bass correction in the upper layers that is similar to what I am using as well. That said you can see the massive lack of lower bass with the default setting (red).

View attachment 537772

I was wondering why I stopped at 300hz until I found the switch. Unfortunately trying to use it full range as I do currently with my correction (tho you can see its a very very mild correction in higher frequencies) does not work at all for me with DecayCore. No matter the target curve I use it massively overcorrects the higher frequencies into the wrong direction even and it also overcorrects the lower regions leading to a very bright sound (blue line). However the deep bass I was missing before seems to have returned.

I've attached the measurements if you want to take a look. Maybe it's user error I don't know.
This was real bug at my null guard. That combined to low volume measurement produced funny results.

Fixed at v1.0.9.3
 
DecayCore lacks a spectrogram to assess the effect of the room on low frequencies at the current correction settings (changes dynamically immediately after the settings are applied), this is a screenshot from similar Cavern EQ FIR correction program.


1781175440209.png
 
DecayCore lacks a spectrogram to assess the effect of the room on low frequencies at the current correction settings (changes dynamically immediately after the settings are applied), this is a screenshot from similar Cavern EQ FIR correction program.


View attachment 538340
Thank you for the suggestion! I'd like to clarify DecayCore's design philosophy:

DecayCore is a room correction and tuning tool, not an acoustic analysis platform.

Adding a spectrogram would shift the focus away from DecayCore's core mission. For in-depth spectral analysis and acoustic measurements, I recommend dedicated tools designed for that purpose.

DecayCore remains focused on what it does best: practical room acoustic correction and optimization.
 
DecayCore is a room correction and tuning tool, not an acoustic analysis platform.

Adding a spectrogram would shift the focus away from DecayCore's core mission. For in-depth spectral analysis and acoustic measurements, I recommend dedicated tools designed for that purpose.
Cavern EQ does the same thing - but the creator saw fit to add a spectrogram to quickly assess the impact of the room, and I agree with him.

It is much faster and easier to do this within one program than to upload the measurement results to REW
 
Back
Top Bottom