• 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

Check my edits, we're typing at the same time.

Ignoring and suppressing the ringing artifacts post filter extraction, the results compared to your original VBA filter is close enough:

1691751393681.png 1691751399564.png 1691751406940.png 1691751409399.png 1691751411728.png 1691751413946.png 1691751416287.png 1691751418555.png
 
My screen looks nothing like that with those settings. What else have you done? Here's my screenshot and capture;

Edit: Holdup, teh frequency moved lol. Will fix. Still, not "mostly blue" like yours.

ss.jpgcapture.jpg

Edit2: Fixed screenshot. I'll leave the other 2 just as FYI that a "capture" looks the same without custom settings. And I've added a screenshot of the original sweep with teh same settings. It's worse in the decay, not a lot, but it;s work in progress. Just look at the difference under the "appearance" window.
ssf.jpg sweep.jpg
 
Last edited:
It's worse in the decay, not a lot, but it;s work in progress. Just look at the difference under the "appearance" window.

Sure, but I think you are ignoring the fact that (low level) bass dereverberation is secondary to the importance of steady state magnitude frequency response.
 
I fixed the frequency range in my previous post. Just now I've tried Top=0 like your screenshot, but it "bugs out". Have you "flattened"/normalised the SPL on another tab or something?

bugged out.jpg

Sure, but I think you are ignoring the fact that (low level) bass dereverberation is secondary to the importance of steady state magnitude frequency response.
1) There is nothing "steady state" about the SPL of a 1 cycle tone (or an "instant impulse" = dirac impulse) that REW shows.
2) We're trying to design VBA / active room treatment in this thread. I've said before in this thread that there might be benefits to ouputting early or constant tones "clean the room" before the real tone is output. I haven't got to testing such theories yet. But at the rate I'm going, I probably should have just got a job and could use the wages to buy a Storm Audio processor with DL-ART by now :facepalm:

Edit: I will start a new thread on "steady state" as I see it and see what other ASR users say about it, because I don't think many are seeing this thread. I know I don't know anything about "psychoacoustics", so maybe REW is technically correct in how it shows a "comb", but I think that's just part of the challenge to overcome, because if the first waves are good, why should/are the late waves dictating so much of the "SPL"?
 
I fixed the frequency range in my previous post. Just now I've tried Top=0 like your screenshot, but it "bugs out". Have you "flattened"/normalised the SPL on another tab or something?

SPL is offset in order to match the filter.

1) There is nothing "steady state" about the SPL of a 1 cycle tone (or an "instant impulse" = dirac impulse) that REW shows.

Eh, sorry, but I think you are the one who is confused here.
 
Eh, sorry, but I think you are the one who is confused here.
Why does taking the unmodified REW measured IR and convolving it with a continuous tone equal to a room mode increase in SPL over time then?

Edit: Underlines to group the relevant descriptors. Effect has been shown in my previous Audacity screenshots.
 
Why does taking the unmodified REW measured IR and convolving it with a continuous tone equal to a room mode increase in SPL over time then?

Edit: Underlines to group the relevant descriptors. Effect has been shown in my previous Audacity screenshots.

Not sure how it is you think you are (correctly?) convolving REW's measurement with your generated tones in Audacity, yet what you see in the SPL graph below (traces 1 & 2) are the original and filtered resulting "steady state" FR curves I mentioned.

1691758932906.png
 
Not sure how it is you think you are (correctly?) convolving REW's measurement with your generated tones in Audacity, yet what you see in the SPL graph below (traces 1 & 2) are the resulting "steady state" FR curves I mentioned.

View attachment 305148
Because REW SPL graph treats "sound heard over time" one way ("all sound heard" is after considering of direct wave with early+late reflections - this is what Kilppel NFS is measuring with angled measurements and then applying to the "in room" graphs), and I'm not saying it's making mistakes with regards to whatever science it is based upon, but I am seeing/suggesting/whatever that its results are based upon either a dirac impulse (which is an instant tone with max amplitutde at time=0, aka a cosine wave) or a 1 cycle wave. And that makes sense, because a sweep doesnt spend multiple seconds outputting the same frequency over and over, because that would take "forever". Actually I have come to appreciate what it is really doing (AFAIK) and that is measuring an instant impulse (=dirac impulse aka max amp & rel t=0), and it records&understands how that 1 moment of max-amplitude frequency works in relation to the full sweep. And that info is recorded in the IR = the "sound" of the room over time. All frequencies of the recorded spectrum are in the IR. Thus if I put a 1 cycle tone of any frequency out in to the room, it should record the same as what the IR convolves. [Bolt edit: And so if I put a second or n+ cycle out after the first cycle, the SPL "heard" at the measurement position is surely representive of adding toghether multiple IR's (convolving them) at the LP.] And so if I put 10cycles in to the IR, it should be the same as recording 10 cycles, because the IR has recorded "reflections" in a way that means it knows if they are constructive or destructive "overlapping reflections".

Edit: But at the same time, REW determines a "max SPL moment" the way it does (based upon certain psychoacoustic rules I'm sure) and works out the group delay the way it does, and THEN it offsets other graphs based upon the t=0 ref. That is another problem that I showed before (copied below). That is a straight up "echo" (100ms delay full power copy with min phase applied), yet REW flips the T=0 point back and forth.

Edit2: posted the quoted 1st img which was the wrong img to post
index.php
 
Last edited:
Edit: But at the same time, REW determines a "max SPL moment" the way it does (based upon certain psychoacoustic rules I'm sure) and works out the group delay the way it does, and THEN it offsets other graphs based upon the t=0 ref. That is another problem that I showed before (copied below). That is a straight up "echo" (100ms delay full power copy with min phase applied), yet REW flips the T=0 point back and forth.

As far as I can tell, the combing artifact is due to the phase response of the delayed signal (simulating an inversed reflection) which is also supposed to be cancelling out the measured "modal" peaks and dips of the original.

However, as is obvious from the graphs, your generated filter seems to be off quite a bit.
 
As far as I can tell, the combing artifact is due to the phase response of the delayed signal (simulating an inversed reflection) which is also supposed to be cancelling out the measured "modal" peaks and dips of the original.

However, as is obvious from the graphs, your generated filter seems to be off quite a bit.
You might have missed my edits (we were posting in tune again), but addressing this point directly, I think it's because the direct wave comes with a wave packet, like I outlined here [Edit: Particularly the quoted bit at the bottom of this post]. So psychoacoustics surely takes this in to account. I believe it understands the effect of being in a normal sized room and hearing multiple early reflections in quick succession, which also start with a wave packet. All reflections that arrive will sum with the main direct wave at the LP, and presumably because of their close time difference (because of minimal extra distance travelled) their phase will be similar and they will be "constructive" (add together, not negate) at the LP. You can see this effect on some of my convolved IR's in Audacity, and in some of the screenshots I did in REW of filtered IR's. It looks like a "shelf" on the way to the reported max, which implies the direct wave was weaker than the early reflections (again, AFAIK).

In the case of room modes, it seems a "late wave" arrives and because it is in phase, it totally "overpowers" the previous waves heard, and then REW treats that moment as the "SPL MAX = T0" point. If you added "100% effective" room absorption to imaginary room on the back wall - like DBA theoretically does, or like I did in REW Room Sim - then I imagine that the direct wave stays the same, because why wouldn't it? The direct wave isn't affected by the back wall in a "quiet" room. And if the early reflection points are no different (side walls + floor + ceiling), then their input to the IR will be the same too. So in this instance, the only difference in the IR is the back wave reflection.

But how does REW's SPL graph show this change? I don't think it does, because it "randomly flip-flops" (based upon its calcs) wherever it thinks is best - not at the true "relative" baseline (relative to the direct wave). Again, here is an extract from my previous post with an echo IR, where it can be seen that REW adjusts the "peak energy time" based upon some sort of frequency over time relationship, and not by an effecitve "SPL heard quickly" metric.
flip flop.png


Edit: Just to clarify the relevance of the wave packet and why there is more than 1 wave for even a 1 cycle tone - I believe it's because the air is actually being compressed and stretched by the crests and valleys of the wave being created. So when the initial crest is played (positive amplitude = high pressure), that means compressed air. But to compress that portion of air means another portion of air has to stretch, and so a weaker valley wave forms in front of the main crest wave. But that valley is still so strong that it causes an area of compressed air in front of it, thus another weaker peak wave forms ahead of it. And so on it goes until it reaches 0, and the same thing happens in reverse once the main wave passes completely, and the wave packet "dissolves".
 
Last edited:
Honestly, I don't really care anymore. So my participation in this thread is going to end.

I would suggest at least trying out another approach that might not yield as questionable or bad at all result, for example:

1691763937938.png 1691763948761.png 1691764456025.png
 
Honestly, I don't really care anymore. So my participation in this thread is going to end.
Fair enough. But if you believe the claims/benefits of DL-ART are real, then I've watched videos where they say they are only using "20% more processing" beyond what DL-RC uses, and AFAIK that only uses IR's. So it's quite probable that DL-ART is only using 1 IR per channel. If that's the case, then surely we can we make our own IR that gets similar results? But also, if it was obvious and easy, then they probably wouldn't have a patent for it. So that's a factor too.
 
But how does REW's SPL graph show this change? I don't think it does, because it "randomly flip-flops" (based upon its calcs) wherever it thinks is best - not at the true "relative" baseline (relative to the direct wave). Again, here is an extract from my previous post with an echo IR, where it can be seen that REW adjusts the "peak energy time" based upon some sort of frequency over time relationship, and not by an effecitve "SPL heard quickly" metric.
No idea what "SPL heard quickly" is and that line is not "randomly flip flopping", it is just tracing where the peak spl is in time for each frequency. The output level is just whatever is included in the window so if you move the window or change the width then the output level will change.
 
that line is not "randomly flip flopping", it is just tracing where the peak spl is in time for each frequency. The output level is just whatever is included in the window so if you move the window or change the width then the output level will change.
Here are screenshots of an echo I made in the IR. When the echo is quieter (-0.5dB in this case), REW correctly assigns the first wave as the peak wave. When I make the echo 0dB different, sometimes it assigns the late wave as the peak wave. That's the flip-flop. I have attached the mdat so you can review yourself.
echo_quiet.png echo_same.png
And you might say "that will never happen in a real measurement", except it does;
oddities.png
 

Attachments

  • dirac echos (MP).zip
    2.7 MB · Views: 54
I have been following this thread as I have tried a number of solutions mentioned here and have found them ineffective or improvement was small.
The room size and layout are never as simple as measuring your room as also other reflective or sound absorbing "things" will interfere with the theoretical outcome. I also have DIRAC and don't use it as it doesnt work for my setup environment.

Im over it.

I have spent over 6 months experimenting with many solutions proposed on this forum and others to ultimately settle on an adequate outcome and now will just enjoy my playback system. The relentless pursuit of better sound can be addictive and counterproductive to the reason why we have purchased our equipment in the first place.
 
Here are screenshots of an echo I made in the IR. When the echo is quieter (-0.5dB in this case), REW correctly assigns the first wave as the peak wave. When I make the echo 0dB different, sometimes it assigns the late wave as the peak wave. That's the flip-flop. I have attached the mdat so you can review yourself.
it doesn't sound like you understand how that view is generated in fourier mode and how there is a trade off between temporal resolution & frequency resolution, I suggest reviewing that and then it should be clear. You can also look at it in wavelet mode and switch between the freq resolutions to get an idea of what is going on.
 
I've still been experimenting. I've realised a few things;

First regarding workflow, how I was testing overlapped IR's in Audacity can be achieved a similar way in REW. You do this by using Filtered IR settings close to the target frequency, "Zero phase filtering" which moves the direct wave to time=0, along with the dBFS graph setting. You can overlap filter IR's on the Overlay screen, to see improvements. This screen is also handy in other ways because;
1) it shows the Schroeder Intergral line which is an indicator of the "sound/echo left to hear" in a way (until -60dB reached). The steeper this line the better, because that indicates reduced decay times. Any areas touching the line are what is "holding up the line", so if those areas are reduced, the line should improve. Also any areas that stick above the line are really bad, because they are really overpowering considering their dB:time relationship!
2) it shows the potential "range" for a new direct wave to cancel a late reflection. More on this later.
decay.png

Next thing I noticed is that the 1st room length mode (which will be 30-50Hz in most room) is such a long frequency that it seems to blend nicely in to a big hump. Shorter frequencies like the 2nd and 3rd room modes often have "secondary humps" cause by reflections on at least their 2nd pass of the LP. If you outptut a cancel tone, those 2nd humps will occur again too. I also found that because my speakers are rolling off higher than the room mode, the potential gains are reduced due to being closer to the noise floor already (and I haven't tested my sub yet). But looking at OCA's measurements where his speakers are near full power at the room mode, better results can be achieved. I did manage to make an IR that flattened the "back of the peak", but it didn't do so much after that.
Edit: Had to recreate the mdat (also attached it). The cancellation impulse is not bandpassed to make trial and error faster, so these results should only be looked at for 30-40Hz. The improvement is obvious in the time domain (on the spectrogram, with wavelet rendering) because the normal result was "red" until ~150ms, whereas with VBA it stops at ~80ms. I also made a version with EQ only, and whilst it fixes matches up to ~80ms, it doesn't have the benefits longer in time, AND the surrounding frequencies (30-33, 35-40) are not improved.
34Hz.png spec-before.png spec-vba.png spec-eq.png

Last thing I looked at properly was how quick the back wall reflections arrive. In my 4m long room, it only takes the back wall reflection 12.8ms more than the direct wave. The reflection of the back wave off the front wall is then only 9ms later. It seems they blend in to the "primary hump" that occurs just after the direct wave.
reflections.png

So here's what I've been doing in REW: I take a screenshot of the IR screen and put that in Paint, with the cursor over the first peak after t=0 (the first peak of the direct wave). Then I change the graph color and move the cursor to a peak where I want the cancellation wave to start, and take a screenshot in another session of Paint. Then I copy a chunk of the 1st screenshot and overlay it transparent with the second. Here's the effect;
IR overlay.png

You can see if I made an custom IR with that delay, the cancellation direct wave would cancel the original "2nd hump", but then the cancellation wave would have it's own 2nd hump. This could be good or bad, and it seems from a few trials that it's often bad because there's a high chance of phase shift over that long of a time period (look at the dramatic phase shift at 100ms for example). If it were good (destructive), then it would improve the decay, but if it's bad (constructive), then it will just make more noise at the time, in fact making the decay worse. Then I wonder if I need to "cascade" cancellation tones, to cancel the OG cancels 2nd hump? When would it end?!

Anyway, to finish that workflow off I take note of the cursors. The direct wave is 4.2ms, and the wave I want it to cancel is 33.3ms, thus the delay I want is 29.1ms (but if the cancel tone is bandpassed, it may have require a bit more delay, and I haven't worked out how to account for this yet beyond adjusting by a millisecond or 2 and seeing what happens). Also the cursors show the relative SPL that can be used to reduce the gain of the cancel tone, but maybe the SPL of the 3rd peak is a better metric in this example. Lastly you have to switch to the % graph and check the amplitude of the peaks at the 2 times. If they are both the same, then the cancel tone needs inverting.

Last thing for this post is that I tested if the "simulations" (REW altered measurements) actually apply to new measurements, and they do! I tested my Right speaker only with it's current EQ, with EQ and VBA that I made the other day, and compared that to EQ*VBA simulation. The simulation of VBA matches the measurement with VBA very well. In this case though, the VBA has filled the decay slope in, making it worse lol. Possibly I got the inversion wrong, or possibly there is an "issue" because the VBA was developed against a stereo sweep, and this is it applied to a mono sweep?
Here are a few example frequencies showing how well the VBA measurement vs simulation tracks (not to judge the performance);
test 63.png test 100.png test 125.png
it doesn't sound like you understand how that view is generated in fourier mode and how there is a trade off between temporal resolution & frequency resolution, I suggest reviewing that and then it should be clear. You can also look at it in wavelet mode and switch between the freq resolutions to get an idea of what is going on.
OK, I haven't looked in to that yet, but it's good to know that the spectrograms method can have temporal "affects", which is related to what I was noticing.

It is still weird seeing large phase swings on the graph though, like in the following screenshot of the measurements I was just posting about;
phase.png
But it does seem that the phase jumps are 360° out (so still in phase), so I guess it isn't a problem, as long as elsewhere it hasn't adjusted t=0 SPL peak.
 

Attachments

  • L0 34Hz fix test 1.zip
    2.9 MB · Views: 65
Last edited:
  • Like
Reactions: OCA
Edit: Had to recreate the mdat (also attached it). The cancellation impulse is not bandpassed to make trial and error faster, so these results should only be looked at for 30-40Hz. The improvement is obvious in the time domain (on the spectrogram, with wavelet rendering) because the normal result was "red" until ~150ms, whereas with VBA it stops at ~80ms. I also made a version with EQ only, and whilst it fixes matches up to ~80ms, it doesn't have the benefits longer in time, AND the surrounding frequencies (30-33, 35-40) are not improved.
34Hz.png spec-before.png spec-vba.png spec-eq.png
Just to further validate the benefits of VBA in that example, I have made a "filtered IR" about the target frequency. The EQ method has a weaker direct wave, because the source was EQ'd lower. It's as simple as that. The direct wave is weaker, and thus the reflections are weaker. But then over time it's louder, and then somehow the "combined SPL" is equivalent. VBA has "max strength" direct wave and corrects its "combined SPL" by improving its over time performance. I don't know a lot about "tactile bass", but a stronger direct wave is probably good for it.

different IRs.png
 
  • Like
Reactions: OCA
The EQ method has a weaker direct wave, because the source was EQ'd lower. It's as simple as that. The direct wave is weaker, and thus the reflections are weaker. But then over time it's louder, and then somehow the "combined SPL" is equivalent. VBA has "max strength" direct wave and corrects its "combined SPL" by improving its over time performance. I don't know a lot about "tactile bass", but a stronger direct wave is probably good for it.

According to Geddes again (from some old notes I took of his videos):

A 100 Hz tone period/cycle = 10 ms and is registered under 30 ms. In a small room this would have traveled the room and impinged on the ears a dozen times coming from several different directions at different arrival times way before detecting its presence -- pitch and loudness is not even yet determined at this point.

You are not going to be truly perceptive of the direction, arrival, or reflections in the modal region... however, extending 30-50 ms we may begin to sense delay in the bass. While the ears can detect arrival times as short as a few ms at higher frequencies, it is simply incapable of doing an assessment of independent arrivals of waves in the modal domain. Hence at modal frequencies, the steady state responses of small rooms is all that we need to consider (while I don't myself 100% completely agree with this) ... this is consistent with the time-frequency trade-off seen in measurements where we simply cannot "window out" the room below some frequency (in the modal region) given by the "first reflection" -- this requirement is too stringent for our hearing. There is one caveat, however: we can detect the decay of the of the steady state response, but this is a much longer time span than first wave front arrivals. The decay time is almost completely correlated with the modal response.
 
Back
Top Bottom