Robatim is a deterministic music generator that uses recursive depth-first search and breadth-first search. Video Demonstration. The style of music is based on Renaissance dance books I found on IMSLP (e.g., Terpsichore, Musarum Aoniarum and Danceries, Livre 2). I also consulted a secondary literature reference on the topic (Peter Schubert's Modal Counterpoint).
- Python 3.10+
Because this repository is a script rather than a package, it must be cloned/downloaded rather than installed.
git clone https://github.com/Sanseer/Robatim
Download dance.json and put it in the main directory.
python main.py
- Running the main file generates two files within the logs directory: output.mid and output.txt
- output.mid: This is the audio file
- output.txt: This is Lilypond code that can be used to generate a pdf of the sheet music
If you wish to modify the repository, additional steps are recommended. After setting up the user environment, perform the following actions to setup the developer environment:
pip install -r requirements-dev.txt
pre-commit install
pre-commit run --all-files
- MidiUtil: Midi file creation in Python
- Lilypond: Music engraving from text input
- MidiEditor: for helping me understand how MIDI works
- Dave Smith et al.: for inventing MIDI