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

Oabeieo, I will duplicate my email to you here, as it might potentially help others as well:

Here are some rePhase settings for a linear-phase Butt 18dB/oct crossover, to be loaded using the "load from clipboard" functionality.

low pass:

Code:
rePhase settings
eNptUk1v2zAM/SuGThvgZHLiOlluLdrjsJ52CQKDtiVbqL4myUuzov99lBxnSdGLLT6Sj48fb6Qx
rzUXMjDnyW5/yEnLNBpC92RHlOg6yQiCA2tf/KgQ29wBA7rltCma77xcr2BdVd224U1ZlRWnMdoZ
729Z0WAaFEMCoewofWTlwn2IMk5BwJj1KvuWVWXWiOAzLg3gTwrNfPZlGV7DVzLH1n8wWRiNOcWS
bhHvQUSLLmmU0rPfE3XvwA61ZyFga/4zrHagX8iO5kTc6NoTaY4LC94j38MYED4aFwa0CiyoRylz
LLehm4jQWDZih3xPBtEPc+ZKd5lxHXPZvZSL5zNYzgTFJRmfBxSnGPjRMYXrILs30pwST5TXGmWZ
9hBYMjsIgDITze3nME2jNpxjk3EoyD6IjtUK+pSbDDuAn6iExnGG9AxCsevE95xoEysS5DAW3eIv
hGny2mj2Aa1xacahb1Gknuy8B2skOBFOKc0pdHlQVl7VSuue8ekOy3Ji8YaHI7iowrHnJPs/WPux
OZ/YJ87rO7lb0i57fPr14+fjU4wZm9szDGB9DKzWW9zPNIpOONZe+k3Cw8nGYq1xZ1d2Oa+cHIXu
zHGSP4DW5P0f3sEcAQ==


high-pass:

Code:
rePhase settings
eNptUktv2zAM/iuGThvgZE7i5nXb0B6H9bRLERi0RdtC9ZokL82K/vdRcpLGRS+2+JH8+PHxymrz
UrVCBnSe7Z8OOWtQkyF0x/ZMCc4lMgJ7bJ79oAjjy7LZ8Zqv16ttuyzgrl5tN+tdC5xv+G5Vxmhn
vJ+ykoEaFBKBUHaQPrK2wn2IMk5BoJjVMvuWrcusFsFnrTRAPyk0+uzLPLyEr+wSW/2lZGE05Szm
xZbwDkS0inlRRAv/jNSdA9tXHkOg1vxnWOVAP7N9kTMx0fXEetH1MwveE+GPIRB+NC70ZC2ooh6k
zKnepthEpIh1I3bIp5lLzTPjOLrsu5SzxzNYXggW12R6HkidQvCDQ0X7YPtXVp8ST9TXGGVRewiY
TA4BSGeimX4O4zgq07bUZZwKsfeCY6WgS7nJsD34kUpommdIzyAU3ia+5UybWJERh7HkFv8gjKPX
RuMHtKKtGUe+2SL1ZC+LsEaCE+GU0pwilwdl5U2ttO8LPh5iWY4s3rThCC6qcPiYZL+DlR/q8419
4rw9lLt5wbP7h98/f90/xJihnt5hAOtjIJ14vOc0Ci4cNtd+k/BwsrFYY9zZlV3vK2dHobk5jvJ7
0Jq9/QcvVBxj

Everything happens in the minimum-phase tab: the Butt filter and the the inverse all-pass.
As you can see the inverse all-pass is identical on both sides, meaning you can apply it on the input rather than on each channel.
 
Last edited:
  • Like
Reactions: 1 user
And here is an illustration of the crossover, with the sum in green
 

Attachments

  • butt18 linear.png
    butt18 linear.png
    14.1 KB · Views: 300
A 1st order crossover does not need any phase linarization as it is already phase linear ;)
It is pretty much impractical for any real world application though.

POS,

If it is phase linear, shouldn't the "compensate 1st order" be a flat line then ?

Unfortunately, I have a speaker that uses a 1st order filter on the tweeter and this slope would flatten the phase out to mate with adjacent driver, but I do not want to change the frequency. It drifts @ 70 degrees out of phase over its frequency range.

Any recommendations ?

Thanks.

1st-order.jpg
 
Last edited:
The "compensate" 1st order does compensate both magnitude and phase, and is not intended for phase linearization alone, and certainly not for a crossover.
A 1st order filter does not have a flat phase, but a 1st order crossover does.
But again, this is purely academic as such crossovers do not exist in loudspeakers in practice.

Your tweeter might use a 1st order filter (like a simple cap for a passive high pass), but the final acoustical filter (the one that matters) is certainly not 1st order. If it was then your tweeter would be toast on the first listen, as simply keeping a constant excursion when going down in frequency already requires an attenuation of 12dB/oct...
 
Last edited:
The "compensate" 1st order does compensate both magnitude and phase, and is not intended for phase linearization alone, and certainly not for a crossover.
A 1st order filter does not have a flat phase, but a 1st order crossover does.
But again, this is purely academic as such crossovers do not exist in loudspeakers in practice.

Your tweeter might use a 1st order filter (like a simple cap for a passive high pass), but the final acoustical filter (the one that matters) is certainly not 1st order. If it was then your tweeter would be toast on the first listen, as simply keeping a constant excursion when going down in frequency already requires an attenuation of 12dB/oct...

Unfortunately, 99% of that went right over my head. =)

I was trying to erase the phase from the passive 1st order XO and "replace" the XO with a linear phase software XO while keeping the cap (passive XO) in place to protect the tweeter against any amp turn on/off thumps that would bypass the software XO, but not the passive XO.

Hopefully that made sense.
 
Last edited:
Ok that makes sense!
So you are keeping the high pass portion of the crossover, removing the low pass on the woofer, and going full active with phase linearization. Is that correct?
The cap is the only filter that was in place in the passive version?
Are you doing the whole crossover with FIR, or IIR with FIR on the input?
 
Ok that makes sense!
So you are keeping the high pass portion of the crossover, removing the low pass on the woofer, and going full active with phase linearization. Is that correct?
The cap is the only filter that was in place in the passive version?
Are you doing the whole crossover with FIR, or IIR with FIR on the input?

I am taking a 3-way passive and turning it into a 4-way active by adding & replacing some drivers.

The only passive part that I want to keep (see red circle) is the tweeter protection (fuse and cap and coil). The sub, bass and midrange will be wired directly to their individual amps. The tweeter will have its own amp, but have some passive protection for potential amp turn on/off pops. All 4 channels/side will have linear phase FIR XOs via an 8-channel DAC.

That is the current plan if it makes any sense.

tweeter-XO.jpg
 
Last edited:
That passive filter is actually a 2nd order one.
You could of course remove the lpad, and also probably the fuse if you dedicate a proper amp (read adequate wattage and gain), as these fuses are typically there to avoid amp clipping injecting too much HF energy in the poor tweeter in passive systems (bass clips, tweeter dies).

Now on how to build the whole thing, if I were to do this myself I would follow my usual recipe: https://www.diyaudio.com/forums/mul...ion-eq-fir-filtering-tool-68.html#post4322701

Measure with whatever passive filter you want to keep in the final design.

Building a coherent 4-way system is *very* difficult with minimum-phase filters, but linear-phase makes it way easier as you don't have to worry about all those phase interactions between the different crossover points anymore: simply shoot for a flat phase and voilà.
 
That passive filter is actually a 2nd order one.
You could of course remove the lpad, and also probably the fuse if you dedicate a proper amp (read adequate wattage and gain), as these fuses are typically there to avoid amp clipping injecting too much HF energy in the poor tweeter in passive systems (bass clips, tweeter dies).

Now on how to build the whole thing, if I were to do this myself I would follow my usual recipe: https://www.diyaudio.com/forums/mul...ion-eq-fir-filtering-tool-68.html#post4322701

Measure with whatever passive filter you want to keep in the final design.

Building a coherent 4-way system is *very* difficult with minimum-phase filters, but linear-phase makes it way easier as you don't have to worry about all those phase interactions between the different crossover points anymore: simply shoot for a flat phase and voilà.

Thanks for the info. I have been working my way up to the 4-way. 2-way is a breeze and I quickly discovered it gets more complicated from there.

The "lpad" is just a jumper wire (in place of a resistor) that can be wired around.

FWIW, the tweeter filter actually measures @ a 5dB/octave in-room rolloff over 4 octaves so it appears to behave closer to a 1st order than a 2nd order.

I used JRMC in the past, but have moved everything down into CamillaDSP this time round.
 
Last edited:
Oabeieo, I will duplicate my email to you here, as it might potentially help others as well:

Here are some rePhase settings for a linear-phase Butt 18dB/oct crossover, to be loaded using the "load from clipboard" functionality.

low pass:

Code:
rePhase settings
eNptUk1v2zAM/SuGThvgZHLiOlluLdrjsJ52CQKDtiVbqL4myUuzov99lBxnSdGLLT6Sj48fb6Qx
rzUXMjDnyW5/yEnLNBpC92RHlOg6yQiCA2tf/KgQ29wBA7rltCma77xcr2BdVd224U1ZlRWnMdoZ
729Z0WAaFEMCoewofWTlwn2IMk5BwJj1KvuWVWXWiOAzLg3gTwrNfPZlGV7DVzLH1n8wWRiNOcWS
bhHvQUSLLmmU0rPfE3XvwA61ZyFga/4zrHagX8iO5kTc6NoTaY4LC94j38MYED4aFwa0CiyoRylz
LLehm4jQWDZih3xPBtEPc+ZKd5lxHXPZvZSL5zNYzgTFJRmfBxSnGPjRMYXrILs30pwST5TXGmWZ
9hBYMjsIgDITze3nME2jNpxjk3EoyD6IjtUK+pSbDDuAn6iExnGG9AxCsevE95xoEysS5DAW3eIv
hGny2mj2Aa1xacahb1Gknuy8B2skOBFOKc0pdHlQVl7VSuue8ekOy3Ji8YaHI7iowrHnJPs/WPux
OZ/YJ87rO7lb0i57fPr14+fjU4wZm9szDGB9DKzWW9zPNIpOONZe+k3Cw8nGYq1xZ1d2Oa+cHIXu
zHGSP4DW5P0f3sEcAQ==


high-pass:

Code:
rePhase settings
eNptUktv2zAM/iuGThvgZE7i5nXb0B6H9bRLERi0RdtC9ZokL82K/vdRcpLGRS+2+JH8+PHxymrz
UrVCBnSe7Z8OOWtQkyF0x/ZMCc4lMgJ7bJ79oAjjy7LZ8Zqv16ttuyzgrl5tN+tdC5xv+G5Vxmhn
vJ+ykoEaFBKBUHaQPrK2wn2IMk5BoJjVMvuWrcusFsFnrTRAPyk0+uzLPLyEr+wSW/2lZGE05Szm
xZbwDkS0inlRRAv/jNSdA9tXHkOg1vxnWOVAP7N9kTMx0fXEetH1MwveE+GPIRB+NC70ZC2ooh6k
zKnepthEpIh1I3bIp5lLzTPjOLrsu5SzxzNYXggW12R6HkidQvCDQ0X7YPtXVp8ST9TXGGVRewiY
TA4BSGeimX4O4zgq07bUZZwKsfeCY6WgS7nJsD34kUpommdIzyAU3ia+5UybWJERh7HkFv8gjKPX
RuMHtKKtGUe+2SL1ZC+LsEaCE+GU0pwilwdl5U2ttO8LPh5iWY4s3rThCC6qcPiYZL+DlR/q8419
4rw9lLt5wbP7h98/f90/xJihnt5hAOtjIJ14vOc0Ci4cNtd+k/BwsrFYY9zZlV3vK2dHobk5jvJ7
0Jq9/QcvVBxj

Everything happens in the minimum-phase tab: the Butt filter and the the inverse all-pass.
As you can see the inverse all-pass is identical on both sides, meaning you can apply it on the input rather than on each channel.

And here is an illustration of the crossover, with the sum in green


Aaahhhh now I see !!! Yes I can replicate that and do it with 1024 taps no problemo!

So it’s not linear , but inherent phase. And my ears definitely absolutely can’t tell the difference!!! That will absolutely work!

Although,.... in a multi-way, 4way , with two band pass filters , will there be a minimum phase shift mid band like most minimum phase band pass filters (especially LR2) I can’t sim a 4 way in rephase.

I can do linear phase butts on high pass by using subsonic linearization.... how do I do that for low pass ? And just have flat “textbook “ phase and I can do the rest with measurements and peq....

Is there any way possible



Edit ::::: the sum is in green .... so what if my axis and mounting locations are way different making them sum wierd as hell and the lobes are funky , a true linear phase seems to be better suited no?
 
Hot **** it works beautifully!!

Thank you! I spent a few hours making midbass to midrange and midrange to tweet

The sound quality is almost the same except the midrange sounds much more balanced.

It was quick and dirty going off some old driver measurements, I will be starting fresh tonight !!!

The midrange ...... oh this is going to hopefully fix some of the echoing peaking nonsense....


What you said about flat magnitude rang a bell , that’s why I really wanted this to work.
I think we’re ( your) on to something here.....
 
:eek:So I went through a full blown retune

Implementing this between the sub and midbass, and between the midrange and tweeter

The midrange to midbass I used linear phase 1st order....

All I can say is holy smokes!!! :eek:

Very different.... very!

The sub to midbass has a very different sound .... way less boomy and the sub finally sounds like a 18db filter , before I was using LR4 and the sub still had very audible response into the 150s (hz) , now it rolls off with my 1st comb filter and sounds normal , no boomy.... and the midbass (oh my goodness) sounds like it’s digging into the 40s but it’s not. The little amount of power getting to the midbass in the 40s sounds like a lot because the sub and midbass are working together way way way better...

Going 1st order between midbass and midrange (I should have done this a long time ago) my midrange have 6mm linear , so I’m not worried about them playing down into the 50s with 1/4 power.... and the kick panel 8s playing Yo-Yo 1k range at 1:4th power works with linear phase ....... get my delays right and away she goes... the midrange sounds way better in the 800hz range ( not where I want it but way better)

The mid to tweet ....... being honest the LR2 sounded better , (I might go back)
With a 6” midrange using the LR2 let the tweet play down low enough with low power at 2.7k (crossed at 3.2k) because the mid would start having axis issues
And a back chambered tweet gave very nice lobing between the mid and tweet with a LR2 (equal energy) the BW is good ....... I have to listen more......

All day of measurements and getting acoustic slopes.....

I swapped my sharc to the Dirac sharc just to ice the cake with a 10min finalized response, after few days when have more time and listen I’ll go back to my open drc sharc and go for the rephase room correction once I’ve decided what to do next....


The LR seems to roll off too early in a car ( why didn’t I think of this sooner ..... because I needed someone to give that one idea....it makes perfect sense)
We’re definitely.... definitely! On to something
 
Last edited:
Building a Crossover

Hi everyone, I'm attempting to emulate a passive crossover circuit in my Minidsp, its a two way design but has a response that is not as simple as crossover point and slope.

I've generated a filter slope by modeling the circuit in LT Spice, here is the tweeter:

Screen Shot 2021-04-20 at 8.41.27 AM.png



Spice will export a text file that after a bit of reformatting I can import as a measurement into Rephase:

rephas curve.PNG

When I hit the generate button I get the red curve - my assumption is I can then export this as a filter file but the file I get is the same regardless of which curve I've imported (woofer or tweeter). Guessing the filter it makes can only be from the the settings within rephase? I looked around a bit but didn't find a clear answer, so apologies in advance if I'm missing some basic information. I've been messing around with audio stuff for a while but the dsp and filter stuff is deep and I'm very new to it.

Thanks!
 
Last edited:
The measurement loaded in rephase is only a guide upon which you are supposed to build a correction, and generate its FIR. If you simply load a measurement and generate a FIR then you get a flat transfer function and no correction at all.

Here you have generated the response you want to emulate, and not a measurement you want to compensate, so in order to build a correction that corresponds to this response you will need to use the "invert response" functionality, and then use whatever filter and EQs needed to get a flat curve. You can then do a sanity check using the bypass button in the measurement tab.

In your case you want to stick with minimum-phase filters and EQs only.
In the end depending on the complexity of the correction, you might even just take note of the different filters used and simply set them in your minidsp, without having to use its FIR capabilities at all.

Looking at the response you are trying to replicates it looks like a 4th order high pass and a shelving could be enough.
 
Very different.... very!

(...)

The LR seems to roll off too early in a car ( why didn’t I think of this sooner ..... because I needed someone to give that one idea....it makes perfect sense)

The difference between properly implemented LR and odd order Butt should be more subtle than that: we are talking about a 3dB difference in the power response at the crossover frequency.
Chances are that if you replace your current 3rd Order Butts + inverse allpass with linear phase 4th order LR you would probably get a pretty similar result.

In any case, the difference you get between a LR and odd order Butt is not linked to the apparent early rolloff of one compared to the other: the difference is solely in the off axis behavior.
 
I am going to sit down and commit to learning and using rePhase in the coming week!
I have looked though various tutorials linked at rePhase - Official Site - Free FIR filtering tool yet it seems that they all are slightly different and all have small information gaps that I am having a hard time following (although I do not have my measurements yet, and so I am not truly going step by step).

Anyways, I am wondering if the community can chime in which tutorials they think are the best for a first time user amongst the ones linked at rePhase - Official Site - Free FIR filtering tool which are:
gin8330, 2020: REW average measurements and impulse correction rePhase
Sixto, 2019: english translation of pda0 & Bear's 2017 tutorial on REW + rePhase + JRiver
pda0 & Bear, 2017: comprehensive tutorial on REW + rePhase + JRiver and accompanying thread
SwissBear, 2017: REW auto EQ + rePhase
SwissBear, 2016: REW measurement averaging + rePhase
JdM12, 2016: Windows how to with Equalizer APO and ASIO4ALL/VB-CABLE/VSTHost/ConvolverVST
mwillems, 2014: HOLMImpulse + rePhase + JRiver
miniDSP, 2013: application note, rePhase with miniDSP products
Pat Brown, 2013: prosoundweb article
Jimmy Thomas, 2012: HOLMImpulse + rePhase + JRiver

Or if there are any other tutorials that other found beneficial?

My setup is L&R speakers that go down to 80hz and then are crossed over to two subwoofers that take it down to 20hz.
Two questions I already have are:
1) It is unclear to me if one should produce FIR filters in the <100hz range (or just rely on PEQ filters). The reason I am asking, is to see if one should take measurements with the subwoofers playing, or just with the main speakers?
2) The measurements, combining/averaging of measurements, PEQ and FIR filters generated should all be done on the L and R speakers independently correct? As having the speakers the same listening distance to the MLP should result in good and adequate integration between the two speakers correct? Sorry for such a general question, I am used to using the MMM for L&R speakers and subs combined and then applying a global EQ, so I am just confirming that this process will occur on each channel independently.

Thanks again! As I really look forward to learning more about rePhase and implementing it into my system.
 
Last edited:
Yes the tutorials are little confusing.
I am using nearly gin8330 tutorial without points 3., 5. and additionally I make manual phase correction based on measurements taken with point 7. filter. I make phase correction on clear rePhase filter set where measurement reference is FR measurement with initial step 7. filter and importing (actually manually writing) phase correction EQ-s to step 7. filter to get summed filter with corrected phase.
Biggest shortage of all tutorials is that they not contain explanations why some steps are done or needed.
Also I did not remember any tutorial is explaining how to use correctly rePhase Filter Linearization options.
Great tool but relatively long learning curve because lack of documentation when you start from zero.
 
Yes the tutorials are little confusing.
I am using nearly gin8330 tutorial without points 3., 5.....
Great tool but relatively long learning curve because lack of documentation when you start from zero.

Thanks for the info!

Hummm... wonder if there would be any utility in creating a 'live' google document that is based on prior tutorials and then everyone could contribute to it and edit it as they see fit. Then after a few months the document could be 'locked in' and updated on an as needed basis.

I realize that I am very new to this form and community, so I don't want to come across as ungrateful or indicate that there is not already countless invaluable resources regarding rePhase (not to mention the program itself).

But certainly if the community thinks there is a need for a comprehensive tutorial / walkthrough I would be happy to help get the ball rolling and integrate various tutorials that already exist.