audioJS

Lossless audio checker

Drop a FLAC or WAV. See exactly where its spectrum stops, and whether that edge looks like a codec lowpass.

Drop a FLAC or WAV file here
or click to choose, or paste with Ctrl+V

Nothing is uploaded. Everything runs in this tab with @audio/measure-lossy.

Spectral-cutoff detection, measured instead of eyeballed

A "lossless" file traded online is sometimes a 128 kbps MP3 re-encoded to FLAC. The classic tell is a spectrogram with a hard wall around 16 kHz, the Spek screenshot audiophile forums have traded for years. This page turns that manual read into a number: @audio/measure-lossy computes the long-term average spectrum (Welch, via @audio/spectral-ltas) and a max-hold spectrum, finds the sustained drop that marks the true cutoff, and matches it against the published lowpass tables of LAME MP3, AAC, Vorbis and Opus.

What the numbers mean

Where this method breaks down

Above roughly 128 to 160 kbps a well-tuned MP3 or AAC often shows no measurable lowpass, so it can read as lossless even though it was transcoded. The reverse happens too: an old tape dub, a narrow-band microphone, or plain speech is naturally band-limited and can look exactly like a lossy cutoff. This is a known limit of spectral-cutoff detection generally, shared by Spek and aucdtect-style guessers, not a defect specific to this page. Treat the verdict as one data point and read the cutoff, sharpness and holes together.

Questions

How does this detect a fake lossless file?

It reads the long-term average spectrum (Welch, via @audio/spectral-ltas) plus a per-frame max-hold spectrum, then finds the highest frequency where the level drops and stays down to Nyquist, not a narrow notch. It also measures the edge slope, counts short spectral holes in the 4-16 kHz band, and checks for the MP3 sfb21 notch near 16 kHz. This is the numeric form of the manual spectrogram-reading method used by Spek and aucdtect-style guessers.

Can a real lossless file get flagged as lossy?

Yes. Naturally band-limited audio, an old tape dub, a narrow-band microphone, heavy de-essing, plain speech, produces the same spectral cutoff as a lossy encoder. The verdict is a heuristic, not a certificate: read the cutoff, edge sharpness and holes yourself before trusting it.

Can a fake lossless file pass as clean?

Yes, above roughly 128 to 160 kbps. A well-tuned MP3 or AAC at that bitrate or higher often shows no measurable lowpass at all. That is a documented limit of spectral-cutoff detection in general, shared by Spek-based guessers and aucdtect, not specific to this page.

What is a spectral hole and the sfb21 notch?

A spectral hole is a short gap in the 4-16 kHz band where a low-bitrate encoder ran out of bits for that frame, the swiss-cheese pattern. The sfb21 notch is a narrow dip near 16 kHz specific to MP3: its last long-block scalefactor band stays bit-starved even above the nominal cutoff.

Is my file uploaded anywhere?

No. The spectrum analysis and classification run in this tab with @audio/measure-lossy, an open-source library. The file never leaves your device.