• WANTED: Happy members who like to discuss audio and other topics related to our interest. Desire to learn and share knowledge of science required. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

Room equalization through inverse delayed and attenuated bass signals

Tim Link

Addicted to Fun and Learning
Joined
Apr 10, 2020
Messages
879
Likes
752
Location
Eugene, OR
I've been thinking about bass response in rooms, and a potential problem with equalization via IIR FIR filters, which may not address time delay issues correctly. For instance, a peak may be happening not because of a bounce that's one wavelength late, but may maybe two wavelengths. And a cancelation may occur from a bounce that's not half a wavelength delayed, but 1 and 1/2 wavelength delayed, or more. This got me concerned that just equalizing down a peak may cause sustained bass notes to end up with the correct level, but short notes to be too quiet, assuming a peak was equalized down. Plus, there's a chance that a delayed inverse signal may fix a null too.

So, I decided to turn off my extensive parametric equalization on my woofers and try to smooth things out using reflection cancelling by mixing in delayed, inversed, and attenuated signals. These are applied full bandwidth for the woofers, without any equalization. They're basically an inverted echo.

I got surprisingly good results with inverse signals delayed 20 ms and attenuated 11 dB, and another one delayed 40ms and attenuated 22 dB. I'm frankly shocked at how much those rather highly attenuated singals helped to smooth out the bass! The minus 22 dB made a difference! Apparently it all adds up in the room. It took some experimenting to discover how low the signal had to be for best results. This also cleaned up the spectrogram and improved clarity C50 and reduced early decay time. One weird thing is that making the spectrogram look cleanest did not necessarily equate to the smoothest response.

I end up adding two more delayed inverse signals - one at 7ms and 10 dB attenuated, and another at 10ms and 10 dB attenuated. These are all applied to my corner bass horns.

This is the best I've gotten the bass to sound in here so far, maybe the best I've had it in any room. Just four delayed inverse signals.

I put one parametric in for a problem spot at 150Hz that was audible and I couldn't figure out.

One thing I was hoping for was that I could also fix a problem with my bass horns where the sound gets stuck in the horn because of the folds ( I think ) at a certain frequency. It didn't totally fix that, but it reduced it by at least as much as I've ever managed with parametric filters. I'm currently limited to 1 ms intervals on the delay because of the software I'm using. Some .1 ms accuracy might be able to get after that sharp null from the horns better. Not sure about that.
 
Last edited:
This sounds great! Can you please elaborate what (I assume software) solution you used and exactly how?
Also some before/after measurements would be appreciated
Thank you
 
I think this is what Dirac is doing with their live room correction. They use the side channels for cancellation and things like that. Pretty interesting stuff, but way over my head.
 
Acourate article is dated 2020 which shows they came up with VBA before I did :(

Anyway, if anyone is interested room length is not the key, it's the sum of all room dimensions that needs to be considered in calculating the room's resonant frequency.

@ppataki creating multiple polarity inverted signals targeting every dip is only similar in some basics but it's more of a hit and miss approach IMO.

@dlaloum Dirac ART is using other speakers in the system to generate the inverted pulse. Its effect will depend on the surround speaker sizes, distances etc so may not be as effective as a VBA on a stereo setup but it has the advantages of cancelling out even the first rear wall reflection (VBA can only cancel out returning front wall reflections) and having nearly half the latency compared to a VBA filter. ART doesn't need to wait for the standing wave to bounce and come back, it kills it half way with another speaker close to the rear wall.

My latest (and probably final) optimization on the VBA filter method is in this video. It also comes with an XL file calculating room resonant frequency, all peaks and dips, impulse peak time delay calculations including the delay introduced by the lowpass filter itself. You will only need REW. It works great with fairly symmetrically placed speakers in fairly rectangular shaped rooms. I have created at least 20 filters for different people with this exact method (for some 5 or so rooms, I simply rejected because of severe lack of symmetry between left and right channels) and all seemed to enjoy the resulting fuller and deeper bass:

 
Last edited:
This sounds great! Can you please elaborate what (I assume software) solution you used and exactly how?
Also some before/after measurements would be appreciated
Thank you
I'm using Auido Hijack on my Mac Mini. It allows me to add delays using a synchronize feature. Unfortunately it only allows 1ms steps in delay. Audio Hijack can use Apple AudioUnit plug-ins but I haven't found a plug-in yet that allows for a simple delay in smaller time steps.
 
For those interested, here is some extra reading.

Yup, this is the same concept, but with more depth. I knew some advanced software could do this kind of thing. What surprised me was how a very simple "dumb" dsp with such low signal gain could be so effective!
 
Acourate article is dated 2020 which shows they came up with VBA before I did :(

Anyway, if anyone is interested room length is not the key, it's total of all room dimensions that needs to be considered in calculating the room's resonant frequency.

@ppataki creating multiple polarity inverted signals targeting every dip is only similar in some basics but it's more of a hit and miss approach IMO.

@dlaloum Dirac ART is using other speakers in the system to generate the inverted pulse. Its effect will depend on the surround speaker sizes, distances etc so may not be as effective as a VBA on a stereo setup but it has the advantages of cancelling out even the first rear wall reflection (VBA can only cancel out returning front wall reflections) and having nearly half the latency compared to a VBA filter. ART doesn't need to wait for the standing wave to bounce and come back, it kills it half way with another speaker close to the rear wall.

My latest (and probably final) optimization on the VBA filter method is in this video. It also comes with an XL file calculating room resonant frequency, all peaks and dips, impulse peak time delay calculations including the delay introduced by the lowpass filter itself. You will only need REW. It works great with fairly symmetrically placed speakers in fairly rectangular shaped rooms. I have created at least 20 filters for different people with this exact method (for some 5 or so rooms, I simply rejected because of severe lack of symmetry between left and right channels) and all seemed to enjoy the resulting fuller and deeper bass:

Excellent, and way ahead of me! At this point I'm just happy to get the bass relatively smoothed out and clean sounding. Looks like there's a lot more for me to learn about REW, and more potential upside for optimizing my bass. My method was just to take sweeps, look for peaks, and estimate what time delay would be needed for an inverse signal to counter it. I'm still surprised and don't comprehend why those signals had to be lowered 10 dB or more from the initial signal to get appropriate reductions in peaks. I've thought a lot about double bass arrays, and wondered how much loss across the room happens. I guess it depends on the array. I'm running two stakcs of horn woofers, basically horn line arrays from floor to ceiling, so there's not a lot of vertical issues, just side to side and front to back.
The program I'm using is Audio Hijack for Mac, and it has recently added a FIR filter block capability. I don't know how to use it yet. It asks for a file to apply. Maybe REW can generate a file it can use?

I notice in the video that you see the bass response increase below the first peak when you apply your filter. I got that same result and was really surprised. I'm getting more deep bass by playing the bass inverted against itself! I had some concern that this would just cancel all the deep bass. It's all in the time delay.
 
Last edited:
I think this is what Dirac is doing with their live room correction. They use the side channels for cancellation and things like that. Pretty interesting stuff, but way over my head.
I'm sure it's similar but they're doing more sophisticated things. I'm charmed by the relative simplicity of my approach, and the fact that I can just sort of eyeball my way through it with REW and get surprisingly good results. I wasn't sure where to start but decided to think about the longests delays first, along the length of the room. It's about 20 feet long and I'm sitting about in the middle. So once the bass passes me it goes to the back wall and bounces back, which is about 20 feet turn around distance. I just threw in 20 ms as a starting guess, played with the volume until a 50Hz peak vanished. Wow! I thought about that wave that was just canceled at my position continuing on to the front wall and then bouncing back at me again, so that's another 20 feet, hence the 40 ms delay. Since that wave was already attenuated by the first delay (I think) It further improved things with more than 20dB attenuation! I figured that was good enough. The room has a peak at 100Hz so I did the 10ms delayed signal and sure enough it came right down. The 7dB delayed signal was a mixed bag of improving the look of the spectrogram while making the response less smooth.
 
Acourate article is dated 2020 which shows they came up with VBA before I did :(

And the concept of a double bass array is even older. Here is an article talking about a double bass array in 2012. The idea has been kicking around some German forums before that. I think I first read about virtual DBA's sometime in 2017-18.
 
I'm still surprised and don't comprehend why those signals had to be lowered 10 dB or more from the initial signal to get appropriate reductions in peaks.
It's the amount your room walls absorb the sound during reflections.
 
And the concept of a double bass array is even older. Here is an article talking about a double bass array in 2012. The idea has been kicking around some German forums before that. I think I first read about virtual DBA's sometime in 2017-18.
I think it was that article that has had me pondering double bass array ever since. I loved the concept but just couldn't pull it off. Now that I've verified for myself that virtually simulating it is highly effective, I'm kind of cringing at my previous efforts to deal with peaks using parametric EQ. I just didn't know that even a crude VBA could work so well.
 
It's the amount your room walls absorb the sound during reflections.
It must be. The room is more absorbant than I thought, but it's still not enough. This makes sense when I think about playing with that room simulator and still seeing less than stellar bass response even when the damping factor is turned up considerably.
 
I'm getting more deep bass by playing the bass inverted against itself! I had some concern that this would just cancel all the deep bass.
The first reflection causes a dip at the LP because it's coming from the opposite direction (from the rear wall) then it's a peak when it bounces back again from the front wall. Thus the immediate effect of the filter is a boost in the first dip.
 
Last edited:
The first reflection causes a dip at the LP because it's coming from the opposite direction (from the rear wall) than it's a peak when it bounces back again from the front wall. Thus the immediate effect of the filter is a boost in the first dip.
Thank you. I've subscribed to your Youtube channel. I can see from a brief perusal of your videos that I can generate the convolution files in REW and then use them with Audio Hijack. Great stuff!
 
  • Like
Reactions: OCA
So, I decided to turn off my extensive parametric equalization on my woofers and try to smooth things out using reflection cancelling by mixing in delayed, inversed, and attenuated signals. These are applied full bandwidth for the woofers, without any equalization. They're basically an inverted echo.

I got surprisingly good results with inverse signals delayed 20 ms and attenuated 11 dB, and another one delayed 40ms and attenuated 22 dB.
Does anyone know how to do this using Equalizer APO? Perhaps like this;
test.png

Line 1 is to make a mono source for the bass.
Line 2 is to make copies to temporary channels, and to invert those channels (the -1's)
Lines 3-8 are then modifying each of those copies as required.
Line 9 then merges it all back together.
 
I think it was that article that has had me pondering double bass array ever since. I loved the concept but just couldn't pull it off. Now that I've verified for myself that virtually simulating it is highly effective, I'm kind of cringing at my previous efforts to deal with peaks using parametric EQ. I just didn't know that even a crude VBA could work so well.

Is there an audible difference at the listening position when using PEQ vs. VBA? Also, does it do anything about the dips?

This is what I get from PEQ only:

image.png.633e78ea5f95c75f217a00d8b7516d8d.png
 
Is there an audible difference at the listening position when using PEQ vs. VBA? Also, does it do anything about the dips?

This is what I get from PEQ only:

image.png.633e78ea5f95c75f217a00d8b7516d8d.png
I'll have to do some back and forth comparison. I think it sounds different, but I haven't necessarily matched the target curve I had before so that could be a big part of it. I didn't really shoot for a specific target with either of these methods, just adjusted out the biggest nulls and peaks that I could and tweaked levels until I liked it. I need to learn more about REW and how to match target curves and export impulses. That should let me get them EQ'd as close as possible to the same measured frequency response. What will be interesting at that point is to compare the spectrograms as well as the perceived sound quality. If the spectrogram looks also very close to the same then I wouldn't expect them to sound much different.
 
Back
Top Bottom