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

rePhase 1.3.0 is online: download

Many thanks to Rajapruk and udigur for their beta testing, feedbacks and suggestions.

Code:
1.3.0 2018-02-15
  New features:
    - "Load Recent Settings" entry in File menu, keeping track of the last
      15 opened or saved setting files
    - ctrl-click on a fader will reset its value to zero, similar to what a
      middle click does (useful for persons using a mouse pad)
    - improved measurement parsing heuristics to handle more formats;
      recommended measurement format is still the one described in the info
      box when failing to load a measurement
    - added CSV output format: 64 bit floating values in text format,
      spearated with commas
    - allowed measurement importing from clipboard, both from File menu
      and Measurement tab
    - added "hide magnitude" button in Measurement tab
  Adjustments:
    - added a "Donate" entry in Help menu linking to a paypal donation page
    - made "Load Settings From Clipboard" functionality tolerant to leading
      and trailing spaces and newlines in clipboard
    - reworked output format names
    - renamed "invert" button to "invert response" for clarity in
      Measurement tab
    - rename "impulse offset" to "impulse delay" for clarity in impulse
      status report
    - add max impulse level in impulse status report, complementing max
      response level
    - reworked impulse and measurement status report areas to make them
      more visible
    - enabled DPI adaptation if forced to by the operating system (not
      recommended, looks nice but crashes might occur), and added scale
      ratio and DPI indication in View menu
    - added a no warranty disclaimer in "About" info box
 
Last edited:
Thanks Pos for new version!
Is it a bug that if I chose no centering, after Generate button is pushed, the value is set back to 'middle'?

I re-did all measurements on my 3 way system. Using FIR on all parts.
The measurements are ruler flat but the sound - on the high spectrum, is strange.. there is a slight-slight hiss-like sound only with music playing. Like a mist.. Is this the pre-ring I am hearing? I did all filters with no optimization, no centering. All the same taps etc.
Maybe I should not try to correct the DE250 above 5k or so?
 
Is it a bug that if I chose no centering, after Generate button is pushed, the value is set back to 'middle'?
middle is the default value, so it revert to that if no centering is given.


I re-did all measurements on my 3 way system. Using FIR on all parts.
The measurements are ruler flat but the sound - on the high spectrum, is strange.. there is a slight-slight hiss-like sound only with music playing. Like a mist.. Is this the pre-ring I am hearing? I did all filters with no optimization, no centering. All the same taps etc.
Maybe I should not try to correct the DE250 above 5k or so?

Not sure this is what you are hearing here, but it is easy to generate too much preringing when doing linear phase corrections.
The most important part is to properly handle your measurements by getting the polarity and time offset right.

Remember you don't need linear phase EQ or phase linearization when building an active FIR linear phase system.
Using them improperly will generate preringing.

Once you get your measurements properly aligned (polarity and time offset), you need to "remove" the actual acoustical filters of your drivers using minimum-phase filters in "compensate" mode, so that you get a flat magnitude *and* phase in the passband (guesstimate + trial and error).
Then you use minimum-phase EQ to flatten everything (again magnitude and phase, all in the same time).
And then you apply your target filter, be it minimum or linear phase, and voilà ;)
Of course you need to go back and forth between these steps for adjustments, including measurement time offset.

No need for linear-phase EQ, and no need for phase linearization.
 
Last edited:
Thanks for detailed response.

I followed the steps in MiniDSP link
rePhase FIR Tool
For each driver I did the steps described at "Example 2: a linear-phase crossover ":
Export the measurement from the measurement program (in REW, go to File→Export→Measurement as Text)
Import the measurement file into rePhase
Use the Paragraphic Gain EQ tab with minimum-phase filters to flatten the amplitude response
Use the Filters Linearization tab to correct box rolloff phase
Use the Paragraphic Phase EQ tab for any remaining phase correction
Use the Linear Phase Filters tab to create the desired crossover filter
Export the impulse response from rePhase into a file

Then, loaded in EQApo, did the delay adjustments. I will try what you said, but it is not 100% clear for me now.. early morning at job.
 
Here is the measured DE250 in RCF H100 horn, nearfield (20cm horn mouth). The settings for impulse file also the one I used. I corrected the phase +-10degree and EQed to be flat +-0.5dB.. then a linear phase LR4@1600Hz. Maybe I overdid the phase and EQ corrections.

Now I created a new impulse file, a simpler correction of phase, no EQ, the same linear phase LR4 filter. It sounds better. I think the over-corrections are not good :)
 

Attachments

  • de250_in_rcf_h100.JPG
    de250_in_rcf_h100.JPG
    143.1 KB · Views: 269
Thanks Pos,

I started to use the 'compensate' filter option, I understand now.

Sometimes, rephase generates wrong filter, as in this picture. I am not able to reproduce always. Do you know what might be the cause? I have attached the .rephase settting file used for investigation, just remove the .txt extension (the forum won't let me upload .rephase file).

Regards,
Daniel
 

Attachments

  • rephase_compensate.JPG
    rephase_compensate.JPG
    186.5 KB · Views: 271
  • ob18_compensate_debug.rephase.txt
    14.8 KB · Views: 88
Hi Daniel,

Compensate filters are to be used like the first part of a Linkwitz transform: you want to replace a given filter with another one.
In your example you compensate for a high-pass filter, but do not add any high-pass filter afterward.
Attached is the target/result curve in your example with the measurement bypassed: the compensation of the high-pass without any high-pass applied results in a target curve rising at a 24db/oct rate toward DC: this is an impossible target, giving a chaotic result.
 

Attachments

  • a.png
    a.png
    33.1 KB · Views: 272
Ah, I get it. But for the subwoofers, if I don't want to add any high-pass filter, it is not better to use just the "Box" min phase linearization, and not a compensate+normal Hi-pass filter?
If you want to linearize its phase then yes.

PS. Thanks for the DE250 inverted phase observation. It turns out I had to invert polarity on both DE250 drivers. In don't know why is it so..
It might be that B&C uses the classic JBL polarity convention.

Aha. I also did not know/understand this 2-step approach to compensate. The second step I was not aware of. Now I understand it better. And also my number of taps (6700 per LF channel) will hopefully be sufficient for my LT after this :)
Seriously? I thought we discussed that quite a few times by emails already! :scared: :D

By the way, this might be one of the few features that is actually documented right into the software, which goes to prove that documentation is not useful/needed ;)

attachment.php


'compensate' mode is a
generalized Linkwitz
Transform mechanism
with a flat target. An
additional filter is to be
used to define the
desired target.

Use 'compensate' mode
with caution and check
the final correction gain
by bypassing any
measurement.
 

Attachments

  • b.png
    b.png
    81.7 KB · Views: 349