Musical Mimicry

From UBC Wiki

What is the problem?

We will attempt to write a haskell program that takes in a MIDI file as an input and then outputs a new MIDI file that was created through an implementation of a Markov Chain process. Our challenges will be to learn how to work with HCodecs (a midi I/O, analysis module), the next issue will be to model a Markov Chain process in haskell and then finally to create a new MIDI sound file that is a unique piece of music that follows in the style of the input file.

What is the something extra?

Our program will produce a MIDI file so that we will be able to hear the music we have algorithmically generated.

What will we learn?

- Midi File Specification (.mid)

- HCodecs Midi parsing/composition library

- Statistical analysis

- Music Composition

Link to Code