Robots that play music. Robots that compose their own music.
I was one of the founding members of the RobOrchestra project at Carnegie Mellon University. We sought to make mechanical instruments that could compose and play their own music. I'm proud to say that the project has flourished since I left CMU, and has its own legacy.
My involvement with the project focused on the music generation, where I developed algorithms based on Cellular Automata and Markov Chaining. Cellular Automata, known mostly through its connection with Wolfram Automata, are ways of generating random sequences off of binary numbers using a "seed" digit, then a "rule" which produces the next binary digit based on the previous automata's configuration.
While we produced many interesting sounds with the Cellular Automata, we did not achieve much musicality. Next, we moved on to Markov Chaining, a statistical method which takes in an existing model to generate a graph, called a Markov Chain. The Markov Chain can then be randomly walked to generate a new model which would have the same attributes as the original. This works very well for music, as it preserves note relationships such as keys, harmonics, etc.
Find more about this project here