This repository contains the standard for harmonic annotations developed at the Digital and Cognitive Musicology Lab at École Polytechnique Fédérale de Lausanne.
The DCML standard for harmonic annotations consists in a detailed annotation tutorial, a reference, and a regular expression. The tutorial represents the reference for annotators applying the standard for the task of encoding harmonic analysis, and explain how the open-source software MuseScore 3 can be used to enter chord labels into scores so that they can be
- automatically extracted using the parser developed at the DCML, and
- split into the various encoded features using the regular expression.
- Moss FC, Neuwirth M, Harasim D, Rohrmeier M (2019) Statistical characteristics of tonal harmony: A corpus study of Beethoven’s string quartets. PLoS ONE 14(6): e0217242. https://doi.org/10.1371/journal.pone.0217242 [v1.0.0]
- Neuwirth M, Harasim D, Moss FC and Rohrmeier M (2018) The Annotated Beethoven Corpus (ABC): A Dataset of Harmonic Analyses of All Beethoven String Quartets. Front. Digit. Humanit. 5:16. doi: https://doi.org/10.3389/fdigh.2018.00016 [v1.0.0]
- Annotations may now include appended cadence labels,
PAC, IAC, HC, DC, EC, PC
, separated by a pip|
; for example:V}|HC
v
introduced as counterpart of^
: it indicates that an interval replaces the lower instead of the upper note, e.g.I(v7)
for a seventh that replaces a sixth rather than the octave.
+7
(and inversions) designates an augmented chord with a minor seventh. For the case of an augmented chord with a major seventh, the combination+M7
(and inversions) has been added. (#24)- With the new version, phrase beginnings are annotated with a trailing
{
, a phrase's structural ending with a}
and phrase interlocking with}{
. (#3, #12) - Phrase annotations, including the deprecated
\\
can now appear independently of a harmony label. - The symbol
^
can now be used to distinguish retardations from suspensions (e.g.i(^2)
for a 2 that replaces the third rather than the root). (#4) - The symbol
-
can now be used to express missing chord tones, e.g.I(-3)
. (#10, #14) - Changes to the guidelines (other than switching to Sphinx)
- Immediate repetition of identical labels is still discouraged but not rigorously forbidden. (#28)
- In some cases, immediate repetitions are necessary. (#22)
- In this version of the regex,
@none
is admitted as a symbol and interpreted as a numeral (root). - The position of the initial dot was moved because the prior version did not accept some correct labels, such as
.bIII.bIII
. - Guidelines updated on the use of augmented sixth chords.
- Global keys (note names) and local keys (Roman numerals) are now parsed in two different groups. This solves the problem that previously, all pieces were assumed to start with localkey
I
ori
. Now it is possible to have the global key and a change of local key within the first label, e.g.Ab.vi.i
for a piece in Ab major that begins with an introduction in the relative key. - Leading periods
.
are not allowed forrelativeroot
anymore. For example, the following would have been legal before, although never used:V/.bIII
. The correct version isV/bIII
. - Relative roots of unbounded levels are allowed now, as in
V7/V/V
. The featurerelativeroot
would be extracted asV/V
in this case, i.e. without the initial slash.
- This version does not allow
9
asfigbass
feature anymore. This means that a label such asV9
will throw an error. Instead, this chord needs to be written either asV7(9)
orV7(+9)
, depending on the context. - An additional group called
chord
has been added to the regular expression which captures the groupsnumeral, figbass, changes, relativeroot
in order to separate it from the additional information about keys, pedal points and phrasing. - This release contains the first published version of the annotation guidelines.
- Initial version of the regular expression to annotate harmonies, taken from https://github.com/DCMLab/ABC.