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

For tweeter in previous post paired with upward firing woofer of Pluto type speaker above 23cm measurement is used for making both IR measurements.
Presumably, you can get both your ears at this point for both left & right speakers. :)

MLS as sampled measurement system doesn't return a sync function. Pure correlation. Swept sine measurement over full band can also return near perfect correlation when at least partially constructed in the frequency domain.
Are you saying when you use a MLS system and import the results into Aurora/Audition, Angelo's Kirkeby module produces an end result which is a perfect impulse? Can you post some results?

What MLS or swept sine system are you using?

If you set the 'error' in Angelo's 'Kirkeby' to a very small value, you should minimize the 'sync' character. This is more a 'feature' of the 'Kirkeby module' than of Angelo's measurement method.

[/QUOTE]So what sweep pair would you generate with Angelo's gensweep to measure the above Peerless 2" driver?
I don't use Aurora cos I can't afford Audition. I've just downloaded the Audacity version but have still to try it out.

Adjusting the start & end freqs of the sweep will affect the "final impulse".

Here are some spectrums of log sweeps I use that illustrate the end effects. I use my own software. These affect the accuracy of the "final impulse". The final artifacts appear at half Nyquist as would be expected. Short chirps to accentuate the effect. For the 2" driver, starting the sweep at 100Hz is probably OK. I would use a sweep speed to give the dulcet tones of a 14s B&K 2307 chart recorder sweep cos that's what God intended. :D

But you may like to actually measure the "final impulse" separately rather than look at processed results. It's easy to make processed results "perfect".
 

Attachments

  • CleanChirp.GIF
    CleanChirp.GIF
    11 KB · Views: 551
  • DirtyChirp.GIF
    DirtyChirp.GIF
    9.5 KB · Views: 542
Last edited:
Guys, those discussions are really interesting (I mean it), but I would prefer to keep that thread a little bit more focused on rePhase if possible. As it is now a user of rePhase would have difficulties to find any relevant information on the use of that software in that thread.

Ask moderators to rename this thread to "rePhase OT", and start a new one.
 
Thank you Pano, but don't worry: I think I will do as more10 suggests and just reopen a new thread, in the software section :)

A new version is on its way, with several new PEQ implementations (among which the standard constant Q and proportional Q) and the choice to do minimum phase EQ.
This should now be easier to replicated EQ from other systems. For example Hypex DSP, the DCX2496 and most other processors use constant Q, whereas miniDSP and a few others use proportional Q.
Current EQ implementation was a different implementation (based on butterworth filters), and will still be available and probably called "coherent Q" :D
 
Last edited:
Are you saying when you use a MLS system and import the results into Aurora/Audition, Angelo's Kirkeby module produces an end result which is a perfect impulse? Can you post some results?

What MLS or swept sine system are you using?

If you set the 'error' in Angelo's 'Kirkeby' to a very small value, you should minimize the 'sync' character. This is more a 'feature' of the 'Kirkeby module' than of Angelo's measurement method.

So what sweep pair would you generate with Angelo's gensweep to measure the above Peerless 2" driver?
I don't use Aurora cos I can't afford Audition. I've just downloaded the Audacity version but have still to try it out.

Adjusting the start & end freqs of the sweep will affect the "final impulse".

Here are some spectrums of log sweeps I use that illustrate the end effects. I use my own software. These affect the accuracy of the "final impulse". The final artifacts appear at half Nyquist as would be expected. Short chirps to accentuate the effect. For the 2" driver, starting the sweep at 100Hz is probably OK. I would use a sweep speed to give the dulcet tones of a 14s B&K 2307 chart recorder sweep cos that's what God intended. :D

But you may like to actually measure the "final impulse" separately rather than look at processed results. It's easy to make processed results "perfect".

Above is demonstration of design process and choice, previously you review my IR data, and comment about pre-ringing. Above shows that I could easily follow path that produces speaker stamping out causal impulse type response. Measured result follows design choice for linear phase, and is easy to see when high frequency clutter is filtered from result:

Unfiltered IR of corrected system:

1 IR clutter.gif

With application of FIR 4kHz low pass the above becomes:

2 IR LP4k.gif

Very much the predicted result.

Microphone at 23cm may be thought of as virtual source. All energy passing through this point from drivers continues radiating outwards in cone with identical wavefront as direct sound.



Yes, small regularization parameters request Kirkeby to seek more convergent solution. As Fourier system, the longer in time, the higher the frequency resolution. Properly used, inverses produced are highly exacting.

Sync function from time domain construction of Farina's sweep remains. The raw sweep and inverse generated by time reversal and amplitude envelope to get flat FR when convolved produce 2x long sync function with rectangular window. Farina's fading/windowing functions constrain/compact result, but always leave sync residue.

Original Aurora plugins include MLS.

I build my own sweep pairs using Kirkeby, or use REW or HOLMImpulse. HOLM allows for convenient export of sweep and inverse, allowing independent use and performance verification. HOLM passes. REW doesn't have inverse export, but digital loopback measurement verifies proper behavior.

Audacity does math very well, but GUI and feature set pales to Cool Edit. I've worked with Farina versions, Convolver and Kirkeby behave nicely as ever, and sweep generator still is flawed. Nonetheless, I've downloaded Audacity 2.0.0 and Farina's modules for it, and all is well on XP based system.

Indeed, major league OT on the one hand, but highly pertinent to measurement and modification of system response.

I search forum for "Kirkeby", "Convolution", "Aurora", and "Audacity" and see that starting a thread under "Software Tools" makes sense, perhaps, "Aurora Audacity, measurement synthesis and IR inversion"
 
I don't have much time to open that new thread (and change the links) just now, so here is the new version announcement for rePhase 0.9.3

Download: rePhase on sourceforge

Code:
0.9.3  2013-01-29
    - new Paragraphic EQ implementation, with multiple EQ types:
        * constant Q minimum-phase (new default)
        * constant Q linear-phase 
        * proportional Q minimum-phase
        * proportional Q linear-phase
        * constant slope linear-phase (former implementation)
        * raised cosine linear-phase (beta version...)
      ( bank EQ section remains constant slope linear-phase )
    - FFT size can now be set by user (minimum size is two times the
      smallest power of two equal or bigger than the requested number
      of taps). Setting a larger FFT size makes generation and optimization
      slower, but can increase the precision of the optimization and also
      makes result curves more precise (just a visual effect for that one
      though: no effect on the actual impulse)
    - bug correction: negative gains can now be entered directly from
      the keybord in the Gain EQ Bank tab.
    - exit on repeted errors to avoid "panic mode" effect
 
Measured result follows design choice for linear phase, and is easy to see when high frequency clutter is filtered from result:

Unfiltered IR of corrected system:

View attachment 327011

With application of FIR 4kHz low pass the above becomes:

View attachment 327012

Very much the predicted result.
Du.uuh! The "HF clutter" is causal so definitely due to the speaker/system. Are you saying your EQ doesn't work above 4kHz?

Microphone at 23cm may be thought of as virtual source. All energy passing through this point from drivers continues radiating outwards in cone with identical wavefront as direct sound.
:eek: This is HUGE assumption. You may like to ask Prof Farina's opinion of this.

Original Aurora plugins include MLS.
Didn't you say you had a swept sine system which also didn't give a resultant sync function?

I've worked with Farina versions, Convolver and Kirkeby behave nicely as ever, and sweep generator still is flawed.
What his wrong with Angelo's generator?
 
So is there a consensus on what 're-phased' speakers sound like compared to their 'raw' counterparts?

I'm pretty sure I've re-phased my individual drivers successfully (in the near field they measure flat phase individually, anyway, and I've lined up their delays to get to get the flattest crossovers at the listening position). In common with some of the posters here, I haven't gone for a full flattening of the amplitude response.

I've been listening to my re-phased speakers for a couple of weeks, and my take on it is that they are 'sweeter' than any passive speakers I've heard personally, or compared to active speakers without phase correction. They're not 'smoother' or 'flatter', nor would the word 'neutral' spring to mind (although I'm pretty sure this is really what 'neutral' really sounds like). I think that in some ways they are less 'dynamic' or 'punchy' (in a good way) with the result they can be turned up louder and listened to for longer without fatigue. I wonder if some speakers' 'dynamic' or 'musical' characters stem from transients with rapidly changing phase, frequency and amplitude effectively 'sweeping through' fixed filters, rather like a parametric EQ on a mixing desk making drums more punchy, even though it's a linear system. The re-phasing corrects this to some extent and 'de-punches' the sound. The corollary of this is that with corrected speakers it feels as though I might prefer a little less dynamic compression on some recordings, that ordinary speakers add extra punch to as a by-product of their 'musicality'. Or to put it another way, where extra 'punch' in the recording would have hurt my ears before, I could now tolerate some without getting sore ears.

Hand waving, of course, but does it sound plausible?
 
Last edited:
some measurements of my 3 ways system.

corrected with rePhase.

first step,minimum phase EQ

An externally hosted image should be here but it was not working when we last tested it.


phase linearization (4 feets)

An externally hosted image should be here but it was not working when we last tested it.


listening point (9 feets)

An externally hosted image should be here but it was not working when we last tested it.


measurement at 4 feets.
measured phase=minimum phase (Hilbert transform)

An externally hosted image should be here but it was not working when we last tested it.
 
another correction of a Gamut Phi7,2.5 ways

at 4 feets

An externally hosted image should be here but it was not working when we last tested it.


ringing is due to brickwall filter at 18 KHz in HOLM

An externally hosted image should be here but it was not working when we last tested it.


at listening point,left channel+left channel with a 100 Hz linear phase LPF (HOLM)

hp30-l10.png


measured phase=minimum phase (Hilbert transform)

An externally hosted image should be here but it was not working when we last tested it.
 
Last edited:
rePhase version 0.9.4 is out:
rePhase | Free Audio & Video software downloads at SourceForge.net

No measurement import yet, but it shall appear in the next version...

release note:
Code:
0.9.4 2013-03-16
    - crash at start problems (previsously requiring temp/ dir content to
      be deleted) should now be solved
    - up to 16 banks can now be used in paragraphic gain and phase EQ
    - removed bank EQ tabs (settings saved with banks EQ will be
      automatically reported to paragraphic EQ banks)
    - improved graph range options: frequency and phase range can now be
      set and saved in settings
    - new phase wrapping implementation, automatically adapted to current
      phase range
    - view mode (compact/normal/large) is now automatically saved and
      restored from one run to the next
    - double-click on a fader value entry reset the fader to 0
    - improved raised cosine EQ. Interactions between EQs should now behave
      exacly like the "Ideal Graphic Equalization" exposed here in this
      application note: http://www.nordicsales.dk/imgdb/docs/lakewh_981.pdf
    - better precision for frequency entries (fractional up to 5 chars
      total to fit the entry) and appropriate up/down key binding (0.1hz
      steps under 10hz)
    - real 2/3 and 1/3 octave frequencies in paragraphic EQ sections
      (mandatory to make the raised cosine graphical EQ "magic" work...)
    - improved biquad precision (constant Q and proportional Q EQs) by
      adapting the sampling rate of each biquad to its fc
    - increased Q range (0.1 to 100)
    - improved phase deg precision in paragraphic EQ
    - added ESS sabre frequencies
 
Last edited:
rePhase 0.9.5 is online:
http://sourceforge.net/projects/rephase/

The long-awaited measurement import functionality is now implemented

release note:
Code:
0.9.5 2013-04-06
    - measurement import implementation, following HOLMImpulse import rules
      and interpolation strategy
      (first draft with limited functionality)
    - Nyquist frequency is now explicitly represented in gain result curve
      as a brickwall low-pass
    - result curves are now cleared upon settings reset or loading
    - improved energy centering algorithm
    - stop forcing energy centering to middle when only linear-phase
      corrections are in use
    - middle click on a fader reset its value to 0
    - bugfix for result phase curve unwrapping
    - bugfix on curves when polarity is inverted and a phase range larger
      than +/-180° is chosen
    - bugfix for 1st order high-pass filters
 
Looking forward for your comments :)

Please keep in mind that any smoothing, gating, polarity, impulse offset or gain offset settings have to be made in the measurement software before exporting the measurement, as nothing can be changed afterward when importing in rephase (yet).
 
Last edited:
It works. It took a REW generated measurement no problem. I can make quick work of making my IIR crossovers linear phase now. I never had much luck with the A*B method, so I was making a lot of measurements and checking my work that way. What a pain in the ***, now it's quick and easy :D.

A couple more features would be nice now :eek:. I'd like to be able to click on the graph and see what freq and level the cursor is at (similar to Holm) or have it show up somewhere when hovering on the graph. Also, it would be nice to have target transfer functions to overlay on the graph for designing crossovers and hitting an acoustic target. Or, the ability to overlay more measurements so we can import our own targets. Not sure how you could implement that and not have the corrections affect all measurements.

I've been considering Audiolense or Acourate for drc (which is what I use rePhase for, as well as crossover phase linearization) because I think time-domain room correction has potential and is pretty interesting along with the usual freq correction. With your work with rePhase I may not have to shell out the $$$$. I like the fact that rePhase doesn't have any auto correction. Makes me work and I learn more in the process of doing it myself.

Good work!