Spotify - normalization vs dynamic range compression

MajorFubar

New member
Mar 3, 2010
690
6
0
Visit site
I think I'd prefer them to do neither. If the label sends them an album where the peak volume is (eg) -2dB and the RMS is (again eg) -14dB, that's exactly how I want to receive it. Neither compressed nor normalised.
 

DocG

Well-known member
May 1, 2012
54
4
18,545
Visit site
I would like to have the choice, just tick the appropriate box for the occasion: raw, normalized, dynamically compressed.

Could that be done on the fly? Or would Spotify need to triple its content (not likely to happen, I guess)?
 

steve_1979

Well-known member
Jul 14, 2010
231
10
18,795
Visit site
DocG said:
Could that be done on the fly? Or would Spotify need to triple its content (not likely to happen, I guess)?

Dynamic compression is done on the fly.

It's a little bit more complicated with normalisation. Before you can set the volume level you would need to analyse the whole track to find out what the peak volume level is. This would require one of two things to be done first. Either you download the entire track before it's played at the appropriate volume level (not really a feasible option because of the time delay involved). The second (much faster) option would be for the Spotify server to send a tiny packet of information to the Spotify player software letting it know before hand what the peak volume of the track will be before it starts downloading. The second option would be best because you can listen to the music as it downloads which is how Spotify works already.

There would be no need for any extra music content to be added to Spotify. The same track would be used and then processed on the fly for either dynamic range reduction or normalisation.
 

andyjm

New member
Jul 20, 2012
15
3
0
Visit site
Steve, it is not clear to me at all what the foobar DR measure actually measures. It certainly isn't dynamic range in the 'engineering' sense.

Do you know what it measures? If not, I would hesitate to reach any conclusions about what spotify are doing on the basis of the foobar results.
 

steve_1979

Well-known member
Jul 14, 2010
231
10
18,795
Visit site
andyjm said:
Steve, it is not clear to me at all what the foobar DR measure actually measures. It certainly isn't dynamic range in the 'engineering' sense.

Do you know what it measures? If not, I would hesitate to reach any conclusions about what spotify are doing on the basis of the foobar results.

This question has arisen before and was never satisfactorily answered. I don't know exactly how the dynamic range is measured/calculated by either Foobar or the DR database (the DR database seems to use the same or a very similar system to Foobar).

Most tracks have around 10dB of dynamic range give or take a few dB either way. Obviously there's more then 10dB dynamic range between the quietest wave peak and the loudest. If the maximum dB was around 10dB the music would be too quiet to hear at all.

I guess that the way that dynamic range is measured by both Foobar and the DR database must be some sort of average dynamic range between peaks when measured out over a set period of time (1 second maybe?). Again I guess that this is done for each set period of time (one second?) for the whole of the track and the resulting DR figure is calculated from all of the one second long averages.

If anyone can confirm whether that is correct or explain how it is calculated I'd be very interested to know the answer.
 

steve_1979

Well-known member
Jul 14, 2010
231
10
18,795
Visit site
Have you ever wondered what the 'Set the same volume level for all tracks' option in Spotify is really doing?

No probably not, but I have.

spot1_zps5838c73a.jpg


Googling didn't help to find an answer to this question because some people say that it works by normalization and others say that it works by reducing the dynamic range of the tracks that would originally have had a high dynamic range.

I hoped that it would only normalize the volume to make all of the tracks seem equally loud. If this was done the full dynamic range (and thus the sound quality) of each track would be kept intact and it would simply balance the volume levels by reducing the volume of the tracks that have already had their dynamic range compressed.

So I decided to put it to the test myself by using the dynamic range meter in Foobar and comparing a track played via Spotify twice. Once with the 'Set the same volume level for all tracks' turned on and once with it turned off.

The one on the left is the result with it turned on and the one on the right is with it turned off.

spot2_zps1455f36c.jpg


A very disappointing result Spotify! They're reducing the dynamic range (and thus sound quality) of their music. :(

This may not seem like a big issue to most people but I think that Spotify have missed a chance here to put an end to the loudness wars once and for all. A bold statement you may think? Well think about it this way. Spotify and other streaming services have become the most popular way to listen to music right? Well, if they were to make all of the tracks play at the same volume by implementing normalization of the tracks this would allow their full dynamic range (and thus sound quality) to be kept intact.

All of the music would still play at the same average volume level like it already does. The only difference would be that the sound quality inadequacies of the dynamically compressed tracks would be obvious to hear when compared to music that has more dynamic range.

As we all know the loudness wars were started by record companies wanting their music to jump out at you by reducing its dynamic range to make it seem louder. However if everything was played at the same average volume by applying normalization this tactic would no longer work. Quite the opposite, they would now be motivated to make their music stand out by improving the sound quality instead by allowing music to be made with its full dynamic range still intact.

Spotify could still keep the existing dynamic range compression option available for people who want to use it because it can come in useful when listening to music in a loud environment. But they should also give a normalization option for people who want to listen to music that offers the best possible sound quality with a full dynamic range.

If enough people read this and spread the word to push Spotify (and other streaming services) to normalize the volume levels rather than dynamically compressing them we could put an end to the loudness war.

What do you think?
 

steve_1979

Well-known member
Jul 14, 2010
231
10
18,795
Visit site

TrevC

Well-known member
steve_1979 said:
Have you ever wondered what the 'Set the same volume level for all tracks' option in Spotify is really doing?

No probably not, but I have.

Googling didn't help to find an answer to this question because some people say that it works by normalization and others say that it works by reducing the dynamic range of the tracks that would originally have had a high dynamic range.

I hoped that it would only normalize the volume to make all of the tracks seem equally loud. If this was done the full dynamic range (and thus the sound quality) of each track would be kept intact and it would simply balance the volume levels by reducing the volume of the tracks that have already had their dynamic range compressed.

So I decided to put it to the test myself by using the dynamic range meter in Foobar and comparing a track played via Spotify twice. Once with the 'Set the same volume level for all tracks' turned on and once with it turned off.

The one on the left is the result with it turned on and the one on the right is with it turned off.

A very disappointing result Spotify! They're reducing the dynamic range (and thus sound quality) of their music. :(

This may not seem like a big issue to most people but I think that Spotify have missed a chance here to put an end to the loudness wars once and for all. A bold statement you may think? Well think about it this way. Spotify and other streaming services have become the most popular way to listen to music right? Well, if they were to make all of the tracks play at the same volume by implementing normalization of the tracks this would allow their full dynamic range (and thus sound quality) to be kept intact.

All of the music would still play at the same average volume level like it already does. The only difference would be that the sound quality inadequacies of the dynamically compressed tracks would be obvious to hear when compared to music that has more dynamic range.

As we all know the loudness wars were started by record companies wanting their music to jump out at you by reducing its dynamic range to make it seem louder. However if everything was played at the same average volume by applying normalization this tactic would no longer work. Quite the opposite, they would now be motivated to make their music stand out by improving the sound quality instead by allowing music to be made with its full dynamic range still intact.

Spotify could still keep the existing dynamic range compression option available for people who want to use it because it can come in useful when listening to music in a loud environment. But they should also give a normalization option for people who want to listen to music that offers the best possible sound quality with a full dynamic range.

If enough people read this and spread the word to push Spotify (and other streaming services) to normalize the volume levels rather than dynamically compressing them we could put an end to the loudness war.

What do you think?

Setting the same volume level for all tracks means reducing the dynamic range. It's doing exactly what it's supposed to do. They would need to store the peak level for every track and apply attenuation appropriately according to that level, an impossible task. I think it works pretty well and they have it pretty much spot on. It's certainly better than that used on radio.
 

steve_1979

Well-known member
Jul 14, 2010
231
10
18,795
Visit site
andyjm said:
Steve, it is not clear to me at all what the foobar DR measure actually measures. It certainly isn't dynamic range in the 'engineering' sense.

Do you know what it measures? If not, I would hesitate to reach any conclusions about what spotify are doing on the basis of the foobar results.

A guy called Julf on the PFM forum has finally answered this question for us. :)

It seem like my guess was more or less right in principle, but it's done using slightly more sophisticated algorithms.

http://www.itu.int/rec/R-REC-BS.1770-3-201208-I/en
 

steve_1979

Well-known member
Jul 14, 2010
231
10
18,795
Visit site
In case anyone was wondering what track was used for this test it was It's Oh So Quiet by Bjork. The two reasons for this are:

1. It has quite a large amount of dynamic range which should make any changes easily noticeable in a listening comparison.

2. The name of the song seemed ironically apparent. :D
 

steve_1979

Well-known member
Jul 14, 2010
231
10
18,795
Visit site
TrevC said:
Setting the same volume level for all tracks means reducing the dynamic range. It's doing exactly what it's supposed to do. They would need to store the peak level for every track and apply attenuation appropriately according to that level, an impossible task. I think it works pretty well and they have it pretty much spot on. It's certainly better than that used on radio.

Although the dynamic range reduction performed by Spotify is more subtly applied than when it's done on the radio the difference when listening to the two versions of this song when played at the same apparent volume is still easily noticable.

Reducing the dynamic range of a track sucks the life out of the music. It feels less dynamic! Any this is exactly the effect that I can hear when comparing the two versions of this track when played back at the same apparent volume level.
 

TrevC

Well-known member
steve_1979 said:
TrevC said:
Setting the same volume level for all tracks means reducing the dynamic range. It's doing exactly what it's supposed to do. They would need to store the peak level for every track and apply attenuation appropriately according to that level, an impossible task. I think it works pretty well and they have it pretty much spot on. It's certainly better than that used on radio.

Although the dynamic range reduction performed by Spotify is more subtly applied than when it's done on the radio the difference when listening to the two versions of this song when played at the same apparent volume is still easily noticable.

Reducing the dynamic range of a track sucks the life out of the music. It feels less dynamic! Any this is exactly the effect that I can hear when comparing the two versions of this track when played back at the same apparent volume level.

Auto volume levelling is always going to be a compromise, so why not simply turn it off for serious listening? It's very handy for playing a list for background music and generally works just fine but, of course, certain records will catch it out. There's no way of avoiding that.
 

fr0g

New member
Jan 7, 2008
445
0
0
Visit site
TrevC said:
steve_1979 said:
TrevC said:
Setting the same volume level for all tracks means reducing the dynamic range. It's doing exactly what it's supposed to do. They would need to store the peak level for every track and apply attenuation appropriately according to that level, an impossible task. I think it works pretty well and they have it pretty much spot on. It's certainly better than that used on radio.

Although the dynamic range reduction performed by Spotify is more subtly applied than when it's done on the radio the difference when listening to the two versions of this song when played at the same apparent volume is still easily noticable.

Reducing the dynamic range of a track sucks the life out of the music. It feels less dynamic! Any this is exactly the effect that I can hear when comparing the two versions of this track when played back at the same apparent volume level.

Auto volume levelling is always going to be a compromise, so why not simply turn it off for serious listening? It's very handy for playing a list for background music and generally works just fine but, of course, certain records will catch it out. There's no way of avoiding that.

Mine has always been set to off. It's useful mainly for parties/get togethers where SQ is not really an issue, simply so that one track doesn't suddenly drown out conversation.

By the way I was pretty sure DR for a CD/track was essentially the difference between the average and the maximum sound level.
 

steve_1979

Well-known member
Jul 14, 2010
231
10
18,795
Visit site
TrevC said:
Auto volume levelling is always going to be a compromise,

Not if the volume levels are set by normalisation rather than dynamic range compression.

Normalisation doesn't have any negative effect the sound quality like dynamic range compression does. That's the whole point of this thread.
 

steve_1979

Well-known member
Jul 14, 2010
231
10
18,795
Visit site
TrevC said:
so why not simply turn it off for serious listening? It's very handy for playing a list for background music and generally works just fine but, of course, certain records will catch it out. There's no way of avoiding that.

I like to listen to music on random or from pre-made lists so automatic volume leveling is a useful feature for me. What I don't want is to be forced to listen to music with a lower sound quality in order to use automatic volume leveling. Especially as normalisation could be implemented relatively easily by Spotify.

Another advantage of normalisation (which everybody seems to have missed :) ) is that the music industry would no longer have any motivation to compress the dynamic range in their music to make it seem louder. So arguably the biggest advantage for implementing normalisation would be its ability to put an end to the loudness wars which would mean better sounding music for everyone.
 

steve_1979

Well-known member
Jul 14, 2010
231
10
18,795
Visit site
fr0g said:
By the way I was pretty sure DR for a CD/track was essentially the difference between the average and the maximum sound level.

Yes that's correct. It's pretty much what I tried to describe (badly and in an overcomplicated way) in post 8 paragraph 3.

I prefer the way you describe it. Much simpler to understand.
 

unsleepable

New member
Dec 25, 2013
6
0
0
Visit site
I quite like being able to create lists of heterogeneous music in Spotify and never be surprised by the volume. Seeing how Spotify was born around the concept of lists rather than albums—in itself a very sound decision—I think that volume matching must have been a very important requirement and something that they have looked close at.

I'm just not sure that it would be possible to normalize such a vast music collection—within a usable dynamic range for most people—without recurring to some compression too. And also, if compression works for people to like music on the radio, I suppose it would also work for Spotify. After all, their business is dependent on people enjoying the music they play from Spotify, and maybe most systems don't benefit from the added dynamic range achieved when compression is not in place.

If it was me, I would never implement such an option as you'd like to have—being able to choose between normalization, compression and raw volume. It's just not relevant to the majority of people and would only serve to confuse most users. Many people would select normalization thinking that that would give them the best sound quality, only to end up enjoying their music less.

Your proposition would make the most sense if Spotify decided to make available a premium service with uncompressed and hi-res music, definitely.
 

steve_1979

Well-known member
Jul 14, 2010
231
10
18,795
Visit site
unsleepable said:
I'm just not sure that it would be possible to normalize such a vast music collection—within a usable dynamic range for most people—without recurring to some compression too.

Why not? The volume level would always be the same its just that some music would sound more dynamic (which is a good thing).
 

steve_1979

Well-known member
Jul 14, 2010
231
10
18,795
Visit site
unsleepable said:
If it was me, I would never implement such an option as you'd like to have—being able to choose between normalization, compression and raw volume. It's just not relevant to the majority of people and would only serve to confuse most users. Many people would select normalization thinking that that would give them the best sound quality, only to end up enjoying their music less.

Your proposition would make the most sense if Spotify decided to make available a premium service with uncompressed and hi-res music, definitely.

good point. I hadn't considered that actually. :)
 

unsleepable

New member
Dec 25, 2013
6
0
0
Visit site
steve_1979 said:
Why not? The volume level would always be the same its just that some music would sound more dynamic (which is a good thing).

What I mean, is that I suppose that to normalise the audio you need to take three things into account:

• Absolute range—min and max levels.

• Average loudness. If you only pay attention to the min and max levels, loudness between tracks will vary even if, for example, they have the same peak level.

• The usable dynamic range. In a sufficiently advanced hi-fi setup, with enough preamp gain and very low background noise, you can take the signal down quite a bit, and then raise the volume and obtain good sound, and loud music. But the average system in which Spotify plays does probably not have these properties, so I guess the target dynamic range within which to normalise audio must not be indefinitely ample.

So you need to bring the average loudness to the same level. And then, make sure that neither the max level exceeds 0dB, nor the min one goes below the usable dynamic range. I just suppose that it's probably difficult to achieve this uniformly for the vast music collection that Spotify serves without recurring to some compression to avoid the peak levels going out of range.
 

unsleepable

New member
Dec 25, 2013
6
0
0
Visit site
TrevC said:
Setting the same volume level for all tracks means reducing the dynamic range. It's doing exactly what it's supposed to do. They would need to store the peak level for every track and apply attenuation appropriately according to that level, an impossible task. I think it works pretty well and they have it pretty much spot on. It's certainly better than that used on radio.

I think it's more complex than just storing the peak level for each track. And in my opinion, it's not only a perfectly possible task, but I also don't doubt for a second that that's actually how it's currently done.

The necessary information to normalise the volume must be sent along with each track, so that it's the player that normalises the audio. It would be pointless for the Spotify servers to do this on the fly, when there is so much CPU time available at their disposal in all the devices where their players are running. And it would be equally pointless to double their necessary storage space.

Furthermore, I can locally cache tracks for offline playback, and then enable or disable normalisation in settings and don't have to re-download all cached tracks, no?

Finally, we may understand differently normalisation and dynamic range reduction. I don't think they are really the same thing.
 

steve_1979

Well-known member
Jul 14, 2010
231
10
18,795
Visit site
unsleepable said:
...And it would be equally pointless to double their necessary storage space.

Why would there be any need for extra storage space?

Whether you choose to listen to the music raw, normalised or dynamically compressed the same music file would still be used in all three cases.
 

steve_1979

Well-known member
Jul 14, 2010
231
10
18,795
Visit site
unsleepable said:
• The usable dynamic range. In a sufficiently advanced hi-fi setup, with enough preamp gain and very low background noise, you can take the signal down quite a bit, and then raise the volume and obtain good sound, and loud music. But the average system in which Spotify plays does probably not have these properties, so I guess the target dynamic range within which to normalise audio must not be indefinitely ample.

That's another good point you make here. I have a habit of forgetting that most people will be listening to Spotify on cheap computer or mobile phone speakers which would likely benefit from dynamically compressed music.

However I could (and will :) ) argue that these same people who listen via cheap speakers wouldn't be able to hear a difference between the standard 160kbps audio stream and the high bit-rate 320kbps premium audio stream. This takes us to the next logical step...

When people want to listen to Spotify with the 'Set the same volume level for all tracks' option selected it would make sense for people who use the 160kbps stream to have the volume equalised by applying dynamic range compression and the people who use the 320kbps stream to have the volume equalised by applying normalisation. That would give us the best of both worlds for both the audiophile and the average user.

This method of implementing dynamic compression for the 160kbps stream and normalisation for the 320kbps stream would also save any of the confusion from being caused which you mentioned in post 19, paragraph 3.
 

TRENDING THREADS

Latest posts