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

Can you share your measurement impulse as a txt or wav file?
And myabe also your rephase setting file (for example copy/pasted between code tags here)

Certainly! Here the impulse measurements. Unfortunately the rephase setting files are not loaded by the system beacause invalid extension. I've also tried to insert to code tags according to your advice, but it doesn't work. Many thanks for your usual kindness.
Giant
 

Attachments

  • Sub nearfield.txt
    43.4 KB · Views: 105
  • Low voice nearfield.txt
    43.6 KB · Views: 59
  • Mid Voice.txt
    43.6 KB · Views: 65
  • Upper voice.txt
    43.7 KB · Views: 63
Hello Giant

Regarding the nearfield measurement, you cannot expect the response to be correct in the higher part of the range, and the dip and rapid phase shift you see around 1kHz in both measurement is a consequence of that (comb filtering from multiple parts of the cone...).
So you should either ignore frequencies above a few hundreds of Hz (or even less), or user another measurement, further away from the source, to handle that part of the range.

Regarding the other two measurements, the situation is the exact opposite: you seem to have used some sort of windowing (which is normal) that gives you a "noise floor" around -70dB in the lower part of the frequency range range.
If you had shared the impulse responses rather than the amplitude/phase curves we would probably have seen the reflexions and the effect of the windowing on that floor.
So here again for that lower part of the range you need an additional measurement with a longer window, either by getting closer to the source or by putting the obstacles further away from your source and mic.

So it is a matter of mixing and matching several measurements at different distances and window length in order to be able to analyze and correct a given part of the frequency range.
 
Hello Giant

Regarding the nearfield measurement, ........
Yes, OK, I know (hope) this topic sufficiently...
Two final questions, if possible. In a previous post you said me to "play" with the compensate mode of minimum phase filters to further flatten the phase after "manipulation" of Paragraphic Gain EQ. I apologize in advance for the possibly stupid question, but the parameters "shape", "param" and "freq" must be coincident, i.e. the same, with my final linear phase filters or may I use any combination in order to obtain a flat phase?
For instance, I suppose a HP crossover frequency for my tweeter of 2500 Hz with a 4th order L-R (24 dB/oct). Should I use these setting in the minimum phase filters menu also?

Moreover, in the Mini-DSP website, at the page where is discussed RePhase the following sentences are reported:
  1. Use the Paragraphic Gain EQ tab with minimum-phase filters to flatten the amplitude response
  2. Use the Filters Linearization tab to correct box rolloff phase
  3. Use the Paragraphic Phase EQ tab for any remaining phase correction
  4. Use the Linear Phase Filters tab to create the desired crossover filter
Are these correct? I remember you said do not use Paragraphic Phase EQ for the building of a linear phase crossover from scratch ...

Thanking you again for the patience ... :)
Giant
 
Hi Giant,

I apologize in advance for the possibly stupid question, but the parameters "shape", "param" and "freq" must be coincident, i.e. the same, with my final linear phase filters or may I use any combination in order to obtain a flat phase?

For instance, I suppose a HP crossover frequency for my tweeter of 2500 Hz with a 4th order L-R (24 dB/oct). Should I use these setting in the minimum phase filters menu also?
Looking at your rephase setup I had the feeling that you were doing something like that.
My explanation was not clear I am afraid. Let me try again, and do not hesitate to ask additional questions if that is still not clear :)

The compensation setting is not related to the electric filter you apply, nor is it to the acoustical filter you are aiming at. It is solely related to the actual acoustical "filters" of the driver you are correcting.
Think of it as the fist half of a Linkwitz transform. With this tool you want to compensate for the actual response of the driver, then apply your electrical filter, and it result in the exact same acoustical filter.

Alternatively it can also be used to compensate any electrical protection filter you might have engaged during the measurement, but obviously in this case it should not be included in the final impulse...


Moreover, in the Mini-DSP website, at the page where is discussed RePhase the following sentences are reported:
  1. Use the Paragraphic Gain EQ tab with minimum-phase filters to flatten the amplitude response
  2. Use the Filters Linearization tab to correct box rolloff phase
  3. Use the Paragraphic Phase EQ tab for any remaining phase correction
  4. Use the Linear Phase Filters tab to create the desired crossover filter
Are these correct? I remember you said do not use Paragraphic Phase EQ for the building of a linear phase crossover from scratch ...

I would not use the 3rd point, but it must be noted that the compensate filters did not exists at the time they wrote that application note was written.
With EQ you can correct any phase deviation, but it might sometime need heavy EQ far outside of the pass band. In such cases it might just be easier to use phase EQ and call it done.
But the compensate mode should be able to do all the needed EQ easily, and actually if phase deviation remain it might be a measurement problem (like in your measurements), eg window too short down low, or measurement too close to the source up high...

Phase EQ should normally only be used when you are dealing with a non minimum phase system, such as a loudspeaker with crossovers...

Sorry if what I just wrote does not make much sense, it is almost 3am here :apathic:
 
Last edited:
Important notice:

I found a bug in rePhase 0.9.8 and 0.9.9 with the minimum-phase LR filters: the polarity of the low-pass filters of order (2*n+1)*2 is reversed :/
(orders 2, 6, 10, 14, etc., ie slopes of 12dB/oct, 36dB/oct, 60dB/oct, 84dB/oct, etc.)

This bug only affects the Minimum-Phase Filters tab, not the Filters Linearization one or any other.

People using these filters, either in normal or compensate mode, should take this into account.
Until a new version is released, using a combination of Butterworth filters instead of a LR does save the problem.

I will probably come up with an intermediate version like 0.9.9c to specifically correct this and some other minor bugs, as many of the features I wanted to add for the 1.0.0 version are not ready yet.
I will add a warning when loading a setting file including these settings from version 0.9.8 or 0.9.9...
 
Last edited:
I've started a new thread in the multi-way loudspeaker forum for an active speaker adding in dsp, dac, and active xo or dsp xo where all help would be appreciated. I would love some participation from the Rephase thread and anyone else who can contribute real circuit knowledge and software implementation.

The thread is: An Active loudspeaker UNIFICATION thread

Come join the discussion and help move this along.

Steven
 
rePhase 1.0.0 is out
rePhase download | SourceForge.net

Code:
1.0.0 2015-06-25
  * New functionalities:
    - Albrecht cosine windows implementation
      Ref: A Family of Cosine-Sum Windows for High-Resolution Measurements
    - multiple memory slots in range settings to be able to quickly go from
      one view to the other and focus on different aspects of the response
      curves
      These slots are preset with (hopefully) useful values but can be
      manually modified and copied.
    - "Load Settings From Clipboard" and "Save Settings To Clipboard" menu
      entries in order to be able to easily share corrections on web forums
    - frequency marker for the last correction point (5 seconds persistence)
    - fader values can now be manually edited to arbitrary values
  * Bug corrections:
    - bug correction in Minimum-Phase Filters tab: the polarity of low-pass
      Linkwitz-Riley filters of order (2*n+1)*2 was reversed
      (eg 12dB/oct, 36dB/oct, 60dB/oct, 84dB/oct, etc.)
      A warning will be emitted when loading correction files from prior
      versions using an odd number of such filters, as the polarity will now
      be correct and reversed compared to the prior bogus correction.
    - bug correction with higher than normal noise floor with even order
      taps (introduced in version 0.9.9 while solving a similar problem
      for odd order number of taps!)
    - bug correction with txt output file with 0.000(...)0 values
      (especially pregnant when using Hann window)
    - correction of the bogus flat top window implementation
    - corner case instabilities corrections (undue octal conversions on some
      value entries)
  * Adjustements:
    - set "32 float txt" as the default output format instead of "32bit
      LPCM wav" in order to avoid  rising the result noise floor because of
      the fixed point format
    - added de-empahasis and pre-emphasis presets in the Paragraphic EQ tab
    - added Linkwitz-Riley linearization orders 11th to 16th (why not?) 
    - reduce default phase EQ range to +/- 45° (was +/- 90°) and removed
      unpractical ranges
    - increase default EQ range to +/- 12dB (was +/- 6dB)
    - added 384 and 352.8kHz sampling rates as drop menu options for ease
      of use (any other value can still be manually entered)
    - got rid of the "Curves" tab for the time being, waiting for the
      capture functiuonality to be implemented in some future version...
 
Just a small bump.
It is important that users do update to this last version as it solves some major bugs.



rePhase 1.0.0 is out
rePhase download | SourceForge.net

Code:
1.0.0 2015-06-25
  * New functionalities:
    - Albrecht cosine windows implementation
      Ref: A Family of Cosine-Sum Windows for High-Resolution Measurements
    - multiple memory slots in range settings to be able to quickly go from
      one view to the other and focus on different aspects of the response
      curves
      These slots are preset with (hopefully) useful values but can be
      manually modified and copied.
    - "Load Settings From Clipboard" and "Save Settings To Clipboard" menu
      entries in order to be able to easily share corrections on web forums
    - frequency marker for the last correction point (5 seconds persistence)
    - fader values can now be manually edited to arbitrary values
  * Bug corrections:
    - bug correction in Minimum-Phase Filters tab: the polarity of low-pass
      Linkwitz-Riley filters of order (2*n+1)*2 was reversed
      (eg 12dB/oct, 36dB/oct, 60dB/oct, 84dB/oct, etc.)
      A warning will be emitted when loading correction files from prior
      versions using an odd number of such filters, as the polarity will now
      be correct and reversed compared to the prior bogus correction.
    - bug correction with higher than normal noise floor with even order
      taps (introduced in version 0.9.9 while solving a similar problem
      for odd order number of taps!)
    - bug correction with txt output file with 0.000(...)0 values
      (especially pregnant when using Hann window)
    - correction of the bogus flat top window implementation
    - corner case instabilities corrections (undue octal conversions on some
      value entries)
  * Adjustements:
    - set "32 float txt" as the default output format instead of "32bit
      LPCM wav" in order to avoid  rising the result noise floor because of
      the fixed point format
    - added de-empahasis and pre-emphasis presets in the Paragraphic EQ tab
    - added Linkwitz-Riley linearization orders 11th to 16th (why not?) 
    - reduce default phase EQ range to +/- 45° (was +/- 90°) and removed
      unpractical ranges
    - increase default EQ range to +/- 12dB (was +/- 6dB)
    - added 384 and 352.8kHz sampling rates as drop menu options for ease
      of use (any other value can still be manually entered)
    - got rid of the "Curves" tab for the time being, waiting for the
      capture functiuonality to be implemented in some future version...
 
Many thanks. Your work is impressive. Rephase is absolutely my no. 1 programme for generating filters, so I admit: I am deeply depending on you.

As mentioned earlier in this thread; when do you accept donations?

I totally agree with your proposal. RePhase should be released at least as donationware. The work of Thomas is really mpressive and absolutely essential for all us. We must in some way support his diligence and wllingness.
 
I like the application
I would consider that there can be Microphone Calibration that can be loaded into rePhase
so I wouldn't always make new measurements
(I am a little fond of making custom calibration file, experimenting with sound)
It could be good if a feature like that, in rePhase
 
Hi

rePhase relies on an external measurement software (such as HOLM, REW, ARTA, ...) to perform the measurement, gating, and smoothing.
The mic calibration is typically handled there as it is tightly linked to the context of the measurement itself (which mic was used? 0° or 90° calibration, etc.).

I don't see a situation where a user would want to change the calibration several times after the measurement has been taken like you describe.
Can you please elaborate?
 
I am experimenting with audio, I regularly change my calibration, I am trying to find my preferred audio setting for my sound system. (by experimenting sound)
And it is a need for me that I can load a calibration file into generator.
I have found some apps that can support my needs.
It could be a good feature if rePhase got it.
 
I don't get the connection between the calibration file and the preferred audio setting.
The calibration file is not a matter of preference: it make the mic virtually flat.

Maybe you are referring to target curves?
This is a different matter altogether.

If you want to try different target curves then I would suggest you EQ for a flat response, and then use some additional EQ in a different bank to tailor the response to your specific needs.
 
  • Like
Reactions: 1 user