Skip to content
All fingerprint checks
Environment & locale

AudioContext latencies are values Chrome's audio stack can produce

Pim· Clearcote Research 2 min readCheck id audio-latency-render-state

outputLatency is 0 before the first render; baseLatency is a whole number of frames and at least the 128-frame render quantum. N/A on non-Chromium engines (severity: info).

What a detector infers

Two AudioContext latencies are produced by the audio stack at particular moments, and their values are constrained in ways a constant is not. outputLatency is updated only when the context renders: until the first render callback it is exactly 0 (afterwards it is rounded to an 8 ms grid, or 1 ms once the page holds microphone permission). baseLatency is the buffer size divided by the sample rate, so baseLatency multiplied by sampleRate is a whole number of frames — 480 at 48 kHz, 441 at 44.1 kHz — and never less than the 128-frame render quantum.

The row checks three things: outputLatency is 0 on a context that has not rendered, baseLatency is a whole number of frames, and it is at least the render quantum. Every stock arm measured here followed all three, as audio_context.cc says it must. A JavaScript override that reports a realistic-looking outputLatency of 0.016 at construction fails the first: a context that has not rendered cannot know its output latency yet.

The failing side was written for the test rather than captured from a tool, so the row is information only. A context that never starts, for example one held suspended by the autoplay policy, keeps outputLatency at 0, which is the correct reading rather than a failure.

How to resolve it

Leave AudioContext latencies native. A fixed value is wrong at construction, where the real one is 0, and rarely lands on the frame and millisecond grids the audio stack produces.

What is audio fingerprinting?

Nearby checks in Environment & locale

See all 38 checks in Environment & locale
Who builds this test

Clearcote is a browser built for fingerprint coherence

It is a Chromium fork, maintained by the same people who wrote this reference. It ships as a compiled browser rather than as a stealth script injected into someone else's — which is a description of how it is built, and is not an argument about how it behaves on this check.

This audit takes no position on how Clearcote scores on Environment & locale checks, on this one, or anywhere else. It has no baseline corpus of other people's fingerprints to rank you against and no vendor scoreboard — nearly every check is self-referential, asking one browser the same question through two independent APIs and reporting whether both answers can be true at once. It runs identically on any browser, including ours. Run it on yours and read the result yourself.

See the other checks in Environment & locale — the family audio-latency-render-state belongs to.