Home
Sortify
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 features
  • Perform dimensionality reduction
  • Group songs by similarity with the k-means algorithm
  • Sortify 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.
    image not found
    Figure 2: Audio features
    image not found
    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.
    Unsupervised Machine Learning | Full Stack Development
    © James Liu 2025