Lossless audio checker
Drop a FLAC or WAV. See exactly where its spectrum stops, and whether that edge looks like a codec lowpass.
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
- Cutoff frequency: the highest frequency the file actually carries. Compare it with the file's own Nyquist, half its sample rate; a gap is the signature of a codec lowpass filter.
- Edge sharpness: how steep the drop is, in dB per octave. Psychoacoustic encoders cut sharply, above 60 dB/octave; microphones and tape roll off gently.
- Spectral holes: short 4-16 kHz gaps per second where a low-bitrate encoder ran out of bits, the classic MP3 swiss-cheese pattern.
- Upsampled: a cutoff sitting at a clean fraction of the sample rate, the 22.05, 24 or 32 kHz half-rates, means a lower-rate source padded back up, not a bitrate-driven filter.
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.
More audio utilities
- Extract audio from video
- Remove or replace video audio
- Audio converter
- Loudness meter and normalizer
- Noise remover
- Remove silence from audio
- Wow and flutter fixer
- Transcribe audio to text and subtitles
- Key and BPM finder
- Vocal remover
- Pitch and tempo changer
- MIDI to MP3
- Audio to MIDI and sheet music
- Tuner
- Audio recorder
- Spectrogram
- Room and speaker measurement