Why Your Song Sounds Worse After Upload

Flat illustration of a song file uploading to streaming apps and arriving quieter and duller, illustrating why your song sounds worse after uploading

If your song sounded great locally but sounds worse after uploading it to Spotify, YouTube, or SoundCloud, the file itself usually isn't broken — four specific things happen between your export and the listener's speakers, and most of them are predictable enough to master around. The fix isn't a secret plugin; it's a few master decisions that survive the trip, and you can make them in the browser with a free online audio mastering tool that shows you the exact numbers platforms care about, with your audio never leaving your device.

Here's the honest version of what's going on. Only one of the four causes is truly a "quality" loss. The other three are about loudness, headroom, and how you mastered — things you control. Let's take them one at a time, then turn them into a checklist.

Cause 1: the platform turns your track down (not a file change)

The most common reason a track sounds worse — specifically, quieter and flatter — after upload is loudness normalization. Streaming services measure how loud your whole track feels in LUFS (Loudness Units Full Scale, the standard way to describe perceived loudness) and then apply a single volume offset at playback so every song sits at one reference level.

Crucially, this is a playback-time volume change, not a re-encode. Your file isn't rewritten. The platform just decides how far to turn the volume up or down before it reaches each listener. Spotify targets about -14 LUFS; YouTube sits around -14 as well but only ever turns tracks down; Apple Music is quieter at roughly -16 via Sound Check. Most music services cluster near -14. (For platforms that don't formally publish a number, treat it as convention that can drift, not a hard spec.)

So if you mastered hot — say -8 LUFS — Spotify subtracts roughly 6 dB on playback to hit its reference. Your track now plays at the same volume as everything else, except you traded away dynamics to get that loudness and got nothing back for it. That's not the platform ruining your song; it's normalization doing exactly what it's designed to do. The full mechanism is worth reading once in how streaming loudness normalization works, and the deeper "why louder stopped winning" story is the loudness war explained. If LUFS is new to you, start with what LUFS is.

Cause 2: the platform re-encodes your file to a lossy codec

This one is a genuine fidelity loss — usually small, but real. Whatever you upload, the platform re-encodes it into its own streaming format — AAC, Opus, or Ogg Vorbis depending on the service and the listener's bitrate (Spotify serves Ogg Vorbis, Apple Music serves AAC). These are lossy codecs — they permanently discard audio data judged least audible to shrink the file. That transcoding step is where actual detail can drop, most noticeably in cymbals, reverb tails, and other high-frequency, high-density material. What an audio codec is covers how that works.

You can't stop the platform from re-encoding, but you can avoid stacking losses. If you upload an already-lossy file — an MP3 you exported at 192 kbps — the platform then re-compresses that, and you hear the artifacts of two lossy passes instead of one. Upload the highest-quality file you have: a WAV, or a high-bitrate lossless export. Give the encoder your cleanest possible source and let it make only one compromise, not two.

Cause 3: true-peak clipping that only appears after encoding

Here's the sneaky one. Your master looks clean in your DAW — the meters never hit red — yet after upload it sounds harsh, gritty, or distorted on louder sections. The culprit is inter-sample (true) peaks.

Digital audio stores discrete samples. When a lossy codec reconstructs the waveform on playback, the continuous signal drawn between those samples can rise higher than any single stored sample did. So a master that peaks at exactly 0 dBFS (the digital ceiling) on your sample meter can overshoot that ceiling once it's decoded — and overshooting the ceiling is clipping, which sounds like distortion. This is measured in dBTP (decibels true peak), and it's why a file that never clipped locally clips after transcoding.

The fix is a margin. Spotify explicitly asks for true peaks below -1 dBTP, and that's a good universal target. Leaving that headroom means that even after the codec reconstructs and (Cause 1) the platform possibly nudges the level, your peaks stay under the ceiling. Audio headroom explains why that gap matters, and a properly configured limiter is what enforces the ceiling on the way out.

Cause 4: an over-loud, over-limited master survives none of it

Causes 1 through 3 combine into a single trap, and it's the one that makes people say "it sounded huge at home and lifeless online." Chasing maximum loudness means slamming a limiter and heavy compression on the master bus. That does two things at once, both bad for the upload:

  • It squashes the dynamic range — the difference between the quiet and loud parts — so the track sounds flat and fatiguing.
  • It pushes the level so high that normalization (Cause 1) turns it right back down, erasing the loudness you sacrificed those dynamics for.

You end up at the same playback volume as a well-mastered track, but with worse dynamics and, often, worse true-peak behavior (Cause 3). There is no loudness payoff — you paid the price and got no reward. The relationship between these three ideas is laid out plainly in loudness normalize vs master vs boost.

How to master so it survives the upload

The good news: master for after normalization instead of for the loudest possible export, and all four problems ease at once. Four decisions do most of the work.

  1. Target around -14 LUFS integrated. That's where most music streaming lands, so your track arrives at the reference without being turned down and without you crushing dynamics to compete. (Apple Music is a touch quieter; -14 is still a sensible master target for it.) Which number to pick for your genre and destinations is covered in what LUFS should I master to.
  2. Keep true peaks at or below -1 dBTP. Set your limiter's ceiling around -1 dB and check the dBTP reading, not just the sample peak. That single move prevents the after-encoding clipping in Cause 3.
  3. Leave headroom; don't over-limit. If hitting your loudness target requires flattening the life out of the track, back off — normalization means you don't need to be loud, you need to be balanced. Dynamics that survive normalization are what make a track sound bigger than its neighbors at equal volume.
  4. Upload your highest-quality file. WAV or lossless. One lossy pass on the platform beats two.

In the audio mastering tool, you can do exactly this in the browser: a 5-band EQ (100 Hz / 250 Hz / 1 kHz / 4 kHz / 8 kHz), multiband compressor, stereo width, and a limiter with a ceiling around -1 dB, plus genre presets and loudness targets (Spotify -14, YouTube -14, Apple Music -16, Club -9 LUFS) with live LUFS and true-peak metering so you can watch both numbers land before you export. It's free, needs no account, and processes everything on your own device. If your track is already mastered and you only need to move it to a target loudness, the volume normalizer measures a finished file's integrated LUFS and applies the gain to hit your chosen target. For the wider picture of what mastering is and isn't, see what audio mastering is; for the full pre-release checklist, how to prepare a song for streaming release.

Quick diagnosis: symptom → cause → fix

Symptom after upload Most likely cause Fix
Track plays noticeably quieter than in your DAW Loudness normalization turned it down (Cause 1) Master to ~-14 LUFS; stop mastering hotter than the reference
Sounds flat and lifeless, no impact Over-limited master, no dynamics survive normalization (Cause 4) Back off the limiter/compression; leave dynamic range intact
Harsh or distorted on loud parts, but clean locally True-peak clipping after codec reconstruction (Cause 3) Set limiter ceiling to -1 dBTP; verify the true-peak meter
Duller highs, smeared cymbals/reverb Lossy transcoding to AAC/Opus/Vorbis (Cause 2) Upload WAV/lossless so the platform only re-encodes once
Fine on Spotify, too quiet on YouTube YouTube only turns tracks down, never up Master near -14 LUFS so there's nothing to turn down

Most "worse after upload" complaints are one or two rows of this table, not all five. Diagnose which symptom you actually hear, fix that cause, and re-check with a loudness meter before you re-upload.

Frequently asked questions

Why does my song sound quieter on Spotify than in my DAW? Because Spotify applies loudness normalization: it measures your track's integrated LUFS and turns it down to its reference of about -14 LUFS on playback. If you mastered louder than that, the platform subtracts the difference, so your track plays at the same level as everyone else's. Nothing in your file changed — it's a playback-time volume offset.

Does uploading actually reduce audio quality? Partly. Platforms re-encode your upload into a lossy codec like AAC or Opus, which discards some data and can slightly dull high frequencies — that's a real, if usually small, quality loss. The bigger perceived changes, though, come from loudness normalization turning the track down and from over-limiting, which are things you control in mastering, not the codec.

Should I upload MP3 or WAV? Upload WAV (or another lossless format) whenever you can. The platform re-encodes your file no matter what, so if you upload an MP3 the listener hears two rounds of lossy compression stacked on each other. Giving the encoder a clean lossless source means it only makes one compromise, preserving as much quality as the format allows.

What LUFS should I master to so it survives upload? Around -14 LUFS integrated works for most streaming services, with true peaks at or below -1 dBTP. Mastering to that target means the platform doesn't turn your track down, you don't crush dynamics chasing loudness, and you leave enough headroom that the track won't clip after the codec reconstructs it. Apple Music sits a little quieter, but -14 remains a solid target.

Why does my master clip after uploading when it didn't clip locally? Because of inter-sample (true) peaks. Your DAW's sample meter reads discrete samples, but a lossy codec reconstructs the continuous waveform between them on playback, and that can rise above the loudest stored sample. A master peaking at 0 dBFS can overshoot the ceiling once decoded and clip. Set your limiter ceiling to -1 dBTP and watch the true-peak meter, not just the sample peak.