Inspiration

As avid music listeners ourselves, we have often run into the problem of listening to the same, stale, old playlists over and over again. It is sometimes difficult to discover new music that still suits one's tastes. This is the problem that inspired the creation of MeloMatch.

What it does

Using a website, a user signs into their spotify account and selects the genres they would like their playlist to be based on. Then they are successively prompted with pairs of 2 songs that they must select between. The user can preview each song by playing it to see which one they like better. Each song is run through a sophisticated ranking algorithm that finds the next pair of songs to choose. After 20 iterations, the songs they selected are saved to a playlist in their account. The second service first receives 5 songs from the user and builds a playlist of 20 songs tailored to these choices.

How we built it

The frontend was built with the react framework with its dynamically updating functionality in mind. This was used in conjunction with the spotify api to draw album covers and be able to play previews of the songs. The backend was written in python with the ranking algorithm and a flask server to send information back and forth with the frontend.

Challenges we ran into

It took several iterations to settle on an optimal ranking algorithm for finding similar songs. The hyper-parameters for the model had to be carefully fine tuned to ensure the songs it selected were indeed related to the initial song.

Accomplishments that we're proud of

We are proud that we persevered through the challenges we faced to complete the project. MeloMatch is a fully functional project that is capable of creating custom playlists for anyone in 2 different ways.

What we learned

We learned how to use the spotify api which we had previously never explored. It turned out to be well made and relatively easy to use.

What's next for MeloMatch

In the future, MeloMatch could be improved by making it so the token needed to access the spotify api did not have to be changed after a period of time. This would make it far easier to maintain the project over a long duration.

Share this project:

Updates