A convolution based alternative to electrical loudspeaker correction networks

@emailtim Does that mean I can apply FDW of 4 in REW and then apply any filter to it in DRC fir?
No, not that easy. You need to solve for a minimum phase target with the same amplitude taper.

The FDW removes/gates some of the reflections so you get a better idea of what is going on with the direct signal versus the signature the venue places on the direct signal. It is trying to find the needle in the haystack.

The fewer the number of cycles in the FDW setting, the more room reflections are removed. More number of cycles in the FDW incorporates more room reflections.
 
@emailtim
Did you get on DRCfir?
Can you tell me which command you modified?

I have been modifying a lot of the DRC-FIR code to make it work with multi-channel DACs and to also take band-pass targets made in RePhase versus a text file full of hand entered amplitude points.

It should make what you are trying to do fairly simple once released.

Steps would be:
Make a baseline band pass minimum phase target in RePhase with the desired SPL slope using the same sample rate and number of taps as your playback system.
Add that baseline full range target into your convolver for both left and right channels (same baseline target for both channels).
Measure (REW sweeps) both speakers using that baseline target in your convolver.
Run the modified madrc (Multi-Amp DRC) giving it the baseline target you made in RePhase and your left and right sweep.
MADRC will generate a pair of new full range targets that comprises the original baseline target plus the given channel's correction (with the same number of taps).
Lastly, replace the original RePhase baseline target with the corresponding corrected left and right targets in your convolver.

Since the original target and corrected targets have the same number of taps, timing/latencies in the convolver should remain the same.

If you want to make similar changes, you need to add code to load the FIR target. Make DRC-FIR use that FIR target instead of the text point file. Solve, then convolve the solution against the target and then re-window the aggregate correction back down to the targets original size and write the output, else it will grow in size and latency.
 
Last edited:
Run the modified madrc (Multi-Amp DRC) giving it the baseline target you made in RePhase and your left and right sweep.
MADRC will generate a pair of new full range targets that comprises the original baseline target plus the given channel's correction (with the same number of taps).
Lastly, replace the original RePhase baseline target with the corresponding corrected left and right targets in your convolver.
So am I correct in understanding that this is essentially like giving DRCfir a new minimum phase target?
It seems a bit complicated for me to follow this process myself, I look forward to seeing your code.
 
@emailtim
So am I correct in understanding that this is essentially like giving DRCfir a new minimum phase target?
It seems a bit complicated for me to follow this process myself, I look forward to seeing your code.
Yes, one tailored to your speakers and playback system.

FIRs (in .wav format) contains # of samples, sample rate, numerical format (int/float), bit depth, amplitude, phase and RMS information, so by passing the solver a wav FIR target you are giving the solver all that target information defined across the entire frequency spectrum. This means you can pass it a minimum phase or linear phase FIR target tailored around your speaker's capabilities.

Creating a band-pass FIR in RePhase is one of the easiest things to do in RePhase.

Have you used a convolution engine before to play audio ?

If so, can you measure your system through your convolution engine ? I measure through CamillaDSP.
 
Have you used a convolution engine before to play audio ?
Yes. I use a combination of minidsp flex and Equalizer APOs.
Creating a band-pass FIR in RePhase is one of the easiest things to do in RePhase
Is what you're talking about similar to an ALL-PASS filter?
What I was doing in Rephase was using Filter Linearziation to basically tune the speaker's own crossover and port frequencies, and then adjusting the Paragraphic Phase to correct some of it, and then checking it again in REW to cut out the unnecessary parts of the ExcessPhase.


Here's a video I used to reference when I was studying.

If so, can you measure your system through your convolution engine ? I measure through CamillaDSP.

Yes i can Measurements can be taken without and with the FIR filter applied. But not right now, the microphone is being repaired.
 
Is what you're talking about similar to an ALL-PASS filter?
Well, sort of. An ALL-PASS passes everything from DC to Infinity, including 5G cell phone signals.

DC To Infinity and Beyond.jpg


A band-pass (as used by this mod) passes from your lowest bass frequencies to your highest treble frequencies, with the rolloffs tailored to your system's natural rolloff or add some bass extension if trying to lower bass frequencies. I believe the gentlemen in that video series did something similar by matching rolloffs to his speaker.

Your speakers can NOT produce flat from DC to 5G cell phone signals which an ALLPASS does, thus an ALLPASS would not be a good target.

You basically select the linear or minimum phase form in RePhase. Add your high pass and low pass filters (2 filters) to bound your speakers. If you want a tapered amplitude, you have to add one more filter in RePhase. If you want a flat response, the 3rd filter is not appropriate. Then generate your FIR selecting bit depth, output format and number of taps.

You then measure through this "lens". Think of it a a full range crossover.

If you want to be a guinea pig/alpha tester, I am willing to generate some MP solutions for you to try and provide feedback.

I would need your RePhase file containing the full range band pass filter and your sweeps to generate corrections as well as your desired sample rate and number of taps.

I have been doing everything using line arrays @ 176.4kHz so could use some feedback alpha testing other configurations.
 
Last edited:
  • Like
Reactions: 1 user
I don't know if it's okay to ask this here.
How do you guys place your microphones to measure? (0 degrees / 90 degrees) ?

I use a 0 degree CAL file and when I measure with the microphone horizontally, I point it exactly centered between the speaker and the speaker.
And when using a 90-degree CAL file, measure it upright, facing the ceiling.

Yes, that's right, this varies from calfile to calfile, but only slightly in the treble range. Using the 90degree cal will inevitably result in more noise floor.

But what I was wondering was, does this matter how we place the microphone when correct Impulse and phase?
 
Having the microphone pointed upwards with a cal file to match that position is ideal for in room measurements. The microphone has the most even response to all angles in that position. In reality the difference is pretty small except over 10K or thereabouts depending on the mic capsule size.