Contact

Currently building Ohm, a music app for iOS that reads the moment you're in, because listening to music should be [like] telepathy.

Nº 8A Small Private Publication8 min read

Filed Every record has two volumes. We measured the wrong one.

Filed 13 October 2026sofua.co.uk
Working title: Energy was loudness Every record has two volumes.

Every record has two volumes. One is how intense the music feels: how hard the drums hit, how much is going on, how fast it moves. The other is how loud an engineer made the file. They sound like the same thing. They aren’t, and we found that out the hard way.

We compared four reference playlists against when and where I listen. An amapiano club set, Amapiano To The World: Paris Nights, came out closest to early-morning listening, right alongside the first coffee of the day. That’s dance music. Spotify rates it the most danceable of the four. It landed there because it was mastered about 5 dB quieter than the others, and the energy score we’d built into Ohm came straight from loudness.

Here’s where that score came from, how we caught it, and what we’re doing instead.

Apple didn’t give us that number. We made it.

Ohm reads audio using Apple’s Music Understanding framework. For every song, it returns:

Energy isn’t on that list. We added it. We took each song’s overall loudness, measured in LUFS (the unit broadcasters and streaming services use), and turned it into a score from 0 to 1:

The logic was that louder songs feel more intense. We set that range in June from a small mixed-genre sample and left ourselves a note to check it against real data. This is that check.

The two volumes

The first volume is the music itself. It’s what you actually feel as intensity.

The second is the master level. That’s set by the mastering engineer at the very end, and it’s a production choice that tends to follow genre and era. Through the “loudness war” of the 1990s and 2000s, records kept getting louder. Some scenes still leave plenty of room between quiet and loud moments. Others squash everything flat.

A loudness meter only reads the second volume, and our energy score was that reading on a new scale. Across the 75 tracks in one mix, it matched loudness almost perfectly, a correlation of 0.997. That isn’t a discovery. Rescale loudness and you get loudness back. What’s interesting is that we didn’t notice for four months, because the score looked like a new measurement rather than an old one with a new name.

Our energy score rested on the one thing playback is built to erase.

Then there’s playback. Streaming apps even out the volume of every song. Apple Music calls it Sound Check, and Spotify calls it volume normalisation. With it on, most of the second volume is gone before you hear anything. We’d built our intensity score on the one property your music app is designed to cancel out.

How we checked

We wanted music where intensity matters and a person chose the running order. We used four sets, 239 tracks in all, measured from Apple’s 30-second previews:

We lined our scores up against Spotify’s energy scores for the same tracks, exported through exportify.net in September 2026. (If you want to try this yourself: those figures come from a part of Spotify’s API that was closed to new apps in late 2024, so you may not be able to get them today.)

Spotify’s score isn’t the right answer. It’s another company’s estimate. But it was made for exactly this question, so it’s a useful second opinion.

To compare the two, we used rank correlation, written ρ. Sort the tracks from least to most intense by each score, then see how closely the two orders match. 1 means they match exactly. 0 means there’s no connection.

Across all 239 tracks, we got 0.25. Set by set:

SetAgreement with Spotify (ρ)
CULTUR FM0.45
Noise Complaints0.19
Fred again.. Boiler Room0.18
DJ Phaphane (amapiano)−0.05

That amapiano figure is worth spelling out. −0.05 isn’t weak agreement. It’s no relationship at all between our ranking and Spotify’s across those 47 tracks.

Another way to see it: split each ranking into fifths, and 36% of tracks land more than one fifth away from where Spotify put them.

What that looked like

Fig. 1
Our energy score against Spotify's
Our energy Spotify energy
CULTUR FM
Fred again..
Noise Complaints
DJ Phaphane (amapiano)
Mastered about 5 dB quieter, the amapiano set scored half. Spotify had it level with the rest.
SetOur energySpotify energyMaster level
CULTUR FM0.700.70about −8.8 LUFS across these three
Fred again..0.690.75
Noise Complaints0.700.58
DJ Phaphane (amapiano)0.360.68−14.4 LUFS

Spotify rates the amapiano set about as energetic as the rest, and gives it the highest danceability of the four, at 0.84. Our score gave it about half. Its tracks are mastered quieter and with much more room between loud and quiet: about 15 dB between the peaks and the average level, against about 8 dB for the other sets.

That’s how a club set ended up as morning-coffee music.

Something we suspect but can’t prove yet

Quieter masters with more dynamic range don’t turn up at random. They follow scenes, studios and budgets. Amapiano is one example. A lot of African music shares the pattern, and so does much of what’s made outside the major-label mastering process.

Any intensity measure built on loudness will get that music wrong first.

If that holds, any intensity score built on loudness will keep rating that music as calmer than it is. An app that matches music to your day would then play it at the wrong time, for reasons that have nothing to do with the music.

One 47-track set can’t prove that. Testing it properly means songs from the same genres across different regions, with master levels measured and intensity rated by real listeners. We haven’t done that yet. We’re raising it because our one example points that way, and because the people who could check it fastest have music libraries we don’t.

First fix: even out the volume

The obvious move is to take the second volume out and see what’s left. First we checked which of Apple’s readings change with volume at all. We played the same clips 10 dB quieter and measured them again:

So part of Apple’s instrument reading picks up volume too. We only tried four clips, which shows it happens but not by how much.

The fix is easy: bring every clip to the same level, −14 LUFS, before measuring it, the way a streaming app would.

That can’t save the energy score, though. Set every song to −14 LUFS and every song scores 0.375, because the score was only ever loudness.

Rebuilding it, and coming up short

Next we tried building a new intensity score from the volume-matched readings alone. We built it from three of the sets, tested it on the fourth, and rotated through all four.

What went into the scoreAgreement with SpotifyAmapiano tracks in the bottom fifth (Spotify: 9 of 47)
Loudness only (the old score)0.2530 of 47
Loudness plus volume-matched instrument readings0.2625 of 47
The music only (tempo, pace, structure, volume-matched instruments)0.141 of 47

None did meaningfully better. Adding volume-matched readings barely changed anything. Removing loudness completely swung too far the other way: the amapiano set jumped from near the bottom to near the top, because it has the busiest drums and the fastest pace of the four.

Intensity turns out not to be one thing you can read off these numbers. With loudness in, the score was confidently wrong. With it out, the score wasn’t stable.

What we’re doing now

We’ve stopped looking for a better intensity number. Instead, we now compare songs with each other directly, by how they sound.

We checked whether loudness crept back in, and a little did. Songs the new measurements call similar are about 0.6 dB closer in original loudness than random pairs, where the usual gap is about 3 dB. That’s roughly a fifth of the gap. It’s far better than a score that followed loudness exactly, but it isn’t zero, so we’re keeping an eye on it.

This is still in testing and isn’t live for everyone. The energy score is still stored as a label, but wherever the new matching is switched on, it no longer decides what plays next.

What we still don’t know

So, back to the two volumes. If a number is built from loudness, check that it’s measuring the first volume and not just the second.