Analyze My Music

Building an app to analyze music preferences using Spotify API.

Image credit: hrhibiza.com

What is it?

Music is probably one of the best conversation openers out there.

What's your song of the day?
If you were stuck on an island and you could you have one album with you, what would that be?
What kind of music do you listen to ?

The last question is usually the all-encompassing question that can sum up one's musical preferences. But the answers are not always unambigious.

Depends on the mood.
I can listen to all types of music.

Whilst there are people whose musical choices are eclectic in its truest sense, most people, even while listening to different genres and different types of music, have an inclination towards a certain type of songs, which have an underlying common set of attributes. This application aims to analyze musical preferences and find any hidden patterns.

So, what's the information source?

Various music streaming servics such as Spotify, LastFM, Deezer expose their APIs for fetching song information such as attributes, tags, artist, album information etc. We will use the information provided by these APIs for this project.

Technology Stack

NodeJS - Server side
EJS - Front end
D3JS - Visualization

Work flow

Developer Work Flow
Developer WorkFlow

So far...

As expected, visualization does aid in finding patterns and the task of comparing and analyzing music becomes much more easier with the help of histograms.

Results Visualization
Results Visualization

Results Visualization
Results Visualization

Results Visualization
Results Visualization

Results Visualization
Results Visualization

Genre Tags
Genre Tags

But...

This implementation leaves a lot to be desired.

  1. For starters, this implementation requires the user to manually enter the details of songs and artists in a text file for uploading. Howevver, it would be much more easier to be able to just export playlists from streaming services such as spotify, and google play music in a text file and use that for analysis. There is an open source project on Github that does the job of exporting spotify playlists to a text file. A wrapper could be written for this library and integrated in our project.

  2. Any kind of analysis ends with comments and remarks. In our case, we can recommend new artists and songs based on our analysis using Spotify API.

  3. It would be so much better if the entire results section (graphs and recommendations) can be exported to a PDF document for distribution.

Conclusion

For now the project can hold on its own, but its far from over for now. There are some interesting ways in which it can be enhanced. Hope to work on the playlist export story on the coming weekend. Until next update!

P.S - Here's the link to the Github Repo.

Avatar
Piyush Papreja
Researcher

My research interests include music information retrieval, recommendation systems and web.