FLAC Spectrogram: Is This File Really Lossless?

See a FLAC or WAV file's spectrum up to its very top, with the MP3 encoder's usual cut-off frequencies marked, to spot a lossy file in disguise.

This page opens with an audio file, a 4096-point FFT and a linear axis from 0 Hz to 48 kHz.

Drop an audio file here, or tap to choose oneWAV, MP3, M4A, OGG, Opus, FLAC or a video's soundtrack. Decoded on your device, never uploaded.

Start the microphone or open an audio file to see its spectrogram.

Cursor Point at the spectrogram, or tap it, to read frequency, time and level.

Peak –

Dashed lines mark the default low-pass of the LAME MP3 encoder at four constant bitrates (stereo), from its source code, version 3.100:

  • 17 kHz MP3 128 kbps
  • 18.6 kHz MP3 192 kbps
  • 19.7 kHz MP3 256 kbps
  • 20.5 kHz MP3 320 kbps
Settings

How to check a FLAC file

  1. Open the file you want to check: FLAC, WAV, AIFF or ALAC in an M4A. This page reads the sample rate from the file’s header, so the picture runs to that file’s real limit: 22.05 kHz for CD-quality audio, 24 kHz at 48 kHz, 48 kHz at 96 kHz.
  2. Look at the top edge of the music. The view opens on a linear axis, which gives the high frequencies the room they need, with Blackman-Harris windows so a loud band doesn’t bleed into the empty space above it.
  3. Check About this file. It names the frequency of any cliff where the average level falls by 30 dB or more within a few hundred hertz and stays down. A cliff at 20.5 kHz or higher is marked as normal for 44.1 and 48 kHz audio; one lower down is the pattern lossy encoders leave.

What a lossy source looks like

Lossy encoders filter out the highest frequencies before encoding: LAME, the open-source MP3 encoder, calls its default the “best lowpass frequency limit” for each bitrate in its source code. Converting that MP3 to FLAC later can’t bring them back, so the FLAC carries a ruler-straight ceiling across the whole track. The lower the bitrate was, the lower the ceiling: the LAME source code picks 17 kHz at 128 kbps and 20.5 kHz at 320 kbps for stereo files at a constant bitrate (dashed lines on the plot). Variable-bitrate presets and other encoders such as AAC use their own values, so a cliff a little off a line still points the same way.

A genuine lossless rip of a modern recording looks different in where it stops, not always in how: cymbals, breaths and room sound carry on above 20 kHz, and the edge, if there is one, sits around 21 to 22 kHz, where the anti-alias filter of 44.1 kHz audio has to remove everything before the 22.05 kHz limit. A sharp edge there is normal; the same edge at 16 or 17 kHz is the warning sign.

Before you call it fake

  • Mastering filters. A recording can be low-passed on purpose before it ever reaches you. A cliff far below the top (17 kHz on a 44.1 kHz file) is a much stronger hint of a lossy source than one just under it.
  • Old and quiet recordings. Tape, vinyl transfers and solo voice can have little high-frequency content. A recording whose treble simply dies away doesn’t have the flat, constant ceiling of an encoder’s filter; play it and see whether the top edge moves with the music.
  • Upsampled “hi-res”. A 96 or 192 kHz file whose music stops at 22.05 kHz came from a CD-rate source. It’s lossless, just no more detailed than the CD.
  • Play the file and watch the playhead: a cut-off that is there for the whole track tells you more than one that appears in a quiet passage. Export a PNG to keep the evidence with a frequency scale.

Spectrogram ViewerSomeone shared their result

Suggested