Skip to content

Correct Recording Latency

Resonon measures the round trip through the interface and moves each take back by it, so a take lines up with what you heard while you played. Correct it by hand only when takes still land early or late. Recording & Latency explains the model.

audio_latency() reports what is in force; its keys are listed under audio_latency:

let lat = audio_latency();
show(lat["record_compensation_ms"]); // what a take is corrected by
show(lat["output_ms"]);
show(lat["input_ms"]);

A smaller [audio] buffer_size shortens the round trip.

  1. Loop an output of the interface back into an input with a cable.
  2. Play a click, and record it through the loop.
  3. Compare where the recorded click lands with the click you played. The difference is the error.

Put the error in ~/.resonon/preferences.toml, then run reload_preferences():

[audio]
recording_offset_ms = 2.5 # takes arrive 2.5 ms later than measured

Positive means takes arrive later than measured, so each take starts further in; negative is for an interface that overstates its latency. Values beyond ±500 ms are refused. recording_offset() reads back what is in force:

show(recording_offset());