Having just started out coding not too long ago, and being an avid mathematics and music fan, I wanted to try to build an app that combines them all.

What it does

Musicmakers is an app that enables anybody to compose their own music using their favourite music. All users have to do is input a song and a backend algorithm will compose a new song based on the input song.

How we built it

The main thing about this app is its algorithm that decides how it’s going to compose music. As a start, we are using the idea of Markov Chains. The algorithm first reads the music file that users input. It then calculates the note transition probability - that is to say, what the probability is for one note to come after another. We thought that this could work because in music, there are certain fixed chord transitions that make a music. The music reading portion was done with the help of jMusic.

Challenges we ran into

It turns out that music processing is not as easy as we expected. As such, at the start, we were only processing midi files and outputting midi files.

Accomplishments that we’re proud of

Knowing that music processing is not an easy task, we were elated that we got a minimum viable product to work in just 3 months. You could check out the webpage here!

What we learned

Through this project, we got a first taste in music processing and I was elated that given my mere 1 year of programming experience (at that time), I was able to come up with a music project. In the near future, I would like to expand on this by applying machine learning and deep learning to even better train the algorithm and produce better results.

School project

This project was done as part of my school’s (National University of Singapore) project.