XO filters collapse soundstage

Tavy

New Member
Thread Starter
Joined
Jun 1, 2026
Posts
7
Hi,

I picked up an XO license today because the workflow looked a lot simpler than REW, and I was curious to see whether TTD could improve my ProAc stereo setup. I tested the filters in Roon.

For measurements, I used an Eversolo MC-01 mic with calibration file and an R26II DAC with ASIO4ALL. As far as I can tell, the measurement side is working fine because the rating comes back excellent.

The problem is that every filter I generate seems to narrow the soundstage quite a lot, with the instruments collapsing toward the center.

Does anyone know what might be causing this?

In REW, it’s pretty straightforward to use one channel as the timing reference, but in XO I’m not really sure how time alignment is meant to be handled.

I haven’t tried multiple measurements per channel yet, since I first wanted to see what the default workflow would do.

One more minor question: is there any way to create a Harman-style target curve without entering it manually? For example, can XO import it from a text file?

Thanks in advance for any suggestions.
 
Is you system fully active or passive? What type of filters did you try? TTD, minimal XO, FR only? did you try partial correction? Is your room treated? Is there a sub in the system?
In my experience the more the room is acoustically treated the less the filter power you need. Try using less powerful filters and/or limiting the frequency of correction. TTD can create an amazing phantom center but limit sound-stage, in my experience.
 
I’m running a stereo passive setup (ProAc DT8 + Yamaha A‑S2200). I tried all the default filters and they all sounded pretty much the same, especially in terms of soundstage. Now I’m tweaking a partial correction filter — it’s definitely better, but still not quite where I want it. I’d also like to try a Harman‑style target, but I couldn’t find any version of it in the app (there’s no built‑in target either). Does anyone know if it’s available somewhere, or do I have to add it manually?
 
Do you know if it is possible to generate a filter as follows?

I take five measurements on the left channel (L1–L5) in different position.
I take five measurements on the right channel (R1–R5) in different position.
Then I create the filter with separate corrections for each channel, since the positioning is not perfectly symmetrical and the low-frequency response is different.

If I use the "Speaker by speaker" setting during the measurement, will the end result be similar to having a separate filter for each channel?
 
Try a minimum phase filter and let us know how it sounds. Also, you could try something with Q-sound to double-check.
 
I’ve tried a minimum-phase filter, but no real improvement so far—the soundstage is actually getting worse compared to the original. I’ll give it a few more days before deciding. I’m also waiting for answers to my earlier questions—maybe they’ll point me in the right direction… or confirm it’s not what I was looking for 😄.
 
Do you know if it is possible to generate a filter as follows?

I take five measurements on the left channel (L1–L5) in different position.
I take five measurements on the right channel (R1–R5) in different position.
Then I create the filter with separate corrections for each channel, since the positioning is not perfectly symmetrical and the low-frequency response is different.

If I use the "Speaker by speaker" setting during the measurement, will the end result be similar to having a separate filter for each channel?
I am not a 100% sure what you mean. But you could make several measurements and have AL average the response. As for the curve, I am not aware of a way to upload a curve via text file or something like that. At any rate it is usually advisable to have the curve run (hug) close to your actual response. Hope that helps.
 
Ok, thanks. I was hoping I could download the Harman curve from the internet and upload it like I did in REW, without manually entering the data—or at least paste it directly into the chart. I might end up doing it manually, but I’d rather sort out the more important things first.
 
Do you know if it is possible to generate a filter as follows?

I take five measurements on the left channel (L1–L5) in different position.
I take five measurements on the right channel (R1–R5) in different position.
Then I create the filter with separate corrections for each channel, since the positioning is not perfectly symmetrical and the low-frequency response is different.

If I use the "Speaker by speaker" setting during the measurement, will the end result be similar to having a separate filter for each channel?
The normal approach has been proven to work for nearly 20 years now. There’s no point in second-guessing it. Unless you want to trade the best possible result in the sweet spot with improved sound in other seats, one single all-in-all measurement is the best approach.

It is normal that sound stage becomes more narrow when the speakers are corrected with this level of precision. But it is far from a collapse. It gets sharper both in depth and width.

Unless q-sound or similar effects have been added to the mix, the recorded sound stage width does not exceed the distance between the speakers.

The wide sound stage you are accustomed to may come from asymmetric reflectioms from the side walls and therefore a weak correlatiom between left and right speaker+room. This can create a sound stage that reaches outside the speakers and discrimimates poorly between different ambiences.

Did you try q-sound? If Q sound works, Audiolense is locating the sound as it has been recorded. And if you want a wider sound stage you can increase the distance between the speakers.
 
Thank you for the reply!
As a classical music lover, I have a few reference recordings where I can pinpoint the exact square inch each musician occupies on stage. Because of this precise imaging, I’d like to think my room reflections aren't completely fooling my ears just yet.
When I built my current filters in REW, I went full "mad scientist" mode: 9 measurement points around the sweet spot for each channel, carefully time-aligned, which gave me the solid result I have today. Naturally, I tried to replicate this exact recipe in Audiolense, hoping that TTD (True Time Domain) correction would work its magic and elevate my soundstage even further.
Right now, the result is quite the opposite—my orchestra sounds like it took a wrong turn on the way to the venue. However, I know Audiolense is a powerful beast with a notoriously steep learning curve (and documentation that leaves a bit to the imagination). I am fully prepared to take this step-by-step.
I’m sure many advanced users here have survived these exact same growing pains and can point me in the right direction. I hope I’m not breaking any forum rules or wearing out my welcome with questions that might seem elementary to a veteran.
Thanks again for your patience and help!


 
I had similar issues. For me an improvement in room treatment, qrd diffusesers+spacing from the wall of the early reflection panels, improved the time domain of the sound. Then I could let up full TTD and move to minimal xo with with partial correction. For music that has many instruments or is just sonicly dense like orchestra or progressive rock I correct up to 5khz. For Trios and such sometimes up to 700hz is fine. You got an impressive setup, what is your source? where does the convolution happen?
 
I’m also limiting correction to below 500 Hz, deliberately leaving the upper frequencies untouched, as the speakers already deliver excellent linearity along with a very natural, coherent timbre that I’d rather preserve than “optimize” into something else. 😄

The system chain is currently: Eversolo T8 streamer → USB out → Gustard U26 DDC → I2S out → Gustard R26 Mk2 DAC → XLR → Yamaha A-S2200 → ProAc DT8.
On the source side, I’m running a Roon ROCK server on an Intel i7 NUC, housed in a fanless chassis with an 8 TB SSD. Streaming sources are Tidal and Presto Music.

One of the T8’s strong points is its support for convolution filters, which becomes particularly valuable when dealing with streaming sources—especially those that can’t be natively integrated into Roon (Presto Music being a good example). I also have convolution filters configured in Roon and enable them when needed—particularly for DSD files, as the T8 cannot process these due to its limited CPU power.

At this stage, I’m still in the process of exploring what AI can—and just as importantly, cannot—bring to the table. It’s a fairly time-consuming exercise, and as usual, time isn’t always on my side. Still, that’s to be expected: with tools this capable, there’s always a learning curve involved… and occasionally the illusion that we’ve already mastered it. 😉
 
Back
Top