A dataset of key modulations that have been annotated in different music theory books.
All the code in this repository is under the MIT License, except for the humdrum scores. All the scores are under the CC BY SA 4.0 License. The scores consist of all the files under the following folders:
aldwellkostka-payneregerrimsky-korsakovtchaikovsky
The annotations consist of the following:
- Kostka-Payne
- Example 18-2
- Example 18-3
- Example 18-4
- Example 18-6
- Example 18-7
- Example 19-1
- Example 19-2
- Example 19-3
- Example 19-4
- Example 19-5
- Example 19-6
- Example 19-10
- Example 19-11
- Example 19-12
- Aldwell, Schachter and Cadwallader
- Example 27-2-a
- Example 27-2-b
- Example 27-2-c
- Example 27-3
- Example 27-4-a
- Example 27-4-b
- Example 27-7
- Tchaikovsky
- Example 173
- Example 183
- Example 185
- Example 189
- Example 191
- Example 193
- Example 195
- Max Reger
- Examples 1-100
- Rimsky-Korsakov
- Example 3.5
- Example 3.7
- Example 3.8
- Example 3.10
- Example 3.14
- Example 3.15
- Examples 3.17
Humdrum Utilities
add_text_spine.py- Adds an empty**textspine at the end of the file (last column). Very helpful for when a file is not annotated yet and it is going to be annotated.restaff.py- Replaces the*staffentries with a systematic numbering. Starting with*staff4for the bass and up to*staff1in the soprano. Assumes that there is a**textspine at the end and it has an empty*staffentry.correct_spine_association.py- This figures out the correct*staffXthat the**textspine should be pointing to at every slice. This is necessary in order to embed every annotation to a note, which many times is impossible if we annotate a single column.get_keys.py- This gets the key annotations of a given file.