Latency Compensation
Latency has several sources, and compensating one does not remove the others. The aim is to keep musical events aligned while reporting the delay that remains between a performer and the sound.
Processing paths must arrive together
Section titled “Processing paths must arrive together”An instrument or effect may take time to produce its output. Resonon accounts for reported plugin latency across processing paths and adds compensation delay to shorter paths. A track through a slow processor can then remain aligned with a faster track.
That is plugin delay compensation, or PDC. It waits for the slower path; it cannot make that path finish earlier. A custom effect must declare its processing latency for this accounting to include it. A creative delay’s echo time is part of its sound and is not automatically a processing-latency declaration.
Device delay remains part of monitoring
Section titled “Device delay remains part of monitoring”Input and output also take time in buffers and converters. Increasing the block size can give the engine more time to finish, but increases the delay you hear when monitoring a performance. PDC aligns graph paths without making this device round trip disappear.
audio_latency() separates the buffer, graph compensation and device timing. Where available,
device timestamps measure delays a buffer-size estimate alone misses. A reported requested buffer
size would be misleading here, so the diagnostics use the size the device actually runs at.
A recording is placed against what you heard
Section titled “A recording is placed against what you heard”A take arrives after the output you played along with and the input path you recorded through.
Recording compensation accounts for the measured round trip and graph compensation, plus the
rig’s recording_offset_ms residual. It changes the reference into the captured audio, retaining
all captured frames. Recording and Latency
explains that placement in detail.
External gear needs its own timing information. A returning audio track’s .set_delay(ms) declares
the hardware round trip for live alignment; a file render has no hardware round trip and omits
that delay. MIDI output alignment likewise concerns when a hardware instrument’s sound reaches the
mix, not just when its MIDI message leaves the computer.
The controls belong to the path they correct. A late recording is not a reason to shift every MIDI track, and a slow effect is not a reason to change the interface’s recording residual. See Compensate for Outboard Gear, Align Hardware with the Mix and audio_latency.