Algorithmic/automated composition is an idea that has been around for a very long time now, but has only had major advances in the last 30 years or so, thanks the the advances of computers. Even then, I haven’t found as much research on this topic as other more popular topics. I want to take this research and extend it into the entertainment field.
My project involves a program that takes music from an already existing band or genre, and creates its own music that will sound similar to the music categorized in the already existing band or genre. I have a heavy interest in music and computer science, and I wanted to combine these interests with this project because I feel they go very well together. In the future, I want to expand upon this project by incorporating machine learning elements in order to make this idea more free-form.
I feel that this field could have a great impact on entertainment. For example, it could be used to help musicians with writer’s block by giving them a base to go off of when writing music. It could also be used to aid with incorporating elements of a different, less familiar genre in one’s music. There are tons of possibilities that could be offered by my type of project.
The way I see it working starts by transcribing songs of a specific artist into a MIDI score. This MIDI score will contain the notes played by each instrument in the song as data. The program then takes in this data as input. With multiple MIDI scores, the program will analyze the song to figure out certain characteristics of the song, such as the key. Using the individual notes from each instrument, the program will construct instrument parts for a new song.
One way of doing this last step would be with Markov chains. The Markov chain could store data about the note choices in a song. Along with the individual note choices, it would store the probability of the next note being a certain note. For example, if an A note comes up in the song, it could store the chance of the next note being C as 50% (based on what happens when an A occurs in the rest of the song), the chance of the next note being E as 25%, and so on.
I plan to do some research on other methods that could help me with this step, as I see this being the most difficult part of my project. In addition to that, I will need to spend a decent amount of time transcribing songs to MIDI so that I have data to go off of.