Predicting Spotify loudness – is this the formula ?

Music streaming services turn down music that’s louder than their reference level.

They also turn up music that’s quieter.

And that’s a good thing, usually – it improves our listening experience, meaning we don’t get “blasted” by loud masters, or strain to hear quieter songs.

But what happens if you submit a song that the loudness management system wants to boost, and it’s more dynamic than the platform expects ?

Your song will be either be clipped or limited, or more likely it just won’t be turned up as loud as everything else.

If maximum playback loudness isn’t your goal, that’s not an issue. But if it is, you have a problem.

So where is the sweet spot ?

How loud is loud enough, and how loud is too loud ?

This is a question my Dynameter plugin aims to help answer, by measuring the dynamic profile of your music. And for YouTube and iTunes, it works pretty well – to see this feature in action, click here.

But on Spotify, it’s not so easy.

Dynameter user and BBC engineer Guy Rowland discovered that no matter how he tried, the results predicted by Dynameter’s readings (and every other meter he tried) failed to accurately predict how Spotify handled it’s loudness.

Whatever he did, his song wasn’t playing back at the same level as his chosen reference tracks, and lost impact as a result.

So Guy did what any self-respecting BBC engineer would – he threw Science at the problem.

And he found a formula.

You can read his highly detailed and entertaining blog post about the whole process, and all the other things he learned along the way, here.

But in this post I’m just going to go straight for the juicy details and summarise his findings, so you can try the formula for yourself. In my testing so far, it works pretty well !

Measuring dynamics

Dynameter measures the micro-dynamics of your music in two ways. The long-term overall PLR measurement, which works pretty well for predicting loudness on YouTube and Apple Sound Check, in our tests – and the short-term Minimum PSR measurement, which helps you avoid crushing the peaks of your music too much.

In a nutshell:

If the Min PSR is too low, your music will be turned down

If the PLR is too high, your song may not be turned up as much as you would like

But on their own, neither of these values reliably predicted how loud Spotify would play Guy’s songs.

Now you may be thinking – isn’t that a huge fail for Dynameter ? Well, not really – Dynameter is not a loudness meter, and predicting playback loudness isn’t our goal for it – the main focus is optimising musical dynamics. But Guy wanted to go further, and he pressed on with his tests.

And as part of his observations he investigated another valuable way of using Dynameter’s measurements – comparing PLR and PSR.

PLR versus PSR

Remember, PLR is a long-term measurement of dynamics, and PSR tracks the short-term values.

So if the PLR and Min PSR values are similar, it suggests that your music has very consistent dynamics – there isn’t much variety over the length of the song. That doesn’t necessarily mean your song doesn’t have enough dynamics, though – just that they are consistent.

Whereas a larger difference between PLR and Min PSR suggests that the dynamics are likely to be more varied. It’s easy enough to see why – if the overall PLR is high but the Min PSR is low, it suggests that even though the song is quite dynamic overall, some sections are still very crushed.

All this is something we talk about in more detail in the Dynameter manual.

But Guy went a step futher. In his testing, he found that for Spotify, the numerical difference between PLR and Min PSR was crucial in predicting the final playback level.

The bigger the difference between PLR and Min PSR, the more likely it was that the song would be played back below the maximum reference level. In other words, the song would be played quieter than other songs on the platform.

In fact, he boiled it down to a formula.

The formula for playback loudness on Spotify ?

Here it is:

Min PSR – PLR – 11 = Spotify Playback LUFS

(Up to Spotify’s maximum of approximately -14)

So for example, if you play a song from beginning to end and measure it with Dynameter and find it measures Min PSR 9, PLR 12, Guy’s formula predicts that it’s final playback loudness will be

9 – 12 – 11 = -14 LUFS

And since Spotify’s maximum replay loudness is roughly -14 LUFS, that’s about as loud as you can hope for.

What about a more squashed master of the same song ? This might measure Min PSR 6, PLR 9, for example. So the predicted playback loudness is

6 – 9 – 11 = -14 LUFS

The extra compression and limiting used to create this master doesn’t achieve anything – it will play back at the same loudness on Spotify, exactly as we’d expect.

BUT

What about an version of the song with more dynamic variety ? Say with Min PSR 6, PLR 12 ? Meaning the loudest sections are still quite squashed, but overall there is more contrast ? This was the case for Guy’s original master, where he couldn’t get the playback loudness as high as he wanted, and sure enough his formula predicts

6 – 12 – 11 = -17 LUFS

This is 3 dB below Spotify’s normal playback level, and as predicted it sounded quiet in comparison to the reference tracks he’d chosen.

So what does all this tell us ?

1 – No, it’s NOT ‘the formula’

The best results I’ve got with this formula are correct to about 1 dB of accuracy. But a dB can make a big difference to perceived loudness ! We’ll never get it to be perfect, because Spotify doesn’t use LUFS for it’s normalisation – so you need to treat this formula as an “early warning system”, rather than expecting exact results. At the end of the day, Spotify’s algorithm will do it’s thing, and we have to put up with the results!

But we can say…

2 – The loudness ‘sweet spot’ rules

The simple conclusion is that balanced dynamics will be most successful.

This has been my message all along – crushing your music in pursuit of loudness won’t work on Spotify (or any other loudness managed playback system). But equally, too much dynamic variability can also work against you as well, if playback loudness is an important goal for you.

Guy’s final master was less crushed at the loudest moments, and more controlled at other times – and crucially this worked better musically, as well as playing back louder on Spotify.

The key is to find the perfect balance – the loudness sweet spot, and the great news is that the guidelines and presets we offer to Dynameter users work really well. If loudness with great dynamics is your goal, just choose the “YouTube” and “Limited” presets and you’ll be in great shape, for both loudness and musical impact.

3 – More testing is needed

It’s early days – Guy’s formula needs more testing. On the songs I’ve measured, it works pretty well, predicting the right replay loudness to within a dB or two. Most of our testing has been on loud material, though – it may be less accurate for more dynamic songs.

So please, help us out! If you own Dynameter or fancy doing the maths yourself, please give it a try and let me know how you get on in the comments below.

4 – If it SOUNDS good…

Finally, remember to treat all of this with a large dose of salt. Our ears are always the most important judge of what sounds great, not numbers.

In particular, balanced EQ is crucial to sounding great (and loud) – your masters need well-balanced EQ and dynamics. More on this topic here.

Dynameter has been carefully optimised to reflect what sounds best in my experience and opinion, but at the end of the day your ears must be the judge of that. Just remember to loudness-match as part of your decision-making process – click here to find out how.

Conclusion

Different platforms have different rules, and none of them use LUFS or follow the AES guidelines – yet.

But with LUFS metering and a little ingenuity, we can have a good idea what to expect.

And by following a few straightforward guidelines – balanced EQ and balanced dynamics – we can be confident our music is going to sound great, have maximum musical impact, and sound loud online.To read Guy Roland’s blog post about finding a formula to predict loudness on Spotify, click here. For more information about Dynameter, click here.