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

For information on how to obtain and use the dataset, please refer to this documentation page.

Ludwig van Beethoven – Piano Sonatas

Getting the data

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 is
    • beethoven_sonatas.expanded.tsv
    • beethoven_sonatas.measures.tsv
    • beethoven_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