Do you think so?For low frequencies there would be no real comb filtering.
Do you think so?For low frequencies there would be no real comb filtering.
Part II - RESULT
The theoretical benefits of a VBA are as follows:
1. Improved lower frequency response
2. More even overall room response
3. Reduced bass ringing
This is provided the sub and listening room configuration is suitable for a VBA. This is a diagram of my listening room, along with the positions of the microphone.
Result 1: Mic at MLP. The result actually looks slightly worse with the VBA. Without VBA, bass is absolutely flat +/- 2dB from 25Hz - 100Hz. A very impressive result. With VBA, a couple of dips appear at 35Hz and 65Hz.
Result 2: Left sofa. I was hoping to see a much flatter bass response than this. As you can see, it does have an effect, but not much. And it's not all good. It appears to slightly attenuate the bass peak at 35Hz, but it deepens the bass nulls at 65Hz and 95Hz.
Result 3: reduced bass ringing. Oops, I forgot to crack out REW to generate a waterfall to check this. Maybe tomorrow
Result 4: Subjective impressions. I DO NOT HEAR A DIFFERENCE! I think that the bass seems more even while walking around the room, but to be honest I am probably fooling myself.
Possible reasons for failure:
1. Improperly calculated delay for the cancellation pulse.
2. Incorrect attenuation of cancellation pulse (I used a factor of 0.7).
3. Room configuration does not support a VBA. Note the large open space at the bottom left corner that opens into an adjacent dining room.
4. The VBA model I implemented is oversimplified. It only accounts for room length modes, and not diagonals or width modes or any of the other modes.
5. The non-VBA curve is already so good that VBA will barely improve it. Yes, this is a shameless endorsement for Acourate.
6. I screwed up somewhere, I just don't know where yet.
Conclusions:
1. In the main listening position, the impressively flat bass response suggests that a VBA is not required.
2. However in the left sofa, bass response is noticeably lumpy. There is more bass, and there are +/- 15dB swings in bass response. I will need to think about how much I really want to even out the bass response at the left sofa.
Uli is not generating the minimum phase version of the VBA filter. That totally removes extra group delay introduced by VBA.I was inspired by this thread, so I implemented a VBA tonight using Acourate. This post will be split in two, one for the method (so that other Acourate users can follow / criticize), and the other discussing the result.
I followed @UliBru's instructions here. I adapted his instructions and came up with my own workflow.
1. Find the delay of the subwoofers. I have previously gone through the time alignment procedure, so I simply loaded those curves. For the curves that you see above, the tweeter has been delayed by 1000 samples. I performed a sweep with only the sub and the tweeter turned on, which results in the two peaks you see above. The BIG peak is the tweeter, which Acourate automatically positions at sample 6000. So it becomes a matter of reading off the position of the bass peak in relation to the tweeter. Because the tweeter is delayed by 1000 samples, and is positioned at sample 6000, we expect to find the subs at sample 5000. In this case:
- Left sub: at sample 5624. Therefore 624 samples delayed.
- Right sub: at sample 5661. Therefore 661 samples delayed.
2. Calculate the delays as follows, and then subtract the sub delay. Because the output of the sub has to travel the length of the room and reflect back, the distance (and time) covered is twice the length of the room.
- Formula: t = 2 * room length / speed of sound
- Speed of sound is 343m/s; Room length is 7m.
- 2 * 7 / 343 = 40.81ms or 0.04081632653s
- at 48kHz, 0.04081s is (48000 * 0.04081) = 1959.18367344 samples
- Subtract delay of LEFT: 1959 - 624 = 1335 samples
- Subtract delay of RIGHT: 1959 - 661 = 1298 samples
- Take note of these values for Step 4.
3. Create the filter. Here, we are only correcting to 150Hz.
- Generate-Crossover. Butterworth, 150Hz, 4th order. Load XO1L and XO2L into curves 1 and 2.
- Then apply to XO1L and XO1R TD Functions-Phase Extraction. Minphase, start 20, end 400 into Curve 3 and 4.
4. Now we apply the delays and attenuation to the filter. Use the delays calculated in step 2, and I am using an attenuation factor of 0.7 (as per Uli). Modify the Minphase curves (3 and 4) as follows:
- Left: Rotate 1335 samples, Gain factor 0.7; TD-Functions Change Polarity to invert the sub response.
- Right: Rotate 1298 samples, Gain factor 0.7; TD-Functions Change Polarity
5. Clear Curves 1 and 2. Now create the initial Dirac pulse: Generate-Testfilter, Samplerate 65536, sample 0, length 1 into Curves 1 and 2.
6. Add Curves 1 + 3, and 2 + 4 into 5 and 6 to obtain this result:
7. Save Curve 5 (Sum13) as PrefilVBAL; Curve 6 (Sum24) as PrefilVBAR. These will be your left and right prefilters respectively. Here we can see the result. Note the negative deflection in the time graph (lower), indicating the sub will output a cancellation signal at the specified time. Here, at 0.0278 seconds, or 27.8 milliseconds. As per above, I delayed the left sub by 1335 samples. At 48kHz, this is (1335/48) = 27.8ms.
8. Compare your generated VBA filter with the uncorrected room response. You can see that the peaks and nulls of the filter align almost with the peaks and nulls in the uncorrected room response - at least up to 150Hz (which is as far as I designed this filter to work). The reason for the discrepancy is because we are working with room geometry rather than actual measurements, so further iterations will need different inputs to account for the fact that the subs are not exactly flush at the front wall, and I have dipole subs.
9. Load the prefilters generated in Step 7 into Macro 0 in Acourate's room correction then proceed as normal.
10. Do a verification sweep, then sit back and analyse the result. Then go back to step 1 with new inputs and repeat until satisfied.
Comb filtering is a filter that repeats its nulls at wavelength/N.Do you think so?
For low frequencies there would be no real comb filtering.
A peaking room mode (when the reflections overlap) occurs at half that length though, so 8.5m room for 20Hz. This is why OCA and Keith_W have issues around 33Hz, because they must have 5m rooms. I have a 4m room and it will be about 43Hz.in the lower sub range lets say 20Hz this wave length is 17 meters.
None of these images are appearing for me. They are in your previous post though. Hosting bandwidth issue?Part II - RESULT
I found more evidence that this is the case;maybe they are using the "unused" spectrum of each component to do the cancellation?
Edit: Here is exactly what I am saying. This is the estimated in room response of my Kali IN-8 with an 80Hz HPF (xover) applied. This means the speaker isn't responsible for playing 43Hz, but my sub will be. But the speaker can still play a lot of sound at 43Hz, so then I merge in a phase shifted and volume boosted (possibly via IR method), and the end result could look like this;ART handles all filtering. Mains go to around 20-25Hz and subs 20-150Hz
Indeed, so this shows in the impulse response as a kind of sharp peak at that delayed time.Wikipedia says - In signal processing, a comb filter is a filter implemented by adding a delayed version of a signal to itself, causing constructive and destructive interference.
None of these images are appearing for me. They are in your previous post though. Hosting bandwidth issue?
FIR filters are already kind of doing that during the introduced delay but I don't think ART is doing any magic at that front because they have confirmed ART will benefit from larger surround speakers to deal with the counter bass waves required for cancellations.Also in a video I am watching at the moment, Dr Ericsson of Dirac says "we cancel out the reflections and the wave just propagates through the room". Again I am wondering if they are cancelling in advance of the song, to "clean up the room" before the actual sound wave propagates?
I'm still watching this video, and later on he says;
26:19 example after having applied direct live room correction and then you take um what's it called a [Room EQ] Wizard or
26:27 [REW] and make another measurements just uh one more measurement just to see what how was the result actually by an
26:33 objective third-party measurement tool uh you may see that there are still
26:39 some you know null ish behavior in the in the base
26:45 region but but I've seen this myself
26:52 applying active room treatment and on these two speakers you get
26:57 perfectly flat response uh on on in the base region so really getting rid of the
27:05 um yeah the null type of behavior
I'm not 100% sure what you're getting at, I'll have to read over your posts again. Perhaps you can elaborate further too? All this IR stuff is confusing the heck out of me.Indeed, so this shows in the impulse response as a kind of sharp peak at that delayed time.
To have a comb filter at n*20Hz this would mean a sharp peak in the impulse response at 50Msec!
Never seen a living room like that
These waterfall graphs show very little improvement over DLBC which merely applies one or two time reversed allpass filters to reverberating frequencies. And this is probably one of their best results:I'm still watching this video, and later on he says;
Code:26:19 example after having applied direct live room correction and then you take um what's it called a [Room EQ] Wizard or 26:27 [REW] and make another measurements just uh one more measurement just to see what how was the result actually by an 26:33 objective third-party measurement tool uh you may see that there are still 26:39 some you know null ish behavior in the in the base 26:45 region but but I've seen this myself 26:52 applying active room treatment and on these two speakers you get 26:57 perfectly flat response uh on on in the base region so really getting rid of the 27:05 um yeah the null type of behavior
So he said a bit earlier in the video that DLRC uses phase correction and he also discussed allpass filters in that context, and then he has said that REW shows room nulls after DLRC but they are fixed after DART. Presuming the same smoothing is used to not hide the nulls via a "trick", then there is definitely more at play with their method!
I'm not 100% sure what you're getting at, I'll have to read over your posts again. Perhaps you can elaborate further too? All this IR stuff is confusing the heck out of me.
But I'm pretty certain if a room were 8.7m long, an impulse peak would appear at 50ms, thus boosting 20Hz. In the mdat OCA posted earlier, an impulse is present just before 30ms, which corresponds to ~33Hz and the peak buildup he has. The impulse is ~10%. If the speakers are close to a wall in a 5m room, and the mic is 2m away from that wall, then the sound has to travel 3m past the mic to the back wall, and then 3m to return. That's 6m past the mic, which is 3x doubling of the speaker to mic distance, thus 3x-6dB of SPL, so roughly 12% at listening position. So that all seems to line up correctly?
View attachment 302770
Where did you get these graphs from?These waterfall graphs show very little improvement: over DLBC which merely applies one or two time reversed allpass filters to reverberating frequencies.
And here they mention "feed forward" and surround speakers:
View attachment 302772
Funny that they claim it "cannot be equaled through manual approaches". They should then reveal their already patented technique since noone can approach it manually
I will go ahead and claim that I can beat Dirac correction every time at every room. For an automated method to not falsely read IR start times, avoid pre/post ringing and/or possible speaker/ear damage claims, etc. the margins are kept so low that there's no way it can come close to what can manually be done.
It's mostly a marketing gimmick IMO.
Uli is not generating the minimum phase version of the VBA filter. That totally removes extra group delay introduced by VBA.
Dr. Uli Brueggemann said:A speaker is positioned at the frontwall with zero distance. It sends a perfect Dirac signal. The soundwave moves to the back wall (behind a listener, the listener is not discussed here) and is reflected there. Some energy is lost, thus the reflection level is reduced by a factor x. Now the reflectied soundwave moves to the front wall and is also reflected there with some enery loss by a factor x.
So we get an echo after a time t = 2 * room length(speed of sound. The echo can be considered as a new played sound by the speaker. The next echo cycle starts.
This is what I noticed in my last Audacity screenshot = that the strongest cycles are delayed by 1 to 2 cycles from where they would have been. I am really wondering if the way to go is in advance, not delay!Every VBA iteration worsened the waterfall.
Your control measurement must already have EQ applied, because how else did that huge trough between 30 and 45Hz get filled?So let us take a look at the measured response. This is a comparison of the control (no VBA, overall room EQ only), the measured room response of VBA3, and the VBA3 filter.
How do the cones move relative to each other though? If both move in or out at the same time, and if their distance apart is less than 1/4 of the relevant wavelength, then I believe their output effectively sums. Here's at least 1 comment that says as much.My next iteration will take into account the fact that I have push-pull subs, with one driver firing forwards into the room, and the other firing rearwards into the front wall
Okey, you're all doing your stuff. But, admittedly you lost me. I would rather like to see a discussion of this topic in more common terms. As I alread pointed out, mentioning my experience with an evil 6th order bandpass, what about steady state frequency response, all reverberation included for bass, and just and only group delay?This is ...
I disagree because I don't know if (or how) the SPL graph is capable of showing these "over time" effects properly? All my previous analysis posts have been working towards understanding this fundamental question I have. Let me break it down;Not waterfall plots and the like. The latter only distracts from the basic facts, as they tend to attract wild interpretations, while not being anything else than just that: amplitude and group delay, but in fancy colors.
This is what I noticed in my last Audacity screenshot = that the strongest cycles are delayed by 1 to 2 cycles from where they would have been. I am really wondering if the way to go is in advance, not delay!
Can you export your IR's and test them like I did (the in room measurement with any basic EQ applied, and the VBA's)? If you upload them here I will do it.
Dr. Uli Brueggemann said:imagine a room of length 6m length. The speakers are positioned 1 m before the front wall. The listener is located 2 m before the back wall.
Ok, the speasker plays and the first sound wave reaches the listener after 3 m travel. Then the sound moves 2 m further (5m total) before it gets reflected by the back wall.
Now the sound is traveling back reaching the listener after 2 m and the speakers after 5 m. At this point the sound has travelled 10 m and we may think about playing at this point an inverse signal.
Now the sound reaches the front wall after 6m, get6s reflected and will pass the speakers after 1m travel. So from the beginning the sound now has travelled 12 m and it moves in the same forward direction to the listener as the first wave.
This means that we may think about 10 travel or 12 m travel distance. Anyway the 12m distance is independent of speaker and listener position.
Another problem gets into the game: we have furniture in the room influencing the dimensions.
And another problem: the sound is not a beam, especially low frequencies a radiating in a sphere. So in our reflection game the sound wave after 12m has another dimension than the opposite wave played as VBA signal.
So there are many influences in the game and thus the reality is more complex than the simple approaches.
Your control measurement must already have EQ applied, because how else did that huge trough between 30 and 45Hz get filled?
How do the cones move relative to each other though? If both move in or out at the same time, and if their distance apart is less than 1/4 of the relevant wavelength, then I believe their output effectively sums. Here's at least 1 comment that says as much.