rePhase, a loudspeaker phase linearization, EQ and FIR filtering tool
Here is a little piece of software I have been working on for some months now.
It is called rePhase, and is a tool for loudspeaker phase linearization, EQ and FIR filtering.
It does so by producing correction impulse responses that you can then use in your favorite convolution engine.
It is a free software, without restriction (but without warranty either).
Download: rePhase on sourceforge
At start the first goal of rePhase was to let you generate impulses specifically tailored to reverse the phase shifts introduced by the crossovers of your loudspeakers (passive or active) and boxes, resulting in a linear-phase system.
It is similar to phase arbitrator in this regard (but it is not a processing plugin, just an impulse generator).
rePhase has evolved and now includes other features: it can generate linear-phase EQ and crossover filters of arbitrary slopes, including Linkwitz-Riley (albeit linear-phase) and Horbach-Keele shapes.
With the paragraphic EQ sections you can alter phase and amplitude independently.
You will need a convolution engine to run the generated impulse, such as the minidsp openDRC, foobar2000 convolver or VST convolver, among many other software and hardware tools.
You can use rePhase to linearize passive loudspeakers, active ones, and turn IIR active crossovers into linear-phase crossovers (turn a DCX2496 into a DEQX or a Dolby Lake ;) ).
You can also design the whole filter with rePhase.
In any case you will need one convolution per way (Jriver can be used to run the convolutions for example)
Sorry for the lack of documentation.
Questions, remarks and suggestions are welcome!
Cool! I've been wondering if anyone was going to come out with software with this kind of capability for free :up:
I'm building new speakers right now and I'm an active xo kind of guy so hopefully I'll get some time to play with this this weekend.
I've been waiting for a phase EQ for some time, for transient (re-)shaping etc. I can do this, as well as lin-phase mag EQ, manually/iterative by EQ'ing diracs (with the time reversion trick) but a tool like this where you see what you get is of course much more convenient.
Did I miss something and one cannot load a pulse and apply your analytical correction on it (as an overlay on the graph) and see the result change directly instead of adjust/generate/convolve/measure cycles? I know that means quite a bit of additional programming and convolution, but any simple (time domain) algorithm would do since we're not realtime. That would really be a killer feature.
While one can do basic phase (& mag) correction with just HolmImpulse and Excel, your tool is much more versatile, thanks for sharing!
The possibility of importing a measurement into rephase (maybe only magnitude/phase curves, not a real impulse, to avoid impulse offset detection issues...) was on the work bench, but I am a little reluctant to add it: It would be too easy then to turn rephase into an automatic inverse correction tool (but without all the care that it would require to be made properly).
I would like to stay on the "manual" side with this tool.
That said, if things are made really clear for the user that no automatic correction must be made without a lot of car, then it could be an interesting addition.
By enabling the user to independently ignore or inverse the phase and amplitude of the measurement, it would also make it possible to import a correction from an external software like PORC, and "mix" (convolve) it with the current correction.
But importing measurements would still require an external tool such as HOLM to do the measurement and impulse offset detection though.
As it is now, to see the effect of a correction you can do the convolution inside HOLMImpulse, using the "C=A*B" manipulation : you put your measurement in one slot, the correction impulse in another, and you generate the result in the C slot.
So the correction cycle is quite easy to do: generate, import, convolve...
(and turning the optimization option to "none" to avoid waiting for its iterations every time...)
HOLM seems to be quite peaky with on some OS with this feature though...
On Win7 you have to import your impluse as a txt only (wav make it crash), and then convolution does not work all the time (sometime you even have to export and reimport your measurement as txt to make it work!).
It looks like it work without issue on XP though (IF you stay around 44khz or 48khz...)
I'm fine when you decide NOT to add the import because I understand your motives.
Even without that option the software is excellent, and it's for free which we appreciate very much.
New version 0.8.4, with a new "time: inv" option that can be used for ABX testing, to hear the effect of phase shifts form different filters at different frequencies with headphones for example (see changelog below).
Of course this option must not be used for normal filter linearizion, as it would double the original time shifts instead of correcting them :eek:
Download: rePhase on sourceforge
rePhase 0.9.0 is online
Download: rePhase on sourceforge
Really need to allow import of real IR; hassles or not for user to get maximum utility from Paragraphic EQs.
Nice start to filter generation interface. Mostly more flexible than building filters with Audacity, but no match for Cool Edit.
Filters Linearization and Linear Filters:
Basic Linkwitz-Riley filter is cascaded Butterworth of appropriate order, to build linear phase version time reversal is simply done between applications of Butterworth.
So all-pass filter for desired frequency and order is generated and reversed in time.
I do this for Linkwitz-Riley 48dB/octave filter with your software, and import to Cool Edit for examination, and see you've done a pretty good job, but tail of result has ringing:
And continues with math truncating results to steps, before hitting noise floor of math, granted this is way below 24bit integer floor:
Yes, linearization of phase for active circuits, analog or digital may have benefits, but it is real driver/cabinet/room behavior that provides the details in phase behavior, so again being able to import real IR is way to go.
I do not plan to add IR import for the version 1.0.0 milestone, but that could come after that.
Sorry about that. I have to give it some more thoughts before choosing an integration strategy (and avoid the "automated correction" temptation...).
Right now you can use HOLMImpulse and the C=A*B manipulation to check the result of a given correction on a measurement.
Can you please give me the exact settings and version of rephase that generated the ringing shown in your screenshots?
Version 0.8.4 could generate a HF ringing at the Nyquist frequency when the phase target was not a multiple of 180° at the end of the spectrum (which was particularly the case with high order and high crossover freq filter linearizations...). This should now be fixed with the new "float" centering option (the phase target is artificially shifted to the nearest 180° multiple at the Nyquist frequency, and the impulse is then offset by the corresponding sample fraction to restore the original phase target).
|All times are GMT. The time now is 04:17 AM.|
vBulletin Optimisation provided by vB Optimise (Pro) - vBulletin Mods & Addons Copyright © 2014 DragonByte Technologies Ltd.
Copyright ©1999-2014 diyAudio