A score should be written in bar notation as an array.
The first element should be information about the composer, title and copyright. The elements from the second to the last are musical notation events, and each event contains the musical information for each bar.
The parts of a bar should be constructed as elements within an event. It contains all parts of the bar with keys like \p1
, \p2
, etc:. Each part should be an event that contains its notation information in the bar. The value of the event key is an array containing the notation information of its part in the bar:
It also contains the "bar number" with the key \bar
. This is only used to indicate the bar number when entering musical events in a particular bar, as a comment is often used to indicate the bar number. You can ignore the \bar
if you do not need it.
Each part consists of a staff label, an attribute and one or more voices (The term voice here is very similar to the term voice used in traditional western classical poplyphonic music. If one has a very narrow view of the concept of voice, there may be a difference, as the voice here can include chords.).
Each can be defined with its own key and contains the following information
The staff label, number of staves and optional transposition information should be defined in the first bar. Attributes such as time signature, key signature, clef can be changed in any bar, if necessary, as follows:
Examples:
|
Examples:
|
This is not normally used, but may be necessary when debugging your code.
Exmaple:
To access the part \p1 |
Example:
To access the staff label of part \p1 |
To add the title, composer and copyright of a piece, use an event with key and value pairs: for the title, use the key \title
, for the composer, use the key \composer
, and for the copyrights, use the key \rights
, as follows:
One or more bars can be added by adding an event as an array element, as follows:
One or more parts can be added by adding an event to any event in an array element, as follows:
To add a staff label, the name of the label should be defined with the key \lbl
in a part of the first bar. To add one or more staves to a part, the number of staves should be defined with the key \staves
in the \atr
event in a part of the first bar, as follows (the label and the number of staves defined in the first bar are fixed until the end):
To add optional transposition to a part label, the following properties should be defined as an array element of an event with the key \trans
in a part of the first bar:
Integer | diatonic transposition |
Integer | chromatic transposition |
Integer | octave transposition |
For example, the clarinet part should be defined, as follows:
The clef or clefs in a part can be changed in any bar, and should be defined in an array with the key \clef
in the \atr
event in a part in a bar. To define a clef, an array with two elements should be used. The first element defines the clef symbol and the second element defines its position on the staff (counting upwards).
\g | g-clef |
\c | c-clef |
\f | f clef |
1 | the bottom line |
5 | the fifth line from the bottom |
To define multiple clefs on multiple staves, a staff array can be used within its parent array:
The time signature in a part can be changed in any bar, and should be defined with the key \time
in the \atr
event in a part in a bar. To define a normal time signature, an array with two elements should be used. The first element defines the upper number (top number) of the time signature, and the second element defines the lower number (bottom number) of the time signature. To define senza-misura, the symbol \x can be used instead of an array:
The time signature in a part can be changed in any bar, and should be defined with the key \key
in the \atr
event in a part in a bar.
... | |
2 | two sharps, used for D major or B Minor |
1 | one sharp, used for G major or E minor |
0 | no sharps and no flats |
-1 | one flat |
-2 | two flats |
... |
\none | atonal |
\C | C-major |
\a | A-minor |
A mixed use of atonal and polytonal examples are as follows:
To add a metronome number defined by the number of beat unit per minute, insert an array into a voice as follows:
the first element | \t | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
the second element | beat unit
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
the third element | bpm (beat per minute) |
Example:
|
symbols | corresponding dynamic marking |
ffff | |
fff | |
ff | |
f | |
mf | |
mp | |
p | |
pp | |
ppp | |
pppp |
Example:
|
|
\r in Array-in-Array notation and r in the other notations stand alone without a rhythmic value if the previous rhythmic value is used. If the first rest stands alone, the default value of crotchet is used, as shown in 8. Adding a tempo indication for Array-in-Array notation (also below), and as shown below for the other two notations:
Array-in-Array notation | Symbol-in-Array notation,
String notation | |
triple-dotted maxima
(MuseScore 4.1.1 crashes when this value is used for a rest.) | ||
double-dotted maxima
(MuseScore 4.1.1 crashes when this value is used for a rest.) | ||
dotted maxima
(MuseScore 4.1.1 crashes when this value is used for a rest.) | ||
maxima
(MuseScore 4.1.1 crashes when this value is used for a rest.) | ||
triple-dotted longa | ||
double-dotted longa | ||
dotted longa | ||
longa | ||
triple-dotted breve | ||
double-dotted breve | ||
dotted breve | ||
breve | ||
triple-dotted semibreve | ||
double-dotted semibreve | ||
dotted semibreve | ||
semibreve | ||
triple-dotted minim | ||
double-dotted minim | ||
dotted minim | ||
minim | ||
triple-dotted crotchet | ||
double-dotted crotchet | ||
dotted crotchet | ||
crotchet | ||
triple-dotted quaver | ||
double-dotted quaver | ||
dotted quaver | ||
quaver | ||
triple-dotted semiquaver | ||
double-dotted semiquaver | ||
dotted semiquaver | ||
semiquaver | ||
triple-dotted demisemiquaver | ||
double-dotted demisemiquaver | ||
dotted demisemiquaver | ||
demisemiquaver | ||
triple-dotted hemidemisemiquaver | ||
double-dotted hemidemisemiquaver | ||
dotted hemidemisemiquaver | ||
hemidemisemiquaver | ||
triple-dotted quasihemidemisemiquaver | ||
double-dotted quasihemidemisemiquaver | ||
dotted quasihemidemisemiquaver | ||
quasihemidemisemiquaver
semihemidemisemiquaver |
Example:
|
A pitch or chord can be added using MIDI pitch number or scientific pitch notation, and this pitch (or pitches) should be placed as an array. Currently, 12-tone equal temperament, 24-tone equal temperament and 48-tone equal temperament are supported by music engraving software such as Dorico 4 Pro, MuseScore 4, Finale 27 and so on, so Notator class supports eighth-tone pitches. Refer to an example of the Eighth-tone Scale example in Notator help document.
Related help documents of the SPN class and PitchClassSet class included in Notator Quark. |
To add notes or chords, use the correct notation for each of the three ways to construct the musical information of a voice, as follows:
|
To add additional duration, dynamics, articulation, tie and slur, the correct notation for each of the three ways to construct the musical information of a voice should be used as follows (The same rules as above for rest symbol durations and dynamic markers should be applied to note durations and note-attached dynamic markers.):
|
Example:
Three different styles of code to get the same musicXML file:
|
Example:
The results of the above code block evaluation:
|
The list of currently supported articulations is as follows:
Array-in-Array notation | Symbol-in-Array notation,
String notation | |
accent | ||
strong-accent | ||
staccato | ||
staccatissimo | ||
tenuto | ||
detached-legato |
Array-in-Array notation | Symbol-in-Array notation,
String notation | |
tie start | ||
tie stop | ||
laissez vibrer | ||
tie stop with laissez vibrer |
Array-in-Array notation | Symbol-in-Array notation,
String notation | |
slur start | ||
slur stop |
Array-in-Array notation | Symbol-in-Array notation,
String notation | |
repetitive pitche (a note) or pitches (a chord) | ||
The repetition of the previous entry |
Three different styles of code to get the same musicXML file:
|