rePhase, a loudspeaker phase linearization, EQ and FIR filtering tool

Thanks for this John.

It looks like Burst Decay is an extension of Analogue Loudspeaker Measurement with 3-D Display We called those PAFplots after Peter A Fryer.

IMHO, this gives the best representation of the most important speaker 'distortions' if you consider it as a 1D transmission chain.

The theoretical difference between PAFplots & Burst Decay is PAFplots use rectangular windowing.

Simple Arbitary IIRs shows how you can use Direct Form I IIRs instead and gain loadsa efficiency. The design of such beasts is slightly more complicated than FIRs. :D

After all, a FIR is just a Direct Form I IIR with feedback disabled. :)

Gotta get my finger out and finish the JAES version.
_______________

John, are those stand-alone DSP boxes like the miniDSP integer only?

This is important if you are using FFT convolution cos you really need to dither at every butterfly stage.
_______________

CopperTop, high order xovers are evil for most speakers; whether analogue, digital, Min. Phase or Linear Phase. Richard Greenfield has an AES paper on the subject. IMHO, 4th order LR is already beyond the pale. I prefer 3rd order Arthur-Smythe xovers for the usual treble xover.

I'll have to look at that paper.

This is not stand alone dsp. It's PC based. I did not write the convolution code but it is a form of FFt overlap and add. It works very well. I worked conceptualizing how to approach the problem. I don't get my hands dirty with the details, and I don't know them either. The partnership was dissolved at my request earlier this year.

I agree with your assesment of high slope crossovers but I am not familiar with Arthur-Smythe x-o's.
 
high order xovers are evil for most speakers; whether analogue, digital, Min. Phase or Linear Phase. Richard Greenfield has an AES paper on the subject. IMHO, 4th order LR is already beyond the pale. I prefer 3rd order Arthur-Smythe xovers for the usual treble xover.

Is this because of the evils of the filters themselves, or because it is intrinsically better to overlap drivers over a wider range? This does seem to be a point of controversy: some people are absolutely convinced that higher order is better, and others that second order is where it's at. I still have an open mind on the matter. With the best phase alignment between drivers I can manage, I can hear a slight difference between second, and say 8th order, depending on what I'm listening to, but whether one is better than the other, I can't say. If I then switch to 48th order, I can't honestly say that I am hearing much of a difference, nor do my ears bleed. Presumably I might hear more of a difference at very high volumes, where the higher order would be better for the drivers..?

With my software I am able to change filters and other settings on the fly in real time (it takes about a second to calculate new filters and load them in with barely a glitch), and I am adding other random bits and pieces as I go along, such as the 'Stochastic Interleave' function, and correction based on measurements.

Re convolution engines, I have written my own based on the fftw library, using overlap-and-add, and the PC hardly breaks into a sweat whatever size the buffer. I am aware, however, that there is a fundamentalist movement that believes that convolution must be performed directly.

Edit: the screenshot shows the audio device as Kx driver, and a sample rate of 48 kHz. This is my 'other' PC, and I'm normally using a better card than that with native 44.1 kHz.
 

Attachments

  • screenshot.jpg
    screenshot.jpg
    126.5 KB · Views: 452
Last edited:
With my software I am able to change filters and other settings on the fly in real time (it takes about a second to calculate new filters and load them in with barely a glitch), and I am adding other random bits and pieces as I go along, such as the 'Stochastic Interleave' function, and correction based on measurements.

Re convolution engines, I have written my own based on the fftw library, using overlap-and-add, and the PC hardly breaks into a sweat whatever size the buffer. I am aware, however, that there is a fundamentalist movement that believes that convolution must be performed directly.

Edit: the screenshot shows the audio device as Kx driver, and a sample rate of 48 kHz. This is my 'other' PC, and I'm normally using a better card than that with native 44.1 kHz.

It appears you are just using text book filters. I don't think you can make meaningful comparisons until you can match the frequency response when you make such changes. That is another feature I like about the UE. Since the system can be eq'ed to a specific target the crossovers can be changed and the system will have the identical response so you are truly listing to changes in crossover order, overlap and changes in polar response.

As far as a fundamentalist movement, they must no understand the equivalence of the different approaches. What direct convolution gets you is long latency and high demands on the CPU.
 
It appears you are just using text book filters. I don't think you can make meaningful comparisons until you can match the frequency response when you make such changes. That is another feature I like about the UE. Since the system can be eq'ed to a specific target the crossovers can be changed and the system will have the identical response so you are truly listing to changes in crossover order, overlap and changes in polar response.

In the screenshot, the 'Correction' checkbox loads the correction based on measurements but the choice of files etc. is still hard-coded; the GUI's a bit basic at the moment...

I have a choice to use an external set of correction filters e.g. generated by REW, or to load impulse responses for each driver and apply reverse correction automatically, with hard-coded parameters such as degree of smoothing.
 

Attachments

  • screenshot with correction.jpg
    screenshot with correction.jpg
    128 KB · Views: 447
Last edited:
In the screenshot, the 'Correction' checkbox loads the correction based on measurements but the choice of files etc. is still hard-coded; the GUI's a bit basic at the moment...

I have a choice to use an external set of correction filters e.g. generated by REW, or to load impulse responses for each driver and apply reverse correction automatically, with hard-coded parameters such as degree of smoothing.

Thanks. That seems pretty nice.
 
.... With the best phase alignment between drivers I can manage........

How do you assess phase alignment?

What do you use for measurement microphone?

Have you experimented with inverse IR for driver correction?

My use of steep crossover slopes is based on improved IMD performance, power handling, and ability to get more useable bandwidth from drivers. This expands the usefulness of many drivers.


kgrlee: 'Evils' and 'most speakers' applies to many poor design choices. Specific paper? And what evil experiences do you have with steep crossover slopes?

Regards,

Andrew
 
high order xovers are evil for most speakers; whether analogue, digital, Min. Phase or Linear Phase. Richard Greenfield has an AES paper on the subject. IMHO, 4th order LR is already beyond the pale. I prefer 3rd order Arthur-Smythe xovers for the usual treble xover.
Is this because of the evils of the filters themselves, or because it is intrinsically better to overlap drivers over a wider range?
A speaker isn't a 1D transmission channel. It has 1D input but 3D output.

You need to consider what happens at other listening axii/positions and also what the speaker is shoving into the room.

Is Linear Phase Worthwhile? and Polar Response Errors in Digital Crossover Alignments discuss some of the issues. I don't agree with everything Dr. Greenfield says but his is a good overview.

'Evils' and 'most speakers' applies to many poor design choices. Specific paper? And what evil experiences do you have with steep crossover slopes?
I was external examiner for some of the U of Essex papers on digital stuff including digital xovers so I've been playing with these for longer than most.

Probably the most evil factor is you don't really want the directivity of your speaker to change abruptly. This was identified as long ago as the 50's by the BBC and my own experience only confirms it.

A zillion dB/8ve xover to a sub at 80Hz in your domestic room is probably OK ... especially if you correct the phase. :D

Having said that, a somewhat lesser slope is OK too for "improved IMD performance, power handling, bla bla .. ".

Andrew, would you care to tell us your experiences, good or bad, with steep slope xovers?
 
Last edited:
Dear All,

Regarding the comments on FFT length in Ultimate Equalizer V4 for 48kHz sampling.

The FFT length is selectable: 8192 and 16384 bins. Obviously, longer FFT will result in better low-frequency resolution. The only penalty is longer latency. 145ms for 8192 and 290ms for 16384bins in WASAPI Exclusive Mode and partitioned convolution and Linear Phase Mode.

UE4 was designed with very stringent latency requirements for linear-phase audio processing for Bluray playback. However, since HDMI-based 3D screens introduce their own video latency, the stringent requirements may not be necessary.

If you only use UE4 for audiophile stereo playback, then latency does not matter, and you can select 16384bins FFTs.

Future releases of UE software will take into account ever changing 3D video latency and perhaps extend the FFTs to 32k as well.

All above comments relate to 48kHz sampling. FFTs are twice as long for 96kHz sampling, so that low-frequency resolution is the same as for 48kHz. This is where your CPU and data bus (24bit depth) starts to prespire.


Best Regards,
Bohdan
 
Hi Bohdan,

Glad to see you chime in here. I'm not up to date with all the improvements to UE V4. I didn't realize that 16384 length was an option. That should go a long way toward better accuracy at low frequency.

Also, aren't the latencies you are quoting for linear phase? If phase linearization is not engaged latency still goes down in V4 as it did in V3, correct?

I have to take some tome nad get V4 up an running.
 
Last edited:
Probably the most evil factor is you don't really want the directivity of your speaker to change abruptly. This was identified as long ago as the 50's by the BBC and my own experience only confirms it.

A zillion dB/8ve xover to a sub at 80Hz in your domestic room is probably OK ... especially if you correct the phase. :D
I don't agree with an absolute assessment about a specific crossover. Maybe in the transition from woofer to sub, I do use very low order in this area, but I don't attempt linear phase in that area.

My current system crosses W/M @250HZ LR8 and M/T @1200 LR8, linear phase using the UE, confirmed via measurement on the latter. There is no abrupt change in the polar response, that was a particular design goal.

From my experience I agree with Andrew: " 'Evils' and 'most speakers' applies to many poor design choices."

Normalized M/T polar response measurements are shown below. Due to limits of the measuring environment, the woofer to mid is not shown.

250LR8-1200LR8_00-90_Deg_Polar_Normalized.gif

Below 500Hz is outside of the window, above 20K is not corrected due to tweeter breakup. Phase is linear within the passband specified. Note that at the 1200Hz M/T crossover you would not be able to identify the crossover point on any axis.

This is LR8. My old passive systems were generally crossed LR2, but when going to the UE, I found that low order crossovers (less than LR8) could not, in my testing and with my system, yield a smooth polar response. I see it as very case dependent and do not see any rule-of-thumb being applicable.

Dave
 
A speaker isn't a 1D transmission channel. It has 1D input but 3D output.

You need to consider what happens at other listening axii/positions and also what the speaker is shoving into the room.

Is Linear Phase Worthwhile? and Polar Response Errors in Digital Crossover Alignments discuss some of the issues. I don't agree with everything Dr. Greenfield says but his is a good overview.

I was external examiner for some of the U of Essex papers on digital stuff including digital xovers so I've been playing with these for longer than most.

Probably the most evil factor is you don't really want the directivity of your speaker to change abruptly. This was identified as long ago as the 50's by the BBC and my own experience only confirms it.

A zillion dB/8ve xover to a sub at 80Hz in your domestic room is probably OK ... especially if you correct the phase. :D

Having said that, a somewhat lesser slope is OK too for "improved IMD performance, power handling, bla bla .. ".

Andrew, would you care to tell us your experiences, good or bad, with steep slope xovers?

1ch in, in 1ch out. All measurement points can only be correlated to single input, a design axis is chosen that is representational of design application.

Crossing over between two drivers with large differences in directivity at chosen crossover point is perfect example of poor design choice, if off axis performance is priority (a great one IMO with omni and dipole speakers). Use of steep crossover results in abruptness, but shallow slope seeking concept of smooth blend results instead in increasing ripple off axis in overlap region due to differing change.

I've posted two-way fully active DSP PC based design utilizing direct inversion of driver IR for linearization; DSP Pluto Clone. I've applied crossovers as IIR filters from 24dB/octave to 192dB/octave both as minimum phase filters and as linear phase filters and also FIR filters of various tap counts to create range of crossover slopes.

Going from 24dB/octave to 48db/octave nets some measurable and audible improvements in distortion performance, and further improvement to 96dB/octave with IIR based filters. Minimum phase crossover at 96dB/octave didn't sound as good to me as linear phase version and the linear phase version didn't perform as well as FIR with same number of effective taps, i.e. filters truncated to length where sample values are 100dB below peak value.

Speaker with full linearization passes arbitrary waveform within bandwidth, and music playback, in particular acoustic music and voice, is most natural sounding that I've heard from any loudspeaker. Closest comparison is electrostatic headphones.

Regarding latency: My understanding is JRiver Media Player has controls for video delay, and certainly an integrated video/audio DSP approach is possible.
 
I've posted two-way fully active DSP PC based design utilizing direct inversion of driver IR for linearization; DSP Pluto Clone.
Thanks for the link Barley. Got more details of Pluto?

If I may ask a few naive questions ..
  • What distance is the measuring mike from the speaker? What mike?
  • What axis?
  • Is this anechoic?
  • What measuring software?

Got any off axis measurements of the same system including impulse responses ?

Also at slightly different height?

Bit suspicious of your "speaker response looks when one of the drivers has leads reversed". All the fuzz has gone.
 
Last edited:
I have a choice to use an external set of correction filters e.g. generated by REW, .

hi,

be careful with REW export,IR is not time windowed.
with REW,you need to add delay and cut the lenght of IR.(if you take a look at IR,it's start at t=0)
i've used to.
open audacity,add a silent...etc
the better and simple way is to use HOLM.you can limit negative and positive number of sample when you are exporting a IR.
:)just a advice to avoid issues.
 
Last edited:
Got any off axis measurements of the same system including impulse responses ?

Also at slightly different height?
Found the Pluto site.

Impulse response & response eg 100mm above & 100mm below your 'design' height for your version please? [edit] Make that +15, +30 & -20 degrees to compare with his. [/edit]

Linkwitz uses a 1kHz xover which I see you've followed. That should certainly alleviate certain evils in high slope xovers but I'd be interested to see your impulse responses at different heights and also the frequency responses to compare with his.

Gotta admit I'm impressed by Pluto. It is the most innovative of Linkwitz's designs and I nearly forgive him for appropriating a xover configuration that speaker designers have known about for years before he turned up and put his evil name to LR. :D

Would still like to know the answers to ..
  • What distance is the measuring mike from the speaker? What mike?
  • What axis?
  • Is this anechoic?
  • What measuring software?
 
Last edited:
Hi Bohdan,

Also, aren't the latencies you are quoting for linear phase? If phase linearization is not engaged latency still goes down in V4 as it did in V3, correct?

Hi John,

I have been reading posts for a short while only. I am glad to see such interest in linear-phase technology. Coupled with HBT equalization, it's the most powerful processing there is for loudspeakers.

Yes, the latency figures I quoted are for linear-phase only. Minimum-phase latency is around 65ms for 8192 and 130ms for 16384bins. FFT length is controlled by the UE buffer size automatically.

Best Regards,
Bohdan
 
Has this wandered off into crossover design, or are we still talking about rePhase software?

I think it's still more-or-less on topic as long as it wanders back to rephase now and again.

I would be very happy to use rePhase-generated filters if I actually knew how to use the tool... It's not obvious to me how I load a raw impulse response and view the phase/amplitude result of it convolved with the filter. Currently it seems like a tool that can generate a filter if I study a graph of phase/amplitude of my driver in another tool and type the values into rePhase. Have I got this wrong? (version 0.9.2)
 
Thanks for the link Barley. Got more details of Pluto?

If I may ask a few naive questions ..
  • What distance is the measuring mike from the speaker? What mike?
  • What axis?
  • Is this anechoic?
  • What measuring software?

Got any off axis measurements of the same system including impulse responses ?

Also at slightly different height?

Bit suspicious of your "speaker response looks when one of the drivers has leads reversed". All the fuzz has gone.

I've got matched pair of Earthworks OM-1 microphones.

Design point is 9" from tweeter face. Tweeter axis is angled about 5 degrees up from horizontal, and microphone is placed slightly below tweeter axis.

Measurements are in living room.

Main software is Cool Edit Pro 2.1. Familiar with Praxis, Holm, ARTA, REW, and Audacity. Inverse transfer functions are created with Kirkeby transform.

Off axis responses and phase are posted here and here.

From perspective that speaker response is flat to fractions of a degree at design point, with driver linearization prior to crossover filtering, the reverse null is fuzz free too, along with image coherence through crossover region.
 
I was external examiner for some of the U of Essex papers on digital stuff including digital xovers so I've been playing with these for longer than most.

Probably the most evil factor is you don't really want the directivity of your speaker to change abruptly. This was identified as long ago as the 50's by the BBC and my own experience only confirms it.

@kgrlee

Aha! So you might know something about the so-called Stochastic Interleave alignment described here:
http://www.essex.ac.uk/csee/researc...cs/C76 Minimum phase signal processing LS.pdf

...which does seem relevant to what you say above.

The aim seems to be to mix up the comb filtering between drivers through the crossover region, allowing you to have shallower crossover slopes without obvious audible artefacts. I've coded it into my crossover system, but haven't been able to try it for geographical reasons (it's Christmas and I'm staying elsewhere from where my system is :-( ).

Does it work?!
 
I think it's still more-or-less on topic as long as it wanders back to rephase now and again.

I would be very happy to use rePhase-generated filters if I actually knew how to use the tool... It's not obvious to me how I load a raw impulse response and view the phase/amplitude result of it convolved with the filter. Currently it seems like a tool that can generate a filter if I study a graph of phase/amplitude of my driver in another tool and type the values into rePhase. Have I got this wrong? (version 0.9.2)

you can use HOLM.
export IR as .txt file from rephase.
import the IR.txt from HOLM

you can do math.AxB or A/B...you need the files with the same extension.
(2 .txt file or two measuremnt).