What this compressor adds to its strip's latency, in SAMPLES — the figure the strip's
displayed latency and the alignment tool both read.
Derived from detectorOversampledOf, which is itself derived: nothing about this is
stored, so a strip cannot report a delay it stopped taking. The engine delays the audio by
exactly DETECTOR_OVERSAMPLE_LATENCY_SAMPLES while the 4× control path runs, so that
the gain lands on the sample it was computed from; a reader that did not add it would show a
strip in time that is 72 samples late, and the alignment tool would trim the difference into
every OTHER strip instead.
Samples, not milliseconds: the count is the filter's reach and does not move with the graph
rate. A caller that wants a time divides by the rate it is holding — see
latencyClassFromMs, which refuses to guess a rate for exactly this reason.
What this compressor adds to its strip's latency, in SAMPLES — the figure the strip's displayed latency and the alignment tool both read.
Derived from detectorOversampledOf, which is itself derived: nothing about this is stored, so a strip cannot report a delay it stopped taking. The engine delays the audio by exactly DETECTOR_OVERSAMPLE_LATENCY_SAMPLES while the 4× control path runs, so that the gain lands on the sample it was computed from; a reader that did not add it would show a strip in time that is 72 samples late, and the alignment tool would trim the difference into every OTHER strip instead.
Samples, not milliseconds: the count is the filter's reach and does not move with the graph rate. A caller that wants a time divides by the rate it is holding — see
latencyClassFromMs, which refuses to guess a rate for exactly this reason.