I am a bit of an audio newbie, but this is what I am trying to figure out.
I have 3 different kinds of beeps, say 200 in a row, and an individual series for each one.
They occur in a fast enough succession such that one beep starts before the last one finishes. I am trying to determine is if each type of beep is being played with an identical latency between each iteration, or with different latencies.
It is hard to tell by looking at the graph. I’ve tried to poke around with some of the tools but I have a lot to learn.
Any advice on how best to determine the information I am looking for?
Track 1: Plays an individual beep then 3 beeps in succession of one style, then waits a bit, does the same for the second style, then waits a bit and does the same for the 3rd style.
Track2: Plays the fastest succession of the beeps (should be 20/sec), starting with the first style, then waits, then starts with the second style, then waits, and then goes to the third style.
Some notes:
Unfortunately there are other sounds in the mix that serve as background noise. I’m under the impression though that the beeps still stand out enough to be seen clearly.
I have anecdotal evidence that says that the beeps might not be being played with an exact interval between them, but an interval that varies by up to 10 ms, although usually less than 5 ms.
Because I am using an onboard sound card, the quality is not ideal, although just from listening to it I feel that the quality should be sufficient for what I am trying to accomplish.
The problem I am having is that while I can certainly isolate the beeps in Track 1, trying to make them out in Track 2 has been a complete nightmare. I’ve tried many, many combinations of the spectrogram settings but I clearly don’t know what I’m doing since Track 2 always looks like noise.
This is a bit embarrassing but the sound track is from a video game. Tracks 1 and 2 were created offline where I don’t expect, but wouldn’t be surprised if a different latency is seen from particularly the first beep vs. beeps 2 and 3.
I need a fairly sure fire method of seeing the latency between them, so that when I run the online test I will be able to interpret it healthily.
I imagine I’ll figure it out eventually but I am in a hurry to get this project done.
Here are the two tracks, Track1 is singlebeeps.wav, track2 is 123.wav. You can get them here:
The tracks are at a ridiculously high sample rate. I’d recommend that you resample the tracks (Tracks menu) to 44100 Hz sample rate before any further processing.
Try these settings for the spectrogram:
When I said earlier than the intervals are uneven between the sounds, I did an analysis where it shows me what it thinks the events taking place are to the millisecond. I don’t fully trust it since millisecond sensitivity might be asking a bit much, but looking through the list of timestamps of sounds played I saw what should be 50 ms intervals instead being played at 44 ms - ~60 ms, and that this varying interval repeated in a predictable fashion.
I think that the track does show this kind of “rolling” interval which makes it even harder to see if the average latency is greater with one beep than the other.
One thing that I did not do with 123.wav is play the sounds for the same length of time. So I made a new track does just that, however it is still difficult to tell.
I recorded it in mono this time, which seemed to make the ‘rolling’ more pronounced. Should I have recorded it in stereo and mixed to mono after? It was also recorded in high sample rate and then mixed to 44100.
Yeah but the main thing I’m trying to do is determine the latency between the beeps in 123.wav or 123monovstr.wav
They should be roughly 50 ms apart, but since the beeps themselves are about 125 ms one begins playing before the other finishes.
The theory I am pursuing is that online style 1 will turn out to have less latency between beeps on average than styles 2 and 3.
I included the singlebeeps type wav for a comparison. In the actual file I’m testing these beeps are overlapping one another but it is difficult to tell by how much. That is what I am trying to determine.
As can be seen from the spectrogram in my previous post, the different frequencies in the beeps have different durations: 1300Hz harmonic is about twice as long as the one at 1800Hz, so the gap between when one beep ends and the next begins depends on what frequency of the beep you’re talking about, (the fundamental at 500Hz ?).
This is the file I need analyzed. Are the beeps being played at exactly 50 ms apart, varying degrees (if so by roughly how much) and also do these intervals vary with beep1 vs. beep2 vs. beep3.
I noticed audacity has an analysis menu, but I don’t know how to use its functions.
Also how do I say copy a piece of an audio file and overlay it onto another? If I could do that I might be able to create an identical set of beeps and then do a comparison that way.
If there’s an exact pitch to each beep that I could use as a comparison that would also work. It is also not clear where to compare the analysis such that I could do it in a consistent way. I could make it arbitrary and compare within an error margin, but I’d like to be as precise as possible especially when I want millisecond accuracy.
For example if I could say “this beep has a spike at 560 Hz as part of its structure, so every 560 Hz spike is a beep and there are exactly 54 ms between them in this sample” I’d be in good shape. I’d be in better shape if I could tell if say two beeps had 52 ms between them, and the next two beeps had 44 ms between them and verify a repeating pattern of distances.
I thought about using a paint program and comparing the pixel distances between peaks as a form of exact measurement. I could do that if i could just find an identifying peak but so far it’s very hard to tell. Resampling the track to even lower than 44100 seemed to help a small bit, but it still looks like one beep smears into the next in a way that makes them difficult to separate and use identifiers in the important sample “123monoVstr.wav”.
The goal is to be able to say “the average latency between the beeps in beepstyle x are less than, equal to, or greater than beepstyle y.”
I only posted the single beeps file to help identify the individual beeps.
Moreover I need a method for finding it as I am going to be testing more samples. The more accurate the method the better. Millisecond accuracy is needed.
“123monoVstr” group 1 (between 2-7seconds) : @ 2200Hz ten pluses take somewhere between 0.490 and 0.498 of a second,
assuming they are equally spaced then that gives => one 2200Hz pulse every 49.4ms +/-0.04ms
That’s the best accuracy you’re going to get: 49.4 milliseconds plus or minus 0.4 of a millisecond.
I cannot see how knowing this type of information will enable you to gain an advantage in playing a game.
Excellent I will look for that. Like I said I suspect that they are not equally spaced, but are spaced via a range that repeats in a predictable pattern.
That’s the best accuracy you’re going to get: 49.4 milliseconds plus or minus 0.4 of a millisecond.
That’s perfectly fine. Down to 1 millisecond is what I need, so tenths of a millisecond are actually overkill.
I cannot see how knowing this type of information will enable you to gain an advantage in playing a game.
In the online game, it is a distinct possibility that beep1 has less of an average delay as opposed to beeps 2 and 3 rendering beep1 a superior setting, the faster you hear something the faster you can react to it.
These samples were taken offline where there may be no difference in average latency.
So I am trying to establish a framework for analysis to use with the online samples.
Unless it’s a slot-machine which pays cash and you’re cutting me in on the proceeds, I’m outta here.
Well dang, it isn’t. Thanks for your help so far!!