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

Thank you :)

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.

Good suggestions!

Regarding target curves, I will try to implement a "curve memory" functionality in the "curves" tab. You should be able to first set a curve with the target you want, memorize it in another curve (another color), and then keep it untouched as an overlay for subsequent modifications.
Having some indication on the matching or complementarity (if you memorize the result curve of a low-pass and want to check how it complement a subsequently generated high-pass) compared to the target would then be nice, but would require some more work.

As it is now the easiest way to follow a target is to equalize for a flat response and then apply the target you want.

One problem with all this is the noise floor of the measurement...
At the end it is always best to measure again with the filter applied.
 
I you do the correction with rePhase any means of obtaining a given target (amplitude and phase curves) will lead to the exact same results for a given number of taps.
rePhase will do an ifft of the final target curves, disregarding the complexity of how they were obtained (any number of EQ, filters, etc).
Generation and realtime curves update will get slower when a large number of corrections are used, but the final result will be the same.
 
Last edited:
hi pos,

thx for the great work on rephase, i´f bin using it since the beginning with opendrc!!!

i was waiting a long time for the import function, but now i get some problems with it. i use atra measurement software and it has a good export function, like the following:

1.552 -21.9119 88.3195
1.573 -22.0121 89.4963
1.594 -22.1124 90.6763
1.615 -22.2127 91.8592
1.637 -22.3139 93.0450
1.659 -22.4184 94.2336
1.681 -22.5311 95.4248
1.704 -22.6591 96.6185
1.727 -22.8077 97.8146
1.750 -22.9774 99.0129
1.773 -23.2052 101.3884
....

21764.588 2.0611 0.7838
22056.783 1.7539 2.6884
22352.900 1.4917 4.4316
22652.994 1.2842 6.3470

importing this in rephase, i get always the same curves only between 10k-20kHz (amplitude: some linked lines; phase: sinus wave)

i hope you can help me with this problem.
(atra has also a .csv export function, maybe you can implement this format too)

big thx

mike
 
Hi Mike

Yes I got the same report from jcga on another forum.
It looks like Arta will pad the frequency values with spaces on the left, so that columns are aligned on their right.
Unfortunately rePhase does reject any line that does not start with a digit, and that includes spaces. That is the reason why you only get the lines for frequencies above 10kHz (no padding).
I will handle those files in the next version (soon to be released, at it seems to be an important problem).

In the meantime, if you have an advanced text editor like sublime text for example then you can edit your file and remove the trailing spaces (ctrl-a and repeated shift-tab).
 
So I'm really liking the import feature for working with phase.......it's a breeze. And I'm learning the limits of linear phase room correction :eek:. I noticed you changed how the gain bank is handled. I was going to suggest the capability of doing mixed-phase correction, but this seems to be doable with the different gain bank tabs. Quick measurements confirmed this, but I'm getting some strange results (or maybe normal but beyond my super limited knowledge of this stuff).

To check if rePhase can do linear and min phase correction at the same time I set up a -12dB Q3 notch at 800hz in gain bank 2. I'm using gain bank 1 for linear phase freq correction. The blue curve (we are looking at phase here) is the control: no notch at 800. The tan curve is with the notch. You can see that phase at the notch area is unaffected.......but it begins to advance around 4khz. Is this normal behavior when the correction is supposed to be linear phase? The red curve shows the notch made with min phase selected for gain bank 2. You can see the phase changed at the notch point, as well as the advance above the notch. Is the advancing phase above the notch normal behavior for a min phase filter?

I'm hoping to do mixed-phase work, because when I first set my room correction filters (linear phase) in rePhase I found the limits I alluded to at the beginning this post. I went from a solid central image with no convolution to a very diffuse, wider, soundstage with no discernable image at all with convolution using my rePhase generated filter set. It seems the filters that are common to both channels can be done linear phase, and channel specific filters must be done min phase. There's more to it than that but that is basically what I found.

When I tried to do the channel specific filters in gain bank 2 set to min phase I get the same strange, diffuse soundstage. When I do the channel specific filters in MC's PEQ and the filters that were common to both channels in rePhase set to linear phase my stable central image is back. Is the convolution process itself causing this strange result or is it something else?

I'm also getting some strange results when I change the sample rate in my player (J River). During my measurements and building the filters I had rePhase set for 48khz, and MC was resampling to 48khz. MC convolution page confirms that the filter is working at 48khz, and the sound is fine. However, when I turn off resampling in MC (files on my hard drive are all 44.1khz sample rate), and rebuild the filters in rePhase for 44.1khz I'm getting weird results. MC confirms that the filter is running at 44.1khz but the sound is way off. I went from a solid center image at 48khz to that same strange diffuse soundstage. I took measurements for each sample rate and those results are fine. What's going on with the different sample rates here?

I included a pic of my rePhase window, the other channel is setup the same.
 

Attachments

  • phase.jpg
    phase.jpg
    88.4 KB · Views: 397
  • rephase window.JPG
    rephase window.JPG
    167.6 KB · Views: 410
Mixing minimum-phase and linear-phase EQs in different banks should work just fine. When measuring phase you should always check for the offset of the impulse within your measurement software: it will usually try to find the ideal offset automatically, but any tiny difference will greatly affect the phase up high. For example a single sample offset of the impulse will cause a 180° phase shift at the Nyquist frequency.
If you can manually set the offset then you should always force it to the offset given by rePhase just under the "generate" button.

That "diffuse soundstage" problem, it is likely to be due to a different delay for the left and right channel when using energy centering.
Different settings will lead to different offset based on energy distribution within the impulse, especially when minimum-phase corrections are involved.
Again, you have to check the impulse offset after generating the impulse, and make sure you can compensate for any difference between channels within your convolution engine or media player.
If you cannot, then you would better stick to 'middle' centering to be sure you got the exact same offset/delay (for the same number of taps at least) on all your channels.
 
Last edited:
rePhase 0.9.6 is online:
http://sourceforge.net/projects/rephase/

main updates:
- measurement importing improvements (gain and time offsets, drag and drop, ...)
- measurements are now saved within rephase setting files
- new EQ type, specifically tailored to large minimum-phase corrections

Code:
0.9.6 2013-04-16
    - show frequency, amplitude and phase from current cursor position in
      graph
    - improved measurement handling:
        * drag and drop loading
        * loading speed up (twofold increase)
        * gain and time offset settings
        * polarity inversion and phase hiding functionality
        * bypass option
        * description: name, number of points, frequency and dB ranges
        * ARTA format handling (trailing spaces in frequency column)
    - Save measurment inside *.rephase settings files together with
      corrections and other parameters
    - new 'constant shape' EQ, both for linear-phase and minimum-phase EQ.
      Equivalent to a constant Q EQ at 6dB, it keeps exactly the same shape
      at any dB setting. It should be preferred to constant Q and
      proportional Q at high dB settings as those two are bound to their 2nd
      order definition and have to stay in a +/-90 deg phase range, thus
      leading to odd gain shapes at high dB settings...
    - "What's new" menu entry, exposing this changelog, instead of having a
      separate REDAME file
    - bugfix when loading settings from version prior to 0.9.2: filter
      frequencies were lost
    - going back to forced 'middle' in energy centering when only
      linear-phase corrections are used
    - curve capture functionality teasing...
 
Last edited:
Middle centering did the trick! I moved all my room eq out from MC's PEQ and into rePhase with linear filtering. No more goofy diffuse soundstage. Both 44.1 and 48khz filter sets are working, so I don't have to resample my Redbook files and MC's auto sample rate switcher (for convolution files) switches the filter sets when I change to a 48k source.

I'll see about doing some more measurements this weekend and try to get the impulse offset deal worked out.

Thanks pos!
 
guys i got a question:
i did an impulse with rerphase that is only taking care of phase linearization (so rectangular window, center offset etc..)

in a daw (actually logic pro) i've arranged 2 tracks, one is a straight song with no processing...
the other is the same song convolved with the impulse (i've used sir2 convolver)

why are the peakmeters showing different values?
seems that the track convolved with the impulse has much higher peaks....many times overloading the output by 5 db!
i did not mess with eq or gain in the impulse creation step...

please explain me... is this normal?

thx a lot!
 
maybe you could check your corretion with holmimpulse
my setup:

holmimpulse > VAC cable 1 (VAC= virtual audio cable)
VAC cable 1 > VSThost with convolver > VAC cable 2
VAC cable 2 > input of holmimpulse,

then you can see what is happening in your filter, amplitude, phase
hope this helps

Paul
 
Simply speaking, you are moving the peaks and valleys around from what once was a neatly stacked box with nothing sticking out into just piling them on top of each other when required.

Imagine a sine wave that just as it hits the top of the hill gives a large spike all the way to the bottom.
If you shift the phase of the sine signal you now have the same spike beginning at the bottom but still pointing downwards.
This is a -10dB 100Hz sine with spikes and the same with a 100Hz allpass filter.
And it sounds just as horrible as it looks so it's only for illustrative purposes.
spike.png
 
how do you guys handle this? drop everything by 6dB and then fir filter it?
This is precisely what Thuneau advices to do in the Loudspeaker Phase Arbitrator, which faces the same situation:
DSP Loudspeaker Phase Arbitrator. Transient Perfect loudspeaker processor
(page 11 of the user guide)

And this is the main reason why rePhase integrates a volume control in the general tab. You can of course also choose to reduce the volume in front of the convolution engine.
 
Last edited:
This is interesting. Please post your PayPal address in case some of us wish to make a donation after trying the software :)
Thank you. Maybe that will happen when version 1.0.0 is out, but I am not sure yet.
Sourceforge used to provide good interfaces to paypal donations (with comments and all), but this is not available anymore for "new" projects (for technical reasons...)