dwysocki / hidden-markov-music

Generate original musical scores by means of a hidden Markov model.
MIT License
6 stars 1 forks source link

Preprocess subcommand #2

Open dwysocki opened 9 years ago

dwysocki commented 9 years ago

Create a preprocess subcommand that simply performs the same preprocessing currently done to MIDI files in the alphabet and train subcommands. Consider removing the duplicate functionality from those two subcommands.

With no arguments provided, it will simply take a MIDI file, parse it with JFugue, and output the MIDI file that JFugue produces. This will allow me to hear the changes resulting from JFugue's parsing alone, and let me verify that the training data actually resembles the original song. This will be very useful in understanding what is happening when I train the model on the Super Mario Bros theme, which I believe is not translating to piano very well.

Options to remove either the pitch or duration will be added. Currently alphabet and train have a --simplify option, but that will be renamed to --fix-duration DURATION, which forces all notes to have a duration of DURATION. There will also be a --fix-pitch PITCH option, which does the same for pitch. This will save me from preprocessing the MIDI file each time, and also let me confirm that the preprocessed song sounds sensible.

dwysocki commented 9 years ago

This has now been partially implemented. The preprocess subcommand exists, along with the options:

Currently, however, the options do nothing. To make them function in the general case will take a bit of work. For the sake of the semester paper, these options are non-essential. What is important for now is the option-less functionality, where it simply spits out the MusicString parsed from the input file as a MIDI or MusicString. This allows me to tell if important information is being lost.