So as it turns out, it is critical to use/export minimum phase version. Otherwise all sorts of things happen.
Also the export should not be normalised, because that can cause clipping. This is even though the impulse does not appear full power in REW.
If any DSP/convolution engine has an option to "Normalise IR" you give it, it seems you should NOT tick that option, or else you could get clipping.
The screenshot below shows this analysis, and in summary you can see the correct results are without normalisation, and with minimum phase applied - preferrably in the measurement, but also during the export works (and stacking both doesn't hurt).
View attachment 303217 View attachment 303218
Now that I have the correct min-phase VBA for use in Audacity, I repeated my tests combining tones with VBA IR and then with your measured IR. This time I tried 2 cycle tone, 3 cycle tone, and a longer tone (of the same 33.7Hz -0dBFS tone).
First I used the raw (non-normalised) measured IR and normalised the quiet results, but I realised that probably isn't right. Still it is interesting, so here it is anyway;
View attachment 303219
So instead I amplified the results by a common gain of +40dB. Now this is interesting.
View attachment 303220
The VBA effect now seems apparent to me!
- In the aftermath of the 2 cycle tone you can see that the valley and crest at ~0.25ms are nicely suppressed, as is every cycle after them. This suggests decreased decay to me.
- The 3 cycle tone is very similar.
- The long tone is interesting in another way, because with VBA you can see the tone continuously building up strength in room. The cycles also build up with VBA tone (as the previous normalised screenshot shows by effectively being zoomed in further), but they seem to start from a more controlled amplitute and then build up slower. The decay also looks improved just as well as the other tone examples.
So it seems like there is an actual improvement at these targeted frequencies! ...
But maybe only at those frequencies? Because now that I'm more familiar the "Filtered IR" screen, I have looked at the 63Hz 1/3 option (normalised). 63Hz is close to 66Hz, which is the 2x multiple of OCA's problematic ~33Hz area. So it's a quick and easy example (without having to manually bandpass the measurement).
So comparing OCA's measured L0 (before VBA), and L1 (with VBA), you can also see the improved decay time with VBA.
View attachment 303226 View attachment 303227
But I also discovered you can use the Filtered IR screen with the dirac impulse, and it shows what a "perfect wave" would look like;
View attachment 303228
And then I worked out that using the "Zero phase filtering" option offsets the filtered IR so that t=0 lines up with what I think should be the "central group velocity" (more on that term later). Basically I think that's the point when the direct wave has "officially" been heard. So everything after that is unnecessary and room related gains. So even though VBA has improved the back half of 63Hz, it hasn't corrected the "second peak" at all. And I haven't looked yet but I'm guessing this "second peak" relates to group delay.
But last night I was going down a rabbit hole of topics on Wikipedia, and that's where I came across the term "central group velocity", as it was mentioned on the page for
Wave packets. There's a lot to understand there and I still haven't got through it all, but the following gif is illustrative;
Superposition of 1D plane waves (blue) that sum to form a Gaussian wave packet (red) that propagates to the right while spreading. Blue dots follow each plane wave's phase velocity while the red line follows the central group velocity.
The pages intro is also informative;
In physics, a wave packet (or wave train or wave group) is a short burst of localized wave action that travels as a unit, outlined by an envelope.
Because I notice the use of the word envelope again.
Later it says;
Any signal of a limited width in time or space requires many frequency components around a center frequency within a bandwidth inversely proportional to that width;
So to me that's referring to even 1 cycle tones, like I was simulating in Audacity. Because for that 1 cycle to move through the air requires a wave packet. But also it applies to dirac pulse, because the next part of the sentence is;
The Gaussian function page links to "
Dirac delta" page which says;
In mathematical physics, the Dirac delta distribution (δ distribution), also known as the unit impulse
It's the basically the same thing (or perhaps more correctly, a "dirac pulse" is an example of a gaussian function?).
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".
So that's what the "filtered IR" of the dirac pulse is showing - the wave packet. And the fact our in room IR has a different wave packet is indicative of the problems the room is causing. And any energy that arrives after the direct waves energy has arrived, then that can cause additional peaks which seem to be effectively the increased group delay (it seems that way, but I haven't confirmed).
I bring up all this wave packet stuff because I think it holds the answer to the best audio. But also it shows the relevance of the result of a filtered IR, and so I think it is important to look at what OCA's VBA IR has done to other frequencies, like 50Hz (which seems to be a room null).
View attachment 303233 View attachment 303234
It's actually made it somewhat worse (but not by a great deal according to the Schroeder Integral), because the delayed peak at ~150ms is far stronger with VBA. Here is a perfect 50hz wave packet, just to confirm that all that delayed peak isn't necessary;
View attachment 303238
So whilst the VBA IR to date is an improvement in some areas, I don't think it's the best possible solution. Possibly we need an entirely different solution, or an overlapping solution that can fix other problematic frequencies. Also this VBA IR to date is not utilising multiple speakers/subwoofers to their full potential, but only applying 1 IR to all.