Skip to content

Sanseer/Robatim

Repository files navigation

Robatim

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).

Requirements

  • Python 3.10+

Setup (User)

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.

Usage

python main.py
  1. Running the main file generates two files within the logs directory: output.mid and output.txt
  2. output.mid: This is the audio file
  3. output.txt: This is Lilypond code that can be used to generate a pdf of the sheet music

Setup (Developer)

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

Credits

  • 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

About

a hard-coded music generator

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages