Autocorrelation not showing peaks where expected

Hi. None of the autocorrelation tools in Audacity 3.1.3 for Ubuntu are behaving as I think they should.

I’m interested in measuring the timing of sound reflections.
As a toy model, I generated a simple track with some noise, made a few copies of it, and time-delayed each of these by roughly 0.015s, 0.05s, 0.075s, and 0.115s, and then mixed them all together as a new track.

When I run highlight the mix track and select Analysis - Plot Spectrum and choose either Standard / Cuberoot / Enhanced Autocorrelation,… none of these show peaks at the expected time delay values, regardless of the window size I choose. The plots appear mostly flat, with a few peaks at other times than than expected (i.e. the time delays I created). The various autocorrelation plots all appear equally unintelligible to me; here’s one example:

I was expecting to see peaks at the time-locations of the respective time delays I created. (I have performed autocorrelations many time before, I know what it is!) How does one get Audacity to produce peaks at the times corresponding to echoes / what am I doing wrong?

Thanks very much.

Let’s try an example that is easily reproducible.

  1. Generate a 100 Hz sine tone. (“Generate menu > Tone”)
  2. Analyze the tone using “standard autocorrelation”.

We know that a 100 Hz sine tone repeats at intervals of 0.01, 0.02, 0.03 … seconds, so we would expect to see peaks at those timing intervals.
Is this what you see:


Uhhhh, I’m sorry, I might have to plead “user error.” Thanks steve for your reply.

Before using your sine wave example, I repeated my original noise-shifting experiment and this time everything behaved as expected. (??) I time-delayed noise by 0.04s and 0.07s, and mixed the original with these two copies.

Then the Audacity autocorrelation shows, as expected, peaks at 0.04s and 0.07s, as well as (of course) one other peak at 0.03 (=0.07-0.04)s:

So…false alarm? Sorry. Not sure what I was doing wrong earlier.

Note however that for my desired application of measuring reflected sounds, it’s better to do a cross-correlation between the “dry” audio and the recorded room response. AFAIK Audacity doesn’t do cross-correlations. Is there perhaps a “package” for that? In the meantime, I’ll use a little Python script for this.

If you’re trying to remove reverberation …

ACON deverberate.gif
[IMO only useful on mild cases].