Skip to content

andreAmorimF/musikov

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

musikov

Random midi generator based on Markov Chains. (Make heavy use of Midilib)

The model is quite simple: from a set of songs, a |Note, Duration| graph will be generated where the edges will indicate the probability of transitions between two of these states. A graph will be generated for each instrument on the input set of midifiles.

A song is generated randomically from an inital state, picking the subsequent states according the indicated probability.

More inform about Markov Chains : http://en.wikipedia.org/wiki/Markov_chain

Installation

RubyGems instalation

gem install musikov

or, in order to update the gem:

gem update musikov

You may need root privileges to install the gem.

How to use it

First launch the musikov passing a midi file, or a folder containg midi files, as the main argument:

$ musikov generate -r path-to-midis [-o output_file]

The musikov will output a random midi file named output.mid (by default), or the indicated file if the option '-o' is used.

TODO

  • Define an option for the duration of the songs by time or by number of notes.
  • Maybe classify different sacles in order to aproximate a generated song to the predominant scale.

Author

Andre Fonseca [email protected]

License

Simplified BSD

About

Random midi generator based on Markov Chains

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published