I’m back with another music viz. I’m quickly realizing that I certainly have a theme with my personal vizzes.
I’ve said it before, I think. I have a deep, visceral view towards music. It is one of the greatest inventions of human expression I can think of. It’s also so personal to each person. Have you heard or been in an argument with someone criticizing one’s views towards music? Or maybe the classic “what’s your musical guilty pleasure?” question? I don’t get it. I don’t understand how something like music can be a guilty pleasure. Music should NEVER make you feel guilty, especially if it evokes emotions or memories for you.
“Yes, I listen to this music and I like it! Maybe not all the time, but in certain moods or situations, it’s what I need to hear!”
Over the weekend, I came across an article written by David Pires, who works at Interworks. The article highlighted the Spotify Web Data Connector (WDC) for Tableau. You can read about it, but in short, it gives you a dataset of every song you’ve saved in Spotify. And not just song, artist, album but things like:
- What key is the song in
- Song Mode (major or minor)
- Is it explicit
- Duration in milliseconds
- Various Echonest song attributes including:
- and several more
After reading the article, I immediately got excited
— Sean Miller (@HipsterVizNinja) April 22, 2017
So yeah, Last.fm is an app that records every song you listen to across various platforms. I’ve got a chrome extension for internet streaming (slacker, pandora, youtube, etc) & a mac desktop app to track my iTunes listens.
I’ve been scrobbling consistently since March 2016. So for this viz, I wanted to focus my scrobbles to only those songs I’ve saved in Spotify (Don’t worry, I’ve got a couple more vizzes in the works for the rest of the dataset. Stay tuned)
Here is an image of my dashboard. Click here for the interactive version
Joining the Data
I had to join the two data sources together. I tried joining the two together in Tableau but ran across some a few issues with track names being slightly different as well as special characters not coming through properly on the scrobble .csv. No worries, though. I was able to quickly get my data from the WDC exported from Tableau to a separate .csv. Then in excel, I was able to clean up the data and while I was in there, I went ahead and just did the join there with VLOOKUPs Easy peasy.
I knew as soon as I started playing with the data, I wanted to create this visual. Because, it’s about music, so of course, I had to use it. I got the inspiration for this visual from a fellow Tableau Public author, Ravi. He gets the credit for this. If you want to create one Ravi walks you through the super simple process in the video below:
The timestamp issue
It’s super awesome that Last.fm captures the timestamp of every listen but it’s formatted as UTC so I made a quick calc to account for the change to put the time in my Central Standard Time zone. I did not account for daylight savings time. Could I have? Yeah. Would I if I were in a work situation? Yeah. Did I for this exercise? No. Let’s chalk it up to artist liberty 😉
Anyway, I’m very lucky in that I have a job that is mainly heads-down so I’ve got a nice pair of Sol Republic cans to rock out and viz all day long.
From this exercise, I gathered that I primarily save primarily pop songs mixed with a generous amount of folk/americana with some r&b, hip-hop, metal and hip-hop sprinkled in for variety.
I found through exploration that when I save a song, I generally listen to it A LOT after initially saving it. Like, on repeat…several times.
Where to go from here
As I stated before, I’ve got a few more ideas on what I can do with this data. Here’s a glimpse:
- I’ve been using IFTTT to create a running playlist of every song included in my Discover Weekly playlist
- Looking at just my scrobbles over time
- Investigating how I create a playlist of my own. For example, how is my “Workout” playlist constructed? What is the pattern?
We’ll see when I get around to those. I’ve got a few more things I want to work on as well.
Until next time!