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

Biquads generated by the miniDSP Linkwitz-transform spreadsheet........
https://www.minidsp.com/applications/advanced-tools/linkwitz-transform

is there an easy way in rePhase to make an equivalent linear phase version of them...?

Right now, I turn on the biquad on the openDRC for magnitude correction, then need to go back to rePhase for phase correction of the biquad. Is there a way to do it all just once in rePhase?

thx, mark

Hello Mark,

This is partly what the the "compensate" mode is made for: a generalized LT mechanism in two separate steps.

For example if you want to exactly replicate a LT you simply need to set two second order HP filters in the minimum-phase filters tab: one in compensate mode with f(0) and Q(0), and the other in normal mode with f(p) and Q(p).

From there you can replace the normal HP with a linear-phase one, etc.

Basically, you look for your current HP settings in compensate mode (second order or anything, really) together with minimum-phase EQ, looking for a flat magnitude and phase curve (up to the noise floor!), then enter your desired target filter using either minimum-phase of linear-phase filters...
 
Aaah, thank you Pos,...... that makes complete sense now.

BTW, after having spent quite a bit of time listening to PC convolution vs openDRCs, I've come to the conclusion I like the sound from the DRCs the best.....
I've kinda owed the forum a report, given the talk about PC convolution a number of pages back....
I'll try to post findings soon...sound quality may just be more about what DACs & I/O routing options I have, but since both entail using rePhase files.. maybe folks would like to hear...
 
I kinda regret mentioning a preference, because it's based on such subjective apples and oranges comparisons...

For PC convolution: JR playback as source signal. JR convolution running 65K taps per channel, 6 channels, stereo sub,mid, high.
usb output from JR, to x-32 usb input card. Analog out from x-32, to analog inputs on ICE amps for mains, and qsc pl380 on subs.

For OpenDRC: JR playback as source signal. 6144 taps per channel, same 6 channels as above using 3 openDRCs. usb from JR to x-32 usb input. x-32 AES output to openDRC digital inputs. Open DRC digital outs to ICE digital inputs on mains, and openDRC analog out for sub amp.

So, big difference in number of taps favoring PC convolution.
And a different signal conversion point to analog, favoring the openDRC setup which stays digital all the way to ICE amps.

I listened to both setups for a few weeks each. Here's some soo subjective observations.

The PC convolution, with 65K taps, often let me hear subtle nuances in tracks, separation of instruments, etc, that I had never heard before. The same can be said of the DRC setup, but just not to the same degree.
But there is a comparative dryness to my PC convolution setup, for lack of a better term...sorry.
Something just not quite as engaging. This, and the fact the digital routing of the DRC setup noticeably reduced the noise floor, has led me back to the DRC preference.

1201...the 2x4 HD was noiser than what (DAC) ?
I found the opendrc to be pretty dang clean, when using its DAC in different setups...?

Pano, yes, your route sounds like the way to go for a meaningful comparison, if I'm picturing correctly...
I'd like to be able to compare the analog output of the ICE amps under both setups..
I know nothing about how to begin this, other than maybe run run a transfer function in smaart. Do you have software you would recommend?
 
Administrator
Joined 2004
Paid Member
Hmmm. I don't know my way around the opendrc, so hard to say. Since it has digital output, that could be recorded. You'd need a digital input recorder. I have recorded the SPDIF output of one soundcard with another soundcard on another computer.
As for JRiver, you can just choose to write to file as your output. That makes a file (of course) instead of sending the stream to the soundcard.
 
The OpenDRC isn't going to write to file as it is not a computer device.

I would capture at the entry to the amps as that is the last place the signal will differ and recording a line level signal is much easier than needing to use an attenuator to measure the output from the amplifiers.

You could record the test file into REW or if it is digital you could just get Jriver to write the file as it should be the same and run a comparison on that.

Another good test would be to run the same convolution on both setups and see if you can tell a difference then. That way you remove one more difference from the setup.

Whenever you have more than one variable change how can you know which one it was that you liked more?

I have listened to a few comparisons of A/D conversions vs original and I find it very hard to tell which is which, extra conversions should be avoided if possible but one extra really doesn't seem to do that much harm as long as the converter is decent.

Another thing to consider is level matching in that only a slight difference in output can lead to preferring the sound of the louder one. Very hard to get a true A/B between devices without a lot of effort spent on level matching.
 
The OpenDRC isn't going to write to file as it is not a computer device.

I would capture at the entry to the amps as that is the last place the signal will differ and recording a line level signal is much easier than needing to use an attenuator to measure the output from the amplifiers.

You could record the test file into REW or if it is digital you could just get Jriver to write the file as it should be the same and run a comparison on that.

Another good test would be to run the same convolution on both setups and see if you can tell a difference then. That way you remove one more difference from the setup.

Whenever you have more than one variable change how can you know which one it was that you liked more?

I have listened to a few comparisons of A/D conversions vs original and I find it very hard to tell which is which, extra conversions should be avoided if possible but one extra really doesn't seem to do that much harm as long as the converter is decent.

Another thing to consider is level matching in that only a slight difference in output can lead to preferring the sound of the louder one. Very hard to get a true A/B between devices without a lot of effort spent on level matching.

very well said.
 
I wonder if it will be a good idea to make a FIR bandpass filter (picture 1) as a cascade of a HP filter and LP filter with lowest possible length + initial delay. (picture 2 and 3)
The reason is the tests in this thesis that suggests that long fir (regardless of dsp platform) can give audible distortion!
http://lib.tkk.fi/Dipl/2008/urn011933.pdf#page61

With some engines two fir filters can be cascaded so this can be realized.

Or could the delay and LP filter be convoluted with he HP filter to make a single that does the same?

That is have shortest possible ringing for a given LP or HP filter at a frequency
 

Attachments

  • 96k4096tap600to3kBP.rephase.jpg
    96k4096tap600to3kBP.rephase.jpg
    211.5 KB · Views: 245
  • 96k2048tap600HP.rephase.jpg
    96k2048tap600HP.rephase.jpg
    297.9 KB · Views: 233
  • 96k960tap3kLP.rephase.jpg
    96k960tap3kLP.rephase.jpg
    288.3 KB · Views: 235
Last edited:
With some engines two fir filters can be cascaded so this can be realized.

Or could the delay and LP filter be convoluted with he HP filter to make a single that does the same?

Basicly both does the same. There may be interference arifacts caused by the limited tap length of the first filter convolved with the same type artifacts of the second filter ...

I think it's better to convolve "perfect" low- and hipass and run the tap reduction afterwards on the resulting bandpass.
 
The OpenDRC isn't going to write to file as it is not a computer device.

I would capture at the entry to the amps as that is the last place the signal will differ and recording a line level signal is much easier than needing to use an attenuator to measure the output from the amplifiers.

You could record the test file into REW or if it is digital you could just get Jriver to write the file as it should be the same and run a comparison on that.

Another good test would be to run the same convolution on both setups and see if you can tell a difference then. That way you remove one more difference from the setup.

Whenever you have more than one variable change how can you know which one it was that you liked more?

I have listened to a few comparisons of A/D conversions vs original and I find it very hard to tell which is which, extra conversions should be avoided if possible but one extra really doesn't seem to do that much harm as long as the converter is decent.

Another thing to consider is level matching in that only a slight difference in output can lead to preferring the sound of the louder one. Very hard to get a true A/B between devices without a lot of effort spent on level matching.

Hi Fluid, thx.
Yeah, isolating variables....not always easy..but i do have to say it is one of my stronger abilities

One variable that is a problem to isolate, is that amp entry isn't the same. With PC convolution I need to use analog entry into ICE amps, with openDRC I get to use digital. There's no question this penalizes the PC conv, at least in terms of an audible noise floor.
I don't have any difficulty with measuring attenuated amp outputs...as every amp I own has gain control. Heck, I measure them so regularly I bought some speakon to XLR adapters. So, I think I'll try to run a transfer function against ICE outputs, PC vs DRC. Just hoping that sync through the two paths is close enough to allow capture.
I should have mentioned earlier that I'm using the same rePhase files in both cases, just changing the number of taps used. I even tried restraining PC conv to 6144 taps/channel for comparison's sake. But in my mind, the the real reason for wanting PC conv is for more taps to play with. The DRCs are just so dang flexible, other than being tap limited.

I'm very aware of level matching, and just as important i think, is relative level matching between drivers' passbands if that becomes a variable due to different routing/amp configs. I can hear a 1-2 db difference in balance between subs and mains, a little easier than an overall 1-2 spl diff, I think.
I should admit I don't really try to A/B much anymore...I don't trust it. My ears, my mood, the weather, my girlfriends mood haha, all seem to make my ears wander preferentially. I like to just listen for a few days to all kinds of music, ....in the focus zone as well as wandering through the house listening from different rooms...a technique often very telling IMHO.
So like I said, I shouldn't even have mentioned a preference...sorry folks.
But that said, I do like the openDRCs.....
 
Administrator
Joined 2004
Paid Member
Seems simple to compare CPU vs openDRC. Just write to file with JRiver, record the AES or SPDIF signal from the openDRC and compare them. Everything else is superfluous. If those two are the same, or very, very close, then the audible differences lie elsewhere.
 
Seems simple to compare CPU vs openDRC. Just write to file with JRiver, record the AES or SPDIF signal from the openDRC and compare them. Everything else is superfluous. If those two are the same, or very, very close, then the audible differences lie elsewhere.

Pure noob here :eek: must learn how to write to file in JR, how to record AES from openDRC, and then how to compare.......
Happy to learn....pointers, links?
thx, mark
 
In JRiver you can set it to write to a file where you configure your soundcard. So instead of pointing at a soundcard you set it to write to file (Disk Writer).

Playback options > Audio Device > Disk Writer (might have to press the "more" option to find it near the bottom of the list).

There's so much that can be slightly different between the two options you used. Seeing it in a measurement would help identify what was different.

More tabs used sounds like a good explanation of possible differences but if you did encounter the same with the shorter FIR filter on the PC, we'd have to dig a little deeper.

I'd also do a loop back with the PC setup to "see" how clean the IR of the soundcard performs. So basically routing the soundcard or DAC out back into the line in and record an REW sweep.
 
Last edited:
...The reason is the tests in this thesis that suggests that long fir (regardless of dsp platform) can give audible distortion!
http://lib.tkk.fi/Dipl/2008/urn011933.pdf#page61...

All 75 pages in that pdf document study would take long time to read :) i could be misunderstanding what you point is but can see in their chapter 7 conclusions quoted below that you should be good to go in that your used filters is much lower in order.

Rough safety limits according to both test methods would be to keep the order of a linear phase
FIR crossover filter under 600 at higher frequencies (1 and 3 kHz) to prevent from the ringing
phenomenon producing audible errors. At low frequencies, such as 100 Hz and 300 Hz, the
order may be up to thousands, and still no audible errors will occur.
 
The explanation of the artifacts that can be heard, is the time lag off axis between two speaker elements eg tweeter and mid.
Long fir filters creates a long preringing and the time delay between the filters off axis, because of different path lengt to the ear, cause interference that can be heard. Even at as low as 0.5 milliseconds difference in path length. (acording to the thesis)
A single driver will NOT produce the artifacts if not a time delay between the filters are introduced. (The headphone test)

A steep BP filter at 600 Hz and 3k needs a lot of taps (4k taps?)

So then I think that the 3k LP filter has the same preringing as the 600HP filter, that is the preringing as a 4k tap filter. (And that is much longer than a 700 tap filter.)

Or does rePhase only use the taps it needs when making the 3k LP part of the BP filter. That is: The preringing of the 3k filter (in the 600 to 3k BP filter) is much less than 4k/2 = 2k samples?

(On a sidenote i'm very suprised that preringing artifacts can be heard. But maybe the ear is more sensitive to difference signals? Ref tuning an instrument by listening to the pitch difference between two instruments)
 
Last edited:
torgeirs,

Is there really anything to worry about, look post 1817 and see the quote from their paper where they write that at high frq orders under 600 prevent ringing and at low frq orders up to 1000 is okay.

How steep in orders do you like to go :scratch1: for example LR 48dB/oct is 8th order and 96dB/oct is 16th order and far below orders of 600 or 1000, in Rephase there is also other than symetric LR filters to choose from, for example below show 8th order non symetric "Reject low" and "Reject high" which filter 8th order for one part and 16th order for the other part, but there is many more models "Overlapping 1/2 oct" / "Overlapping 1 oct" / "Overlapping 2 oct" / "Overlapping 3 oct" / "Hornbach-Keele" / "Hornbach-Keele last".
 

Attachments

  • 10.png
    10.png
    62 KB · Views: 216
  • 11.png
    11.png
    61.9 KB · Views: 218