• WANTED: Happy members who like to discuss audio and other topics related to our interest. Desire to learn and share knowledge of science required. 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!

Anything wrong with linear phase through the bass roll off?

I dunno.
I don't try much to ascertain why most companies do what they do. You may be right.
My guess is that it is more about latency than anything else, certainly so in the prosound world.
In the home audio world, my guess is it's more about audio-phoolia and anti-dsp for classic stereo, followed by latency for HT.
Latency is real, and the only cost to lin phase in general, imo. Bottom end is the discussion however, and different topic.

Imo, the ONLY way to effectively eliminate group delay is to have displacement capability to f-3 that requires very low order rolloff. Seldom, if ever encountered.
I will say this though, the closer I can get to that scenario, the less I believe group delay is inaudible.
Even mostly home focused designs like the D&D 8C (which is absolutely aimed towards domestic use) doesn't bother, but they *do* fix the crossover phase rotation.
 

Attachments

  • Group Delay (Dutch & Dutch 8c).png
    Group Delay (Dutch & Dutch 8c).png
    101.6 KB · Views: 62
Even mostly home focused designs like the D&D 8C (which is absolutely aimed towards domestic use) doesn't bother, but they *do* fix the crossover phase rotation.
Well, in the case of the 8C I'd say the large group delay is more of an issue that can't be dealt with, than one D&D didn't bother with.

I say can't be dealt with, given the acoustic design and the limited amount of displacement 2x8" woofers provide for the bottom end.
To get them down to 30Hz with decent SPL necessitates a steeper roll-off below 30Hz for excursion limiting's sake....which of course means increased group delay.

Ime/imo, we simply have to hear a larger version of the 8C, with more low end displacement that doesn't need to roll-off as fast, to assess/compare audibility of group delay.
That's why I said a low f-3 that doesn't have steepening roll-off is seldom encountered. It takes a lot of displacement to keep up with the entire spectrums target SPL goal.
The only real way I know is a boatload of sealed displacement that needs no low end boost, and just needs attenuation above the f-3 corner.

For me, this discussion and it's twin going on in the other thread, boils down to a few conclusions:

*Linearizing the bottom end rolloff doesn't work, because step response takes a nose-dive, and pre-echo wants to pop through.
*Group delay's audibility is contentious, but most people want to minimize it as much as possible...witness the zillion sealed vs vented sub debates etc...
*Phase rotation audibility is also contentious, but again many people want to minimize it as much as possible....witness the first order IIR vs higher order debates and speaker designs.

*Linear-phase xovers are a no-brainer imo. The possibility of all win, with no lose.
Phase above the bottom end roll-off, aka the entire speaker's response, need not be an issue anymore.
Too easy to make flat.
The amount of FIR required is less than most folks think ime. The number of taps needed @ is simply what it takes to handle the lowest xover being employed. Everything below that xover frequency can be handled by IIR EQ, and IIR system high pass.

*Group delay can only be reduced with enough displacement not to have entered the roll-off region, at desired SPL and low freq extension. (repeat from above)

Sorry, maybe a little long winded here...
 
So are you saying Thiel and Vendersteen and their first order crossover are onto something?
Yeah, for sure. I think many folks have thought first order designs, be they full-rangers with limited freq extensions on both ends,
or multi-ways with xovers having the least phase rotation possible...
.....often have an especially nice sound.
 
For me, this discussion and it's twin going on in the other thread, boils down to a few conclusions:

*Linearizing the bottom end rolloff doesn't work, because step response takes a nose-dive, and pre-echo wants to pop through.
*Group delay's audibility is contentious, but most people want to minimize it as much as possible...witness the zillion sealed vs vented sub debates etc...
*Phase rotation audibility is also contentious, but again many people want to minimize it as much as possible....witness the first order IIR vs higher order debates and speaker designs.

*Linear-phase xovers are a no-brainer imo. The possibility of all win, with no lose.
Phase above the bottom end roll-off, aka the entire speaker's response, need not be an issue anymore.
Too easy to make flat.
The amount of FIR required is less than most folks think ime. The number of taps needed @ is simply what it takes to handle the lowest xover being employed. Everything below that xover frequency can be handled by IIR EQ, and IIR system high pass.

*Group delay can only be reduced with enough displacement not to have entered the roll-off region, at desired SPL and low freq extension. (repeat from above
Pretty much sums it up, yeah. My opinion is that if GD is kept below 1 cycle at that frequency it's probably completely inaudible... and the only place where it even gets close to that is at LF roll off.
 
Pretty much sums it up, yeah. My opinion is that if GD is kept below 1 cycle at that frequency it's probably completely inaudible... and the only place where it even gets close to that is at LF roll off.
My horn woofer's naked response is a strange one, seeming to start to go negative on the group delay for a while, and then looking like it's going the other way, only to turn around again. I've recently let the FIR filter try to make it flat, giving up around 30 Hz, where to my intrigue the group delay still goes negative as it heads down towards 20. No idea what it's all about, and gives a strange symmetrical step response that's convex on each side of the main pulse rather than concave. That might have something to do with allowing that Harman target bass bump in to the mix. In any case, it sounds really good to me. I've been listening for some kind of pre ringing artifact and it's very hard to clearly identify. I've also played pulses and watched the scope in REW. I can't see anything that looks like any obvious ramping up. Decay tails are very obvious. On the spectrogram I can see pre-echo from allowing the FIR to cancel loud late echoes that were at 20ms. Switching back and forth in real time reveals very little except more tightness in the bass, and in my case better stereo imaging because one speaker had the late arrival a lot worse than the other. I definitely prefer the correction despite it's -20dB pre-echo at 20ms. Of course, I'd rather get the room fixed and take care of it that way. It's a long term plan. For now, I'll take the pre - echo filter.

So, I think if you've got some computer power, and it seems I have enough to flatten phase down to 30 Hz or so, it's worth giving it a listen to see if you really hear something awful going on with the linear phase. The spectrogram should tell the story. If no sounds are maxing out before the t=0 time established by the tweeter's upper end, I don't think there are going to be any serious audible problems. If that peak response line never tilts in the wrong direction I think you're safe. A little sloping in the step response before the step is just what it looks like when everything is arriving on time. My speakers natively go negative at the bottom for some odd reason. Maybe an anomaly with how REW is interpreting the mess.

I may not listen to bass as attentively as some, so that's something to consider. I've been given examples where I can hear the problem with some bad FIR filter choices but so far I have not inadvertently replicated those results.

Another interesting thing is to create pulses by clapping or snapping my fingers, or clicking things together. These show some interesting pre spike dips. Something is making it to the mic. before the rest of everything. It's not a pure flat line up to the event.
 
Last edited:
Pretty much sums it up, yeah. My opinion is that if GD is kept below 1 cycle at that frequency it's probably completely inaudible... and the only place where it even gets close to that is at LF roll off.

That's how I'm thinking too....that GD only has meaning at LF rolloff. So i just try to keep that as low as possible without going nuts.
 
I must have the weirdest speaker. My bass horns want to get earlier in the low bass. Today I spent time shooting for minum phase. I'm actually forcing the lower bass to be late. I tried using the remove excess phase feature in rew and I finally got a real group delay of 4.6 ms at 20 Hz. This still too fast to get that classic upside down checkmark step response. Mine still has some resemblence to a linear phase step. I understand why sealed and ported get delay. Why wouldn't a corner bass horn?
 
Hi, I think that work practice has the best chance of making both methods give the same results.
As both key on the first all important step of flattening each driver's mag and phase response with minimum phase filters.
And I agree strongly that delays should be based on acoustic offsets.

I also agree if the correct inverse all-pass filters are added for the full set of IIR crossovers, there would be no need for cascading xovers.
Just made a quick electrical 1D sim using IIR xovers with inverse all-pass on each.
Uses the same xover freqs as my previous sim...100, 280, 750, & 3200Hz. But xovers are LR 24 dB/oct rather than previous 96 dB/oct.
So the sub driver (red) with a 100Hz lp gets a 100Hz inv all pass.
The low driver (dark green) gets 100Hz hp w/ 100Hz inv all pass, and 280hz lp w/280 Inv all-pass.
Ditto process for remaining drivers...each hp or low pass gets inv allpass aplied. (all 2nd order Q=0.707)

Here's the individual sections mag and phase.
And summed mag and phase...the black line across the top.
Each driver essentially has a linear phase xover for itself, just as if linear-phase xovers were being used directly.
Perfect as expected.

View attachment 365971


Now, all the xover hpf's and lpf's are turned off....and just the phase of inv allpass and their summation is left to see.
Nothing but inv allpass, so no magnitude involved.
Each of the sections inv all pass can be seen, along with the wavy black line which is their electrical summation....
The black line is what the FIR file doing the global IIR xover phase linearization will need to replicate.
View attachment 365973

Ok, so what's the point of all this.....
Here's my take...this example is as easy as it gets...simple LR24's that are easily, perfectly matched by a 2nd order inv allpass.

I've been playing around trying to use the technique on higher order xovers, and can't so far.
I can't get the inv allpass's to match up and flatten phase.

Michael, is that something you can do? With Camillia maybe? Directly put several higher order inv all-pass into one FIR file?

I don't fool with IIR much other than system high-pass as discussed.
And really because, it seems kinda like beating my head against the wall, to use IIR xovers and inv allpass, than simply using complementary linear phase xovers to begin with....
All to get the FIR into just one file ???
If I am already multiway active, I already have the channel processing and amps in place. I'm using FIR. Why make it more complicated by not using multi-channel FIR?
I don't get it Lol

I was out of town this weekend which gave me some time to think about this before I started testing. The first thing I realized is that a lot of this discussion had been related to applying a global reverse all pass on an input, rather than individual reverse all passes corresponding to each output. It has been a while since I did the IIR + reverse all pass approach and at the time I was using a miniSHARC which had limited FIR taps which were only located on the outputs, therefore I was NOT using a global reverse all pass. When doing a global reverse all pass it is clear that you need to build a cascaded filter network as described by Linkwitz, otherwise you will get some pretty significant magnitude / phase response variations. If you are using steep IIR filters on limited hardware this may not really be a feasible option.

I set up a hypothetical 4 way in CamillaDSP with relatively steep (8th order Linkwitz Riley) filters running at 48 kHz. Frequency ranges are shown below:

Sub: > 80 Hz
Low: 80 to 800 Hz
Mid: 800 to 3600 Hz
High: > 3600 Hz

As a baseline I made pure linear phase FIR crossovers in rePhase using 8192 taps per channel, as expected this sum perfectly.

Linear Phase FIR Magnitude Sum.png


Linear Phase FIR Phase Sum.png


I then tried individual output reverse all pass FIRs applied to IIR crossovers. This sums pretty well, but there is an issue that I had not thought of previously. Because I am using a 48 kHz sample rate, the IIR filters experience warping as they approach the Nyquist frequency (24 kHz). This results in a frequency response that is different from what the reverse all pass filter is trying to correct. Still, phase response does not deviate more than 3 deg from flat.

IIR + Local FIR Reverse All Pass Magnitude Sum.png


IIR + Local FIR Reverse All Pass Phase Sum.png


I then tried global reverse all pass FIR applied to IIR crossovers without a cascaded filter network. This does not sum well and has significant magnitude and phase response variation.

IIR + Global FIR Reverse All Pass Magnitude Sum.png

IIR + Global FIR Reverse All Pass Phase Sum.png


To correct this I implemented a cascaded filter network which looks like this:

Sub: 80 Hz LPF + 800 Hz LPF + 3600 Hz LPF
Low: 80 Hz HPF + 800 Hz LPF + 3600 Hz LPF
Mid: 80 Hz HPF + 800 Hz HPF + 3600 Hz LPF
High: 80 Hz HPF + 800 Hz HPF + 3600 Hz LPF

This gives very similar response to the IIR crossover + individual output FIR reverse all pass approach.

Cascaded IIR + Global FIR Reverse All Pass Magnitude Sum.png

Cascaded IIR + Global FIR Reverse All Pass Phase Sum.png


Finally I tried using 96 kHz sample rate with a global reverse all pass FIR using 16384 taps to eliminate some of the high frequency warping from the IIR filters. This works very well and phase response is within 1 degF of perfect.

Cascaded IIR + Global FIR Reverse All Pass 96 kHz Magnitude Sum.png

Cascaded IIR + Global FIR Reverse All Pass 96 kHz Phase Sum.png


Overall I came to following conclusions:

1) If you have enough taps to implement linear phase FIR crossovers, that is the simplest way and gives the best results
2) If you have limited taps on inputs (like a miniDSP Flex 8) and want to use a global reverse all pass, be sure to implement cascaded crossover filters for the smoothest frequency response
3) I don't think moving to a higher sample rate to eliminate high frequency warping makes sense due to the number of taps required
4) Individual output reverse FIRs are nice compromise between full linear phase FIRs and cascaded IIR crossovers + global reverse all pass FIR. In the past it seemed easy to get good results with these without messing around with windowing.

Michael
 
Overall I came to following conclusions:

1) If you have enough taps to implement linear phase FIR crossovers, that is the simplest way and gives the best results
2) If you have limited taps on inputs (like a miniDSP Flex 8) and want to use a global reverse all pass, be sure to implement cascaded crossover filters for the smoothest frequency response
3) I don't think moving to a higher sample rate to eliminate high frequency warping makes sense due to the number of taps required
4) Individual output reverse FIRs are nice compromise between full linear phase FIRs and cascaded IIR crossovers + global reverse all pass FIR. In the past it seemed easy to get good results with these without messing around with windowing.
Ah good, glad to see you came to the same conclusion about the need to cascade IIR, if wanting to use global phase correction.
I don't work with IIR much, and it's nice to see some corroboration.

I agree with your first three conclusions.
I'm not sure i fully understand the fourth. By 'individual output reverse FIRs' do you just mean applying inverse allpass to the IIR xovers (like we both did in our examples)?
If so, I would think the FIR tap requirements would be the same as for simply using linear-phase xovers to start with.
Which would mean individual output FIR's are an unnecessary complication, for no gain.
Do you see a difference in tap requirements? Or maybe I'm missing what you mean....
 
Ah good, glad to see you came to the same conclusion about the need to cascade IIR, if wanting to use global phase correction.
I don't work with IIR much, and it's nice to see some corroboration.

I agree with your first three conclusions.
I'm not sure i fully understand the fourth. By 'individual output reverse FIRs' do you just mean applying inverse allpass to the IIR xovers (like we both did in our examples)?
If so, I would think the FIR tap requirements would be the same as for simply using linear-phase xovers to start with.
Which would mean individual output FIR's are an unnecessary complication, for no gain.
Do you see a difference in tap requirements? Or maybe I'm missing what you mean....

I think we had the same conversation a few years ago -> https://www.audiosciencereview.com/forum/index.php?threads/active-crossover-types.27516/post-1168213. I haven't experimented anymore as I've been running Camilla since 2021 and haven't had any tap limitations to deal with :).

With limited taps, phase only correction seems to always work well with rectangular windowing. It seems like for magnitude and phase correction your choice of window has a big impact on how close you get the target depending on what you are trying to do. I see in the example I linked you used cosine windowing; do you always do this or how do you go about choosing windowing when you have limited taps when implementing linear phase XOs?

Michael
 
I think we had the same conversation a few years ago -> https://www.audiosciencereview.com/forum/index.php?threads/active-crossover-types.27516/post-1168213. I haven't experimented anymore as I've been running Camilla since 2021 and haven't had any tap limitations to deal with :).
Funny, thx ! Cause I didn't remember that at all :oops: I have such a bad memory.
Many times, I'll search about some audio question that comes to mind....and be reading an answer I find...... and say to self, wow this is exactly what I was looking for.....
and then find I wrote the damn thing !!! Terminal case of the dumbass, I call it. :p


With limited taps, phase only correction seems to always work well with rectangular windowing. It seems like for magnitude and phase correction your choice of window has a big impact on how close you get the target depending on what you are trying to do. I see in the example I linked you used cosine windowing; do you always do this or how do you go about choosing windowing when you have limited taps when implementing linear phase XOs?
Yeah, limited taps change everything.

I think i can get by with 95% of all tasks with 4k @ 48kHz. Although 72 dB/oct is highest order for a 100Hz xover, vs my preference of 96dB.
I'm limited to 16k @ 48 kHz with qsys, but can have 15 or more channels....which is pretty good for hardware DSP. (basically, qsys cores are dedicated PC's to just running qsys)

I've been using cosine windowing mainly because it's the default in FirDesigner. I've played some with other windows, but seldom see a significant advantage.
Got a new FIR generator lately, Crosslite+, that has almost 50 different windowing options. I guess I'll have to try some out.
 
I must have the weirdest speaker. My bass horns want to get earlier in the low bass. Today I spent time shooting for minum phase. I'm actually forcing the lower bass to be late. I tried using the remove excess phase feature in rew and I finally got a real group delay of 4.6 ms at 20 Hz. This still too fast to get that classic upside down checkmark step response. Mine still has some resemblence to a linear phase step. I understand why sealed and ported get delay. Why wouldn't a corner bass horn?
I finally got the classic minimum phase impulse response. I learned that it was OK to flatten the phase on the tweeter and the mids, but leave the bass phase alone and time align accordingly with the other drivers. That provides 11ms group delay at about 26 Hz. There's still some amount of bass energy in front of the main step but it's much smaller than the step, and I think it's partly because I'm allowing the room correction to create pre-echoes to help fix late arrivals.

It's odd that I actually have to work at getting enough group delay to prevent a linear phase looking step. I'm still not sure about why my horn woofers would behave so much differently than a typical woofer's group delay, but I have some ideas.

Possible causes:

1. Compression and horn loading? I know that a woofer in free air behaves differently in phase than one that's compression loaded or plane wave loaded.

2. Corner loading of the woofers? The horns are in the corners, and stacked floor to ceiling creating a plane wave out of the corner. Could that speed up peak volume development down low?

3. Undersized back chamber, with EQing up of the lower frequencies below resulting roll off? BagEnd does something like this. I may be doing it inadvertently. My horn's back chambers are smaller than they need to be to fully realize the output potential of the lowest frequencies, according to HornResp. I don't try to EQ up the bottom end, but since the middle of the bass horn's response is so loud, by EQing that down, I'm effectively EQing the lower frequencies up to extend the bass response. There's lots of woofers so none of them have to work too hard to do that. This last attempt I did not do as much of that, causing the roll off to start sooner.
 
Last edited:
Back
Top Bottom