Skip to main content
Lightning Jar - Web Studio Lightning Jar Wordmark

Findings No. 30

An AnalyserNode downmixes to mono

Feed a stereo signal to one AnalyserNode and you are quietly measuring a different signal: it downmixes its input. Split with a ChannelSplitterNode into one analyser per channel.

Stem Shovel Web Audio verified Web Audio AnalyserNode, all engines

An AnalyserNode downmixes its input to mono before analysis. Feed it a stereo signal and every reading it produces describes the mono sum, not the channels, with no warning that a conversion happened.

For level meters that is usually tolerable. For anything that needs the channels apart it is quietly wrong: Stem Shovel's LUFS readout follows the loudness standard, which sums the channels' mean squares after filtering, and the mean square of a mono downmix is not the same number. Correlated content inflates it; anti-correlated content can cancel entirely.

The fix costs one node: a ChannelSplitterNode feeding one AnalyserNode per channel, with the per-channel reads combined in code the way the measurement actually requires.

The general rule: before trusting any analysis node, check what channel conversion it performs on input, because the signal you wired is not always the signal it measured.

Receipt: Stem Shovel (#readLoudness; FINDINGS.md, Web Audio).

Ask Eljay

Ask about the studio's work, research, packages, or writing. A few starters:

Answers come from this site's own content and link their sources. For anything that matters, email hello@lightningjar.com.