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.
Log in or sign up for Devpost to join the conversation.