Machine learning is going to be the way of the future and AI isn't anything to be taken lightly. With that being said, there is a profound bridge to gap when it comes to creating art or music. After watching what Markov Chains could do for Shakespeare, we thought we could do the same for classical music. During one of the member's studies in classical music, he thought that the bridge to creating classical music was to make each note into a word. If each note in a melody was a word, then with classical and romantic composers, 8 measures would make a sentence, 16 - 32 sentences would make a paragraph, and a bunch of those would make a piece. Sonata form is a very complicated yet structured beast that changes by section to section. If we could not only use machine learning on the melody but on the harmonic analysis as well, then we'd have distinctly Beethoven or Mozart like pieces.
What it does
This collection of commands and functions take in the first 8 - 32 measures of multiple pieces and try to, with some certainty, create a new sonata exposition. Also, using Markov chains and neural networks, we try to create a new harmonic structure that looks similar to what Mozart or Beethoven may have created.
How we built it
We used Python and a library called music21 in order to build this. We used neural networks as well as Markov Chains in order to create samples of music based off our classical models.
Challenges we ran into
We had challenges figuring out how to make the chordal structure underneath the melody make sense as well as using neural networks to create these pieces. One of the members didn't know machine learning very well while the other didn't know music theory very well so marrying the two backgrounds to create this project was very interesting.
Accomplishments that we're proud of
Something that Joe is personally proud of is that even with more advanced techniques as well as filtering algorithms, it isn't easy to recreate piece of work or masterpieces that human beings were able to create through their genius. Other than that, being able to randomly create works based off of patterns and key structures was pretty cool.
What we learned
We learned a lot for our next exposure with machine learning and music!
What's next for b AI thoven
We'll try and update our model with more pieces as well as with more sections so we can get a basic first movement of a sonata form down (exposition, development, recapitulation, coda). We will also think about adding a skeleton structure to each of the chords and try to adhere to music theory rules as layers in the neural network.