Latency measured


#1

Hi all,

I have measured the audio round-trip latency of AxolotiCore. That is, a loop from the patch through DAC and a cable and ADC back to the patch.

It is approximately 1.99ms or 95.5 samples. (valid for software version 1.0.6)

roundtrip_latency.axp (6.4 KB)


#2

That corresponds well with my measurements :wink:
http://www.axoloti.com/more-info/latency/
(those were made on a prototype long time ago)


#3

Hi there, i know this is old! but how exactly did you come to these measurements from the patch ? I can see how it works, but interested on how you got actual numeric data


#4

its quite simple, and actually the patch can be simplified to make it easier...
(you don't really need the delay on the input, you can fine tune the delay line directly, as you cannot go below 1 sample anyway)
anyway, the simple patch will help me explain the time.

rttest.axp (4.2 KB)

in my patch, I tuned the delay line to 24.25
this means its using (24.25/64) of the delay line ~ 0.378 (37.8%) of 256 samples , which means 97 samples.... 48000 samples per second, so 97 samples = 97 / 48 = 2.0208 msec.

pretty close to Johanne's 2.04 ms :slight_smile:, which would be 98 samples (or 24.50 on the dial)


#5

Thank you technobear for the reply and including your working, when you lay it out like that it does look fairly simple actually so thanks again :slight_smile:
Just to be clear, can you just check what i think is happening ?
So the input frequency of the saw osc is such that 1 cycle fits in the buffer window? unsure as to why it gets divided by 4.
Been trying to think about why you do (delay out - input), is it because otherwise you would end up with 2 wavefronts ? Thought i understood it but plainly when thinking about it there are still a few gaps in my knowledge


#6

so really the patch is more complex than it needs to be (imo), as it allows a bit of tuning, the essence of the patch is...

the way the patch works is, it sends the audio out and back in, and writes to a delay line,
then the incoming audio is subtracted from the delayed audio.. so theorectically if the delay time is the same as the physical delay, it will result in zero i.e. a flat line.

the first complication is, this only works if the gain level is identical, below I posted it a bit, and then used a *c to reduce it a bit.
(if the gain is wrong, you'll see a copy of the waveform or inverse, as the negation is not complete)

in practice, you'll notice the negation doesn't quite result in zero, there is still some signal left, id assumed this was noise but I'm nnow ot convinced of this.

the frequency of the oscillator theoretically shouldn't matter, but in practice it does, you can see we start getting an offset at higher frequency, my assumption is this is because the sensitivity of either the ADC or DAC changes with frequency