# Decay and Waterfall plots fail under high latency



## bobkatz (Mar 28, 2009)

Dear friends: I've made some amazing progress using Acourate Convolver to linearize the response of my speakers/room. Sonically it's the most transparent room correction I've ever heard. Actually, it's the most transparent and musically accurate system I've ever heard. 

I decided to do some independent analysis of the Acourate Convolved room using REW. Encountered some interesting issues because of the high latency of the convolver filter (987 milliseconds "time of flight" from impulse to ears!). The first took only a few minutes to figure out, and that was how to set the window position for measurements. Although the mouseover help (what a great feature!) says that setting the window ref time to 0 automaticallly "set to zero to use impulse response peak as ref" this did not work in my case. I suspect the algorithm just gives up with such extreme latency. I am using a reference input to the sound card and I know it is working as the impulse shows up at 987 ms. which is an accurate description of the time of flight. When I set the window reference time to the actual center of the peak I feel comfortable with the frequency response measurement. But the waterfall and the decay plots are blank (after pressing "generate", of course). 

Are the waterfall and decay plots based on the window reference time as well? Any ideas why these plots would be blank? I'm sure it has to do with the extreme latency issue. Thanks, guys!


----------



## JohnM (Apr 11, 2006)

Hi Bob,

The popup help is maybe not as helpful as it could be  If you are using the loopback as a timing reference you need to set the reference time to the time at which the peak occurs. You could also manually shift the impulse to set the peak at t=0 using the "t=0 offset" controls on the Impulse graph, or click the Estimate IR Delay button to have REW give its own estimate of how far to shift the impulse and the click Shift IR to have REW move it. It might be best to untick "Use loopback as timing reference" for these measurements though, and probably also best to use a long sweep (512k or 1M).


----------



## JohnM (Apr 11, 2006)

On the waterfall and decay plots, those are referenced to the impulse peak independently of the IR window settings so should work regardless of the peak location. Assuming the measurement level is within the range selected for the waterfall or decay display (i.e. not all below the floor of the plot) you should be seeing a result. Can you attach or email an example measurement file?


----------



## jtalden (Mar 12, 2009)

JohnM said:


> You could also manually shift the impulse to set the peak at t=0 using the "t=0 offset" controls on the Impulse graph, ...


JohnM, 
Just a quick comment in case you are unaware.
Some of my setups have a delay just over 100 ms. I manually offset these to zero. I need to do this in 2 steps, because REW manual offset only allows a maximum offset of 100 ms. If my delay is 106.222 then I need to offset it 100 ms and then offset it again 6.222 ms. Since I have 5 TWs, 5 MRs SWs to offset when I am documenting one of my 5.1 setups regarding the system phase alignments, that is a lot of offsets. I never mentioned it before as I am probably a rarity. This would not impact very many users. I mention it here because Bob has over 800 ms to offset. Using this manual method would require 9 manual offsets for each IR he has.

The automated offset with the "Estimate IR Delay" works fine for over 100 ms and that will work for Bob's purposes. It does not work for mine as I need to offset 11 measurements the exact same amount to preserve the phase relationships between them and it is even harder to record each estimated value and find the difference from my chosen value for another manual correction.

Okay not such a quick comment. :innocent:

My apologies to Bob for the OT comment.


----------



## JohnM (Apr 11, 2006)

Yes, I noticed that while I was checking out Bob's report and I increased the range to 1,000 ms (and 100 m for the distance and 100,000 samples).


----------



## jtalden (Mar 12, 2009)

Thanks!


----------



## bobkatz (Mar 28, 2009)

Thanks for the expert user and designer feedback! I too am measuring a 5.1 system including an LFE so wouldn't the issue of the offset apply here as well? I tried to upload my .mdat file but the H.T.s. system said, "security token missing" so I sent a message to the sysop.


----------



## bobkatz (Mar 28, 2009)

JohnM said:


> Hi Bob,
> 
> The popup help is maybe not as helpful as it could be  If you are using the loopback as a timing reference you need to set the reference time to the time at which the peak occurs. You could also manually shift the impulse to set the peak at t=0 using the "t=0 offset" controls on the Impulse graph, or click the Estimate IR Delay button to have REW give its own estimate of how far to shift the impulse and the click Shift IR to have REW move it. It might be best to untick "Use loopback as timing reference" for these measurements though, and probably also best to use a long sweep (512k or 1M).


Hi, John. Obviously I'm looking for the most ergonomic approach in a repetitive situation. I did do an extra long sweep (1M in fact) and seeing the impulse land at 987 ms. was gratifying, it would be nice to keep it that way and use the loopback as a timing reference for continuity when comparing impulse arrival times for a multichannel system. So if we can find a simple solution for the waterfall and decay plots it would be great. As soon as the sysop approves my .mdat file upload you could take a look and play to see if you can get those waterfall and decay plots to appear. Please stand by.


----------



## bobkatz (Mar 28, 2009)

I'm nervous about running the automated offset (estimate IR delay) for fear it will affect some other measurement down the line if I forget. I do like the fact that the system shows the true time of flight of my incredibly latent Acourate Convolver. Anyway, when I did the automated offset, it screwed up the frequency response until I reset the IR window to 0 ms. So the interaction of the two functions is not intuitive. 

Now it generates a decay and a waterfall plot (which is good news), but I am a bit nervous of the impact of this procedure on my measurements.

Interesting... the old January 13th measurement (analog crossover, 9 ms. time of flight) does not generate the "January 13th" plot in decay, only the 20 ms. and up plots. The recent (digital crossover, 987 ms. time of flight) measurement shows all the decay plots. 

I'm pretty sure John will enjoy looking at these room measurements,especially the corrected plots and the impulse taken with Acourate Convolver, with its linear phase Neville-Thiele crossover to the sub. As soon as the Sysop approves my upload.


----------



## bobkatz (Mar 28, 2009)

Hi guys. I was able to upload smaller (individual) mdat files. The larger (22.3 MB) mdat of the whole system was not accepted. Sonnie told me he upped the permissible file upload size limit to 50 MB but it apparently didn't help in my case. 

If you'd like to see the whole surround system measurement, let me know. I'm pretty proud of how it measures, but especially how it sounds.

Of particular interest is the THD measurement. Compare the THD of the analog crossover I had designed back in January 13 with the THD of the Acourate Convolver linear phase Neville Thiele crossover I measured on November 9th. 

Then please see if you can find the most efficient way to get decay and waterfall to work for a system with so much latency. I think the reason the decay and waterfall don't work off the bat is that the automatic detection of the peak of the impulse is not working in my case with the extreme latency. I think that finding a way to automatically detect an impulse that's at an extreme distance would be pretty cool, but anyway, please see what you think is the most efficient way to work around the issue. Yeah, I know, not many people have latencies of almost one second! But wow, the performance of this high resolution Acourate Convolver has to be heard to be believed, especially if you don't believe the measurements .


----------



## bobkatz (Mar 28, 2009)

JohnM said:


> Hi Bob,
> 
> You could also manually shift the impulse to set the peak at t=0 using the "t=0 offset" controls on the Impulse graph, or click the Estimate IR Delay button to have REW give its own estimate of how far to shift the impulse and the click Shift IR to have REW move it. It might be best to untick "Use loopback as timing reference" for these measurements though, and probably also best to use a long sweep (512k or 1M).


Hi, John. Great program, it keeps on getting better and better. I can use the Estimate IR Delay button and that works. I'm trying to avoid that and use the true delay so I don't create the inaccurate impression that all the speakers arrive at identical time. Without loopback then I cannot compare the timing delay of speakers that were taken at different times with different sweeps.


----------



## bobkatz (Mar 28, 2009)

Thanks to Sonnie I was able to upload a large mdat file today! 

The front left and front right from January 13th show 8-9 ms. of latency which is the true time of flight. This measurement was taken when I had an all analog crossover. The impulse looks pretty typical, but I call it "pretty messy". The only weirdness I can detect with REW and these two measurements is that the decay plots show blank traces at the "0 ms" mark, labelled Jan 13 on the decay plot. 

The other six measurements are the six surround channels taken November 9th using Acourate Convolver to linearize the system. If you want to see what a seriously-optimized impulse response looks like, take a look at these plots!

The only weirdness is that REW cannot generate a decay or waterfall without using the Shift IR function. 

Here's a related question: Is it possible to restore the IR position to the original position? It also gets messy because we have to undo the IR window position as well. Thanks John. I'm not being cranky, just trying to think outside the box .


----------



## jtalden (Mar 12, 2009)

Bob,
I haven't opened the latest .mdat file yet so the following comments were based on the original postings.

The FR Acourate response looks really good. The phase rolls of a little at both the low end and the top end, but it is interesting to note that the amount of the roll off is almost identical to that of a measurement mic. The actual phase response in the room is thus close to 0 through the whole range. [This assumes you don't have any mic phase info loaded in the mic cal file. That info is hard to come by.]

The SPL and step response are also as good as it can be expected for LP measurements.

Regarding Distortion [Just a side comment]: HD is not normally considered to be an issue with good quality speakers and these values are good. The LF is probably limited by the noise floor. For more accurate (and lower) distortion readings at LF it is necessary to increase the measurement level to get higher above the room and mic noise levels. It will also help to increase the number of sweeps because that also pushes the noise floor lower via averaging. If we start to push the capacity of the speaker then of course the distortion will start rise again. 

Acourate Delay:
I have limited experience with convolution setups and none using Acourate. I think I understand some of the basics of this process however. The delay would seem to be much more than required to do the job and could be reduced without degrading the result. Of course it would not improve it either. I only mention it as you may be pushing near the total measurement window of REW? 

I think the delay is primarily a function of the total IR length that is loaded into Acourate. There is of course a small amount of additional delay as a result of the needed processing time, but I would guess that it is very small, maybe 1-3 ms, or possibly even less.

The length of the IR needed is a function of several things, but basically it needs to at least long enough to roll out the phase rotation in the original signal. I think that is the most demanding requirement concerning length. If I assume an extreme case of phase rotation (LR-96 for the SWs XO) and also assume that the phase was aligned in a "conventional" manner initially then a rough estimate is that it will require about 200 ms to remove the resulting phase rotation all the way down to 20 Hz. You can see why I think the IR that is being used may be much longer than is actually needed for similar results.

I just looked at the phase rotation in the Analog FR channel and it is only about 1/2 the level that I used in the example above so 100 ms may be enough to do the job. If you like I can try take the the FR analog result and construct a shorter IR that will do the job and calculate the resulting response just to demonstrate if I am correct in my estimates. 

I am not an expert in this matter and am only suggesting that the large delay would seem unnecessary and that you may want to look into this further. There are probably some more experienced users here that can provide more helpful comments.


----------



## bobkatz (Mar 28, 2009)

Dear J Talden:

I am not an expert in the matters of convolution either and I learned everything I know from Uli Brueggemann, inventor of Acourate. Uli tells me that the extreme filter length is what is important for sound quality. He seems to be unique in that, but I tend to believe him because we have done experiments with short filters and they just don't sound as good to me.

I have constructed (using guidelines from Uli) a very short filter with a minimum phase crossover, which has latency less than 10 ms. at 44.1 kHz. It doesn't sound as good, it's got a soft impulsive character, not at all as good transient response. Those linear phase crossovers cost a lot in terms of calculation time, half the length of the filter if I recall correctly. 

So I think you are wrong, but I do not have the math to prove it other than to say, "ask Dr. Uli Brueggemann".


----------



## jtalden (Mar 12, 2009)

I understand. I tried to make it clear that others would be knowledgeable and my understanding was limited.

Although... I can't understand why you think Uli would know anything about this. :devil:


----------



## 3ll3d00d (Jun 6, 2006)

Interesting timing to see this post as I had been generating the data for the acourate trial (where he generates some files with the filter applied so you can do a comparison with your own ears) this evening.

I'm curious what your setup is, the kit in your profile is completely unfamiliar to me so I'm just curious how it is put together and then how you're using acourate to handle that. 

Apologies if this is OT.

Cheers
Matt


----------



## bobkatz (Mar 28, 2009)

3ll3d00d said:


> Interesting timing to see this post as I had been generating the data for the acourate trial (where he generates some files with the filter applied so you can do a comparison with your own ears) this evening.
> 
> I'm curious what your setup is, the kit in your profile is completely unfamiliar to me so I'm just curious how it is put together and then how you're using acourate to handle that.
> 
> ...


Not off topic, Matt. Maybe off topic for this thread, but hell, all threads get derailed eventually . If you are simply playing back music files, you do not need Acourate Convolver. You can use Acourate to generate filters and insert those filters into JRiver's convolver and presto, you're all taken care of. JRiver will also take care of the latency and provide perfect audio/video lip sync. The process of creating filters which are compatible with JRiver is a bit involved, but an evening's study and participation in the Acourate Forum will set you straight, and save you the money of investing in Acourate Convolver.

You really only need Acourate Convolver if you are doing audio production and need to feed digital signals from an external DAW or other digital audio source into your playback system. So once you are done with your measurements, you will not need the input (record) side of your sound card, only the playback side. Tell us more about what equipment you have and what you want to accomplish and I'll see if you really need to know more about my crazy, convoluted audio system .


----------



## 3ll3d00d (Jun 6, 2006)

bobkatz said:


> Not off topic, Matt. Maybe off topic for this thread, but hell, all threads get derailed eventually . If you are simply playing back music files, you do not need Acourate Convolver. You can use Acourate to generate filters and insert those filters into JRiver's convolver and presto, you're all taken care of. JRiver will also take care of the latency and provide perfect audio/video lip sync. The process of creating filters which are compatible with JRiver is a bit involved, but an evening's study and participation in the Acourate Forum will set you straight, and save you the money of investing in Acourate Convolver.
> 
> You really only need Acourate Convolver if you are doing audio production and need to feed digital signals from an external DAW or other digital audio source into your playback system. So once you are done with your measurements, you will not need the input (record) side of your sound card, only the playback side. Tell us more about what equipment you have and what you want to accomplish and I'll see if you really need to know more about my crazy, convoluted audio system .


my setup is a pretty plain vanilla sub/sat HT setup that is also used for stereo listening, I have a single custom built 15" subwoofer using an Fi Q15 driver powered by an inuke 3000 amp. For mains I have MKSound 150s all round (on wall MP150 Mk2 at the front and S150T tripoles for surround) which are powered by a cinepro 2k6 mk3. I have an Marantz AV7005 processor currently fed by a PS3 for BD playback and squeezebox for audio (running squeezelite player on the server connected to the processor via optical).

The reason I've been looking at acourate is because I've never been especially impressed by audyssey & I am in the middle of building a new HTPC/file server with the intention of switching bd playback to the PC. I was also considering a switch of processing to the Anthem MRX x10 range primarily to pick up the new version of ARC (which seems widely considered the best of the mainstream EQ solutions). 

However since my PC will soon be my only source (apart from cable but correcting that is a nice to have not essential) then that means a PC based correction solution becomes viable and may well be a cheaper/better solution than switching to ARC (which is quite a disruptive change to my setup), at least in cash terms anyway (as I imagine this will be a time sink :coocoo.


----------



## bobkatz (Mar 28, 2009)

Well, I think you answered it! The new HTPC to play all your sources should run Acourate Convolver and/or JRiver Convolver just fine. 

Personally I've not been impressed with the native sound of the brand of loudspeakers you have chosen, so I believe an Acourate linearization will be a significant improvement. Provided you have good room acoustics. Why not take some waterfalls and decay measurements with REW? And start discussing the size of your room and acoustics on some other forum here at H.T.S.

BK


----------



## 3ll3d00d (Jun 6, 2006)

Acoustics in my room are what they are as it is only semi dedicated to music/HT. Next time there is structural work on my house I will probably introduce some treatment but until then I have to live with what I have. It is not bad though as it is. I have a couple of tracks from Uli, which he has run through a filter, to listen to so that should be interesting.


----------



## JohnM (Apr 11, 2006)

Thanks for uploading the files Bob. Waterfall and decay plots all generated normally for me with those files, but it looks like you are using an older version of the beta - the missing first decay slice was fixed in beta 14, for example. Please try the latest beta from here to see if it fixes things.

I have changed the 'Shift IR' behaviour to include setting the IR window ref time to zero and changed the t=0 offset controls to adjust the IR window ref time by the amount of the shift, those changes will be in the next release.


----------



## bobkatz (Mar 28, 2009)

JohnM said:


> Thanks for uploading the files Bob. Waterfall and decay plots all generated normally for me with those files, but it looks like you are using an older version of the beta - the missing first decay slice was fixed in beta 14, for example. Please try the latest beta from here to see if it fixes things.
> 
> I have changed the 'Shift IR' behaviour to include setting the IR window ref time to zero and changed the t=0 offset controls to adjust the IR window ref time by the amount of the shift, those changes will be in the next release.



Dear John: Many thanks. Ironically, I had installed beta 17 on my windows machine, where I take measurements, but had stayed at an earlier beta on my Mac, where I can sit at my desk, also do nicer looking displays. Love those Mac Graphics!

And you were right (as usual), in the new Beta I can generate waterfalls without having to shift the IR. So all my complaints turned into dust, I'm so sorry.

Small request: Can you make a way to easily restore shifted impulses back to their original time (as determined by the reference input)?


----------



## JohnM (Apr 11, 2006)

If you know how much the shift was the t=0 offset controls can be used to move it back (albeit that's a bit tedious with the 100 ms max individual shift in beta 17) but after doing the shift REW doesn't have a record of the previous offset, so it can't be readily restored. I could change the handling of the measurement delay figure show in the Info panel so that it is not affected by IR shifts and retains the original value from the time the measurement was made if that would be more useful than updating to to reflect the shifted IR.


----------



## bobkatz (Mar 28, 2009)

JohnM said:


> If you know how much the shift was the t=0 offset controls can be used to move it back (albeit that's a bit tedious with the 100 ms max individual shift in beta 17) but after doing the shift REW doesn't have a record of the previous offset, so it can't be readily restored. I could change the handling of the measurement delay figure show in the Info panel so that it is not affected by IR shifts and retains the original value from the time the measurement was made if that would be more useful than updating to to reflect the shifted IR.



Yes, please. Absolutely, if the info panel gives us a number we can quickly plug into the IR shift to take it back. Otherwise, what's the info .


----------

