This is a project to create a recursive music generator.
Run generate_music.py to get some fun sounds.
MIDIUtil
Try using: pip install MIDIUtil
Music is the application of a series of patterns -- and the breaking of those patterns -- applied to the sounds that have already been heard. In order to generate music in an intuitive way, it would be nice to make explicit what those patterns are, and then go ahead and make the music from them. That way, the human doesn't need to practice scales or memorize rules -- they set up the rules once, and all they have to do is break them! What fun!
The only actual information content in the music is the patterns themselves, and the breaking and patterning of these patterns.
This repository serves as a simple way to make the actual information content in music more accessible and obvious. This relates directly to the concept of compression. A highly compressible piece of music means that it can be broken down into an intricately applied series of simple rules, with arbitrarily complex results.
Musical patterns emerge in predictible ways. For example, harmonic content of the notes themselves determine which music emerges from such instruments. Jazz instruments have a stronger 5ths and 4ths in their harmonics, and we see a lot more of those intervals emphasized in the notes played in jazz music.
Making all this explicit means that we get a lot more flexibility in creating new types of music without all the burden of having to play things correctly. If we can recreate what chord progressions might work out well from the patterns of the notes themselves and the sorts of music which might have highly compressible pattern applications, we can generalize and discover new forms of music which haven't been played before -- and which actually sound nice (not wierd and technical).