DCML Score Conventions

Getting started

  • Even though MuseScore 4 has been out for a while, for technical reasons we typeset our scores in MuseScore 3.6.2 (which you can download here).

  • MuseScore has many keyboard shortcuts that every encoder should know (or configure to their own liking) in order to facilitate life. Typesetting is ideally done with one hand on the computer keyboard (esp. numbers) and one on a MIDI keyboard.

  • Some may find it helpful to first set up the empty score to its full length and to start by including repeat signs, split measures, etc. before typing the music.

  • When you store a new score for the first time, please name it according to the corpus’s naming scheme and make sure to to select the format Uncompressed MuseScore file (*.mscx). Also, make sure the filename you choose does actually end on the .mscx extension, not on MuseScore’s default, .mscz (if you don’t add any extension, MuseScore might give you the Cannot determine file type error).

Committing new scores to Git

In case you’re beginning a new corpus, please refer to the DCML Corpus Creation Pipeline. If, instead, you’re contributing to an existing repository, please follow these steps:

  1. Create a new branch for your work. This is done by typing git checkout -b your_branch_name in the terminal. You could use one branch per piece/movement or one for a whole multi-movement work. In any case, the branch name should be indicative of the music you’re working on.

  2. Before committing a new file, make sure you add it to the corpus so that the pre-commit hook will check it for errors (see below).

  3. Commit at your own pace with a descriptive message. For example, you could commit each time you finish a pass through the piece with a message such as “typeset rhythm and pitch of the entire movement” or “adds dynamics and articulation”. Or when you’re interrupting your work (“typeset measures 1-115”).

  4. When you’re done with a branch, create a pull request and request a review as agreed beforehand. Chances are that you’ve also been told the name of a side branch where a new version is being prepared, so please choose that branch instead of main when creating your PR.

Installing the pre-commit hook and ms3

TL;DR

pip install pre-commit ms3
pre-commit install

(The second command is to be executed in the corpus repository in question.)

Python version

Make sure your pip command is based on Python version 3.10 or later. You can check this by issuing python --version. If this fails, on your system it could be python3 --version.

To install ms3, please execute pip install ms3 in your terminal. If the command is unknown, you might try python3 -m pip install ms3 instead. If that fails, you might have to install Python for your operating system first.

You know that a repository comes with a pre-commit hook when you see a file named .pre-commit-config.yaml on its top level (which may, however, been hidden on Linux or Mac). To install the pre-commit hook, you need to have the pre-commit package installed. You can install it with the following command:

pip install pre-commit

Once you have the package installed, you can use it to install the pre-commit hook for the repositories you’re working on by navigating to the repository’s root directory and typing:

pre-commit install

This should result in a pre-commit installed at ... message and you’re done.

Adding a new piece to a corpus

Warning

If you don’t add a new piece to the corpus, the pre-commit hook will fail saying NO SCORES PARSED, NOTHING TO DO.

The pre-commit hook executes the ms3 review command every time you’re trying to commit (changes to) one or several MuseScore files. By default, ms3 ignores files that are not listed in metadata.tsv, meaning that you need to add a new piece to the corpus. You can do this by running ms3 extract -D -M -N -C -D -a in the repository’s root directory. However, this will indeed the TSV files from all MuseScore files, including older ones. If you want to shorten the process, you can isolate a portion of the file name that unambiguously identifies the new piece(s) and pass it to the -i parameter (as in --include), e.g. ms3 extract -D -M -N -C -D -a -i op53no2. Then you can add the new score, it’s new TSV files, and the updated metadata.tsv and README.md like this:

git add .
git commit -m "adds new score [filename].mscx" --no-verify

The --no-verify option skips running the pre-commit hook.

Working with the pre-commit hook

When you commit, pay attention to the output of the pre-commit hook.

  • If you see some more lengthy output, probably there is a problem and you have not committed anything yet. In this case, a git status should show you a bunch of .tsv files that ms3 has added or modified. If not, the output might say NO SCORES PARSED, NOTHING TO DO. somewhere, meaning that you first need to add the new piece to the corpus (see previous section).

  • Otherwise, you should see Review annotated MuseScore files.........................................Passed and the following git status should reveal a clean repo.

When the checks don’t pass, look for the WARNING message(s) and see if you can correct them.

Dividing a Score into separate files

  1. Open up the MuseScore file & the original print for comparison.

  2. Find out about the file name convention or invent one.

  3. Find out the numbers for each movement (PDF or IMSLP)

  4. Create section break after second-last movement

  5. Re-add time signature and key signature to last movement

  6. check & correct measure numbers (pick-up bars, voltas, etc.)

  7. Select last movement, File → Save selection → save as MSCX file

  8. Delete bars (Ctrl + Del)

Glossary, Terminology

../_images/score_glossary.png

System

The “line” of a score including all staves.

Staff (pl. staves)

A score layer commonly represented by five staff lines.

Voice (Notational Layer)

Contrary to the musical term, voice designates one of the four notational layers. Voices 1 (blue) and 3 (red) by default have upwards stems and beams, voice 2 (green) and 4 (purple) downward ones; unless only voice 1 is present, then the stem direction is automatic. In the score example, staff 1 has two voices and staff 2 only one.

Head & Stem

Every note consists of a note head (round in most cases) and every note smaller than a whole note has a stem which is the line extending upwards or downward from the stem, or both.

Flag & Beam

Individual notes smaller than a quarter have at least one flag but adjacent flags are usually represented as beams. In the score example every four eighth notes are connected by a beam.

Score Elements

Time signature

A time signature is always and only used to set the meter of the music. It is never used to (only) change the duration of a measure, that’s what the irregular, “Actual” measure duration in the Measure Properties panel is used for. In long cadenzas, e.g., measures typically do not follow the prescribed meter, but it is better to simply not change the time signature than changing it, suggesting a new (and often strange) meter.

Line Breaks

Don’t need to correspond to the original. Where existing line breaks in the digital edition bring forth awkward layout, they should be deleted.

MuseScore Metadata, Title information etc.

Eventually the Metadata (File -> Score Properties) should be clean (i.e. complete) but this can be done in an automated step. The same goes for adding title, composer etc. for the score. So if you’re more satisfied with your work when you add this info, use Add -> Text -> Title/Subtitle/Composer…

Staff Brackets, Bar lines

The brackets at the beginning of the staves make for a more professional look and are easy to add. The same goes for barlines extending over staves.

  • Brackets: Palette -> Brackets -> Drag into score -> use the handle to extend

  • Cross-staff barlines: Select a barline and drag it down to the last spanned staff

Cross-staff notation

In print editions of piano music you sometimes find the left hand notated in the upper staff or vice versa. By default, this should not be reproduced.

Split measures

When a double barline or repeat sign appears before the end of the measure, the measure needs to be split into two irregular measures. For example, when measure number 16 in 4/4 has a repeat sign after beat 3, it is split into two measures: MC 16 of length 3/4 and MC 17 of length 1/4. The length is to be set as “Actual” measure duration in the Measure Properties panel. Since the two irregular measures together make up MN 16, we need to prevent MuseScore from counting MC 17 as MN 17. This is achived by checking “Exclude from measure count” in the Measure Properties panel for MC 17.

First and second endings (“voltas”)

The convention is that second, third etc. endings are seen as alternative versions of the same measure numbers (MN). Therefore, the bar counts need to be adapted in MuseScore accordingly. If the voltas have length 1, it is sufficient to “Exclude from bar count” all voltas except the first one. For voltas spanning n > 1 measures, for every volta except the first, the first measure needs to be adjusted with “Add to bar number = -n”.

Example:

  • Volta 1: MC 15 & 16 → MN 15a & 16a

  • Volta 2: MC 17 & 18 → MN 15b & 16b ← change MC 17 to ““Add to bar number = -2”

Sections within a movement (e.g. “Trio”)

Individual sections, in particular ones with differing time and/or key signatures, occur frequently in musical settings such as variation movements or Minuet + Trio. Three important considerations are:

  • how to layout the section breaks

  • how to yield correct measure numbers

  • how to ensure correct repeat structure

A section break (from the “Breaks & Spaces” pallette) has the following effects:

  • MN (bar counts) restart counting from 1 (but not the MCs);

  • a line break is inserted;

  • after the line break, the time signature and the key signature can be changed without automatic creation of “courtesy display” at the end of the previous line;

  • a last section measure and the first one of following section don’t need to add up to the correct measure length (e.g. when performing checks with ms3)

  • repeat signs in the new section jump back to the section’s beginning, not the movement’s beginning (for which D.C./da capo is used, see below). By convention, the “start repeat” sign in the first MC of a new section is omitted.

So in general, section breaks should be used. If, however, the MNs in the original score don’t restart from 1, you need to adapt the “Add to bar count” setting of the new section’s first measure. The title of the new section should be added as system text with a larger font size.

If the movement contains jumps such as D.C./da capo or D.S./dal segno, make sure that these signs exist and have the correct labels. For example, if at the end of a Trio there is a “Menuetto da capo” you need to make sure that the first section, the Minuet, is played once more, without repeats, and without continuing to the Trio. This can be achieved by creating a “D.C. al Fine” from the “Repeats & Jumps” pallette, adapting the text, and, importantly, by creating a “Fine” at the end of the minuet. The “Play repeats” option is correctly disabled by default.

Beams

Beams can be adjusted for aesthetic reasons but don’t need to be.

Notational Layers & Stem direction

As long as there is only one voice (notational layer) per staff, the automatic stem directions are perfectly fine. If there are more than one, the four layers of MuseScore should be used in order to reproduce the stem directions as in the original. By default, voices 1 and 3 have upward stems, voices 2 and 4 downward stems.

Piano pedals

Since the use of the sustain pedal is part of a pianist’s personal style, pedal markings are to be considered as rough suggestions and often they are added by editors. They should be included if they can be found in the original manuscripts.

Metronome marks

Each score should have a metronome mark in the first measure. If the source does not contain one, it should be added as an invisible mark. The base value should reflect the beat unit of the music and the bpm value should correspond to a reasonable estimate of the tempo when averaged over various performances. Notably, when the base unit or the tempo indication changes later in the piece, another metronome mark should be added.

Please make sure to add an (invisible) metronome mark even if the piece begins with a :ref:`tempo indication <tempo_indications>. The reason is that the latter encodes the tempo based on quarters, whereas the metronome additionally encodes the information on what is considered to be the beat unit.

In order to add a metronome mark, you select the first measure in the first staff and, in the “Tempo” palette, click on the metronome mark with the corresponding beat unit. Double-click on it and change the number to change the tempo. In the inspector (F8), the “Tempo” value is updated accordingly and shows the tempo you are encoding, but converted to a base unit of quarters (in the screenshot below, “𝅗𝅥 = 64” corresponds to “128.00BPM”). There you can also uncheck the “Visible” box to hide the marking (or press [V]).

If the required base unit is not available in the palette, create one of the existing metronome marks, double-click, and press [F2] to open the “Special Characters” pop up. There you can select the base unit and insert it (and prolongation dot) accordingly. Again, check in the inspector if the tempo is encoded correctly.

Screenshot from MuseScore 3 showing how to insert a metronome mark

On the left, the “Tempo” palette (F9) is shown. On the right, the “Inspector” (F8) that shows the encoded tempo in terms of quarters per minute. The “Special Characters” pop up in the center can be opened by pressing [F2] while editing the metronome mark (double click).

Tempo indications (aka movement title)

The most frequent tempo indications such as Andante or Allegro are available from the “Tempo” palette. For those that are not available, you insert one of the available ones and modify its text by double-clicking on it. Then you open the inspector (F8) and change the value of “Tempo” (in the “Tempo Text” pane) to a plausible value (measured in quarters per minute). In addition, please also add a metronome mark in order to encode the beat unit.

Cresc. / Decresc.

Should not be written as plain text, instead use the symbol from the “Lines” palette. If the original score has no line, make it as short as possible (the length of the note value). The length of a line is modified by selecting its right handle (square), holding [C]+[S] and moving the end of the line with the right and left arrow keys. Alternatively, the handle can be dragged with the mouse.

Figured bass (Thoroughbass)

is important to encode and MuseScore has good support for it: https://musescore.org/en/handbook/3/figured-bass The original figures should be standardized as little as possible. E.g., <63> should not be shortened to <6>. Standardization should be reserved for cases where something cannot be displayed in MuseScore, e.g. an idiosyncratic symbol for raising a tone, which may be translated to a sharp or similar.

Titles and other metadata

Metadata can be inserted automatically but if you want to do it by hand, use

  • Title for the title of the work group (e.g. “4 Mazurkas, op. 6”) or the work if it is standalone

  • Subtitle for movements or parts of the work group (e.g. “Mazurka in F# minor, op. 6 no. 1”)

Early Music

Preparatory staves

  • Create a horizontal frame between the first and second bar of the score. The isolated measure on the left of the frame will be referred to as the preparatory staff for each part.

  • Exclude the preparatory staff from the measure count, and make the content of the bar invisible.

  • Insert the grouping bracket for the whole system of staves.

  • For each part, change the clef in the preparatory staff to the corresponding ancient clef, making sure to restore the modern clef at the beginning of the score after the frame (hiding the courtesy clef).

  • For each part, change the aspect of the time signature in the preparatory staff to the corresponding ancient notation. Ancient metrical signatures can be found in the “Other” menu. Make sure the modern time signature is correctly displayed at the beginning of the score, after the frame.

  • After transcribing the whole piece, add the Ambitus inside the preparatory staff for each part with the dedicated tool (from the “Lines” palette). The ambitus should be set automatically with the correct range, but it can be adjusted manually in the Inspector.

Accidentals

  • When copying from a manuscript or primary source, only transcribe accidentals that are present in the original, without adding musica ficta or other editorial interventions.

  • Since ancient sources do not assume measure boundaries, always interpret an accidental as only referring to the note it is attached to. This implies that every successive note in the same or the following measure that the accidental would apply to needs to have a natural sign in parentheses. In other words, the only notes having accidentals without parantheses are those in the original source. Please stick to this convention because it facilitates the task for the person who will go through all accidentals seperately.

  • When copying from an authoritative critical edition, or making editorial revisions on new transcriptions, unambiguous musica ficta accidentals should be included and displayed in small font (Small tag in the Inspector) above the corresponding note. Less unambiguous cases can also be annotated in brackets (Bracket type menu in the Inspector).

  • Any occurrences of a notated B sharp should be transcribed as B natural.

Text

  • When transcribing from manuscripts or other primary sources, spelling inconsistencies and lexical archaisms for the same word should be transcribed as they occur in the source.

  • On the contrary, ancient typographical features should be systematically modernized. This includes:

    • Letter “s” may be displayed as a s-longa “ẝ”, not to be confused with an “f”. Always restore the modern notation as “s”.

    • Letter “u” is displayed as a “v” when it occurs at the beginning of a word, but should be restored as a “u”.

    • Letter “v” is displayed as a “u” when it occurs in the middle of a word, but should be restored as a “v”.

    • A tilde above a vowel indicates that it should be followed by a letter “n”: e.g., “comãdo” → “comando”.

  • Sources may omit repetitions of lines of text, replacing them with a symbol (e.g., “:||:” or “ij”). In the transcription, write out the repetition explicitly, enclosing the portion of text that is omitted in the source within square brackets (e.g. “Fa la la ij.” → “Fa la la [Fa la la]”).

  • Initial capital letters may be illustrated separately from the score, and should be merged with the first syllable in the transcription.

  • Distribution of the lyrics:

    • Text should be hyphenated syllabically (separating syllables with a dash - when splitting a word, and with a space when starting a new word), even when hyphens are omitted in the source. When in doubt, refer to standard language-specific syllabation rules.

    • When syllables belonging to different adjacent words merge in a single metrical position (synalepha), separate them with Alt+Space so that they are not assigned to different notes. E.g., the verse Tu di luce auanzi il Sol will be transcribed as: “Tu” “di”lu” - “ce a” - “van” - “zi il” “Sol”, where each segment enclosed in “” is assigned to a single note and the space inside “ce a” and “zi il” is obtained with Alt+Space.

    • When a syllable extends over several notes (melisma), a dash - should be used for each note belonging to the melisma, until the next syllable intervenes. If the melisma occurs on the final syllable of a word, an underscore _ should be used (instead of the dash) for each note of the melisma, until a new word starts.

Ligaturae

  • If the source marks ligaturae, include them as dashed slurs (Line typeDashed in the Inspector).

Meter

  • Transcriptions preserve original note values, not halved ones.

  • Meter changes:

    • Select the new time signature in modern notation.

    • If the new time signature in the source is numeric (e.g. 3) orcor ȼ, change the aspect of the time signature to match the original notation.

    • If the new time signature in the source is in ancient mensural notation (e.g., ꜿ), include the ancient notation as a symbol from the Master Palette → Symbols → Medieval and Renaissance Prolationes. The symbol should be attached to the relevant measure, and positioned right above the modern time signature.

    • Recitativo passages and other unmetered material should be encoded as a single measures with irregular length rather than multiple measures (regular or otherwise) with hidden barlines,

  • The last note is often notated as a longa. If this is the case, the transcription should end on exactly one bar in which all sounding voices hold their final note for the duration of the entire bar (if necessary, add one bar at the end). Fermatas are added only if they appear in the original score.

Metadata

  • Add the field originalClefs and report the original clefs from the topmost to the bottom staff. E.g., “c1, c2, c4, f4”, where “c1” stands for a C-clef on the lowest line of the staff, c2 for a C-clef on the second-lowest line etc.

Corrections to automate

General

  • make sure no notes are vertically shifted

Files converted from Kern/Humdrum

  • moving dynamic markings from <Lyrics> to <Dynamic> tags

  • correcting messed up hair pins (cres./decresc.)

Annotations

  • delete empty harmony tags

  • labels missing initial dot