• 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!

Keith_W DSP system

Method 2: Reverse engineering the measured room response

I can't remember who suggested this method to me, maybe it was @OCA. The guy seems to be a treasure trove of brilliant suggestions. Me, I am only a follower.

1. As always, we start by determining the delay. Do a frequency sweep from MLP. Then zoom in and study where the peaks and dips in your response are:

1706600509235.png


25Hz is the first peak. 25Hz has a wavelength of 13.72m, or slightly less than twice the length of my room (7m). So far the model is holding up. This means that this is a first order mode, therefore there should be a dip at the next half wavelength, or 37.5Hz. Sure enough there is a dip there. We predict a peak at 50Hz and the measurement kindly obliges. Above 50Hz, the model falls apart and the peaks and dips no longer follow predictions. Nonetheless, it is a good place to start with the VBA.

So we do some maths to convert this into 48kHz samples. We take a half wavelength, so (13.72/2) = 6.86m. Then convert it to time (6.86/343 * 1000) = 20ms transit time. And 20ms is (20 * 48) = 960 samples. Now we subtract the delays of the subwoofer, which I have previously determined to be 200 and 220 samples for left and right subs respectively, and we have a calculated delay of 760 samples for the left sub, and 740 for the right.

At this point, does it disturb me that the delays calculated by this method (Left sub: 760 samples) are different to the delays calculated by the previous method (Left sub: 564 samples)? Yes it does. It disturbed me very much. Maybe I should have taken a 1/4 wavelength, but that produced a realization that the MLP is not exactly in the center of the room, and additional modelling would have to be made for the non-centered MLP position. That made my small brain hurt. But never mind, let's put doubts aside for the moment and go on with the method. We will take measurements later and see which model holds up.

Now we have calculated the delays, we go through steps 1 - 8 in the Acourate procedure described above to generate the filters. Again, we compare the VBA to the measurement:

1706602023936.png


It seems to be a much better fit, indicating the delays calculated by this method is probably correct!

Now, onto the measurements.
 
Last edited:
VBA MEASUREMENTS

Using Acourate, I generated 3 sets of filters:

1st set: Using bass prefilter described in this post earlier in the thread. I designated this "Control"
2nd set: Using the room geometry method.
3rd set: Reverse engineered from frequency response.

I didn't use Acourate for verification sweeps because Acourate does not create spectrograms. I used REW. But because REW has no convolver, the filters were loaded into JRiver. REW was set into Java mode, and the output was sent through JRiver. There are some disadvantages of doing this (most notably, latency), but it is good enough for us to get a nice sweep.

Frequency Response

1706603916569.png


Note that I staggered the uncorrected response for legibility. Objectively the best correction was "Control" and "Reverse engineered", although all 3 are an improvement over uncorrected. You can see that the two methods hug each other very nicely. The correction calculated by room geometry seems to work, it noticeably flattens the bass response compared to uncorrected. However the correction does not look as nice as the other two methods. This indicates some issue with my reasoning and method of calculation explained in post #80.


Spectrogram

1706605218331.gif


The above is a spectrogram comparing Control to the VBA generated by calculating room geometry.

1706605260108.gif


And the above is a spectrogram comparing Control to delays calculated by reverse engineering the room.

It appears that the reverse engineered VBA is marginally superior to the Control as far as decay is concerned.

Bass even-ness around the room

DANG! I thought I had the measurements somewhere but I can't find them! I will hunt for them and post them later if I find them. But I can tell you what I found - none of these methods improve the bass response at other points in the room.


CONCLUSION
1. VBA's calculated by both methods seem to work. In my case, the reverse engineered VBA worked better.
2. The difference between the "Control" and the reverse engineered VBA was negligible, but the VBA was slightly superior. There was no audible difference.
3. Since it is much easier and more predictable to make the "Control" correction, that is what I currently use.

It is likely that both VBA's are incorrect, and I could make a VBA that would provide even better correction than "Control". But I spent a week doing this and the experience was exhausting. The "geometry" model is almost certainly incorrect, because the correction it produces is inferior to the control - it does not correct the amplitude as nicely, nor does it reduce bass ringing. The "Reverse engineered" model produced good correction, but obtaining "25Hz" reading off the chart is somewhat arbitrary (maybe it is 23Hz? who knows?).

Also, both VBA's only accounted for a single reflection along the length of the room. Sound does not behave like that, it reflects back and forth multiple times, each time losing energy and scattering, before decaying to inaudible. I decided that it would be impossible to model that, so I did not bother. I already spent a week modelling a single reflection. I think this would be a nice candidate for computer modelling, maybe I could design an Excel spreadsheet or something.

Comments and criticism welcome. There is a mistake in here somewhere.
 
Last edited:
I am carefully following your intensive room acoustic measurements with much interests and learning.

In my case and setup, I do not have such a deep measurement skills and knowledge, but very fortunately I have enough sound deadening space/room behind the SP system and behind my ears-head at my listening position which I believe are greatly contributing my subjective nice hearing sensation (ref. here #687 on my thread).

Just for comparative observation between your setup and mine,,,

Even though I seldom measure the Wavelet spectrum of air sound at my listening position in my acoustic environments, typical Wavelet pattern with early/primitive time alignment (between subwoofers and other SP drivers) can be found in my early post here (dated April 11, 2020, before the arrival/implementation of DAC8PRO) which was like this:
WS000396 (3).JPG


At that very early stage in my project, I tentatively set 29 msec delay in woofers+midrange-squawkers+tweeters against sub-woofers giving Wavelet pattern as shown in the above diagram, and then after the full establishment of multichannel multi-SP-driver multi-amplifier setup using DAC8PRO, I found that delay in 16.0 msec is optimal for time alignment using the "time-shifted tone burst method" (ref. here #493) in my setup.

May I ask you that have you ever applied such "time-shifted 8-wave 3-wave single-wave tone burst method" (ref. here and here) and the "precision single sine wave matching method" (ref. here and here) in your setup, towards achievement of 0.1 msec precision time alignment between the SP drivers at your listening position?

BTW, looking at your schematic diagram/drawing of Room Geometry in your post #80, I assume you maybe have interest in my post here entitled "Identification of sound reflecting plane/wall by strong excitation of SP unit and room acoustics" where I too shared quite similar diagram and sound traveling arrows in my (a small portion of) room acoustics, and I actually measured/identified the traveling/reflecting tone burst sound.
 
Last edited:
May I ask you that have you ever applied such "time-shifted 8-wave 3-wave single-wave tone burst method" (ref. here and here) and the "precision single sine wave matching method" (ref. here and here) in your setup, towards achievement of 0.1 msec precision time alignment between the SP drivers at your listening position?

Haha, I can't even say "time-shifted 8-wave 3-wave single-wave tone burst method" in a single breath, let alone try it ;)

Your "precision single sine wave matching method" sounds the same as Dr. Uli's time alignment by sine wave convolution. Yes, I have tried it. But I don't use this method often so I haven't memorized the steps. I use Acourate's standard method of delaying the tweeter and looking for impulses. I will post a description of this method later.

BTW, looking at your schematic diagram/drawing of Room Geometry in your post #80, I assume you maybe have interest in my post here entitled "Identification of sound reflecting plane/wall by strong excitation of SP unit and room acoustics" where I too shared quite similar diagram and sound traveling arrows in my (a small portion of) room acoustics, and I actually measured/identified the traveling/reflecting tone burst sound.

That is interesting indeed. If I was going to persist with the VBA, I would strongly consider that method. I have seen reflections in my impulse response, for example this:

1706619160118.png


As mentioned, the room dimensions are 6m x 7m x 2.8m. There are even more reflections hiding in that impulse response. I only highlighted the most visible ones. The zoomed image looks like grass.

1706619351687.png
 

Attachments

  • 1706618788597.png
    1706618788597.png
    78.9 KB · Views: 36
And,,,

I found my DSP configurations in EKIO (ref. here) are much much simpler than your most sophisticated/complex DSP configurations. I assume/feel, therefore, room acoustic physical treatments (if possible) would be our "first/primary choice" rather than in depth complex tuning of DSP configuration and measurements thereof; what do you think on this point?
 
Last edited:
And,,,

I found my DSP configurations in EKIO (ref. here) are much much simpler than your most sophisticated/complex DSP configurations. I assume/feel, therefore, room acoustic treatments (if possible) would be our "first/primary choice" rather than in depth complex tuning of DSP configuration and measurement thereof; what do you think on this point?
I've to admit, I've seen simpler configurations that this:D

index.php
 
I've to admit, I've seen simpler configurations that this:D

index.php

Yes, that is mine!:D, and the total physical signal path (physical connections) would be almost identical to Keith's...;)

But I meant here my very simple EKIO DSP configuration as shown below in comparison with Keith's complexed DSP parameters...
WS00005881 (5).JPG
 
Last edited:
Also, both VBA's only accounted for a single reflection along the length of the room. Sound does not behave like that, it reflects back and forth multiple times, each time losing energy and scattering, before decaying to inaudible. I decided that it would be impossible to model that, so I did not bother. I already spent a week modelling a single reflection.

So VBA can safely be skipped. Eyeballing with PEQs should work fine as well. :p
 
So VBA can safely be skipped
You were never a big fan of VBA ;) On a serious note, I've also "almost" given up on VBA lately. I've realized that I can only accurately calculate first floor reflection (well, also ceiling calculation for that matter but somehow that doesn't show up as expected in the phase response!), but even eliminating that without artifacts seems to be a major challenge. Moreover, floor reflection is filtered in our brains and is completely inaudible, as it's evident in every sound we've ever heard in nature—similar to not seeing your nose even though it's right there in your peripheral vision.
 
Last edited:
But let us assume for the moment that it behaves like a box for modelling purposes
Do you have the length and width of that box handy?
 
I found my DSP configurations in EKIO (ref. here) are much much simpler than your most sophisticated/complex DSP configurations. I assume/feel, therefore, room acoustic physical treatments (if possible) would be our "first/primary choice" rather than in depth complex tuning of DSP configuration and measurements thereof; what do you think on this point?

Konnichi wa, Deyuaruzumakku-San. What complex DSP configuration? It is the same as yours! Source + VST + convolver, and that's it!

So VBA can safely be skipped. Eyeballing with PEQs should work fine as well. :p

This is true for me, but it may not be true for you :) I listed a few reasons why the VBA didn't work as well as hoped for me. The theoretical improvements of a VBA are:

1. Improved FR at the MLP. My best VBA certainly did this, and it equalled the Control. It is easy to make the Control look perfect at the MLP, so I would not have expected any less of it, nor can I expect it to be improved. Equalling the control is a superb achievement.

2. Improved ringing. I observed marginally improved ringing with one of the VBA's. I could potentially improve it even more with more complex modelling.

3. Improved off-axis response. This, I did not observe. I still can't find those measurements :( If I recall, all 3 of them looked close to the same, but none were a substantial enough improvement to bother.

Reasons for lack of better results are:

1. Only one reflection across one dimension was modelled, so we should only observe reduction in ringing in that particular frequency and multiples thereof. I might be able to improve ringing by modelling more wavelengths, but I got lazy at that point.

2. The model has a lot of assumptions - the room is a box, that reflections bounce as predicted, that the speed of sound is constant (it varies with temperature, humidity, pressure, elevation, etc). The model is only as good as the model maker. Am I a good model maker? Well, would you hire me to model the acoustics of your room? There's your answer ;) I wouldn't hire myself!

I caution against making generalizations from a single data point, particularly because this test has no external controls (i.e. one person making VBA's for everybody). Even if 20 people on ASR report that their VBA's do not work does not invalidate it as a concept. They could all be screwing it up like me. Kind of like 20 people jumping off tall buildings flapping their arms does not prove that flight is impossible ;)

similar to not seeing your nose even though it's right there in your peripheral vision.

I always thought I couldn't see my nose because I am Asian ;) The room dimensions are W6m x L7m x H2.8m.
 
Last edited:
You can achieve 6ms delay of first reflections in that room which is perfect accroding to Linkwitz:

Where did you get that diagram from? Link please :)

Unfortunately I can't set my room up like that. There are doors, staircase, etc. I will sacrifice a lot for my sound, but I won't sacrifice access to my bedroom or out the house ;) I know people with better listening rooms and complete freedom in placement (including a guy who has something close to an underground bunker) and they would really benefit from that information.
 
2. The model has a lot of assumptions - the room is a box, that reflections bounce as predicted, that the speed of sound is constant (it varies with temperature, humidity, pressure, elevation, etc). The model is only as good as the model maker. Am I a good model maker? Well, would you hire me to model the acoustics of your room? There's your answer ;) I wouldn't hire myself!

Well, yeah, it sure is more expedient to refer to the actual in-room measured acoustics data than trying to fit a very generalized correction filter model you cannot possibly account all variables for.
 
Improved ringing. I observed marginally improved ringing with one of the VBA's. I could potentially improve it even more with more complex modelling.
Is it the graph you showed above? If so, to me it looked like just a change in level (different roll off) accounted for the v minor difference.
 
Is it the graph you showed above? If so, to me it looked like just a change in level (different roll off) accounted for the v minor difference.

Yep, you are right. I missed that :)

On another note, Dr. Uli has implemented MSO import into Acourate. He kindly sent me an email inviting me to download the new version (v2.2.1). Here is the MSO filter I generated when I was playing with MSO months ago:

1706644133535.png


Do I need MSO? The difference between MSO and my existing method is that MSO optimizes over a wider area, whereas I optimize for a single position. Toole has said elsewhere that correcting for a single position is wrong. So I decided to confirm what Toole said and took measurements across the width of the sofa.

1706645156358.png


This is a measurement at LLP (red) and RLP (green) of the uncorrected left speaker with no sub. I made a special crossover with Acourate to run the woofer down to as low as it can go, it is normally crossed over at 80Hz. The width of the sofa is approximately 1.5m. I thought I had done MLP as well but that measurement seems to be missing from the collection. You can see the extreme directivity of the tweeter in this measurement! The left tweeter is much louder at the LLP compared to RLP, about a 5dB discrepancy.

1706645739159.png


This is a measurement of the left subwoofer (with tweeter as timing reference) at LLP and RLP. The woofers and horns were turned off, and I made another XO to run the subwoofer full range. What you see here is the natural roll-off of the sub, it goes up to 500Hz before it disappears into the noise floor.

This is why I decided that it would not be worth my while to use MSO. I do not need to optimize the bass response over the width of the sofa, because the difference seems to be negligible. There may be other reasons to use MSO, e.g. it is able to use the main speakers to augment the bass of the sub and produce a more even in-room response.

I am certain that it will worsen the response if I compare it to the control and measure at a single position. But as Toole says, the mic is not the same as two ears and a brain (in my case, two ears only). And I am fairly certain it will worsen the step response.

I will try it again. Any improvement that does not cost me any money is worthwhile :) I will need to think very hard about how I am going to integrate MSO into the DSP setup without disadvantaging MSO when I do confirmation measurements. I will probably ditch time alignment for the sub because MSO does its own time alignment anyway. I will keep subwoofer linearization and nearfield phase correction.
 
Konnichi wa, Deyuaruzumakku-San. What complex DSP configuration? It is the same as yours! Source + VST + convolver, and that's it!

Good morning from Japan!
Very nice to read that you are also good at Japanese language; maybe your Japanese would be better than my English, right?;)

OK, understood well. I am sorry for my lack of proper additional words. I was intending to mean about your DSP configuration plus intensive VBA and/or MSO things...

Based on my primitive and naive experiences, I learned that a little bit physical modification of room acoustic (such as furniture alignments, thicker curtains, carpets, cushions on sofas and chairs, etc.) sometimes greatly improve subjective and objective listening sensation and measurement data before implementing software manipulations.

At least for me in my setup, the policy is "do minimize the DSP and other software manipulations in digital domain; they should be done after possible physical optimizations of room acoustics, all towards natural and smooth sound reproduction".:D

I apologize for my getting a little bit out of the scope of your wonderful efforts in this attractive thread.
 
Last edited:
Good morning from Japan!
Very nice to read that you also good at Japanese language; maybe your Japanese would be better than my English, right?;)

OK, understood well. I am sorry for my lack of proper additional words. I was intending to mean about your DSP configuration plus intensive VBA and/or MSO things...

Based on my primitive and naive experiences, I learned that a little bit physical modification of room acoustic (such as furniture alignments, thicker curtains, carpets, cushions on sofas and chairs, etc.) sometimes greatly improve subjective and objective listening sensation and measurement data before implementing software manipulations.

At least for me in my setup, the policy is "minimize the DSP and other software manipulations in digital domain; they should be done after possible physical optimizations of room acoustics, all towards natural and smooth sound reproduction".:D

I apologize for my getting a little bit out of the scope of your wonderful efforts in this attractive thread.

Iye, Deyuaruzumakku-San. I don't speak Japanese, I use Guguru translator. Sometimes Maikurosofuto.

You are right about room acoustics, I use that approach as well. Put furniture in the room, and add some modest acoustic treatment. Then I DSP the rest. I don't like overtreated rooms - not only are they ugly, they don't sound great in my experience. My "room treatment" consists of:

- some acoustic foam which is leaned against the wall. I don't fasten them to the wall so that I can move them around, use them for pseudo-anechoic measurements of tweeters, experiment with positioning, etc.
- self-adhesive rubber lining around all window frames to make the windows more airtight. Reduces sound leakage both ways and lowers the noise floor. Also stops the subwoofers from rattling the windows. Also reduces heating bills in winter.
- self-adhesive foam dampers behind all picture frames. This stops the subs from rattling them.
- door snake (foam door stopper used to stop drafts). Same goal as window lining.
- furniture and thick wool rug.
- model ships. They are better than Shakti Hallographs ;)
 
Here is the MSO filter I generated when I was playing with MSO months ago:
I can't say whether you would benefit from MSO but I can say your results from it look rather odd, level is nearly -30dB overall and loads of filters used. I suspect the inputs measurements not so good but hard to say.
 
Back
Top Bottom