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:
aldwell
kostka-payne
reger
rimsky-korsakov
tchaikovsky
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**text
spine 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*staff
entries with a systematic numbering. Starting with*staff4
for the bass and up to*staff1
in the soprano. Assumes that there is a**text
spine at the end and it has an empty*staff
entry.correct_spine_association.py
- This figures out the correct*staffX
that the**text
spine 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.