How to build a flat-phase DSP preset?

Silas Pradetto

Graduate Student
Well, I still don't think I know the answer, but after an afternoon of playing around, I at least have a better idea. I know others have been doing this for a while, but I had never tried it for myself. I know that flat-phase tunings significantly improve impulse response and the overall sound quality of a speaker, and since I had some time to burn I gave it a shot.

So I threw an EAW JF60 up on a patented super-awesome custom measurement stand and put an Audix TM1 directly on-axis about ten feet away. Before I did anything else, I did a few basic EQ adjustments to get me to a relatively flat magnitude response.

2012-07-08_17-46-37_269.jpg

Next, in Smaart, I ran the AutoSm feature to get me close and then adjusted the delay time manually until the phase was as flat as possible across the largest bandwidth possible. Turned out that the speaker itself was pretty flat right up until about 4k. Guess what? I bet that corresponds to the crossover frequency. Based on what I was seeing in Smaart, it seemed like the tweeter led the woofer by quite a bit, and by quite a bit, I mean about 360 degrees at 10k and nearly 720 degrees at 20k. Of course, measurements up that high are very sensitive to the mic moving, so even a slight breeze moving the speaker or mic stand could throw this off quite a bit. Fortunately, during my measurements, the phase stayed pretty solid so I think the measurements are pretty valid.

Before I started applying all-pass filters to the speaker, I played around with a direct FFT measurement of the amp (itech HD) output to see exactly what effect each type of filter had. Crown/BSS provides two types of filters, All Pass 1 and All Pass 2. I don't know all the technical stuff behind all-pass filters, but suffice to say that the All Pass 1 filter provided 90 degrees of delay at its frequency center with a very wide affected bandwidth. All Pass 2 seemed to provide much more phase shift at the center frequency, and the Q was adjustable, which was quite nice.

As I started applying filters to flatten the phase up high, I realized that every single time I adjusted anything in the DSP I had to correspondingly adjust the delay time in Smaart so I was seeing the phase there as flat as possible. It was very, very hard to make sense of anything when the phase was wrapping so much.

After applying 6 (yes 6!) all-pass filters at varying frequencies from 5k up to 15k, it was finally as good as it was realistically going to get. See the screenshot below for before and after phase traces. Purple trace is the after, white is the before. After my processing, the phase is flat to about 12k.

jf60 flat phase.jpg

Listening to the speakers after, I really can't tell too much of a difference (at least not in the garage here). If I knew how to properly measure impulse response with Smaart I'd offer those plots, but I don't.

Edit, after doing some listening, the high end seems less hyped, in a good way. I like it.
 
Last edited:
Re: How to build a flat-phase DSP preset?

Hey Silas,

Just wanted to say I really enjoy the posts you make in this vein (this and the KF650 preset etc). I haven't had a chance to attend a SMAART training (yet!), so I have been trying to learn as much as possible by reading the manual (who would of thunk it?) and running experiments similar to your posts. So thanks!
 
Re: How to build a flat-phase DSP preset?

In the bottom screen shot the high's are still ahead in time from 6.something kHz up the scale .
It's a difficult task when your higher up the frequency scale .

If i do a tuneing like the 1 your doing as descriped i would use 2 or 3 mic's . 1 close and centered between the mid and high driver @ the x-over between the 2 (or more) drivers . The 2nd @ a larger distance and the 3rd of-axis .
Also i would not resynchronize until i have "flat" phase .
 
Re: How to build a flat-phase DSP preset?

Also i would not resynchronize until i have "flat" phase .

I would just set the delay appropriate for the temperature and start creating filters from that point. If your DSP changes the overall delay based on the the number of EQ positions "ON", then I would just turn on all the ones you think you need, set the delay, then start modifying them.

Unwrapping the phase curve or viewing on a non log scale might help with visualization. Also the group delay, (negative derivative of phase curve) might help make viewing easier. It seems to me that visualization and systematic application of method is the major stumbling block for phase equalization for many people. I'm sure Mr. Beckman has a lot more to say on the method aspect of things.
 
Re: How to build a flat-phase DSP preset?

..... Next, in Smaart, I ran the AutoSm feature to get me close and then adjusted the delay time manually until the phase was as flat as possible across the largest bandwidth possible. Turned out that the speaker itself was pretty flat right up until about 4k. Guess what? I bet that corresponds to the crossover frequency. Based on what I was seeing in Smaart, it seemed like the tweeter led the woofer by quite a bit, and by quite a bit, I mean about 360 degrees at 10k and nearly 720 degrees at 20k. Of course, measurements up that high are very sensitive to the mic moving, so even a slight breeze moving the speaker or mic stand could throw this off quite a bit. Fortunately, during my measurements, the phase stayed pretty solid so I think the measurements are pretty valid.

Before I started applying all-pass filters to the speaker, I played around with a direct FFT measurement of the amp (itech HD) output to see exactly what effect each type of filter had. Crown/BSS provides two types of filters, All Pass 1 and All Pass 2. I don't know all the technical stuff behind all-pass filters, but suffice to say that the All Pass 1 filter provided 90 degrees of delay at its frequency center with a very wide affected bandwidth. All Pass 2 seemed to provide much more phase shift at the center frequency, and the Q was adjustable, which was quite nice.

As I started applying filters to flatten the phase up high, I realized that every single time I adjusted anything in the DSP I had to correspondingly adjust the delay time in Smaart so I was seeing the phase there as flat as possible. It was very, very hard to make sense of anything when the phase was wrapping so much.

....

Hi Silas,

"All Pass 1" sounds like a 1st order all-pass filter : 90 degs at the centre and 180 degrees up high. "All Pass 2" sounds like a 2nd order all-pass filter : 180 degrees at the centre and 360 degrees up high.

Since you mentioned that the phase of the tweeter was increasingly leading with increasing frequency, all that says is that the tweeter is physically forward a little of the woofer. (Looking at a product photo, it's quite possible.) And by adding all-pass filters, you're simply adding group delay to bring tweeter in line with the woofer. (The analog passive cross-over will get in the way a little.)

In a passive speaker with a 4th or lower order crossover, I'd hardly expect you to be able to hear any difference with the phase as-is or flattened with a few all-pass filters.

And the high frequency phase wrapping you're correcting is only at the mic position. Any minor change in listening position will bring back a phase variation. (This is obviously less of a problem with a coaxial loudspeaker.)

Note: If the tweeter lags the woofer, as is the case for most speakers with deep hf horns, then all-pass filters can't be used to "time-align" the drivers.

Another experiment you could try is to bi-amp the speaker, time align the drivers, use a linear-phase brick-wall crossover and see how this sounds. However.... flattening the drivers with parametric stages will add phase changes ... (Unless you can do arbitrary linear phase FIR filtering. And, linear phase FIR filters can have significant group delay, and can have audible pre-ringing if too long.)

Cheers,
Michael
 
Last edited:
Re: How to build a flat-phase DSP preset?

Hi Silas,

"All Pass 1" sounds like a 1st order all-pass filter : 90 degs at the centre and 180 degrees up high. "All Pass 2" sounds like a 2nd order all-pass filter : 180 degrees at the centre and 360 degrees up high.

Since you mentioned that the phase of the tweeter was increasingly leading with increasing frequency, all that says is that the tweeter is physically forward a little of the woofer. (Looking at a product photo, it's quite possible.) And by adding all-pass filters, you're simply adding group delay to bring tweeter in line with the woofer. (The analog passive cross-over will get in the way a little.)

In a passive speaker with a 4th or lower order crossover, I'd hardly expect you to be able to hear any difference with the phase as-is or flattened with a few all-pass filters.

And the high frequency phase wrapping you're correcting is only at the mic position. Any minor change in listening position will bring back a phase variation. (This is obviously less of a problem with a coaxial loudspeaker.)

Note: If the tweeter lags the woofer, as is the case for most speakers with deep hf horns, then all-pass filters can't be used to "time-align" the drivers.

Another experiment you could try is to bi-amp the speaker, time align the drivers, use a linear-phase brick-wall crossover and see how this sounds. However.... flattening the drivers - mainly the tweeter - with parametric stages will add phase changes ... (Unless you can do arbitrary linear phase FIR filtering on the tweeter. And, linear phase FIR filters can have significant group delay, and can have audible pre-ringing if too long.)

Cheers,
Michael

Hi Michael,

You may like these plots … this is what you can do with a Lake. Its 4 way active.

The square wave shows the frequency / magnitude that make up the Fourier series that defines it.

Peter
 

Attachments

  • groupdelay.jpg
    groupdelay.jpg
    346.2 KB · Views: 7
  • impulse.jpg
    impulse.jpg
    317.5 KB · Views: 5
  • 160 hz square wave.png
    160 hz square wave.png
    207 KB · Views: 8
Re: How to build a flat-phase DSP preset?

Of course, measurements up that high are very sensitive to the mic moving, so even a slight breeze moving the speaker or mic stand could throw this off quite a bit.

It's not a feature in v6, but v7 has a feature called Delay Tracking. When enabled, it takes a small (8k) impulse response before doing the transfer function. The purpose of the small IR is to measure the delay and adjust accordingly before measuring the frequency response. There are some associated parameters that you can tweak to control how the delay is applied. But in essence it's great for situations similar to yours where the delay may change slightly.

Not a sales pitch. Just wanted to share that info as it can be quite useful in some situations.

-A
 
Re: How to build a flat-phase DSP preset?

Show off!

And a tad more latency in that system than would be useful for live sound I'd wager. :)

The lovely EONA ADRaudio M1225 wedge before/after (blue/red) a little EQ and less than 1/4 msec of 2nd order APF's. The wedge is so well designed that the improvement is subtle. The main advantage is that vocals more clearly stand out from the mix - verb and the like are more distinct.

M1225_StgMon_Std_v_FP.png

IR Before:

M1225_Std_IR_StgMon.png

IR After:

M1225_FP_IR_StgMon.png
 
Re: How to build a flat-phase DSP preset?

Great. Thanks. Nice to see another Systune user too.

How far away was the mic?

I think it was about 2m back for the square wave.

And yes … I love Systune. When EAW wanted me to pay money for the new version of Smaart ( V6) and lose the Lake interface function we bought Systune. Why pay money to lose functionality. I still have an old copy of Smaart 5.4 (and every version before that) but it does not work with windows 7 and Lake any more. I think the boys form Rational are now fixining this( ?)

Here is another trick … 12dB of HF boost but the phase remains the same … and for Langston the FIR time for this one was 2.5ms (note the delay in smaart) , but there are no subs like the top 4 way plots (15ms - still OK for FOH :roll:).


Peter
 

Attachments

  • gain and frequency shading.jpg
    gain and frequency shading.jpg
    309.4 KB · Views: 8
Re: How to build a flat-phase DSP preset?

I think the boys form Rational are now fixing this( ?)

Smaart v7.2 introduced an API which grants access to measurement data, among other things. Essentially it allows third parties to pull Smaart measurement data over the local network. It's a public API and is available to anyone who's interested in using it.

In the DSP world, both Lab.gruppen and APEX have products available that are utilizing the Smaart API. The integration is available in Lake Controller v6 and in Intelli-Ware v1.5 respectively.


-A
 
Re: How to build a flat-phase DSP preset?

Silas,

Now I'm tempted to make a post about building a flat phase crossover, which is not so hard with any decent DSP. Let me see if I can get someone to take a few measurements for me...

That sounds sounds like a great idea ... the tricky bit for a speaker designer is get it all to work on and off axis... magnitude, phase,impulse and polar

Peter
 
Re: How to build a flat-phase DSP preset?

That sounds sounds like a great idea ... the tricky bit for a speaker designer is get it all to work on and off axis... magnitude, phase,impulse and polar

Peter

The heck with the Polar plots.. we're working on even SOLAR coverage! It's that "sound in a vacuum" thing I've been teasing you all about... ;)
 
Re: How to build a flat-phase DSP preset?

And yes … I love Systune. When EAW wanted me to pay money for the new version of Smaart ( V6) and lose the Lake interface function we bought Systune. Why pay money to lose functionality. I still have an old copy of Smaart 5.4 (and every version before that) but it does not work with windows 7 and Lake any more. I think the boys form Rational are now fixining this( ?)

Yep, already fixed and better than before.

Directly from the trenches, you have something to look forward to :)