An exercise in converting a speaker to time-phase coherent

Neat thread - only found it now.

One way to do 1st order is to not use a dome tweeter but a wideband full range like ScanSpeak 10F/8424 with a very wideband woofer.

10F/8424 & RS225-8 FAST / WAW Ref Monitor

Like this:


Predicted XO response:


Here is measured frequency response and phase:


Here is measured step response:


Hello Xrk,

do you could show us the polar response?

Like k john and toole said the probably your speaker are so nice because of the good vertical and horizontal dispersion...

Best regards, Tomas
 
Finally got to implement the xover below. It sounds pretty good. Is there a down side? First order filter sounds not quite as "clear" as higher order, but to me more natural. Instrument separation is not quite as clear ... a bit like a forest vs. the trees, in which higher order is more tree than forest of the first order.
 

Attachments

  • Untitled.png
    Untitled.png
    76.7 KB · Views: 221
  • q.jpg
    q.jpg
    336.7 KB · Views: 219
Yep. You can get carried away with the technology. At some point you realize that you aren't listening to the music. Today nothing pleases me more than to go out for a jog and listen a bunch of mp3 audio tracks stripped from YouTube videos played on my SanDisk Clip. But wait, those ear buds don't have a crossover. TP? LOL.

None of this stuff makes speakers better, just different. And that's even more to the point. There is a difference between "I heard a difference", and "it sounds better".

I thought you especially would have convolved a correction for them earbuds at the track level in your software and send the track to audacity after convolving the audio track to be the “most perfect 5$ earbuds ever” lol 🥳🥳🥳🥳
 
And there are also studies that suggest the ears can’t detect the phase shift.
[... below Toole]
"When auditioned in real rooms, these differences disappear.”

And from John Kreskovsky (john k here). In the early 2000’s John became enamored (some might say obsessed 😀) with transient perfect (TP) passive crossovers. At the time he wrote an article titled “It’s just a Phase I’m Going Through” that detailed why he thought TP crossovers were superior. He then went on to publish several different passive TP crossover designs. Time rolled on and linear phase DSP entered the scene. Here’s a post that he then made back in 2012:

“As you well know I used to be a very strong advocate of TP design. I could swear I could hear differences with could only be attributable to TP design. The problem today is that with codes like the Phase Arbitrator and the Bodzio UE I can correct any system to be linear phase while leaving everything else un altered (axial response, vertical and horizontal polar, power response...). And I can rapidly switch back and fourth between linear and nonlinear phase. The results I have found in doing so are that only on very limited material and under very limited conditions can I detect a difference between TP and nonTP systems. I am forced to conclude that ultimately the differences I used to hear had more to do with differing power or polar response than TP vs non TP.”

I think this topic will be debated endlessly. Everyone will decide what's important to them and move on.

Having done dozens of simple "amateur-scientist-level" speaker-diy experiments but no DSP FIR/IIR, I draw a different set of conclusions. First is that, I'm 61 and know for a fact I've lost sinewave khz hearing at the top (a couple years ago was 12.5 at faint output level); so I can enjoy this hobby for a few more years but not a decade. That is my "take-home" from reading the quote by John K. (whom I have respected since my audiogon days). At some point the listener (senior male) can no longer qualify as objective test subject.

The first quote above by Toole is also telling. Typical home listening does not make a suitable test environment and conditions.
 
First is that, I'm 61 and know for a fact I've lost sinewave khz hearing at the top (a couple years ago was 12.5 at faint output level); so I can enjoy this hobby for a few more years but not a decade.
I'm 68. Zero problems with "this car is approaching from the right" "that flock of geese is above me". "There's a car turning onto the street I'm walking down behind me, better reel in Winnie's leash close" "that's a real acoustic instrument of some kind, not a recording"

If a horsefly was buzzing 360s around my head, I'd still enjoy hearing F-B-L-R positioning of the sound it makes. I'd know when it landed and to start swatting.

All phase and dynamics, all outdoors. True I cant hear some stuff anymore on tracks whose sounds I've adored in the past. Aside from that loss, there's still auditory stuff to revel in.

One time walking the dog down the same street at night, I heard a large animal run directly in front of me. I could have been severely injured or killed if it had hit me. Heard the ground impacts to my right, the hooves on pavement right in front of me, then the ground to my left as it went off. It all happened so fast I didnt have time to even react, reel back or anything. That was almost the last thing I heard...
 
  • Like
Reactions: wchang
(post-30-min edit, 45-60min please!)
Thanks @ernperkins for these cogent quotes. The first quote above by Toole is also telling: differences exist but common in-room listening does not make a sensitive test environment / suitable test conditions.

I would suggest everyone "measure" their hearing, actually seated and in-ear, both generally and as a pre-condition to conducting a listening test. As a sort of "existence-proof" I used a smartphone to confirm my hearing in the context of a pair of "perfect" diy (pictured in the fullrange gallery).

As for the question of phase, my current thinking after many direct and indirect experiments (some guven in my audio-lensing thread) is that time alignment is more important than phase for very high level fidelity. The present thread however skipped over explicit time delays -- some took it for granted but others might not have always done it uniformly if at all.

(@andy2)
(3) I have done a 2-way (using Wavecor 045 ceramic-annulus-soft-dustcap tweeter) that had a deep soundstage when tweeter was offset (time- and XO-phase both aligned); when the tweeter was wired reverse-polarity and moved to the baffle (XO-phase was aligned but the acoustic centers no longer so; nothing else changed), the deep soundstage was gone.
 
Last edited:
@jjasniew outdoor real-life direct sound time aligned transcient perfect -- we are evolved to hear and localize.
And then we record sound in a room, convolve another room on top of that and wonder why it sounds nothing like that which we evolved to hear.

Anyway, I just wanted to point out there's still a lot of delight to be found in sound, even as ft drops an octave from our youth.
 
  • Like
Reactions: wchang
Hi guys, my experience runs counter to this.

I've been playing with FIR heavily for about 4 years now, where I can do either global on inputs, or driver-by-driver on outputs. Always on 4-ways.
Setup was 3 OpenDRC-DIs, and a 4th OpenDRC-DA8 that I sometimes used as another DI.

I think it is a mistake to apply phase linearization globally, post crossover(s).
And I share the opinion it is hard to impossible to hear the effect of doing so, especially if the crossovers being linearized are low order to begin with.

I think the correct use of FIR is to linearize phase and amplitude driver by driver, before tying together with a crossover, and then use complementary linear phase xovers.

As we know, drivers are minimum phase, and once summed they are not.
And any correction post summation is valid to a single point in space only.

We know crossovers not minimum phase either, unless they are linear phase FIR crossovers. Again, any correction post crossover is valid to a single point in space only.

Of course the same 'valid to a single point in space' applies to any two or more sources, no matter how well the phase and magnitude alignment, global or driver-by-driver.
But I just keep getting better polars (and better sound) going driver-by-driver on outputs, than global on input.
I rationalize that global seems like crooked trying to straighten crooked, and does so over a narrower range than driver-by-driver (admittedly pure conjecture).

Anyway, my experience is that it is usually too late to obtain the benefits of phase linearization applied to IIR crossovers already in place.
I think if such a good job was done with existing crossovers, that drivers' phase traces perfectly overlapped, then it might work out close to, or maybe even exactly the same.
But such good IIR crossovers are difficult and rarely the case (for me anyway).
Whereas tying together drivers that are first flattened, with linear phase crossovers, is pretty much guaranteed to give excellent results.


I've come to love driver-by-driver linearization, along with steep linear-phase crossovers.
With steep xovers, the frequency range subject to lobing is greatly minimized. So the 'valid to a single point in space' problem gets measurably reduced.
(small rant...I think folks who would shy from steep linear phase xovers because they've read about pre-ringing, should just give a listen. Maybe pre-ringing is sometimes audible by a few folks, but everybody can always hear lobing. Steep linear phase xovers are a no contest win imo)

@John K.... really appreciate your clear well written comments, which make full sense .
When you guys were doing your listening tests, were you using FIR globally on input or some other method?

My favorite way of comparing IIR vs FIR, is to do the driver-by-driver corrections, and then just swap between IIR and linear phase xovers, all else being the same.

BTW, if anybody does want to do global, I still have the 3 openDRC DIs. Will sell for $225 a piece inc shipped conUS. (I've switched to q-sys for processing.)
I've had to work around this in my designs. The MiniDSP 2x4HD has separate FIRs for each channel. The Flex Eight only has 2 FIRs on the inputs.

All things being equal, I'd much rather do FIR separately on each driver, but since the Flex Eight has much better D/A converters, and since a triamp version of the Bitches Brew or Live Edge Dipole design also requires 6 channels not 4, I had to figure out how to keep the output minimum phase so I could use the Flex Eight.

I managed to do this successfully, with excellent phase, impulse and step response. The Bitches Brew are OB with 2 x 15" subs and 1 x 15" coaxial midrange + compression tweeter. The Live Edge Dipoles are OB with 1 x 18" sub and 1 x 8" coaxial midrange + compression tweeter.

The way I did it was:

1) 6dB SERIES passive crossover between subwoofer and midrange. The VituixCad model for that is here and in this application, a series crossover is quite elegant. The sub rolls off at 6dB per octave around 100-200Hz and is quite well behaved. It has 90 degrees phase shift. When you add the phase shift of the driver and its roll off at 1-2KHz, it effectively behaves as a 12dB/octave acoustic slope. The midrange filter is for all practical purposes a 2nd order shelf filter, and its phase characteristics are not terribly different from a 6dB/octave high pass. The acoustic roll off of the midrange is 18dB/octave.

So the midrange high pass acoustically is 24dB/octave and the subwoofer low pass is 9-12dB/octave.

When you wire the midrange in reverse polarity, you get something that behaves very much like a 12dB/octave Linkwitz-Riley. The blend between drivers is seamless. It's also still minimum phase.

2) The upper crossover (1KHz for Bitches Brew 15" coax, 2KHz for Live Edge Dipole 8" coax) is implemented with a 6dB/octave slope on the tweeter, set at a very high frequency so it compensates for the downward tilt of the natural response of the driver. This makes the compression tweeter more or less flat down to its natural cutoff. Which for the 15" is about 700Hz and for the 8" is about 1200Hz.

I add only shelf filters on the tweeters to enforce the transition from tweeter to midrange. Those shelf filters have less phase shift than a traditional high pass.

For the midranges, I use notch filters to enforce the transition from midrange to tweeter. In the 15CXN88 I want the woofer to roll off above 1200Hz. Its natural response extends to 3K, so I add a 12dB notch at 3K. The mid has no electronic attenuation above 3K.

The net result of this is acoustic slopes on both midrange and tweeter are 9-12dB per octave anywhere near the crossover frequency.

I use time delay to align the signals.

Thus I obtain a blend via coax with constant directivity from 200Hz - 20KHz, and a true 2nd order minimum phase behavior at the upper crossover.

Then all I have to do is add two first order maxphase filters (shown here) and it unwinds the phase rotations of the two 12dB crossovers so I get flat phase response from 50Hz to 15KHz, near-perfect step response, near perfect impulse, and all the virtues that afficionados of linear phase speakers actively seek. It does that with just FIR crossovers on the input.

I don't know, it may be possible to use steep IIR crossover slopes and fix all the phase problems after the fact with FIRs on the input channels. But by using coax drivers we've gotten rid of the lobing problems and I can get away with shallow slopes.

I think low-order crossover design is an exercise in zen-like elegance. I was always inspired by John Dunlavy and his priority of time domain over all else. It's a very stringent way to design a speaker and there are only a very few configurations where that will actually work.

It certainly requires wideband drivers. Many woofers and mids are somewhat "wideband" and it sure helps when you use notch filters instead of low pass filters to make the tweeter blend, because the phase response is much better behaved. Sometimes, shelf filters are the ONLY way you can achieve low phase shift.

In the coax designs, the "wideband" quality of the tweeters comes from the fact that they are compression drivers with high sensitivity and wide dynamic range, so a 6dB slope plus some modest cuts from shelf filters provides plenty of out of band protection and there are no distortion issues whatsoever.

The latest DSP files for the Bitches Brew are here and the Live Edge Dipole files are earlier in the same thread.
 
Anyone tried correcting a fullrange (measuringbin the near field) with FIR and IIR ?

And can report if the FIR correction has some advantage to offer like linearizing the phase response below 200hz?

I used IIR for fullrange drivers with good results but wondered what FIR can offer what IIR can't do.
 
All things being equal, I'd much rather do FIR separately on each driver, but since the Flex Eight has much better D/A converters, and since a triamp version of the Bitches Brew or Live Edge Dipole design also requires 6 channels not 4, I had to figure out how to keep the output minimum phase so I could use the Flex Eight.

Yep, we all often have design goals based on the equipment we have available and want to use. It's awesome you have mastery of the three main forms of filters and crossovers.....passive LCR, dsp IIR, and dsp FIR. (maybe you're good at analog line-level IIR too?)

I see my post you replied to was made at about the time I was transitioning from from miniDSP OpenDRC's to Q-Sys . Up until Q-Sys, my multi-channel FIR implementations were pieced together using several OpenDRCs in digital I/O, to various DACs. Sometimes I'd use a passive crossover with the CD to save channel count.
With a used Q-Sys hardware Core 110f that costs little more than a Flex Eight (and cost less than my previous OpenDRC setup), I've thankfully left the world of piece together behind.
A Core110f can be configured to provide 16 DAC channels, with 8 analog in and 16x16 USB channels. Dante is also a license option.
Better, the open architecture processing allows absolutely unparalleled IIR filtering and crossover options (including any PC software I've seen),
along with > 4k taps of FIR per channel/filter.
48kHz only, but that means buttkiss to me.

I'm more convinced now than then.... that doing FIR separately on each output channel is the optimal way to go for sound quality.
And also the easiest way to tune (once the requisite level of dsp and I/O channel count is obtained.

Over the last 5 years I've challenged the method I spoke of then, of using FIR on the individual outputs along with steep complementary linear-phase crossovers in about every way I can think of.
In IIR mode, I've used all IIR low order crossovers and PEQs/shelves. And tried global FIR correction on those IIR tunings. I've used IIR preconditioning on each output channel prior to applying just linear-phase crossovers.
In FIR mode, I've tried varying complementary acoustic orders from high to low. I've tried various numbers of taps per channel, frequency dependent number of taps, and various degrees of applied smoothing.
Q-sys allows presets (remote controlled) that switch seamlessly/silently between any comparative tuning setups, including full-out FIR filter swaps, or a complete IIR vs FIR tuning.

It's been a great hobby for me. And again, not very expensive.
Ironically, I got into q-sys for its FIR capability, but IIR is where it totally smokes everything I've seen. Essential unlimited numbers of PEQs/shelves/biquads can be placed in a design wherever they logically belong (like on inputs or outputs or wherever.
I don't know if you've tried the auto-IIR capability in EclipseAudio's FIR Designer. I find it's crazy good. Importing the biquads it generates into Q-sys,
can give FIR-like precision both to in-band corrections, and even match target curves which may include hpf and lpf etc.
Another piece of irony, that FIRDesigner has the best auto-IIR capability of anything I've seen.. Lol.

Anyway, so much for my q-sys/FirD sales pitch, yikes ...

To circle back to global FIR. My theory for why global fails in comparison to on outputs, is that a global phase trace is always a vector of the contributing phase traces of drivers summing which each may or may not be anywhere close to the summation trace. That vector is what gets corrected globally, and the summed vector is considerably more measurement spot dependent than the individual phase traces of the contributing drivers (at least by my measurements) .
It's the same danger of "FIR tune to a spot" for individual channels, but amplified due to the vector.
That location dependent summation vector of course doesn't exist in 1D electrical space, where I think most global pundits get their inspiration....I just don't think rightly or wrongly, that global holds up well enough to fool with.
my 🙂2c
 
  • Like
Reactions: perrymarshall
Hi mark100, I just recently got FIR capable DSP at my hands and been experimenting with it and I've stumbled on man obstacles. I'll describe some, if you have insight and advice on these I'd appreciate, thanks!🙂

For example my HF driver / waveguide has some reflections going on, which is evident if I slide windowing of my impulse response measurement the HF response (resolution) varies. Question now is what windowing to use, and to which then auto EQ? If I use max windowing (before measurement situation limitations come in) all acoustic issues of the speaker itself are in the data so the FIR isn't gonna work but to only ~one direction. So, do you use some slidign windowing or just some smoothing stuff or what? FIR includes time domain, so how would this smoothing / windowing affect in general?

Another, should I also straighten out the compression driver top end response with FIR, where the response is really erratic due to resonances, phase plug acoustics and stuff like this? Or should I prevent auto EQ that high and cut of below these issues? I'm thinking this stuff against the Gunness focusing stuff so think time domain data has central role here? Perhaps better leave it alone for now?

I guess the main issue above summarized is that I think too short of a window on the data the FIR filter is implemented against makes inaccurate filter, while too long of a windowing could be too accurate and include stuff that should not be corrected?

Another is having very limited amount of taps, 512, which means frequency resolution is down to perhaps 300Hz, and since my crossover is about at 800Hz or so I can barely linearize that with the FIR but all the rest of the response of the low frequency driver is not included in the FIR and I need to use IIR filters in addition. Things get worse with the measurement data windowing of course, since data isn't accurate with semi-anchoic measurements it's kinda tough to make the filters, and again hard to confirm whether the filters work, as there just isn't that much resolution down low. It's complicated process to implement both IIR and FIR filters in a simulator and then succesfully transfer those to the DSP when the FIR is a file and the IIR:s must be added manually, leaving lot's of room for humanly errors.

I guess some of these are partly also software/user issues as I'm not knowing what I'm doing 😀 I'm using vituixCAD with the handy transfer function block as well as IIR filter blocks, and then export FIR files for the part they seem to work (about ~300Hz, and below ~10k). I'm confused a bit with where to apply delay (for woofer) for example, whether it's included with the FIR files and part of phase linearization of the crossover slopes. If I have a delay block in the simulator does it get included in the FIR filter or not, and so on, lot's of testing with this stuff required, measurements to confirm implemented filters work as intended. It's a lot of work in the end 🙂

So, thanks if you have any tips for these ponderings!
 
Last edited:
  • Like
Reactions: perrymarshall
Someone should describe what "FIR" and "IIR" actually mean in Audio, as the terms are tossed around into obscurity - at least for me. I only understand the raw definitions from an engineer's perspective; two filter designs that behave differently when input with a mathematical construct that doesnt exist in reality. How that effects "phase" in an audio signal by choosing one over the other is beyond me.
 
Hi tmuikku, I'll be glad to try to help. Give me a day though, tied up on a home improvement project right now.
In meantime, what DSP? Is VCad generating all the IIR and FIR filters you're using, or other software too?
Thanks, no hurry!

Thomann t.racks 408 FIR is the machine, filters generated in vituixcad only using measured data. I've got about 6ms windowed data, bottom is merged neqrfield measurement which also resulted issues, kink in group delay, which likely gets into the FIR file as well.

Load measurment data,then add the transfer function block and use the optimizer to make some target response, including phase linear HP/LP, and export it to the transfer function block. Now your response should be what you want, go to impulse response view to export FIR file.

What I've actually done I use few basic filter blocks first to get close to target. This is to overcome poor data resolution on the low mids and low FIR tap count. Then add the transfer function block with the optimizer settings for some suitable bandwidth like 400-10k, which should roughly fit into the 512 taps and avoid top octave anomalies. The FIR file is exported basic filters disabled.

For example, I couldn't yet figure out how to even confirm the generated FIR file other than loading it to the DSP and measure 😀 There is simple graphical presentation of the resulting frequency response in the DSP though, but no phase info for example.
 
I conducted a small experiment some years ago regarding linear phase alignment vs. traditional IIR. The setup was as follows:

  • Twoway Seas Excel Coax- XO @ 2 khz, 4. order LR
  • MiniDSP 2x4HD - one preset with FIR (all channels individually linearised) the other preset is IIR. Both the treble and bass driver in both presets used the same time-alignment of drivers (distance voice coil).
  • Amplifier 4 channel Hypex UCD.
  • Source streaming Spotify

Measurements confirm perfect step response and phase behaviour with the FIR version, The IIR performs the usual phase rotation and the two individual peak step response.

Listening procedure were performed over a few weeks as I "forced" visitors to our home to listen to the setup without me giving any explanation or signal of which preset is used. I just flicked the between the two presets on the remote control. Listeners were both audiophiles and regular visitors uninterested in hifi. No specific selection of music, just random what we liked.

Results were a bit surprising as almost all could hear a difference. No one preferred the IIR, they mostly found the FIR linear phase superior. My personal comment is that the differences are not huge, it is subtle, like the music is a bit livelier. Please note that the results are only valid for this setup, and that the coax is particularly well suited for FIR linearisation, as we have no additional phase distortion from spreading the drivers on a larger baffle, and time alignment of their voice coil distance is easy. All my recent DIY loudspeakers use this concept of point source linear phase, I like it.
 
  • Like
Reactions: wchang