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

Member
Joined 2008
Paid Member
I plan to move to FIR processing using CamillaDSP as the engine. I am trying to learn how to implement linear phase crossovers first. This is 96 dB/oct LR filter IRs generated by rePhase and imported to REW. So now I only need to get these files to CamillaDSP (in correct configuration, I made already crossovers there with biquads) and I should be set. Is that correct?

Is there any rule on how many taps to select? Like having a nice number (512, 2048, etc.) or should I just keep it as low as possible to get the desired target?
 

Attachments

  • 3WayFIR.jpg
    3WayFIR.jpg
    93.9 KB · Views: 90
  • 3WayFIR.zip
    14.1 KB · Views: 86
Not what I've heard, I've heard they can make non ringing, super steep, FIR filters nowadays......

The why? Why not? The less interaction between the drivers, the better, in some ways.

One huge benefit would be the lowering of XO points of tweeter options.

but that “interaction” also helps your ears not identify which speakers are playing what frequencies, which results in what some ppl characterized as “sterile” sound

Interaction between drivers is fine so long as there not fighting eachother

maybe you could go for a progression type overlapping filter with 96db slopes

like 1 or 2 octave overlap on lows and 1/2 overlap on the HF driver.

if you really wanted to try them and have a chance at making it sound good.

I would go for 12db on midrange HPF to midbass , 24db on subs and 48db between tweeter and mid ……. That is nice IMO
 
the ringin cancels out.
the problem is, as you move around the canceling doesn't overlap exactly anymore.
best thing to do is try it out in your LPs. with a dirac impulse the ringin should become obvious.
personaly I have used a brickwall crossover with 4096 taps....that is steeper than 96dB/O
 
Not what I've heard, I've heard they can make non ringing, super steep, FIR filters nowadays......

The why? Why not? The less interaction between the drivers, the better, in some ways.

One huge benefit would be the lowering of XO points of tweeter options.
Nowadays?

Didn't know fundamental math and physics changed the last 20 years?
 
i don’t know about ringing, as I’ve only been able to hear it with linear phase eq

i can measure some ringing with a 96db filter, but the ringing is pushed way down into -60db range….

Please correct me because I want to understand and learn also

but does stop band ripple cause ring? Pre or post impulse center ?
 
I'm not going to pretend like I know, but some of our well formed members have commented to that Audiolense's filters don't ring.
yes you're talking to one right know.

FIR filters always ring by definition, there are ways around it, but it will introduce other compromises.

The higher the slope, the worse it gets.
If that's acceptable, I don't know totally depends on the situation or what one find still acceptable.

I was just warning about the fact that you will make it yourself very difficult without gaining much advantages at all.
 
One huge benefit would be the lowering of XO points of tweeter options.
A 48dB/octave high-pass produces more excursion than either 3rd- or 4th-order, because the sharper transition gives more output above the XO point. The difference is fairly small (and excursion is much less below XO, of course), but the key point is that higher orders don't always allow a lower XO frequency.
 
I plan to move to FIR processing using CamillaDSP as the engine. I am trying to learn how to implement linear phase crossovers first. This is 96 dB/oct LR filter IRs generated by rePhase and imported to REW. So now I only need to get these files to CamillaDSP (in correct configuration, I made already crossovers there with biquads) and I should be set. Is that correct?

Is there any rule on how many taps to select? Like having a nice number (512, 2048, etc.) or should I just keep it as low as possible to get the desired target?
1) Lower frequencies require more taps than higher frequencies to preserve the shape of steep XOs. This can been seen by adding steep high and low pass filters around sub frequencies, selecting generate and then view the resulting plot window. The target and calculated traces won't match if the number of taps are too small for the chosen filter/tap/sample rate combination. The low frequency side will be more off than the high frequency side. The same filter slope higher in frequency will show fewer taps are required to handle those frequencies. Keep this in mind when selecting the number of taps for your filter, XO points, slopes and sampling rate.

2) The required number of taps doubles with sampling frequency. Example: 64K taps (65536) at 44.1kHz is equivalent to 256K (262144) at 176.4kHz with respect to processing resolution and delays.

3) Don't mix and match the # of taps with different sample rates in CamillaDSP. Pick a playback sample rate and match the number of taps accordingly, else the XOs will change with sampling rates. CamillaDSP does its magic at the playback sample rate so match your filters accordingly.

You can load your XO's into REW and use REW's "trace arithmetic" to add all of them into single FIR to simulate how they sum as a system (read: see if they sum flat or form a null or peak). You need to use the "trace arithmetic" BEFORE applying any smoothing or windowing to the loaded XOs, else they won't sum properly in REW.

Also be aware that the visual shape of the XOs in REW will change with the current "smoothness" and/or FDW setting. Using 1/3rd octave smoothing will change the perceived slopes of the XOs compared to "no smoothing".

As for length, the bottom of RePhase's helpful processing window displays the delays in number of samples and ms units. The longer the delay, the more video/audio lipsync will be out and the longer it will take for tracks to start after pressing play. Example: 256K taps @ 176.4kHz and 64K taps @ 44.1kHz are both 743.xxx ms or just over half a second delay.

You don't need biquads and FIR XOs, use one or another to avoid timing issues or have good reason to do so.

Hope this answers your questions.
 
Last edited:
Member
Joined 2008
Paid Member
Thanks! I want to replace the biquad processing with FIR. I do not understand point 3 fully. I will playback at 44.1 kHz only. Can the three filters have different number of taps or all need to have the same amount? I would start at the low frequency part and use the same number of taps for the higher frequencies - or does it not matter? Also, can I have some arbitrary number of taps like 1234 if the calculated response matches the target to my satisfaction? I tried adding the traces in REW and get only a fraction of a dB wiggle.
 
Thanks! I want to replace the biquad processing with FIR. I do not understand point 3 fully. I will playback at 44.1 kHz only. Can the three filters have different number of taps or all need to have the same amount?
If you use different numbers of taps @ 44.1kHz, you will have different delays between the drivers. Different delays cause different phase shifts so the XO region phases will be off and sum incorrectly causing peaks and nulls for otherwise well designed XOs. If you take this into account and add artificial delays to realign the drivers, you can get by with it. CamillaDSP is very efficient. I would suggest using the same number of taps and save yourself some headaches unless you have reason and are confident to do otherwise.
I would start at the low frequency part and use the same number of taps for the higher frequencies - or does it not matter?
That is the plan. The lower frequencies define the lion's share of the work.
Also, can I have some arbitrary number of taps like 1234 if the calculated response matches the target to my satisfaction? I tried adding the traces in REW and get only a fraction of a dB wiggle.
It is not only SPL amplitude, it is also phase. Also important when doing speaker corrections. Many people initially look at SPL while ignoring the importance of phase.

You should stick to multiples of 2 for processing purposes. Many of the playback-time (and filter generation) FFT algorithms are faster/more efficient with filters that are powers of 2.