Recent Releases of beethoven_piano_sonatas
beethoven_piano_sonatas - Focused Warnings for Phrase and Pedal Incongruencies
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/beethovenpianosonatas and the corresponding
- documentation page https://dcmlab.github.io/beethovenpianosonatas
For information on how to obtain and use the dataset, please refer to this documentation page.
Ludwig van Beethoven – Piano Sonatas
Getting the data
- download repository as a ZIP file
- download a Frictionless Datapackage that includes concatenations
of the TSV files in the four folders (
measures,notes,chords, andharmonies) and a JSON descriptor: - clone the repo:
git clone https://github.com/DCMLab/beethoven_piano_sonatas.git
Data Formats
Each piece in this corpus is represented by five files with identical name prefixes, each in its own folder. For example, the first movement of the first sonata Op. 2 no. 1 has the following files:
MS3/01-1.mscx: Uncompressed MuseScore 3.6.2 file including the music and annotation labels.notes/01-1.notes.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/01-1.measures.tsv: A table with relevant information about the measures in the score.chords/01-1.chords.tsv: A table containing layer-wise unique onset positions with the musical markup (such as dynamics, articulation, lyrics, figured bass, etc.).harmonies/01-1.harmonies.tsv: A table of the included harmony labels (including cadences and phrases) with their positions in the score.
Each TSV file comes with its own JSON descriptor that describes the meanings and datatypes of the columns ("fields") it contains, follows the Frictionless specification, and can be used to validate and correctly load the described file.
Opening Scores
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 which renders them correctly but cannot store them back in the same format.
Opening TSV files in a spreadsheet
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.
Loading TSV files in Python
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:
```python import ms3
labels = ms3.loadtsv("harmonies/01-1.harmonies.tsv") notes = ms3.loadtsv("notes/01-1.notes.tsv"") ```
Version history
See the GitHub releases.
Questions, Suggestions, Corrections, Bug Reports
Please create an issue and/or feel free to fork and submit pull requests.
Cite as
Hentschel, J., Rammos, Y., Neuwirth, M., Moss, F. C., & Rohrmeier, M. (2024). An annotated corpus of tonal piano music from the long 19th century. Empirical Musicology Review, 18(1), 84–95. https://doi.org/10.18061/emr.v18i1.8903
License
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC BY-NC-SA 4.0).
Published by github-actions[bot] 12 months ago
beethoven_piano_sonatas - Full extraction with ms3 2.4.4
This release includes scores for sonata no. 19 (Hammerklavier), op. 106 that have not been annotated yet.
Published by github-actions[bot] almost 2 years ago
beethoven_piano_sonatas - Full extraction with ms3 v2.4.1, including chords facet; added pre-commit hook (workflow v4.3)
Added chords facet
Not to be confounded with labels or chord annotations, a chord is a notational unit in which all included notes are part of the same notational layer and have the same onset and duration. Every chord has a chord_id and every note is part of a chord. These tables are used to convey score information that is not attached to a particular note, such as lyrics, staff text, dynamics and other markup. More information on the columns can be found in the documentation of the ms3 parser.
Added pre-commit hook
The new iteration of the DCML annotation workflow moves the automatic validation of scores and annotations from GitHub actions to the local user. Whenever you are planning to commit changes to the annotation labels, you may want to install the pre-commit package to then run pre-commit install in your local clone. From this moment on, each time you try to commit changes to one or several MuseScore files, the hook will run ms3 review on them and will reject the commit if warnings are detected. If no warnings are detected, the commit will be enriched with all updates to the repo's TSV files that reflect the changes you've made to the scores.
Published by github-actions[bot] about 2 years ago
beethoven_piano_sonatas - Replaced sonata no. 13 (op. 27/1) with a better version of the score
In this release we split the file https://musescore.com/user/3797871/scores/6237100 which contains the entire sonata no. 13 and replace our four movements. This eliminates the frictionless validation errors that had occurred in MC 266 of 13-4.mscx due to a highly flawed encoding of the cadenza-like measure.
We also introduce the version_release workflow which automatically creates this release.
Published by github-actions[bot] over 2 years ago
beethoven_piano_sonatas - v2.0: Re-extracts all files using ms3 v2.2.1
Changes to the TSV facets
Updated filenames
The TSV files have been renamed and now come with a suffix specifying the data facet that they represent. The three facets are
- measures
- notes
- harmonies
so, for example, the file measures/01-1.tsv has been renamed to measures/01-1.measures.tsv.
Added resource descriptors
Each TSV file is now accompanied with a JSON resource descriptor following the frictionless specification for Tabular Data Resources. They can and have be used to validate the tabular data.
These files have the same names as the TSV files they describe but replacing the .tsv extension with .resource.json. For example, the file measures/01-1.tsv has the corresponding descriptor measures/01-1.resource.json.
These metadata files replace the previous csv-metadata.json files (which followed the CSVW standard) that had described the data inadequately.
Added column quarterbeats_all_endings
The quarterbeats column (also known as qstamp) that had already been available does not provide values for first or third endings, expressing the dimensions of a singular playthrough without taking into account any repeats. The newly added column quarterbeats_all_endings does not have any empty values, providing continuous positions as if each measure followed the previous one.
Renamed index column
The first column of metadata.tsv was renamed from fname to piece.
Changes to the reviewed folder
The _reviewed.mscx files compare the current set of annotation labels against those from the previous version (v2.1). They are identical, so no differences are displayed.
Wherever the MuseScore parser throws one or several warnings (e.g. because an
annotation label does not match the score very well), these warnings appear in a .warnings file. For example, the
warnings for 01-1 can be seen
in reviewed/01-1.warnings.
One goal for future versions of this dataset would be to reduce the number of warnings to the point
of addressing all of them.
Frictionless datapackage
This release is the first one that has a frictionless datapackage attached (below). It consists of
beethoven_sonatas.zip, a ZIP file containing one TSV file per facet, that corresponds to a concatenation of the TSV files in the respective folder, that isbeethoven_sonatas.expanded.tsvbeethoven_sonatas.measures.tsvbeethoven_sonatas.metadata.tsv(concatenation of a single file)beethoven_sonatas.notes.tsv
beethoven_sonatas.datapackage.json, the package descriptor.
If one has the frictionless framework installed, one can use the descriptor to validate the package using the command
bash
frictionless validate beethoven_sonatas.datapackage.json
Published by johentsch over 2 years ago
beethoven_piano_sonatas - Ludwig van Beethoven - Piano Sonatas (A corpus of annotated scores) (v1.1)
This corpus of annotated MuseScore files has been created within the DCML corpus initiative and employs the DCML harmony annotation standard. It is one out of nine similar corpora that have been grouped together to An Annotated Corpus of Tonal Piano Music from the Long 19th Century which comes with a data report that is currently under review.
Version 1 has been released for submitting it as part of the data report Hentschel, J., Rammos, Y., Neuwirth, M., Rohrmeier, M. (forthcoming). An Annotated Corpus of Tonal Piano Music from the Long 19th Century that accompanies nine corpora grouped under the DOI 10.5281/zenodo.7483349.
Version 1.1 comes with a complete set of metadata and score headers. Among more accurate composition dates, the metadata now include URIs that identify the compositions in terms of the Virtual International Authority File (VIAF), Wikidata, IMSLP and MusicBrainz. The data has been re-extracted from the scores using ms3 1.1.1.
Published by johentsch about 3 years ago
beethoven_piano_sonatas - Ludwig van Beethoven - Piano Sonatas (v1.0)
This corpus of annotated music scores has been created within the DCML corpus initiative and employs the DCML harmony annotation standard.
Version 1.0 has been released for submitting it as part of the data report Hentschel, J., Rammos, Y., Neuwirth, M., Rohrmeier, M. (forthcoming). An Annotated Corpus of Tonal Piano Music from the Long 19th Century.
Published by johentsch about 3 years ago