IEEE Spring Showcase - Spring 2022
Team members: Gyaan Antia, Isaac Conner, James Liu, Tim Sinaga
Description
Sortify is an application that uses unsupervised machine learning to divide a large Spotify playlist into smaller playlists grouped by musical characteristics. Our team won Best Design at Northwestern's annual IEEE Showcase (hosted over Zoom due to Covid).
Figure 1: IEEE showcase presentation, demo at 1:48
The Technicals
Sortify uses
Spotify's Web API to access the user's Spotify account. Once authorized, Sortify uses a refreshable access token to make API requests. Both the front end and back-end are written in Python.
There are three main steps to the machine learning implementation:
Filter for relevant audio featuresPerform dimensionality reductionGroup songs by similarity with the k-means algorithmSortify determines song similarity by looking at audio features provided by the Web API. Example features include "danceability" and "acousticness." The front-end generates an interactive Matplotlib to display playlist clusters.
Figure 3: Scatterplot of song clusters
I was responsible for the Web API authorization flow and the Tkinter front end. Challenges our team overcame included playlist name conflicts, sparse clusters, and multi-threading.