Genres in the Key of Life: Different Music Uses Different Scales

Our first foray into key signatures found G and C major to be the most popular musical keys on Spotify, probably because the former is easiest to play on a guitar, the latter on piano.

Now, let’s look at how key signatures vary between genre.

Detecting key signature through audio analysis

Trained musicians practice the art of listening to and explaining music, but it is nearly impossible to scale this kind of manual expertise over a massive collection of recorded music. Meanwhile, over the last couple decades, the machine perception of music signals is an active area of research in computer science [1].

Here, in lieu of a small army of musicologists, we leverage an algorithm that automatically estimates musical key directly from the audio signal by aggregating the contributions of different frequencies for each pitch class in the 12-Tone Equal Temperament (12-TET) scale. We can then infer musical key by finding the one (major or minor over all roots) that best matches the observed pitch classes.


If we look at percentage of total songs within a genre broken out by key signature, shapes emerge. Here’s Hip Hop:

Perhaps most striking here is the spike in Db. This is likely a result of our key signature classifier defaulting the spoken word to that key (or, perhaps, somehow, the resting human voice often naturally gets pitched at Db, not that we looked into that).

If we start to look across genres, we start to see bumps in C and G major, the “easy” keys on piano and guitar. And it seems everyone is avoiding the hard keys, particularly Eb (notoriously difficult to play on guitar):

Country, Rock, Folk Americana, and Blues in particular exhibit a “spiky” behavior, where they skip the black keys in favor of notes that are easier to play on keyboards and guitars. Perhaps musicians in these genres (understandably) don’t practice in all 12 keys.

Here are 20 popular genres on Spotify plotted by key signature, with lots of detail to discern. See any more patterns?

Next Steps

Plenty of exciting work is happening here at Spotify in the area of audio research, offering more fertile ground for analysis. We’ve already looked at the most dramatic moments in Spotify songs; perhaps next time we can get to the bottom of the most epic key changes as part of an examination of how chords change within songs.

Update: The dataset used for this research contains the top 1m all-time most streamed recordings on Spotify.

8 thoughts on “Genres in the Key of Life: Different Music Uses Different Scales

  1. I’m surprised that there’s more major than minor key in EDM/Dance. When I go to it looks like most songs are in minor keys. Also it would just make sense for EDM to be mostly minor because it’s so repetitive, so minor chord progressions keep the tension through the songs.


  2. Your methodology is flawed. You exclude 1) the possibility of no key. 2) the possibility of multiple keys. 3) modes.

    A key is a subjective organizing principle of tonal composition, not a property of frequencies.

    Your method commits confirmation bias: you only find what you are looking for.

    Liked by 1 person

  3. Interesting that there is a greater percentage of major keys than minor keys in virtually ever genre listed here. The algorithm may detect what scale the frequencies of a song best fit to, but how does it detect the difference between a major key and it’s relative minor? I suspect a flaw.


  4. Thank you for this great article, loved it just like your first foray on key signatures. I cant wait for the next one on the key changes and maybe the next ones could be focused on chords and chords progressions ?


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s