A convolution based alternative to electrical loudspeaker correction networks

I start with a vector averaged impulse response of Centre, 10, 30 and 50cm to either side of centre for each channel done with REW.

I then use parametric EQ to straighten the response closer to my target in REW's EQ window. I found that does a better job than DRC doing it by itself. I use the same EQ as a playback plugin but thinking about it now I could convolve the impulse response of the pre EQ with the DRC filter in REW and avoid the need to use a plugin later.

That impulse is converted to raw 32 bit float in Audacity extension changed to pcm and used as the base measurement for DRC.

I use a custom DRC template that has my preferred target response to provide the overall shape to the frequency response. Which outputs a correction filter and a test convolution to see what it should look like.

I have then used rephase to remove a little bit of excess phase and some extra EQ tweaks to get a better left right combination. I then used REW to convolve (A*B then -120 dB) the DRC and rephase filters together so I only need to use a single convolver in my playback system.

A also use Mid /Side EQ with settings from wesayso.

Phew, clear as mud?
 
REW's EQ is minimum phase i.e. the phase follows the frequency response. It was designed to be used with outboard DSP units but has evolved a bit since then to work with rephase too. The slopes are the basic kinds, shelving and peak/notch.

There is nothing wrong with REW's EQ and I use it in the process myself.

DRC uses a totally different process that is much more complicated. The response is windowed and processed by custom settings, there can be excess phase correction and there is a stage of impulse response inversion. There can be psychoacoustic filtering used in the process and a target response stage that can give a very accurate match to a given slope with the correct settings. You can generate a filter that is purely minimum phase or linear phase.

It is very easy to get DRC to make things sound worse by overdoing the settings. Gregs's templates are a very good start if you want to try it with a conventional speaker.

As to phase what don't you get? It is a simple concept but isn't always easy to understand.
 
There is a lot of information on what DRC itself does in the documentation

DRC: Digital Room Correction

It is not light reading unfortunately.

If you run the DRC program with one of greg's templates it will pause allowing you to scroll back up and see all the log messages. That lists all the stages that the program has gone through.

Phase can be changed by adding or subtracting it at different frequencies. In general the idea of phase correction is to bring all the frequencies into time alignment so they are heard at the same time.

A speaker that is fully time aligned will have a good impulse and step response.

Most speakers do not have good time response as the woofers and mids fire later than the tweeters due to physical alignment differences. These can be offset by slanted baffles, deep waveguides or using digital delay in an active speaker.

DRC can generate a filter that applies frequency dependent delay which brings everything back into alignment and makes for pretty looking graphs.

Good enough depends on what you want and how important it is to you to achieve a good looking impulse response.

Fixing to a straight line or brute force type arrangements do not work.

A lot of the phase change can be due to room influences and these can't always be fixed, some can and some can't it is not straightforward to decide which in many cases. Many people will tell you that you cannot fix them at all, I would say try it and see, it is easy enough to hear when you have gone too far, as it just sounds wrong.
 
Thread bump!

I'm venturing back into DRC now. I tried about a year or so ago, got some decent results, but though the mids and mid-highs sounded "congested". Overall, it was more balanced, but also "dead" and "stuffy". I was always using just the standard filters though.

This thread has helped me understand what is going on with the filters now (mostly)...some of it is a foreign language..lol.

Anyway, I tended to think the ERB standard filter sounded the best, as i think my system only need some very slight correction (3 way 1st order x-overs, slanted baffle of time alignment, etc).

I'll start with the standard filter set again, but turn down the correction and preringing in the mids to see if that is the direction i need to go to get rid of the "stuffiness".

I'll report back to what I come up with.

Thanks all!
 
After a few weeks of using a speaker only correction*, I revisited the psycho filter. I changed the prefilter script to a straight 4 cycles (EQ portion is still ERB resolution), and I think it works pretty well with a 1kHz "knee" target response (now called knee3.txt). When I get a chance I'll try to post a virtual correction demo. Files are updated in case anyone wants to try it out.

*I think I got good results with my latest method, and that's something I'd like to discuss at some point if anyone's interested.
 
A knee at 1 kHz is what Bob Katz aimed for in his studio. I ran it for a while, though changed over time to a self found curve. When I registered that curve something seemed familiar. It looked a lot like the JBL "trained listeners" curve...
Though you are much more in a nearfield setup, so I do expect things to be a little different. You have more direct sound vs indirect being closer to the source.
One day I'll just have to see what that does for Stereo cross talk. However the nearfield monitors I have for that test are a semi permanent addition to my "lab" at work.
 
Yeah, the more nearfield position changes things for sure (I listen from the far end of the room as well at times). I think nearfield position + a fondness for orchestral/choral recordings with a "diffuse field" quality, + the slight "heaviness" I hear with what I now consider excessive dip correction, is why the flatter response worked for me for so long. Relaxing the dip correction and sloping down the highs a little bit seems to better match the speaker only correction. I'm not sure how it will evolve from here, but having the ability to do speaker only correction has been a pretty useful (and enjoyable) reference.
 
I can't say that I've tried that, but a global solution does not make sense to me.
The side panned sounds do not have a cross talk problem. Only the sounds that supposedly should come from the front (and thus are played with both speakers) suffer from this deviation of real sound coming from the front and 2 sources coming from the Stereo triangle angles. There will be a perceived difference there.

No single tweak, applied to both speakers, could work, however the dip (most commonly known as a BBC dip, wrongfully named) at 3 kHz is a common way to solve some of it. I'd recommend the mid/side EQ, to keep the sides as is and only change/resolve the problem area. This is what I've settled on after I tried phase tricks and even cross talk cancelation algorithms.
 
Thanks for EQ curve tip gmad, it looks follow a trend when offset around 1kHz point seen as the blue trace in below plot overlaid with JBL trained listener curve and 7dB targetcurve with and without stopbands and the funny peaking one is head phone curve from Harman group that transfer the trained listener curve in a good room to head phones on our ear canals, tell if you want a copy shared of any of those curves.

Second graph below is a homemade tilting EQ around 1kHz point using only 2 filters that think is good as a subjective last step of small tweaking.
 

Attachments

  • 3000.png
    3000.png
    76.8 KB · Views: 214
  • 3001.png
    3001.png
    41.1 KB · Views: 219
Last edited:
Thanks, BYRTT :). To clarify for anyone reading along, Linkwitz suggests using that filter for a speaker target (at least his speakers) - not necessarily a room response. I had forgotten about it until recently when I found that a 1 dB/decade slope (-3dB@20kHz) worked pretty well for my (flat quasi-anechoic response) speakers. The HRTF30 curve provides a similar balance with more perceived "warmth".

My current room response with the psycho filter and 1k "knee" look similar to the JBL curve but without the low end boost...

That ear canal response reminds me of the Etymotic earphones I bought for my wife about 10 years ago which were soon chewed into pieces by our rabbit :(. She got $30 "buds" after that...

Do you have a text files/IRs of all of those responses?
 
Fun and or sad story there about rabbit hope he/she later on have learned to prefer real food as carrots :).

For Harman headphone and JBL speaker curve have only as frd response files without extracted phase in they simply rough traced from pdf documents and smoothed 1/24, and it haven't bothered me to extract phase because i use them only to divide with measured response so one get a difference response that when EQed flat in Rephase will output either a convolution correction file or tell what PEQa to set in DSP for that difference correction. By the way used that HARMAN HP curve to kind of virtual correct some low cost head phones because i didn't like their natural sound stage, and for my particular head phone system setup it really moved mountains and now classify as one of the best cans i heard so far, i say virtual correction because in lack of pro lab gear to measure cans can only hope for it ends as predicted, HARMAN curve and a five point measurement from which took the average were borrowed for diy fiddle at innerfidelity.com, you can see predicted process for those Status Audio OB-1 cans below and it took 25x IIR PEQs to get there or a convolution file.

The 7dB target file have as Rephase settings file out to MHz so simply load it and add 2nd order natural stop bands at low and high end and export as IR to REW and if needed make it frd/txt file from there. Think its name is bit fun but looking closer there is a little logic for it in its +3,5dB at 30Hz and -3,5dB at 30kHz passing 0dB point exactly at 1kHz.
 

Attachments

  • 3000.png
    3000.png
    87.7 KB · Views: 203
  • HARMAN_HP_curve.zip
    256 KB · Views: 37
  • JBL_speaker_curve.zip
    194.7 KB · Views: 41
  • 7dB_Target.zip
    1.3 KB · Views: 40
The rabbit was fed a steady diet of Apple earbuds after that :lickface:.

Thanks for sharing those curves. The attached graph is the JBL curve vs. my 2 ch avg room response with my psycho filter and the Katz 1kHz "knee" (1/24 oct fdw + psychoacoustic smoothing used for graph).

Nice work on that headphone response. That's something I'd like to try as well with my HD580s. My understanding at this point is that the curve with the ~2.7kHz peak is more for earphones while a flatter response is more appropriate for headphones. Let me know if you have any thoughts about that.
 

Attachments

  • jbl vs. psycho+knee3.jpg
    jbl vs. psycho+knee3.jpg
    77.4 KB · Views: 185
I added another file to the virtual correction demo folder; this one is corrected with a 1dB/decade target response (response graph is attached). For my close (5') listening position, I feel I still need a target closer to flat, and this seems to be working nicely for me right now. I added this new target response file (tilt2.txt) to the main folder.
 

Attachments

  • CorrectedPsychoTilt.jpg
    CorrectedPsychoTilt.jpg
    93.7 KB · Views: 75