Things I’ve learned, published for the public benefit
Hope This Helps header image

Is Spotify Lossless really lossless?

Spotify Lossless logo

Spotify has recently rolled out an update which allows subscribers to enable lossless compression. This means that, when you stream a song, the audio data that reaches your Spotify player should be identical to the data on the original CD.

I thought it was worthwhile to check whether that is really the case. The topic of audio quality on Spotify has long been a polarizing one. For every audiophile who says Spotify sounds indistinguishable from a CD source, there is another who confidently claims it is an unlistenable mess. Some believe that Spotify ruins music by processing it in order to save bandwidth or normalize volume.

The availability of Spotify Lossless makes it possible to verify those claims. If we can play a track on Spotify Lossless and get the exact same sequence of bits as on the original CD (what is called bit-perfect playback), that will prove that Spotify does not cheat and actually provides you the original audio stream.

The challenge

It is actually not very easy to play a track on Spotify and get the exact same audio data that is found on a CD. There are two main challenges:

  1. You have to find an album which is available on Spotify in the exact same version as the reference CD. If Spotify uses a different master of the same album, you will not get the same sequence of bits and the experiment will be useless.
  2. You have to find a way to prevent the Spotify client app and the OS from modifying the audio stream. In order to do this experiment, we want a totally transparent audio chain from the original master to your sound card.

Finding a Spotify album that matches a known CD

This proved to be shockingly difficult. Most of my CDs are more than 15 years old and for any given album Spotify only has the most recent remaster. When I looked at my favorite artists – such as Metallica, David Bowie or Pink Floyd – I struggled to find an album that had not been remastered at least once in the past 15 years. (As a rule, these remasters sounded worse or at least not better than the older version, which made me wonder what is the point.)

What’s worse, it is often not obvious which master you’re going to hear. Even if the album is not labeled as remastered and bears a copyright date in the 1990s, Spotify will often have some “enhanced” 24-bit version that is mastered differently (one example is Yield by Pearl Jam). Fortunately, if you click the green “Lossless” label while playing a song, it will open a new pane which shows you the source bitrate. I had to look until I found an album that showed “16-bit 44.1 kHz”, indicating it at least could be a match for my CD.

Disabling all audio processing

In order to perform the experiment, I needed to record the Spotify audio playing on my computer and verify that it was identical to the audio recorded on the reference CD. For this to work, there cannot be any processing applied before the signal reaches my sound card. This is challenging, because computers are not designed to ensure bit-perfect playback.

The first, and the easiest, step is to turn off all the processing that Spotify applies out of the box. I disabled crossfade, volume normalization and the equalizer:

Of course, I set the Spotify quality to “Lossless”:

This should ensure that Spotify leaves the sound untouched on the client side. The problem is that Spotify sends the audio to the Windows audio stack, which does a lot of processing work, such as mixing the audio from Spotify with audio from other apps, upsampling, volume control, etc. This means that if you record the output, it will typically not match the input audio stream, whether you are listening to Spotify or playing a CD. (Some audiophile music players can operate in exclusive mode, which bypasses all this processing and talks more or less directly to your sound card, but Spotify does not support this.)

In order to minimize processing on the OS side, I set the output format of my sound device to 16 bits, 44,100 Hz. This is the format that is recorded on music CDs. If your output sample rate is different from 44,100 Hz (for example 48,000 Hz), Windows will resample your audio as soon as it comes out of Spotify and you will not be able to recover the original bits for this experiment.

Second, I turned off “audio enhancements”. On Windows 11, this setting can be found under System › Sound › Properties. Enhancements are custom filters that modify all the sound playing on your computer. For instance, some laptops have preinstalled filters that modify the sound to digitally jazz up their crappy speakers.

After making these changes, I rebooted just to be on the safe side.

CAudioLimiter

When I first attempted this experiment, I found significant deviations from the reference whenever the track got very close to maximum amplitude.

Windows has a built-in limiter (CAudioLimiter) which activates whenever an audio stream gets too close to the maximum sound level (the threshold is about −0.13 dB). To my knowledge, it cannot be disabled. Because most music (especially modern music) is mastered to reach the maximum sound level (0 dB), this means that – for most music – you cannot get strictly bit-perfect playback on Windows.

My workaround was to find an old, quiet track which doesn’t get close to 0 dB – “Come Fly with Me” from the Sinatra at the Sands live album.

Recording procedure

I used Audacity in WASAPI mode. I set the project quality to 16 bit, 44100 Hz to eliminate any resampling or rounding errors. The recording device was set to “Speakers (Realtek USB Audio) (loopback)”. WASAPI loopback mode allows Audacity to capture outgoing audio from within the Windows Audio Subsystem before it reaches the system volume control.

I played the Sinatra track in the Spotify Windows app (on Windows 11 23H2, updated to November 2025) and recorded it into a new Audacity project. I imported the reference FLAC (ripped from the CD) as another track. Then, I aligned both tracks so that they started on the exact same sample. This was a painstaking task that required a lot of zooming and scrolling, but it is very important, as any misalignment will look like there is a difference between the two tracks.

Once the tracks have been aligned and trimmed, I inverted the reference track and mixed it with the Spotify track. This produces the difference between the two tracks. If they are identical, the difference will be complete silence (a sequence of zeroes).

Results

Here is the result visually. Looks like silence.

Here is the frequency spectrum of the difference. If the tracks are identical, we should get silence and that’s what I got:

:

Here is a close-up of the difference. At this extreme zoom level, we can see individual samples. Most of them are 0, and maybe 20% are very small values, less than 0.0001 of the maximum sound level (i.e. less than −80 dB).

Then, I exported the numeric sample values to a text file. Audacity has an export limit of 1,000,000 samples, which translates to 22 seconds of CD audio. After importing the values to Excel, I verified that 77% of the samples were 0, and the remaining 23% were off by ±1. That means the maximum deviation from the reference was 1, which is about −90 dB. When I amplified the difference and played it back, it sounded like white noise.

Importantly, when I played back the original FLAC with Foobar2000 and repeated the above procedure, I got the same results (except the off-by-one samples were in different places). I’m not going to post the waveforms because they look essentially the same as those for Spotify.

How should you think about a 1 bit difference? Any deviation from bit-perfection is bad, right? Well, it is equivalent to adding extremely quiet noise to the original track. If the maximum sound level when playing back the track were as loud as truck traffic at 10 meters (~90 dB SPL), then this noise would be as loud as the quietest possible sound that a human can hear in perfect silence (0 dB SPL). So you would have to turn up your amp quite a lot for this noise to be even theoretically audible, except you wouldn’t hear it because it would get drowned out by the music (our ears cannot perceive very loud and very quiet sounds at once).

Conclusion: Spotify Lossless is really lossless

Because the audio stream captured from Spotify Lossless was an almost exact match to the original recording and was indistinguishable from Foobar2000 playing back the original recording, the most likely conclusion is that Spotify Lossless itself plays back the exact audio stream recorded on the original master, but further stages of the audio chain add some distortion. In this test, this distortion was a microscopic amount of noise, but remember that I picked an unusually quiet track. The majority of music will also trigger CAudioLimiter, which produces much louder distortion (up to −60 dB) as it tries to attenuate louder parts of songs. (You could try to defeat it by very slightly turning down the volume in Spotify [not in Windows!] or in a systemwide filter like EqualizerAPO – 97% or −0.2 dB should be enough.)

No Comments so far

There are no comments yet...Kick things off by filling out the form below.

Leave a Comment