Difference between revisions of "Austin Rose Final Composition"
From vjmedia
(→Markov Chain Preludes) |
|||
Line 6: | Line 6: | ||
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. | 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 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. | Demonstration patched together from preludes 2 and 3. | ||
[[File:markov_demo.png]] | [[File:markov_demo.png]] | ||
− | [[File: | + | [[File:Markov_song.mp3]] |
[[Category:Development Toolkits]] | [[Category:Development Toolkits]] |
Revision as of 03:20, 14 October 2015
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.