We apply the Bayesian Program Learning framework to a music composition context.
For details, check out our writeup.
Music samples are available here.
The core pipeline is contained in main.py. The other scripts also require this script
to have been run and properly cached the various objects. To execute:
python3 main.py
Or to choose between HMM and GRU based type generation run either of following:
python3 main.py gru
python3 main.py hmm
To run the GRU based generator, one must first run the above, and then run:
python3 gru_generator.py
After having run main.py, one can now compare a generated score to
the scores cached. One does so as follows:
python3 score.py path/to/generated/score.json
python3 score.py path/to/directory/of/scores/
python3 baseline.py uses the currently cached training scores to do an independent
empirical drawing of words to produce a piece of music. This represents a system which
has learned nothing about how a piece of music works together.