Inspiration

We wanted to play with a learning algorithm, as this sounded fun and challenging, so we probed over ideas of what the computer could learn and came up with music. Music is already complex and difficult for humans to learn, so why not teach a computer? It would be very difficult to teach a computer everything about music, so we stuck with the basics, but the framework of the project could be expanded upon to encompass more intimate parts of music theory.

How it Works

The program is a basic genetic algorithm which randomly generates a .midi file as its base case. The user will be presented with an interface denoting this as "Generation 0", and will be able to rate different sections of the composition, as well as to listen to the entire composition. Once all parts have been rated, the user may 'breed' the next generation of music. This is done by breeding highly rated sections of the composition with other highly rated sections. In this way, the best sounding sections of the composition will influence the future of the piece. At this point, the process can be repeated indefinitely, or the user can browse past generations and listen to the pieces.

Team Members

Nick Gilpin - Algorithm, Rachel Campbell - Midi Handler, Raymond Barringer - UI

Built With

Share this project:

Updates