- Clone the repo
- Make sure you have python and java installed
- Download midi of a song you like. (mp3 to midi won't work)
- Put the midi in the "rawmidis" folder (you should see Beethoven's moonlight sonata there)
- run master.py
- A few new folders will be created automatically.
- The newly generated midi will appear in the "generatedMIDIs" folder.
- You can use sound fonts to make this midi sound more organic, cut out parts you don't like or simply re run master.py again to get a different result.
I first convert midi to ABC notation and extract the verses I then use Byte Pair encoding to compress the repeated patterns and finally a markov model to generate the sequence. The sequence is then converted to abc notation which is then converted to a midi file I use soundfonts to get a mp3