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

This is very interesting:)
Can you draw a picture of this setup with responces and corrections?
signal - rew - amp - 2"
- rew - amp - 8"

As I understand it the 2" is cancelling the reflections at about 800Hz?

Maybe in an own thread. I know it is a lot of work, but the solution is fantastic!

Yeah I’ll do a separate thread in the car audio section
And not clutter this fine thread.

When I get stumped this thread has the the right ppl to help me get on track

It’s not a cure all , but definitely takes the edge off. It works surprisingly good, but also has its own little issues that are a way better trade off

I reduced the power going to the 2” and that seems to work the best. I also added some very aggressive compression as well. But basically just took the difference of the 8 in and out of the pod. Averaged the two and inverted it.
I also built linear phase crossovers for the 2” and band limited them to 600-1k
48db slopes. I only wanted to target the modal midrange where I was having issues and the 2” was worthless under 600 and seemed to cause more issues that I’m not smart enough to deal with. The 2” just barely barely playing stops the issue, the more power I put on it the more the other issues came up.
So it’s in a happy place now (I think) ;-)

That’s where I stared as the response to the 2” and that alone worked pretty good , I’m sure it could be better but for a guess it did what I wanted so hey....can’t argue with results.
 
Super!
600Hz to 1k is 34cm to 57 cm wavelength so 2" is not directive in that erea.
So maybe that explains why it is working so well.
And of cource you need the very good phase control that REW provides.
A comparition is noice cancelling headphones, and we all know they work! (With some ekstra work put into it because the canselling is done with the same speakercone as the signal:))
 
Last edited:
dB/oct slopes are defined on a logarithm frequency scale: you get 48dB of attenuation on an octave, ie doubling (for a low-pass) or halving (for a high-pass) the frequency.
Getting a given attenuation on a 30Hz bandwidth will not call for the same dB/oct slope at 100Hz as it will at 1kHz for example.

In your case, assuming that box is not crossed over to a sub, what you could do is to first compensate the existing high-pass of the box/driver using a high-pass filter in "compensate" mode in the minimum-phase filter tab to get flat-ish magnitude and phase curves, and then apply whatever linear-phase high-pass you want, with the slope you need.
 
dB/oct slopes are defined on a logarithm frequency scale: you get 48dB of attenuation on an octave, ie doubling (for a low-pass) or halving (for a high-pass) the frequency.
Getting a given attenuation on a 30Hz bandwidth will not call for the same dB/oct slope at 100Hz as it will at 1kHz for example.

In your case, assuming that box is not crossed over to a sub, what you could do is to first compensate the existing high-pass of the box/driver using a high-pass filter in "compensate" mode in the minimum-phase filter tab to get flat-ish magnitude and phase curves, and then apply whatever linear-phase high-pass you want, with the slope you need.


Thank you pos!

Yeah not crossed to a sub that is correct. It is just for reinforcement only and with some timing tricks move some of the room modes around or get better reinforcement from the mains.

I don’t like the sound of brute force to fill a hole , I do like multiple drivers with the right timing tricks to reinforce hard room modes.

I just wasn’t sure if the narrow bandwidth will mess with the way the fir linearization is done or not...


Yes I do understand what you mean also like a 6bdBW at 25hz is like a LR4 at 100hz etc for example. So this makes sense on why you brought it up like that.

And the LP side i can just add the linearization filter on top of my minimum phase filter,

Once the compensation is done on the HP side it should work normally I would imagine...?


Okay! Yes I will defytry that approach, it makes good sense and I see what your getting at now.

You guys are the best!
 
Last edited:
This is a very nifty feature!

So I basically was able to use the compensate feature to sorta put what looked like a backwards filter to tell me what the actual rollofff I was getting. Than apply the filter I wanted.

So in the end a 48db linearization seemed to be very close to what I was doing with compensation and adding a 24db minimum phase filter


After I did the compensate and applied the filter (by the way with compensate it looked flat like picture perfect I was very impressed) I than cleared the measurement so I could see only the generated fir without the measurement, than I turned on a 48db linearization and a 24db minimum phase filter and it looked very close to the same with much less samples required to convolve.

So I went with 48db linearization on the high pass and a 24db linearization on the low pass and I am out of taps using a rectangular window. I didn’t have enough to do all of the other without the magnitude moving and changing shape.

So the low pass is only halfway linearization I couldn’t get it the whole way so had to do the other half in the 2x4hd. It seems to work, I did a 24db linearization on the opendrc and a 24db linearization on a 2x4hd (running as the DAC and in 2x2 mode)
I had to kick the sub off the other 2ch to get the taps needed but I have already ordered another 2x4hd for the sub should be here tomorrow.


Overall it seems to work. Took a lot more fir than I thought
I wonder if I can use delay to move some of the phase so I don’t need so many taps.
 
Last edited:
This is a very nifty feature!
I must say I am quite proud of that compensate functionality :p
Once you add the target filter it can be seen as a generalized Linkwitz transform.


I than cleared the measurement so I could see only the generated fir without the measurement, than I turned on a 48db linearization and a 24db minimum phase filter and it looked very close to the same with much less samples required to convolve.
That should not be the case if the result is exactly the same: any mean of achieving a given transfer function will "consume" the same amount of taps. So the difference in taps needed is probably due to some minor modification in the transfer function.

So I went with 48db linearization on the high pass and a 24db linearization on the low pass and I am out of taps using a rectangular window. I didn’t have enough to do all of the other without the magnitude moving and changing shape.
Have you tried playing with the impulse centering? As you compensate some existing minimum-phase behavior the ideal center would probably be in the second half of the FIR (ie over 50%: you can use pourcentages in the centering field).

Overall it seems to work. Took a lot more fir than I thought
I wonder if I can use delay to move some of the phase so I don’t need so many taps.
You can play with delays to help linearizing the phase of a low-pass filter, but unfortunately not a high-pass.
In your case I would personally use the minimum slope needed (ie giving a good enough attenuation where you need it) to avoid using too much taps as well as avoid too much (pre)ringing.
Partially linearizing the phase of a filter is also perfectly acceptable, and will turn some of the preringing into some more postringing.
 
I must say I am quite proud of that compensate functionality :p
Once you add the target filter it can be seen as a generalized Linkwitz transform.


That should not be the case if the result is exactly the same: any mean of achieving a given transfer function will "consume" the same amount of taps. So the difference in taps needed is probably due to some minor modification in the transfer function.

Have you tried playing with the impulse centering? As you compensate some existing minimum-phase behavior the ideal center would probably be in the second half of the FIR (ie over 50%: you can use pourcentages in the centering field).

You can play with delays to help linearizing the phase of a low-pass filter, but unfortunately not a high-pass.
In your case I would personally use the minimum slope needed (ie giving a good enough attenuation where you need it) to avoid using too much taps as well as avoid too much (pre)ringing.
Partially linearizing the phase of a filter is also perfectly acceptable, and will turn some of the preringing into some more postringing.

I don’t know how to do different centering.

I just use exact centering. And energy on bass if taps start to run out.

I watched a few videos on impulse centering and went way way over my head (they busted out a bunch of math instead of explaining it) .


I remember the old rephase had a % sign but the new version is gone so I wouldn’t know how to turn it on.






As far as the part about exactly the same^ well it was close enough but wasn’t exactly, but very close to. Still sounded better.
I took off the low pass and just did the high pass in the fir with compensate
It’s better. Maybe need another opendrc or just keep the minimum phase on highpass. Haven’t decided yet, I’ve tryed a few different versions. Definitely sounds better than trying to fir everything. The magnitude was wiggles, the halfway on the LP is decent also.

Using delay with min phase LP seems to sound the best. I think I’m trying to do too much or not doing it right. There’s definitely a element of echoes in what sounds like the next octave up
 
Last edited:
I remember the old rephase had a % sign but the new version is gone so I wouldn’t know how to turn it on.

You can just enter any value you like, like "8ms", "8" (for 8 samples), "10cm", "60%". "middle" is equivalent to "50%".
It will complain with an "unknown centering" error when clicking the "generate" button if the value is not a valid one.
If you click on the drop down menu on the centering entry (the upper one) you will see a few examples.
You can also combine them like "middle+8ms"
 
You can just enter any value you like, like "8ms", "8" (for 8 samples), "10cm", "60%". "middle" is equivalent to "50%".
It will complain with an "unknown centering" error when clicking the "generate" button if the value is not a valid one.
If you click on the drop down menu on the centering entry (the upper one) you will see a few examples.
You can also combine them like "middle+8ms"



Okay I heard you guys talk about that but never tried it. (Cause I don’t know what it’s for)

I’ll try that tomorrow. I fiddled with it a little tonight.

I took off the opendrc and put it back on the sub so I could do my linear phase crossover and do box correction (sealed qtc .8 46hz) and that btw sounds soooo good in a car my goodness that 18” sounds as transient and in time as a 6.5” sub it’s just amazing.

So I got the 4th 2x4hd today and dedicated it to these 10s

2042t is all I got now. After auditions between the opendrc and the 2x4hd together and just the HD by itself , it’s such a narrow bandwidth I can’t really tell a whole lot difference when everything is playing, and I liked the sub better with all its correction.


So now that I know what the box and crossover are doing I just tried some linearization only with minim phase crossovers.

A had to spread by bandwidth because the inband was too attenuated so it’s now 65hz-110hz (48db slopes both sides) have me a 16.6ms fir which mates up fine to my 17.66ms fit to sub with 3 more ms added to this 10”.

So I used this fir and added 3ms delay on top and it’s sounding very close to when it had the open and Hd in series.

Pic below (yeah it looks bad but sounds ok)


What is it about narrow bandwidth that makes the speaker sound spitty?

Maybe linearization isn’t the problem I’m hearing. (I figured the giant smiley face in time domain was the cause) but after getting it smoothed with the opendrc and HD it didn’t make it super smooth. The timing part was much better but something else is going on.


I’ve heard of ppl doing super narrow bandwidth like in H-K filers and what have you, it’s like the speaker hates it and there’s so much attenuation caused by the filters.

Would brickwall filters be better for this? Like 96db ? So I can get more gain on the passband, how little it is?

I’m not afraid of buying dsps to do the task, would a pair of opendrcs with 48k plug in do the job?




When I play this box with an oactave of bandwidth it sounds great!
B&C 10NWL-64-4 neos, I just want this massive hole at 70hz gone and this box works great for it, just trying to get it to sound smooth seems challenging a bit.
I chose this bass speaker for its low Q for small box and so I can give it 350wrms if I need to, would rant her not.

I guess what I’m getting at , is , is there a bass driver specifically designed for narrow bandwidth? I’m not a speaker design expert, i can muddle my way through winisd fairly well, but that so far on this seems maybe questionable now


 
Hi Oabeieo,

Maybe i misunderstand your situation but can remember from past when pos did link to article over Linkwitz site about how summing of multiple band pass especially if band pass gets narrow can lead to nasty summing errors if side band slopes is not calculated into final slope, to show what i mean see below two graphs from VituixCAD and take a close look in block diagram area that when side band filters are bypassed (greyed out) we get huge summing errors seen in the second graph, reason seems to be at 20dB down and below on center the narrow filler we have three transducers in a advanced sum and the small variation in final slopes then output the relative huge comb pattern.
 

Attachments

  • 1050.PNG
    1050.PNG
    133.6 KB · Views: 392
  • 1051.PNG
    1051.PNG
    139.6 KB · Views: 387
Hi Oabeieo,

Maybe i misunderstand your situation but can remember from past when pos did link to article over Linkwitz site about how summing of multiple band pass especially if band pass gets narrow can lead to nasty summing errors if side band slopes is not calculated into final slope, to show what i mean see below two graphs from VituixCAD and take a close look in block diagram area that when side band filters are bypassed (greyed out) we get huge summing errors seen in the second graph, reason seems to be at 20dB down and below on center the narrow filler we have three transducers in a advanced sum and the small variation in final slopes then output the relative huge comb pattern.



I see what your doing, that’s really cool how to do that.

So you think adding a 20hz hp and a 1k lp also will help?


So the situation is basically this


I have a 3 way up front of car

6nd430- 80-300
2118h 300-1.2
Horn 1.2 up

Than a 18” sealed to 80hz

All LR4


Because of the car shape there’s a dip at 80


So adding the 10s under the back seat and using timing tricks and time them against the sub and the midbass to reinforce that null only where I sit

It works, using an allpass on the sub also works but changes things negatively


So I’m trying to get the 10” so sound smooth and have it only play 65-110


I tried crosier 100 but there was no output ( the dsp wouldn’t pick up the signal it was too low)

I went up in increments of 1hz ( 107,108,109,) and at 110hz audio came back

So now it’s just a matter of trying to get it to sound smooth

If I push the crossover up to 160 it sounds just fine but it detracts from my stage playing that high


Maybe it’s not possible
 
So 1st off I super appreciate the help.

There’s no doubt at all my system would not be what it is without the help from this thread.
(I’m serious also, the last 10% made a higher difference thanks to rephase and the 2”speaker trick inside the pods)


So thank you!


Okay so I’m playing with it again right now. I tried adding a 20hz and 1khz side band filters
(If I understood that right) still sounds the same.

Here’s what I noticing. And this is the ticket to making this work right.


I put back on the opendrc and did the driver linearization ( that works better I’m keeping it)


So the 10s in question sound just fine by themself.
It’s the timing between the midbass drivers that make them sound bad


So the timing scheme that I using to fill this null I think is a little by hass effect

Like I’m using the 10s to piggyback on the wavefront from midbass upfront

If I move the delay the bad sound goes away and null comes back ,


I have the 10s like 1ms about s in front of the 6nd430s in the door .
That repairs the null but it’s hassing a tiny bit.


It’s almost as if it’s amplifying all the distortion that is normally buried in the response.

As soon as I turn off the rest of speakers and just let 10s play,again they sound just fine .

This is very unusual phenomenon. Unfortunately it seems the only delay pattern that is filling the hole properly and not changing the way the fronts sound.


I really hope someone knows what I’m talking about and has experienced this before.

If there’s a fir truck I am all ears
 
Well completely never mind gang

Pos was right! The whole time I needed to just move the impulse....I couldn’t figure out what he was saying. Than I finally did it. I had to type it in. Oh yes. I’m such a dummy

Took off the opendrc back to just the HD , plenty of taps to do it.
It sounds killer. The wierd noise stopped. It’s working. Sounds smooth with sub. Aghhh yes!

That was it! It wasn’t in time right. I was using too much or too little fir.

Now I’m going to go re do my sub and use this trick on it and see if I can just eliminate the opendrc completely.

Before and after

Ahhh looks soo much better sounds soo much better! I love it it works!
Thank you guys once again!



 
I have a feeling that FIR-filters "oversharpens" to the sounds. It sounds like particular sounds have contours around them. Similar to what we see on oversharpenned photos from mobile phones. Similar but minimum-phase IIR-filters don't produce these artefacts.

Does anybody hear something similar?

I use rePhase to generate FIR-filters. I suppose I may not be using it correctly. If it's only me hearing the issue, could you check my filter settings? I believe there may be something wrong with my configuration.

attachment.php


attachment.php
 

Attachments

  • rephase1.jpg
    rephase1.jpg
    510.5 KB · Views: 816
  • rephase2.jpg
    rephase2.jpg
    439.4 KB · Views: 801