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

Thanks guys, I'll check these out.

BTW Pano I love the big island, my visits are great memories especially the Kona coffee at the source. We did our honeymoon there in 1985 and found a 9 acre fee simple coffee plantation for $110,000 and passed, I still regret it.
 
Last edited:
pos - Amazing what knowledgeable people like you are able to accomplish.
Beginners like me should probably not make suggestions, but I never listen to my own advices so here we go.

Documentation. I’m not sure you realize that in many ways you have already written most of the needed documentations? Some parts even repeatedly on different forums and threads when answering questions.
What I’m thinking. If you were to collect some of these and publish them as FAQ documentations? One could also start a Wiki page to hold this collection of answers, might even get maintained by power users and vendors?

Another one for the wish-list. This might or might not be easy to implement with copy/paste code?
I find myself zooming in and out a lot when working with -150dB graphs where I simultaneous need details at +5/-5dB
What if the where two plot screens? Both with different zoom settings (and disable check box if speed is an issue).
Could be implemented as Tab’s so only one are visible for low resolution screens.

Writing a FAQ is indeed probably the best way to get the documentation started.
Adding a functional description of each option would clear 80% of the questions.
I have a google doc somewhere with some material (from forum posts) I could use for that.
I just need some time to gather it all...

Regarding the different zoom options, that is a very good idea.
Having two graphs would be difficult (if only for the layout), but being able to save graphical settings (dB, phase and frequency ranges) in different settings and recall them quickly would probably do the trick. Would that work for you?

Thanks a lot for your suggestions :)
 
Not at all, this is very relevant and interesting!
I'd be interested in seeing/hearing a subtraction Matlab's direct convolution and sox' fft convolution, once properly time aligned.
What is happening at the start and stop of the convolved song would also we interesting to look at.

For one thing, I think sox convolution results in a file with the exact same duration as the original, whereas a direct convolution will give a file with a duration of the original + impulse.
 
For one thing, I think sox convolution results in a file with the exact same duration as the original, whereas a direct convolution will give a file with a duration of the original + impulse.

That's a don't care for me, I don't see processing a 10 min song and having 50 msec at the end left off as a problem. A few tenths of a second fade-in fade-out eliminates the issue anyway. I assume the miniShark uses overlap and add FFT convolution at a 10,000 point impulse response level. From our DSP group http://www.analog.com/media/en/technical-documentation/dsp-book/dsp_book_Ch18.pdf
 
Last edited:
That's interesting considering the 32 bit engine is has the DSP design guide would not recommend that.

"For instance, imagine convolving a
signal with a 1000 point filter kernel, with single precision floating point.
Using standard convolution, the typical round-off noise can be expected to be
about 1 part in 20,000 (from the guidelines in Chapter 4). In comparison, FFT
convolution can be expected to be an order of magnitude faster, and an order
of magnitude more precise (i.e., 1 part in 200,000)."

EDIT - the problem with using Matlab etc. for a comparison is that you have to force it to use 32 bit floats for all operations. Its FFT is always 64bit FP math AFAIK. As far as I can find JRiver, SoX, foobar all use the highest native resolution.
 
Last edited:
That's interesting considering the 32 bit engine is has the DSP design guide would not recommend that.



EDIT - the problem with using Matlab etc. for a comparison is that you have to force it to use 32 bit floats for all operations. Its FFT is always 64bit FP math AFAIK. As far as I can find JRiver, SoX, foobar all use the highest native resolution.

I don't have time until after Easter, but I think it should be possible to do what you're after in Python. I've also been meaning to have a play with this lib for quite some time - https://github.com/danilobellini/audiolazy
 
I don't have time until after Easter, but I think it should be possible to do what you're after in Python. I've also been meaning to have a play with this lib for quite some time - https://github.com/danilobellini/audiolazy

Yes you can force a direct convolution to be 32 bit but the FFT is done at 64 bit, I've tried Matlab, Python, and Mathcad there is just no speed to be gained by using lower rez. BTW I don't think I would use Python for real time DSP.
 
Sorry, I realize my comment was misleading: by ideal I meant the "perfect impulse" centering option.
As for middle vs energy and other options, energy is supposed to be ideal but for some reasons (that I'll need to investigate) it does not always work out that well. If you know you are only using minimum-phase correction then using something like 1% or a few samples should be ideal, and of course when only using linear-phase correction middle is ideal (and is in fact enforced).


You can try higer slopes than that if you want to. LR can go up to 996dB/oct IIRC.

I usually only use linear phase filters for XO and correction, but "middle" is not enforced for centering. Choosing "energy" option leaves the driver units very uncoordinated which results in a mess. Choosing "middle" and "use closest perfect impulse" gives a somewhat harsh sound, like driver units not playing completely in phase. With "use exact centering value" the sound is smooth and detailed. I guess this is the option to choose for XO?

I tried LR 996 dB. Indeed it sounds very much like brickwall, so the sonic benefits on my system are probably a result of steep slopes.

By the end of easter, I will have the house to myself, so there is time for more comparative listening and measurements. Then I will comment more deeply about effects of steep filter slopes.
 
I'll do a comparison between 32bit float direct convolution (from my own toolbax) and sox' 64bit (?) fft convolution soon.

If the input is padded with zeros to hold the run-off you get the same answer within a pure delay. I still don't see when streaming/processing mega-bytes of music why one would worry about 4000 or so samples at the beginning or end. If the impulse is causal it only matters at the end.