This is a README file for a data repository originating from the DCML corpus initiative and serves as welcome page for both
- the GitHub repo https://github.com/DCMLab/corelli and the corresponding
- documentation page https://dcmlab.github.io/corelli
For information on how to obtain and use the dataset, please refer to this documentation page.
- Arcangelo Corelli - Trio Sonatas (A corpus of annotated scores)
This corpus of annotated MuseScore files has been created within the DCML corpus initiative and employs the DCML harmony annotation standard. It was relased together with and as part of the "workflow paper"
Hentschel, J., Moss, F. C., Neuwirth, M., & Rohrmeier, M. A. (2021). A semi-automated workflow paradigm for the distributed creation and curation of expert annotations. Proceedings of the 22nd International Society for Music Information Retrieval Conference, ISMIR, 262–269. https://doi.org/10.5281/ZENODO.5624417
The corpus comprises 36 Sonate a tre
, divided into 149 separate movements. Together they make up for
three of the four famous cycles of 12 trio sonatas each:
Opus | Cycle | Publication | Included |
---|---|---|---|
1 | 12 sonate da chiesa | Rome 1681 | Yes |
2 | 12 sonate da camera | Rome 1685 | No |
3 | 12 sonate da chiesa | Rome 1689 | Yes |
4 | 12 sonate da camera | Rome 1694 | Yes |
See the GitHub releases.
The dataset is version-controlled via git. In order to download the files with all revisions they have gone through, git needs to be installed on your machine. Then you can clone this repository using the command
git clone https://github.com/DCMLab/corelli.git
If you are only interested in the current version of the corpus, you can simply download and unpack this ZIP file.
Each piece in this corpus is represented by four files with identical names, each in its own folder. For example, the first movement of the first sonata has the following files:
MS3/op01n01a.mscx
: Uncompressed MuseScore file including the music and annotation labels.notes/op01n01a.tsv
: A table of all note heads contained in the score and their relevant features (not each of them represents an onset, some are tied together)measures/op01n01a.tsv
: A table with relevant information about the measures in the score.harmonies/op01n01a.tsv
: A list of the included harmony labels (including cadences and phrases) with their positions in the score.
After navigating to your local copy, you can open the scores in the folder MS3
with the free and open source score
editor MuseScore. Please note that the scores have been edited, annotated and tested with
MuseScore 3.6.2.
MuseScore 4 has since been released and preliminary tests suggest that it renders them correctly.
Tab-separated value (TSV) files are like Comma-separated value (CSV) files and can be opened with most modern text
editors. However, for correctly displaying the columns, you might want to use a spreadsheet or an addon for your
favourite text editor. When you use a spreadsheet such as Excel, it might annoy you by interpreting fractions as
dates. This can be circumvented by using Data --> From Text/CSV
or the free alternative
LibreOffice Calc. Other than that, TSV data can be loaded with
every modern programming language.
Since the TSV files contain null values, lists, fractions, and numbers that are to be treated as strings, you may want
to use this code to load any TSV files related to this repository (provided you're doing it in Python). After a quick
pip install -U ms3
(requires Python 3.10) you'll be able to load any TSV like this:
import ms3
labels = ms3.load_tsv('harmonies/op01n01a.tsv')
notes = ms3.load_tsv('notes/op01n01a.tsv')
You can look up meaning and data type of the columns of all TSV files including metadata.tsv
in
ms3's documentation (simply search through the page).
When you have made changes to the scores and want to update the TSV files accordingly, you can use the following command (provided you have pip-installed ms3):
ms3 extract -M -N -X -D # for measures, notes, expanded annotations, and metadata
If, in addition, you want to generate the reviewed scores with out-of-label notes colored in red, you can do
ms3 review -M -N -X -D # for extracting measures, notes, expanded annotations, and metadata
By adding the flag -c
to the review command, it will additionally compare the (potentially modified) annotations in the score
with the ones currently present in the harmonies TSV files and reflect the comparison in the reviewed scores.
To create the dataset we downloaded the musicXML conversion available on Craig Sapp's
KernScores (thanks to the engraver(s) who first encoded the
scores in **kern format), converted them to MuseScore, and had them corrected and completed by the transcription service
tunescribers.com. This involved adding thorough bass figures throughout and
engraving a few missing movements from scratch. The commission was performed based on the Pepusch prints available
on the International Music Score Library Project (IMSLP) which are included in the folder pdf
:
Opus | File | IMSLP |
---|---|---|
1 | Corelli op. 1 12 Triosonaten - Partitur.pdf | https://imslp.org/wiki/Special:ReverseLookup/1666 |
3 | Corelli op. 3 12 Triosonaten - Partitur.pdf | https://imslp.org/wiki/Special:ReverseLookup/1689 |
4 | Corelli op. 4 12 Triosonaten - Partitur.pdf | https://imslp.org/wiki/Special:ReverseLookup/1690 |
(The scan of op. 3 is missing page 46, corresponding to op03n12a
)
Whenever pitches, bass figures or their placement were obviously wrong they have been corrected based on the Rome princeps editions.
Two files have different time signatures in the upper and lower staff pairs which leads to wrong positions:
op03n10d
has 12/8 vs. 2/2op04n06g
has 12/8 vs. 4/4
Since the parser deals only with one time signature per measure, and since positions are computed additively, the positions are currently incorrect for
- all events in these two pieces which
- occur in staff 3 or 4
- after beat 1.
As a remedy, staves 1 and 2 could be re-written in simple meters (2/2 or 4/4) sporting triplets. For now,
users could multiply mc_onset
values for staves 3 and 4 by 1.5 as a remedy. The quarterbeats would then need to be
re-computed by adding the stretched onset values to the MC's quarterbeat.
As long as such files exist in the reviewed
folder, the ms3 review
command has detected
- incongruent phrase beginnings
{
and endings}
, and/or - harmony labels where over 60 % of the note heads in the segment are out-of-label, and/or
- other warnings related to parsing the scores or annotations.
Pull requests addressing any of these warnings would be highly appreciated.
The information on the four parts in the MuseScore files has not been curated. That concerns the staff names, brackets, behaviour of barlines, and instruments. If someone could send us a good configuration that looks and sounds decent, we would be glad to automatically apply it to the entire dataset.
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Public License (CC BY-NC-SA 4.0).
For example, all files starting with op03n02
are movements of Sonata number 2 from opus 3. The sequence of movements
is indicated by appended letters op03n02a
, op03n02b
, etc.
For questions, remarks etc., please create an issue and feel free to fork and submit pull requests.
file_name | measures | labels | standard | annotators | reviewers |
---|---|---|---|---|---|
op01n01a | 14 | 64 | 2.3.0 | Lars Opfermann, Ya-Chuan Wu (2.1.1), Hanné Becker (2.3.0) | HB, JH |
op01n01b | 38 | 141 | 2.3.0 | Lars Opfermann , Ya-Chuan Wu (2.1.1), Hanné Becker (2.3.0) | HB, JH |
op01n01c | 37 | 97 | 2.3.0 | Lars Opfermann and Ya-Chuan Wu (2.1.1), Hanné Becker (2.3.0) | AN, HB |
op01n01d | 98 | 147 | 2.3.0 | Lars Opfermann, Ya-Chuan Wu (2.1.1), Hanné Becker (2.3.0) | HB, AN, JH |
op01n02a | 19 | 76 | 2.3.0 | Lars Opfermann (2.1.1), Ya-Chuan Wu (2.1.1), Hanné Becker (2.3.0) | AN |
op01n02b | 36 | 121 | 2.3.0 | Lars Opfermann (2.1.1), Ya-Chuan Wu (2.1.1), Hanné Becker (2.3.0) | AN, HB |
op01n02c | 29 | 67 | 2.3.0 | Lars Opfermann (2.1.1), Ya-Chuan Wu (2.1.1), Hanné Becker (2.3.0) | AN |
op01n02d | 117 | 174 | 2.3.0 | Lars Opfermann (2.1.1), Ya-Chuan Wu (2.1.1), Hanné Becker (2.3.0) | AN, HB |
op01n03a | 17 | 66 | 2.3.0 | Lars Opfermann (2.1.1), Ya-Chuan Wu (2.1.1), Hanné Becker (2.3.0) | AN |
op01n03b | 54 | 223 | 2.3.0 | Lars Opfermann (2.1.1), Ya-Chuan Wu (2.1.1), Hanné Becker (2.3.0) | AN, HB |
op01n03c | 35 | 71 | 2.3.0 | Lars Opfermann (2.1.1), Ya-Chuan Wu (2.1.1), Hanné Becker (2.3.0) | AN |
op01n03d | 97 | 177 | 2.3.0 | Lars Opfermann (2.1.1), Ya-Chuan Wu (2.1.1), Hanné Becker (2.3.0) | AN, HB |
op01n04a | 19 | 52 | 2.3.0 | Lars Opfermann (2.1.1), Ya-Chuan Wu (2.1.1), Hanné Becker (2.3.0) | AN, HB |
op01n04b | 12 | 26 | 2.3.0 | Lars Opfermann (2.1.1), Ya-Chuan Wu (2.1.1), Hanné Becker (2.3.0) | AN, HB |
op01n04c | 28 | 117 | 2.3.0 | Lars Opfermann (2.1.1) , Ya-Chuan Wu(2.1.1), Hanné Becker (2.3.0) | AN, HB |
op01n04d | 39 | 115 | 2.3.0 | Lars Opfermann (2.1.1), Ya-Chuan Wu (2.1.1), Hanné Becker (2.3.0) | AN |
op01n05a | 42 | 90 | 2.3.0 | Lars Opfermann (2.1.1), Ya-Chuan Wu (2.1.1), Hanné Becker (2.3.0) | AN |
op01n05b | 39 | 149 | 2.3.0 | Lars Opfermann (2.1.1), Ya-Chuan Wu (2.1.1), Hanné Becker (2.3.0) | AN |
op01n05c | 30 | 59 | 2.3.0 | Lars Opfermann (2.1.1), Ya-Chuan Wu (2.1.1), Hanné Becker (2.3.0) | AN |
op01n05d | 59 | 117 | 2.3.0 | Lars Opfermann (2.1.1), Ya-Chuan Wu (2.1.1), Hanné Becker (2.3.0) | AN |
op01n06a | 11 | 44 | 2.3.0 | Lars Opfermann, Ya-Chuan Wu (2.1.1), Victor Zheng (2.3.0) | VZ, JH |
op01n06b | 40 | 190 | 2.3.0 | Lars Opfermann, Ya-Chuan Wu, Victor Zheng (2.3.0) | VZ, JH |
op01n06c | 38 | 89 | 2.3.0 | Lars Opfermann, Ya-Chuan Wu, Victor Zheng (2.3.0) | VZ, JH |
op01n06d | 69 | 131 | 2.3.0 | Lars Opfermann, Ya-Chuan Wu, Victor Zheng (2.3.0) | VZ, JH |
op01n07a | 40 | 161 | 2.3.0 | Kristine Kier Jørgensen (2.1.1), Victor Zheng (2.3.0) | VZ, JH |
op01n07b | 14 | 57 | 2.3.0 | Cristiana Palandri (2.1.1), Victor Zheng (2.3.0) | VZ, AN, JH |
op01n07c | 51 | 174 | 2.3.0 | Cristiana Palandri (2.1.1), Victor Zheng (2.3.0) | VZ, AB |
op01n08a | 16 | 56 | 2.3.0 | Lars Opfermann, Ya-Chuan Wu (2.1.1), Ehsan Mohagheghi Fard (2.3.0) | EMF, DK |
op01n08b | 20 | 76 | 2.3.0 | Lars Opfermann, Ya-Chuan Wu (2.1.1), Ehsan Mohagheghi Fard (2.3.0) | EMF, DK |
op01n08c | 27 | 119 | 2.3.0 | Lars Opfermann, Ya-Chuan Wu (2.1.1), Ehsan Mohagheghi Fard (2.3.0) | EMF, DK |
op01n08d | 39 | 71 | 2.3.0 | Lars Opfermann, Ya-Chuan Wu (2.1.1), Ehsan Mohagheghi Fard (2.3.0) | EMF, DK |
op01n09a | 39 | 45 | 2.3.0 | Lars Opfermann, Ya-Chuan Wu (2.1.1), Ehsan Mohagheghi Fard (2.3.0) | EMF, DK |
op01n09b | 37 | 153 | 2.3.0 | Lars Opfermann, Ya-Chuan Wu (2.1.1), Ehsan Mohagheghi Fard (2.3.0) | EMF, VZ |
op01n09c | 36 | 74 | 2.3.0 | Lars Opfermann, Ya-Chuan Wu (2.1.1), Ehsan Mohagheghi Fard (2.3.0) | EMF, DK |
op01n09d | 54 | 56 | 2.3.0 | Lars Opfermann, Ya-Chuan Wu (2.1.1), Ehsan Mohagheghi Fard (2.3.0) | EMF, DK |
op01n10a | 12 | 45 | 2.3.0 | Lars Opfermann, Ya-Chuan Wu (2.1.1), Amelia Brey (2.3.0) | AB, AN |
op01n10b | 17 | 70 | 2.3.0 | Lars Opfermann, Ya-Chuan Wu (2.1.1), Amelia Brey (2.3.0) | AB, AN |
op01n10c | 29 | 107 | 2.3.0 | Lars Opfermann, Ya-Chuan Wu (2.1.1), Amelia Brey (2.3.0) | AB, AN |
op01n10d | 24 | 56 | 2.3.0 | Lars Opfermann, Ya-Chuan Wu (2.1.1), Amelia Brey (2.3.0) | AB, AN |
op01n10e | 84 | 139 | 2.3.0 | Lars Opfermann, Ya-Chuan Wu (2.1.1), Amelia Brey (2.3.0) | AB, AN |
op01n11a | 18 | 60 | 2.3.0 | Hanné Becker | JH |
op01n11b | 34 | 123 | 2.3.0 | Hanné Becker | JH |
op01n11c | 33 | 79 | 2.3.0 | Hanné Becker | AN |
op01n11d | 18 | 81 | 2.3.0 | Hanné Becker | AN |
op01n12a | 19 | 64 | 2.3.0 | Ehsan mohagheghi Fard | AN |
op01n12b | 36 | 101 | 2.3.0 | Ehsan Mohagheghi Fard | AN |
op01n12c | 13 | 42 | 2.3.0 | Tomoko Ono | JH |
op01n12d | 62 | 225 | 2.3.0 | Ehsan Mohagheghi Fard | AN |
op03n01a | 19 | 78 | 2.3.0 | Gabriela Ortiz Würth (2.1.1), Adrian Nagel (2.3.0) | AN (2.1.0), AW (2.3.0) |
op03n01b | 37 | 149 | 2.3.0 | Gabriela Ortiz Würth (2.1.1), Adrian Nagel (2.3.0) | AN, AW |
op03n01c | 61 | 117 | 2.3.0 | Gabriela Ortiz Würth (2.1.1), Adrian Nagel (2.3.0) | AN (2.1.1), AW (2.3.0) |
op03n01d | 40 | 158 | 2.3.0 | Gabriela Ortiz Würth (2.1.1), Adrian Nagel (2.3.0) | AN (2.1.1), AW (2.3.0) |
op03n02a | 19 | 68 | 2.3.0 | Moritz Heffter (2.1.1), Amelia Brey (2.3.0) | AB, ST |
op03n02b | 31 | 118 | 2.3.0 | Moritz Heffter (2.1.1), Amelia Brey (2.3.0) | AB, ST |
op03n02c | 40 | 91 | 2.3.0 | Moritz Heffter (2.1.1), Amelia Brey (2.3.0) | AB, ST |
op03n02d | 43 | 121 | 2.3.0 | Moritz Heffter (2.1.1), Amelia Brey (2.3.0) | AB, ST |
op03n03a | 16 | 59 | 2.3.0 | Moritz Heffter (2.1.1), Amelia Brey (2.3.0) | AB |
op03n03b | 32 | 62 | 2.3.0 | Moritz Heffter (2.1.1), Amelia Brey (2.3.0) | AB, ST |
op03n03c | 23 | 137 | 2.3.0 | Moritz Heffter (2.1.1), Amelia Brey (2.3.0) | AB, ST |
op03n03d | 60 | 240 | 2.3.0 | Moritz Heffter (2.1.1), Amelia Brey (2.3.0) | AB, ST |
op03n04a | 23 | 137 | 2.3.0 | Kelsey Lussier | JH |
op03n04b | 39 | 138 | 2.3.0 | Ehsan Mohagheghi Fard | DK |
op03n04c | 55 | 114 | 2.3.0 | Yannis Rammos | JH |
op03n04d | 50 | 171 | 2.3.0 | Ehsan Mohagheghi Fard | AB |
op03n05a | 21 | 89 | 2.3.0 | Mastaneh Nazarian (2.1.1), John Heilig (2.3.0) | JH |
op03n05b | 49 | 175 | 2.3.0 | John Heilig | AN |
op03n05c | 36 | 80 | 2.3.0 | John Heilig | AN |
op03n05d | 33 | 125 | 2.3.0 | John Heilig | AN |
op03n06a | 33 | 119 | 2.3.0 | Kyle Quarles | AN |
op03n06b | 14 | 54 | 2.3.0 | Kyle Quarles | JH |
op03n06c | 38 | 150 | 2.3.0 | Kyle Quarles | AN |
op03n06d | 41 | 179 | 2.3.0 | Ehsan Mohagheghi Fard | DK |
op03n07a | 20 | 76 | 2.3.0 | Hanné Becker | JH |
op03n07b | 35 | 131 | 2.3.0 | Hanné Becker | AN |
op03n07c | 38 | 92 | 2.3.0 | Hanné Becker | AN |
op03n07d | 28 | 84 | 2.3.0 | Hanné Becker | AN |
op03n08a | 20 | 90 | 2.3.0 | Matthew Chiu | JH |
op03n08b | 39 | 153 | 2.3.0 | Ehsan Mohagheghi Fard | DK |
op03n08c | 31 | 74 | 2.3.0 | Matthew Chiu | AN |
op03n08d | 40 | 135 | 2.3.0 | Matthew Chiu | AN |
op03n09a | 30 | 69 | 2.3.0 | John Heilig | JH |
op03n09b | 28 | 103 | 2.3.0 | John Heilig | AN |
op03n09c | 38 | 85 | 2.3.0 | John Heilig | AN |
op03n09d | 28 | 121 | 2.3.0 | John Heilig | AN |
op03n10a | 14 | 49 | 2.3.0 | Tal Soker | JH |
op03n10b | 38 | 154 | 2.3.0 | Tal Soker | JH |
op03n10c | 11 | 25 | 2.3.0 | Tal Soker | JH |
op03n10d | 31 | 114 | 2.3.0 | Tal Soker | JH |
op03n11a | 17 | 68 | 2.3.0 | John Heilig | JH |
op03n11b | 39 | 164 | 2.3.0 | John Heilig | AN |
op03n11c | 29 | 63 | 2.3.0 | John Heilig | AN |
op03n11d | 45 | 97 | 2.3.0 | John Heilig | JH |
op03n12a | 19 | 17 | 2.3.0 | John Heilig | JH |
op03n12b | 41 | 8 | 2.3.0 | John Heilig | AN |
op03n12c | 9 | 39 | 2.3.0 | John Heilig | AN |
op03n12d | 29 | 97 | 2.3.0 | John Heilig | AN |
op03n12e | 25 | 76 | 2.3.0 | John Heilig | AN |
op03n12f | 37 | 192 | 2.3.0 | John Heilig | AN |
op03n12g | 46 | 205 | 2.3.0 | John Heilig | AN |
op04n01a | 17 | 74 | 2.3.0 | Lydia Carlisi (2.1.1), Adrian Nagel (2.3.0) | AN, JH |
op04n01b | 47 | 75 | 2.3.0 | Lydia Carlisi (2.1.1), Adrian Nagel (2.3.0) | AN, JH |
op04n01c | 13 | 47 | 2.3.0 | Lydia Carlisi (2.1.1), Adrian Nagel (2.3.0) | AN, JH |
op04n01d | 34 | 136 | 2.3.0 | Lydia Carlisi (2.1.1), Adrian Nagel (2.3.0) | AN, JH |
op04n02a | 20 | 87 | 2.3.0 | Lydia Carlisi (2.1.1), Adrian Nagel (2.3.0) | AN, JH |
op04n02b | 22 | 111 | 2.3.0 | Lydia Carlisi (2.1.1), Adrian Nagel (2.3.0) | AN, JH |
op04n02c | 5 | 9 | 2.3.0 | Lydia Carlisi (2.1.1), Adrian Nagel (2.3.0) | AN, JH |
op04n02d | 57 | 125 | 2.3.0 | Lydia Carlisi (2.1.1), Adrian Nagel (2.3.0) | AN, JH |
op04n03a | 18 | 90 | 2.3.0 | Lydia Carlisi (2.1.1), Adrian Nagel (2.3.0) | AN, DK |
op04n03b | 48 | 87 | 2.3.0 | Lydia Carlisi (2.1.1), Adrian Nagel (2.3.0) | AN, DK |
op04n03c | 16 | 37 | 2.3.0 | Lydia Carlisi (2.1.1), Adrian Nagel (2.3.0) | AN, DK |
op04n03d | 41 | 136 | 2.3.0 | Lydia Carlisi (2.1.1), Adrian Nagel (2.3.0) | AN, DK |
op04n04a | 20 | 68 | 2.3.0 | Lydia Carlisi (2.1.1), Adrian Nagel (2.3.0) | AN, DK |
op04n04b | 41 | 80 | 2.3.0 | Lydia Carlisi (2.1.1), Adrian Nagel (2.3.0) | AN, DK |
op04n04c | 17 | 102 | 2.3.0 | Lydia Carlisi (2.1.1), Adrian Nagel (2.3.0) | AN, DK |
op04n04d | 31 | 107 | 2.3.0 | Lydia Carlisi (2.1.1), Adrian Nagel (2.3.0) | AN, AB |
op04n05a | 20 | 101 | 2.3.0 | Andrew Wilson | JH |
op04n05b | 28 | 105 | 2.3.0 | Andrew Wilson | JH |
op04n05c | 39 | 78 | 2.3.0 | Andrew Wilson | JH |
op04n05d | 12 | 38 | 2.3.0 | Andrew Wilson | AN |
op04n06a | 6 | 22 | 2.3.0 | Adrian Nagel | Victor Zheng |
op04n06b | 23 | 41 | 2.3.0 | Adrian Nagel | Victor Zheng |
op04n06c | 7 | 19 | 2.3.0 | Adrian Nagel | Victor Zheng |
op04n06d | 28 | 57 | 2.3.0 | Adrian Nagel | Victor Zheng |
op04n06e | 10 | 22 | 2.3.0 | Adrian Nagel | Victor Zheng |
op04n06f | 25 | 76 | 2.3.0 | Tim Girard | AN |
op04n06g | 30 | 94 | 2.3.0 | Justin Franklin | JH |
op04n07a | 15 | 86 | 2.3.0 | Justin Franklin | JH |
op04n07b | 46 | 104 | 2.3.0 | Justin Franklin | AN |
op04n07c | 6 | 12 | 2.3.0 | Justin Franklin | JH |
op04n07d | 32 | 47 | 2.3.0 | Justin Franklin | JH |
op04n07e | 27 | 92 | 2.3.0 | Justin Franklin | AN |
op04n08a | 38 | 94 | 2.3.0 | Kevin Davis | AN, JH |
op04n08b | 23 | 88 | 2.3.0 | Kevin Davis | JH |
op04n08c | 16 | 41 | 2.3.0 | Kevin Davis | AN, JH |
op04n09a | 13 | 77 | 2.3.0 | Victor Zheng | AN |
op04n09b | 44 | 103 | 2.3.0 | Victor Zheng | AN |
op04n09c | 12 | 49 | 2.3.0 | Victor Zheng | JH |
op04n09d | 56 | 167 | 2.3.0 | Victor Zheng | JH |
op04n10a | 2 | 4 | 2.3.0 | Kevin Davis | JH |
op04n10b | 33 | 104 | 2.3.0 | Kevin Davis | JH |
op04n10c | 4 | 8 | 2.3.0 | Kevin Davis | AN, JH |
op04n10d | 14 | 51 | 2.3.0 | Kevin Davis | AN, JH |
op04n10e | 48 | 152 | 2.3.0 | Kevin Davis | AN JH |
op04n11a | 24 | 156 | 2.3.0 | Amelia Brey | AN |
op04n11b | 73 | 116 | 2.3.0 | Amelia Brey | AN |
op04n11c | 36 | 142 | 2.3.0 | Amelia Brey | AN |
op04n12a | 35 | 77 | 2.3.0 | Andrew Wilson | AN |
op04n12b | 39 | 111 | 2.3.0 | Andrew Wilson | AN |
op04n12c | 19 | 62 | 2.3.0 | Andrew Wilson | AN |
Overview table automatically updated using ms3.