Audio Compression Explained: Codecs, Bitrate & Psychoacoustics

A minute of CD-quality stereo is about 10 MB of raw WAV. The same minute as a 128 kbit/s MP3 is under 1 MB — and to most ears, on most speakers, it is the same recording. That 90% is not free: it is a bet, placed by a perceptual codec, on exactly what your ear will never notice. Understanding that bet is the difference between smart compression and ruined audio — and audiocompress.gotool.app exists to place it well, inside your browser tab.

Lossless versus lossy: two different promises

Lossless codecs (FLAC, ALAC, WAV) deliver bit-identical audio. They exploit redundancy only — the fact that neighbouring samples are correlated — and typically squeeze 40–60% out of raw PCM. Lossy codecs (MP3, AAC, Opus, Vorbis) go further and throw away information deliberately. Their promise is not “identical” but “indistinguishable to human ears”, which is a promise about biology, not about data.

Psychoacoustics: the ear you can cheat

Perceptual encoders run a model of human hearing alongside the signal and spend bits only where hearing is sensitive:

  • Absolute threshold of hearing. Below a frequency-dependent floor — around 0 dB SPL at 3 kHz, much higher at 20 Hz — sounds simply do not exist to you. Encoding that energy at full precision is wasted budget.
  • Frequency masking. A loud tone at 1 kHz hides quieter sounds nearby. The louder the masker, the wider the shadow it casts across the spectrum.
  • Temporal masking. A sudden loud sound buries quieter detail for tens of milliseconds before and after it — free cover for quantization noise.

The classic pipeline: split the signal into overlapping frames with a modified discrete cosine transform (MDCT), estimate masking thresholds per critical band, then quantize each band so the quantization noise falls under the masked floor. Where the ear is forgiving, coefficients get coarse — and coarse coefficients compress beautifully with Huffman coding. Where the ear is sharp (transients, cymbal hiss, sibilance), the encoder defends the signal.

Bitrate is a budget, not a quality label

Bitrate sets how many bits per second the encoder may spend. Rough practical guideposts:

ContentCodecComfortable bitrateResult
Speech, voice notesOpus / AAC32–64 kbit/sIntelligible, near-transparent speech
Podcasts, audiobook-styleMP3 / AAC96 kbit/s monoSmall files, no audible cost
Music on the goMP3 / AAC128–192 kbit/sTransparent to most listeners
Music you loveAAC / Opus192–256 kbit/sEffectively indistinguishable
Archival / mastersFLACLosslessBit-perfect, still ~50% smaller than WAV

CBR spends the same budget every second — predictable sizes, wasteful on silence. VBR lets complexity drive spending — better quality per byte, variable size. ABR is the pragmatic middle. For one-shot file shrinking, VBR at a sensible target is almost always the right call.

Where bad compression comes from

  • Generation loss. Lossy-to-lossy transcoding compounds damage. Always re-encode from the original file when you can.
  • Bitrate too low for the content. Cymbal-heavy music breaks up long before spoken word does at the same bitrate.
  • Upsampling lies. Encoding 44.1 kHz audio “as 48 kHz” gains nothing; if the source is 16-bit/44.1 kHz, converting to 24-bit first adds zeros, not fidelity.
  • Clipping in the source. Compression cannot repair a recording that already hit the ceiling.

Compression that never leaves the tab

Audio is intimate material — voice notes, interview tapes, demo recordings, sermon archives. Uploading them to an anonymous “free compressor” is an odd thing to do with them. audiocompress.gotool.app keeps the pipeline local: the Web Audio API decodes your file into memory, a WebAssembly encoder produces the compressed stream, and the result comes back as a download. No account, no upload endpoint, no copy of your voice on anyone's disk.

The workflow is deliberately boring: drop a file, pick a target bitrate, listen to a preview if you want proof, download the smaller copy. Behind that slider sit the masking models and MDCT frames described above — doing their quiet best to make the difference inaudible.

The takeaway

Lossy audio compression is applied psychoacoustics: model the ear, hide the noise, spend the bits where hearing is ruthless. Pick a codec the world can play, a bitrate matched to the content, and encode once from the best source you have. Do it locally, and shrinking a file stops being a privacy decision.

Put it to work: drop a WAV or MP3 into audiocompress.gotool.app and watch gigabytes of history become kilobytes — without the file ever leaving your tab.

Open audiocompress.gotool.app →