Austin Rose Final Composition

From vjmedia

Markov Chain Preludes

For my final project, I wrote some code to analyze MIDI data, build a Markov Chain model based on the list of notes, and then pseudorandomly compose a sequence based on that file.

I used Bach's preludes because they are simple and melodic, which make them easier to manipulate and stitch together. Each prelude had a melody and a bass part which I could get separate MIDI files for.

The code I wrote is not specific to these songs, it works with any MIDI data. Depth of chain is configurable. The code is available on my GitHub: https://github.com/austintrose/markov-preludes

Demonstration patched together from preludes 2 and 3.

Markov demo.png The media player is loading...

Helpful sources: http://www.fourmilab.ch/webtools/midicsv/ http://www.bachcentral.com/midiindexcomplete.html