Inspiration

During the COVID-19 pandemic, it's become difficult for piano students to attend lessons. They need a place to find new pieces to play that are similar to their current repertoire.

What it does

MusicBetter takes a piece name that the user inputs, and outputs a list of songs ranked by their similarity to that piece.

How we built it

We use deep learning to process midi recordings of the music. This allows the computer to learn commonalities in the structure of pieces without relaying on traditional feature extraction. This more complex model allows for greater complexity in models. Cosign similarity is used to compare songs. Embeddings were source from https://github.com/pasqLisena/midi-emb

The project is hosted in GCP running on Cloud Run. Cloud SQL for Postgres was used as a database. The project is built by Cloud Build.

Challenges we ran into

It was challenging processing large numbers of songs and efficiently storing them in the database, integrating between pandas and database functionality and Django models. Building the frontend in HTML was also a challenge, although made easier by CSS and Bootstrap4.

Accomplishments that we're proud of

Creating similarity ratings for all of the files, integrating this into HTML.

What we learned

We learned a great deal about HTML, CSS, and Bootstrap4 on the front-end and Django with the project as a whole.

What's next for MusicBetter

While our database already stores difficulty ratings for each piece, we would like to additionally display these ratings to the user to help them choose their next piece.

Share this project:

Updates