Inspiration
As musicians and music-lovers, we wanted to create a way to bring more people into interacting with music. Originally, we thought of the therapeutic benefits of music to elderly people with dementia. This led to the issue of trying to remember a song without knowing its name, which is how we came up with the idea of SongChaser.
What it does
SongChaser is a multiplayer game where you try to get from one song to another by finding similar songs with slightly different features. You navigate by these features as defined by Spotify, like "Danceability" and "Acousticness".
How we built it
We built the base of the program using a K-Nearest Neighbors algorithm trained on Spotify song features, with Euclidean distance, and filtered by genre. This was built using Intel AI PCs, with the remote desktop. Then we built the backend of the site using MongoDB for the database where users are authenticated with their Spotify account so they can play together. This backend was also built with Node.JS and integrated with the KNN models through Flask. Then the frontend is built with React and Bootstrap.
Challenges we ran into
One of the big challenges was integrating the machine learning models into the actual website. While the website is written in JavaScript, the machine learning aspect was written in Python. So actually integrating the two of these required us to essentially build two backends, one with Flask and one with Node.JS with Express, so that they could interface with each other. Another big challenge is that we hit the SpotifyAPI rate limit: we were using it too much. So we had to rewrite the backend to rely entirely on a scraped dataset of 10,000 most popular songs instead of referencing anything from the actual Spotify database directly.
Accomplishments that we're proud of
Logging with Spotify was one of our happiest achievements, allowing us to leave space open for more personalization in the future. Connecting such complex backends to a usable website is our greatest joy as well, getting a workable site.
What we learned
We learned a number of new tools from each other, from Flask to React.
What's next for SongChaser
Next would come more personalization for different users, allowing them to export these as playlists or DJ sets with more options.
Log in or sign up for Devpost to join the conversation.