• 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

I am personally working on, planning for a multi-sub system that will be "somewhat portable", sometimes used outdoors.

So room correction needs to be kept a separate "layer" from the crossovers "speaker building" / bass management side.

Even maybe doing the timing / spatial tuning, smoothing for a wider LP area separately from magnitude, otherwise the driver layout, relative distance differences must be precisely maintained setting up every time.

but if truly automated, that is A Good Thing

then maybe doing it all together is OK if the workflow is sped up.
That's actually a very good point.

What you're describing is one of the reasons subwoofer integration is proving much harder than ordinary room correction.

For a fixed listening position, it's often possible to optimize crossover frequency, delays, gains and phase relationships quite aggressively. But as soon as you start optimizing for a wider listening area, portable systems, or systems that are frequently moved, some of those assumptions break down.

I think there is a strong argument for treating speaker integration / bass management and room correction as separate layers. The challenge is that they are also strongly coupled. A crossover decision affects the room response, and the room response affects what appears to be the "best" crossover decision.

My current goal is not to force everything into a single giant optimization, but rather to find a workflow where the integration layer and the room-correction layer can cooperate without the user having to manually iterate between them.

Whether that eventually ends up being one optimization stage or multiple stages is still an open question. The more measurement data I collect from real systems, the clearer that answer becomes.
 
Another wrinkle.

State of the art for the "smoothing wider LP area" is apparently MSO.

But that only acts on overlapping subs, plus

requires all to be fed the same pre-split signal

and Mono Subs only, even if the collection is diverse.

I have LRC stacks emulating big floorstanders, high SPL full range right down to 20Hz if possible

So the subs in those stacks cannot be managed by MSO, I want the option to strive for precise transient performance, optimal soundstage and test for (enable) perception of envelopment.

I'm willing to add additional subs as mono, freely placed maybe 3-4. Try MSO managing them separately, able to turn off / on for different "usage modes" critical music vs film watching vs dance party, etc

Another option, keeping those "non bed" subs as stereo placed L/R, like with the surrounds, and/or center rear.

So just to lay out a worst case scenario design 8-)
 
Thanks for your work. I am first reading the instructions, but have a question:
What is the purpose of the XO options in the advanced tab?
Do I enter the current XO settings in my speakers?
Or something else?
Cannot find an explanation in the manuals.
 
Thanks for your work. I am first reading the instructions, but have a question:
What is the purpose of the XO options in the advanced tab?
Do I enter the current XO settings in my speakers?
Or something else?
Cannot find an explanation in the manuals.
Sorry that the XO explanation is currently missing from the documentation. I think I may have fallen into the trap of assuming it was self-explanatory because I've been staring at it for so long. |)

The XO tab is intended for correcting the acoustic crossover phase region between drivers within a speaker (for example woofer ↔ tweeter integration). You enter the speaker's crossover frequencies there, not room crossover settings or subwoofer crossover settings.

Whether to use it is somewhat subjective. Some users really like the results because it can improve phase alignment and integration around the crossover region, while others prefer to leave it disabled and keep the correction more conservative.

So in short:

- Enter your speaker's crossover frequencies if you know them.
- The feature is designed for driver crossover correction inside the speaker.
- It is completely optional. Some people prefer the sound with it enabled, others without it.

I'll add a proper explanation to the manual in a future update.
 
If I have non-DSP crossovers working between separate enclosures would it be worth entering them to see?
 
If I have non-DSP crossovers working between separate enclosures would it be worth entering them to see?
Can You elaborate this case some more precisely?
 
VilhoValittu described the feature as being for crossovers within an enclosure

I was asking about, not that.

Ask questions about what you're not understanding, I don't know how to write it more clearly.
 
You mentioned "crossovers working between separate enclosures": that would mean more than one enclosure driven by a single crossover ... or did you mean 'crossover working in single enclosure seperating several channels', as it is standard in passive speakers?
 
You mentioned "crossovers working between separate enclosures": that would mean more than one enclosure driven by a single crossover ... or did you mean 'crossover working in single enclosure seperating several channels', as it is standard in passive speakers?
Not the latter

"crossovers working between separate enclosures", is the opposite of, those working in a single enclosure innit.

Separating a signal between a sub and mains is the most common example of what I wrote.

...

Here is a more complex exampe:

(Within the F-L/R colocated stacks)

between the LS50s and the top MBM couplers, ~160-200Hz

between the MBM couplers and Sub2 type, ~80Hz

Between Sub2 and Sub1, ~50Hz

Rumble filter HP ~18Hz

...

Center stack likely the same, but hopefully no MBM needed
 
If I have non-DSP crossovers working between separate enclosures would it be worth entering them to see?
Yes, absolutely. That's actually one of the cases where it can be useful to experiment.

If your speaker system uses passive (non-DSP) crossovers between separate enclosures, the acoustic crossover region can still exhibit phase rotation and summation effects. The XO feature allows DecayCore to be aware of those crossover frequencies and apply more appropriate phase handling around them.

I would treat it as an experiment rather than a guaranteed improvement. Some systems benefit noticeably, while others sound better with XO disabled. The result depends on the crossover design, driver behavior, and room acoustics.

My recommendation would be simple: run one filter with the XO frequencies entered and another without them, then compare both measurements and listening impressions. Let your ears be the final judge.
 
If your speaker system uses passive (non-DSP) crossovers between separate enclosures, the acoustic crossover region can still exhibit phase rotation and summation effects. The XO feature allows DecayCore to be aware of those crossover frequencies and apply more appropriate phase handling around them.

Same with active-electronic (non-DSP) ones?

What if passband applied separately each box rather than one device in control

So LR24 at the LPF on one box, but B12 at the HPF side of the other, and allowing some overlap?

Q1. still worth the experiment? Q2. can these be entered into your UI ?
 
Yes, it is still worth experimenting with.

The XO section was originally designed around conventional loudspeaker crossovers, but there is nothing preventing it from being used with active electronic crossovers as well.

From DecayCore's perspective, the key consideration is that any crossover introduces phase rotation in the crossover region. This occurs regardless of whether the crossover is passive, active analog, or DSP-based. While the specific behavior varies depending on the filter design, the fundamental principle remains the same.

Regarding asymmetric crossover slopes (for exaple, LR24 on the low-pass side and B12 on the high-pass side), the current user interface is not designed to model complex crossover topologies with a high degree of precision. Instead, it serves as a crossover-awareness feature rather than a comprehensive crossover simulation tool.
In your case, i would simply enter the crossover frequency as a reasonable approximation and see how the result compares to running without XO information.

At the end of the day, your ears are the best judge. If you like the result with XO enabled, go with it. If it sounds better with it disabled, that's totally fine too.

Xo tab on DecayCore . Q2 : Just simple frequency and slope settings.
 
Last edited:
Perfect.

Yes I've read about tools that require closely matching the xover parameters. That strikes me as less than ideal, prone to error with edge cases.
 
Hello, not all convolvers can import separate R and L files. Please add stereo wav file to the export

1780866866614.png
 
Thanks for your work. I am first reading the instructions, but have a question:
What is the purpose of the XO options in the advanced tab?
Do I enter the current XO settings in my speakers?
Or something else?
Cannot find an explanation in the manuals.

XO Phase Model (Crossover Phase Correction)​

The XO tab models the phase shift introduced by your speaker’s passive or active crossover filters. When configured correctly, DecayCore accounts for this phase contribution during FIR generation, ensuring the correction cooperates with the speaker design instead of fighting it.

What it does:

  • defines the frequency and slope of each crossover network in the speaker
  • tells DecayCore to include theoretical phase data for those crossovers in its FIR synthesis
  • avoids over-correcting or partially opposing the speaker’s intended crossover behavior
Availability:

The XO tab is only active when the filter type is Asymmetric or Linear Phase. It is disabled for Mixed Phase and Minimum Phase modes, which do not use a theoretical crossover phase model.

How to use it:

  1. Identify the speaker’s crossovers — look for passive dividing networks (crossover frequencies and slopes) or active HPF/LPF filters built into the speaker or amplifier.
  2. Fill in up to five XO slots:
    • Frequency (Hz) — the crossover point, e.g., 2500 for a tweeter crossover
    • Slope (dB/oct) — the filter slope, e.g., 12 dB/octave. Options are 6, 12, 18, 24, 36, or 48 dB/oct
    • Leave unused slots empty
  3. HPF/subsonic filter — the high-pass filter (e.g., a subwoofer’s 20 Hz 24 dB/oct HPF) is configured in the Basic tab but feeds the same theoretical model
Practical examples:

  • 2-way speaker, 2.5 kHz tweeter crossover at 12 dB/oct: enter 2500 Hz, 12 dB/oct
  • 3-way speaker with woofer/midrange crossover at 500 Hz (18 dB/oct) and midrange/tweeter at 4 kHz (12 dB/oct): fill XO 1 with 500 / 18 and XO 2 with 4000 / 12
  • Active subwoofer with 80 Hz low-pass (24 dB/oct): enter 80 Hz, 24 dB/oct
  • Full-range driver with no crossover: leave all XO slots empty
Only describe filters that already exist in your system. Do not invent crossovers.

Understanding the results:

After a run, the results section shows:

  • XO Phase Model — the list of configured crossovers and slopes (e.g., “2500 Hz / 12 dB/oct”)
  • XO delta GD badge (v1.0.9.2 -->) — a coloured indicator (LOW / MED / HIGH) describing how much phase complexity the crossover introduces:
    • LOW (green) — “Small crossover effect”
    • MED (orange) — “Moderate effect - correction helps”
    • HIGH (red) — “Large effect - correction needed)”
  • Phase and group-delay metrics — detailed values showing the phase deviation and group-delay excess at and around the crossover frequency
If left empty:

DecayCore assumes a flat theoretical phase response (no crossovers). This is correct for full-range drivers or coaxial designs but leaves the crossover region uncorrected on multi-driver speakers. If your speaker has multiple drivers with a crossover, specifying the XO parameters usually improves the overall phase coherence of the room-correction result.

DecayCore user manual part 9.8
 
ASR should have special 'badges' for active developers :)
 
Back
Top Bottom