Your 320kbps MP3 Might Be a 128kbps MP3
Someone sends you a 320kbps MP3. You check the properties: 320kbps, 44.1kHz, stereo. Good file.
Except the bitrate in a file’s header describes the last time it was saved, not what it contains. If that file was a 128kbps download before someone re-exported it, it is still carrying 128kbps of audio — now stored in a container three times the size.
Nothing in the file’s properties will tell you. Nothing in any metadata will tell you. But the audio itself says so plainly, and it takes one measurement to see.
Why re-encoding cannot put anything back
A lossy encoder does not compress audio the way a ZIP file compresses text. It discards — it decides which parts of the signal you are least likely to notice and throws them away permanently.
The first thing to go is the top of the frequency range. It is expensive to encode, most adults cannot hear above 16kHz anyway, and cutting it is the cheapest way to hit a bitrate target. So an encoder working at a low rate simply stops storing anything above a certain frequency.
Re-encoding that file at 320kbps asks the encoder to faithfully reproduce what it was given. What it was given has nothing above 11kHz. So it faithfully reproduces nothing above 11kHz, using far more bits to do it.
The bitrate went up. The content did not.
The measurement
Take the average spectrum of the file and find the highest frequency still carrying real signal. That number is a fingerprint of the lowest-quality stage the file has ever been through.
Measured on a single source encoded down a ladder:
| Encoding | Content reaches |
|---|---|
| Uncompressed | 22.0 kHz (the sample rate’s limit) |
| MP3 320 kbps | 19.9 kHz |
| MP3 256 kbps | 19.2 kHz |
| MP3 192 kbps | 18.5 kHz |
| MP3 128 kbps | 16.5 kHz |
| MP3 96 kbps | 15.1 kHz |
| MP3 64 kbps | 10.9 kHz |
| MP3 32 kbps | 5.3 kHz |
And then the case that matters:
| Header says | Content reaches | |
|---|---|---|
| 64 kbps re-encoded at 320 kbps | 320 kbps | 10.9 kHz |
Identical to the 64kbps original. Three times the file size, not one extra hertz of music.
AAC behaves the same way — 128kbps stops at 16.9kHz, 64kbps at 12.0kHz — so this is not an MP3 quirk. It is what lossy encoding is.
What this is good for
Checking a master you were handed. A studio, a client or a stock library sends you “the high-quality version”. If its content stops at 15kHz, it is not, whatever the file says, and you should ask for the original before you build anything on it.
Auditing your own archive. Files accumulate history. A track that went out to a platform, came back as a download, got re-exported for a compilation and re-exported again has been through three encoders. Each one took from what the last one left.
Deciding whether re-exporting is worth it. If the content already stops at 11kHz, exporting at a higher bitrate is pure file size. The only fix is going back to the source recording — and knowing that before you spend an afternoon on it is the point.
What this measurement cannot tell you
It cannot tell you how the top of the range went missing.
A deliberate low-pass filter and a codec’s brick wall look nearly identical to it. Measured: a gentle low-pass at 16kHz reads 17.2kHz, and a 128kbps MP3 — whose wall sits around 16kHz — reads 16.5kHz. There is no honest way to separate them from the spectrum alone.
Some material also has nothing up there to begin with. A spoken-word recording made with a dynamic microphone in a treated room may genuinely carry very little above 14kHz, and that is not damage. A telephone recording sampled at 8kHz cannot physically carry anything above 4kHz, and marking it down for that would be measuring the sample rate twice.
So the honest finding is about the content, never the cause: this file carries nothing above 10.9kHz, of a possible 22.1kHz at its sample rate. What that means is yours to decide — but you cannot decide it without the number.
The other things worth checking while you are there
Loudness, in LUFS. Spotify, YouTube, Apple Music and Tidal all normalise playback to around -14 LUFS. A master at -6 LUFS does not play louder; it gets turned down by 8dB and arrives sounding flatter than a quieter master would have. Broadcast targets -23. Knowing where your file sits against those numbers is the difference between mastering for the platform and mastering against it.
Clipping, counted properly. The useful number is not how many samples touch full scale — it is the longest run of them. One sample at the ceiling is a peak that happened to land there. Twelve in a row is a waveform with its top cut off flat, and no limiter will put the shape back.
Whether your stereo file is actually stereo. Somewhere in a chain — a converter, an export preset, a well-meaning plugin — a mix can get folded to mono and then written back out as two identical channels. The file is twice the size, the waveform display looks like stereo, and every metadata field says stereo. Subtract one channel from the other: if the answer is silence, it is not.
Check one file free: DiffALL’s audio quality checker reports all four — the frequency range actually present, integrated LUFS against the streaming target, clipping with run length, and whether a stereo file carries two channels or one twice. No score out of 100; you get the weakest dimension named, with the measurement behind it.
Got both versions? Compare the two audio files for a per-second similarity timeline, difference spectrograms and the exact moment they diverge — which tells you precisely what a conversion cost you.
Stop hunting for differences by hand. DiffALL spots every change between any two files — automatically.
Compare your files — free