Subtract one file from another and read what survives. If a process left the audio alone, the difference cancels to nothing. If it changed something, the difference is what it changed, and it can be written out and played.
Reading the null depth
The headline number is the residual level relative to the reference. It answers one question: how much of the original is left over after cancellation.
- Below -96 dB: the difference sits under the noise floor of a 16-bit file. Nothing here is audible.
- -60 to -96 dB: real, but far below anything a listener will hear in context. Lossless re-encodes and good resamplers land here.
- -30 to -60 dB: an audible process ran. Lossy encoding, dither, or a gentle filter move.
- Above -30 dB: either heavy processing, different material, or a misalignment that has not been corrected.
Alignment comes first
A null test on two files that are not sample aligned tells you nothing. One sample of offset at 48 kHz already leaves a residual around -12 dB, which reads exactly like a file that has been mangled.
The offset is measured by cross correlating the first few seconds of each file, and leading silence is skipped before the search starts. That covers the two ways files drift apart in practice: an encoder delay of a few hundred samples, and a take that was trimmed differently at the front.
The correlation figure next to the offset says whether the measurement is worth anything. Below 0.5 the peak is not standing out of the noise, and the offset is a guess.
Polarity and level
Two things break a null that have nothing to do with processing.
An inverted copy correlates at -1 instead of +1. Subtracting it doubles the signal rather than cancelling it, which reads as the worst possible result when the files are in fact identical. The polarity toggle flips the compared file before subtraction.
A gain difference sets a floor on the depth. Files that differ by 0.1 dB cannot null deeper than about -39 dB no matter how identical the rest of the signal is. The level trim removes that before the comparison runs.
The residual file
The written difference is the interesting half of a null test. A codec’s residual is the part of the music it decided to discard, and hearing it says more than the number does: cymbals and reverb tails on a low-bitrate MP3, almost pure silence on a lossless copy.
Residuals are usually 40 to 90 dB down, so the boost control lifts the exported file to a level worth listening at. The measurement ignores it.
Where the comparison stops
The two files are compared over the range they share. If one is longer, the overlap is what gets measured, and the leftover is not counted.
Channels are matched to whichever file has fewer. Comparing a mono file against a stereo one measures the first channel of each, which is a real answer to a slightly different question than the one you probably asked.