Introduction

This is my repository for the computational musicology course. During this course, I will be analyzing my personal Spotify playlist, and tracks which might be similar. It consists of 2493 songs and an aggregated playtime of 144 hours and 58 minutes. This playlist started somewhere back in 2015 or 2016 and therefore tells you a lot about what I was going through in my life at specific times. One could say it functions as some sort of diary.

The tracks in this corpus are very representative of each period since my music taste varies based on various factors which also contribute to particular feelings, e.g. seasons and an everchanging music taste.

Most of the songs in the playlist will fall into the EDM/Pop genres, with Future Bass being a particularly frequent occurrence. Tracks that might be very typical for this playlist could include:

  1. Light - San Holo

  2. Shelter - Porter Robinson, Madeon

  3. I See You - Illenium, Said The Sky

These are tracks, the likes of which can be found through-out the entire playlist.

Meanwhile, standout tracks could be:

  1. peace treaty - dobi, Oyeme

  2. Happiness - Jónsi, Alex Somers

  3. There Will Be Tears - Mr Hudson

These tracks are all a bit sadder than the usual and mark periods such as COVID-lockdowns in the Netherlands. The genres as identified by everynoise.com, change from Future Bass to the likes of post-rock and other less energetic genres.

I will look into which tracks ‘define’ me and my musical taste, and what musical features make them stand out.

Does higher tempo mean better danceability? (Track-level features)


I’ve included a plot with the tempo, danceability and valence of my corpus plotted against each other. I find this graph particularly interesting, since it shows a couple of defining characteristics from the corpus.

Most future bass and house music has a tempo range of 128-160 BPM. These ranges can be spotted easily in the graph, since there are distinct vertical lines which enclose the entirety of this range, with the vast majority of tracks having a tempo between 128 and 160 BPM.

However, the plotted trend line shows that as the tempo increases past the 128 BPM threshold, danceability (on average) seems to decrease, which is unexpected. I excted the danceability to increase as the tempo increases. This is because most high tempo (>160 BPM) in this corpus are hard-dance tracks, which I’ve always considered danceable (albeit in a very different way than dancing to other genres). One such outlier is the track in the bottom-right corner: Infinity by Sefa and D-Block & S-te-Fan. This is a french-core track with intense kicks, which I would define as a highly danceable track.

What’s up with Infinity? (Chromagram)


In this visualisation, I’ve chosen the outlier from my dataset I discussed previously, namely Infinity by Sefa and D-Block & S-te-Fan.

Rendering the chromagram of this track somehow makes us able to see some structure in the track. The melodic intro and verses are easy to distinguish and all fit into a scale very well. However, the drops are also easy to discern, with the chroma features getting more spread out and centered around a few notes. This is especially notable during the second drop, where there are only three ‘main’ notes being played: C, C# and B. This distribution is mainly caused by the fact that this part consists mostly of kicks and heavy basslines, playing single notes.

It is interesting to see how the chromagram works so well for some parts in the track, but isn’t that sensible in other parts. This might be down to the selection of time intervals, though.

Structure in my own song (Cepstogram)


This is a cepstogram of the song Still Together, which is (coincidentally) made by me and a friend. (Do give it a listen if you have the time :D)

In the cepstogram, you can see that the introduction and buildup have a big presence of the second timbre coefficient. In the two drops, starting from around 50 seconds, you can see that the first coefficient becomes more present. This isn’t unexpected at all, since loudness is key in EDM drops and the first coefficient represents loudness.

For good measure, I have also included a self-similarity matrix, to point out some other interesting things. In the track, we used the same chord progression throughout, and only changed this in the outro, which can be clearly seen by the black box on the end of the main diagonal of the SSM. The two drops can also be determined by the two darker section in the middle. This is mostly due to new melodic elements being introduced.

Sadly, I had issues with lining up the plots and couldn’t find out how to fix it…

Analysis of gold away and gold away (heart version) by Former Hero. (Self-similarity)


Former Hero is a UK-based producer combining genres like post-rock and ambient with EDM from future bass to techno-like tracks. He released a lovely ambient piano piece called Gold Away in may 2021. In december 2022, he released an edit of the track called gold away (Heart Version). This is an edit of the original track, with a more upbeat tempo and overall higher danceability. It features floaty synths, but the main piano melody is still present throughout the entire track.

I’ve created 4 self similarity matrices for both tracks. The top two are created using chroma and timbre features of the original track, while the bottom 2 are created using the edited version.

It’s easy to discern 3 main parts in the top row’s timbre-based SSM. There is also a pattern and some diagonal lines distinguishable in the chroma-based SSM indicating similar parts in the piece. It’s interesting to see how the big block around 80 seconds in the timbre SSM doesn’t quite line up with the chroma features, since it features some very airy and noisy synths while playing mostly the same melody as before, which means this change does show up in the timbre-based one, but not in the chroma-based one.

For the edit, it is easy to see that it has much more repetition and similarity all throughout the piece. This isn’t all too surprising as it is an EDM rework of the previous piece. With only a few switch-ups throughout the track, which are also easily discernable in both self-similarity matrices. One such switch-up is immediately after the intro, where a grainy piano is introduced, after which a house beat is introduced. This is around the 50 seconds mark and is easily visible. Another switch-up is seen just after 100 seconds, and is again easily spotted in both matrices.

How different are Gold Away and its edit? (Chordograms)


I’ve included 2 chordograms of 2 different tracks. They’re made by Former Hero, who is a producer of future bass and vapor twitch according to everynoise.com. The first track is a beautiful piece called Gold Away (definitely check it out if you get the chance), and its chordogram is on top. It is a very atmospheric piano track, which starts with some grainy piano sounds. This is visible in the chordogram, as the first chord is D major. Because of the slow nature of the track, we can easily discern the rest of the chords.

The second track is an edit of this track, called gold away - heart version. This track is a more “housey” version which samples the original. Its chordogram is a bit difficult to read, but it is clear that in the edit, the piece is pitched up with 2 semitones. Since the track is also faster paced, and is longer than the original, it is harder to discern the chords that are being played. However, the same pattern is still visible, it’s just in a higher place compared to the first chordogram.

Another pattern which is visible is the vertical banding in the lower chordogram. I believe this shows up here, because of atonal sound effects. For example, at the part around the 100 seconds mark, there are effects of buttons being pressed on a tape machine, which don’t really fall into specific chords obviously.

All in all, I think chordograms are a good way to compare these two tracks, as they are both by the same artist and are very similar in nature.

Does the Bitbird sound change over the years? (Track level summaries)


These are the results of the analysis of the tracks of 4 albums. These albums are compilations of tracks by many different artists, and is compiled by the label Bitbird, which is a label that I have been following for a while and it has a massive footprint on my playlist. Because of this, they are very representative of my playlist. Almost all tracks in these compilations can be found in my playlist. The compilations are called ‘Gouldian Finch’, ‘Gouldian Finch 2’, ‘Gouldian Finch 3’ and ‘Gouldian Finch 4’. The albums were released in 2016, 2017, 2019, and 2021 respectively.

I have plotted the distribution of the Spotify Timbre Coefficients for each album. These coefficients are hard to interpret, but they are a good way to compare the timbre of the tracks in the albums. As you can see, the distributions for the most part are very similar, but there are also a few trends that can be seen. For example, we can see that the distribution of coefficient 2 is clearly going down. Over the years, although the distribution of it in the first compilation is very widespread. The second coefficent is associated with the brightness of the track, so according to this analysis, one could say that the overall brightness coefficent of the tracks is steadily decreasing. This is also a trend that can be heard, when listening to the compilations.

This same downward trend can be seen in the distributions of the 3rd coefficient. This coefficient is associated with the flatness of the sounds, which is a way to quantify how much a sound resembles a pure tone, as opposed to being noise-like. This is a very interesting trend, because the music in the compilations is indeed becoming more and more organic and “lo-fi noisy” over the years.

Why tempograms work


A Lydian is a beautiful piano piece by Analogue Dear, which also features some atmospheric pads. As you can see, the tempogram fails to find a consensus on the tempo, but it does seem to pick up smears of tempo around certain parts. This is due to the piece’s only tempo-indicating feature being the piano, which is also played at various tempos.

Below, I have included a tempogram of San Holo’s i don’t feel anything anymore, which starts of really soft, with some keys and pads being played. At around 50 seconds into the track, a heavy bass and some acoustic guitar is added which is being played at a constant tempo. Interestingly, the tempogram performs better in the first part, where there aren’t many transient features yet. Up until 3 minutes into the song, it varies a bit between the calmer bits and heavier bass bits. After this mark, however, synths playing regularly timed arpeggios kick in, as well as a kick. Here the algorithm performs pretty good. After this, a drop happens and so the tempogram performs very well and you can see a clear line forming at around 155 BPM. Even though this might seem very high, when tapping along with the rhythm of the kick, you’ll find it is a very accurate estimate. After the drop, the pads come in again and the piece is ended in a very calm, taped post-rocky way.

These two tempograms are pretty much polar opposites of each other and it is very interesting to see how the algorithm performs on two very different tracks!

What are key features and differences in ILLENIUM’s, Dabin’s, and Said The Sky’s music?


The two plots show the results of a Random Forest Classifier trained on all Spotify track features, including all timbre coefficients and key features. I have trained this classifier on three playlists, namely slices from the This Is Illenium, This Is Dabin and This Is Said The Sky. These three very comparable artists are well represented in my personal playlist, and have had many collaborations over the years. I wanted to see in which way their individual styles differ.

In the pre-processing of the data, I first excluded any tracks which feature any combination of these three artists. After all, the classifier can only pick one artist, which makes it impossible for it to work correctly. Secondly, I took the same amount of tracks from each playlist so they are represented equally.

Using five-fold cross validation, this classifier was able to achieve pretty good accuracy, with both precision and recall for each artist begin around 60%. This is a significant improvement when compared to the k-nearest neighbours approach, which resulted in the precisions and recall ranging from around 30% to around 50%.

I plotted some of the most important features against each other, and it is clearly visible that Said The Sky’s music is more acoustic when compared to the other 2. Illenium seems to make the loudest music, which isn’t too surprising since he makes the most ‘poppy’ music, but this is also weird since Dabin likes to create very heavy bass music. Sadly, the accuracy statistics drop when I remove the higher order timbre features from the training data, which makes it harder to explain as to why this classifier behaves the way it does.

Conclusions

In the last 8 weeks, I have learned a lot of new things about music. Some of these things I had never thought of, and they really intrigued me. I thoroughly enjoyed analyzing various tracks from my playlist. Although at first, I wanted to do a time based analysis of the songs I listen to from time to time, I think I like my portfolio more as it is now, since I gained a deeper understanding of what makes up these tracks and how they can be analyzed.

I really liked taking a look at all the track-level features Spotify calculates, and playing around with how they relate to one another for my corpus. I also liked how my tempograms turned out to be looking good but also failing beautifully at the same time.

Creating a Random Forest really spoke to me as an AI student and I think this is a great application of AI.

Realistically, I don’t think anyone really benefits from reading my portfolio, except for maybe thinking “Hey, that’s a cool visualization!”. I hope you loved reading my portfolio as much as I did creating it.