The file format being demonstrated here is still under development, and thus subject to change.

Last modified 12 Jul 2019

Nydana, Sweden. All rights reserved until further notice.

Modulo Notation File Format

The Modulo Notation file format allows sheet music written in Modulo notation to be translated into characters which can be stored in a text file. It's not just intended to be understood by computers, but is also adapted to humans. Anyone who understands how it works will be able to translate sheet music into this new format, or vice versa. The format could also be useful when to feed in musical symbols in possible future notation software applications. The file format could also allow such applications to exchange sheet music files between them. Further editing could be done in one of these applications before saving the file in the application's own native format. Modulo Notation's file format is case sensitive. No default values are assumed. Computer programs could nevertheless have default settings which may be altered by the user.

Modulo Notation's file format consists of commands being supplied one after another. Commands can begin with a letter, number, or other sign. Only signs defined by the ASCII standard are used, and should consequently be convenient to write on any keyboard.

A command that begins the description of a beat is either a note/chord, or a rest. A command that begins with an octave number is a note/chord command, but for subsequent note/chord commands (within the part and current measure), the number is left out if it doesn't change. Any other command that begins with a lowercase letter can only be appended to a note/chord/rest. This is done by writing a point/period (.) right after the note/chord/rest command, and then the appended command follows. Slashes (/) separate commands that belong to different stems of a beam. A command that follows directly after a slash is always a note/chord, or a rest.

Global commands normally begin with a capital letter. A global command is not tied to any particular stave.

A stave-specific command acts upon the stave that is being addressed at the moment. If a stave ID between square brackets is added, the command will target that particular stave. If there is more than one ID, these should be separated with comma signs (albeit without introducing spaces). If the command should act upon all staves, [*] is instead added. The square brackets usually appear right after the first letter in the command.

A part-specific command only acts upon an individual part.

To some commands a colon (:) can be added to show that the command begins by acting upon the associated note/chord, and then also continues to act (within a part) until the same command with a semicolon (;) is stated. The note/chord that gets the associated command with a semicolon is the last to be affected. Without a colon or semicolon, the same command will affect only one note/chord. Slurs normally just use parentheses to show where they start or finish.

Some commands could have a position added between < and >. A vertical position is yielded in the form of a note command. For example: 4m.ha:<b> starts a dashed All’ottava line at a vertical position where a note head of Bo4 would have been situated (b represents Bo, and the octave number is left out since it agrees with the note's octave number). For any number of octaves below octave 0, subtract the number of octaves from 100. For example: 4m.ha:<99b> puts the All’ottava where the note Bo would have been in the octave just below octave 0. Horizontal adjustments start with either a plus sign or a minus sign, and indicate how many stave units (two stave units is equal to the height of a note head) something should be moved right or left, respectively. For example, 4m.ha:<-2> moves the start of the All’ottava two stave units to the left. Both a vertical position and a horizontal adjustment can be combined (start with the vertical position). For example, 4m.ha:<b-2> starts the All’ottava where a note head of Bo4 would have been, and moves it two stave units to the left.

Now, let's begin with an example of what this format may look like. The example being used is an excerpt from music written for the pipe organ. The composition is called ”Spring Song”, and the excerpt can be downloaded from the page that presents Modulo notation on this website. The first eight measures are shown here:

@M1 {Spring Song}T {MacFarlane}C

A[bothhands][pedals] C[*]43 K[*]nFa S[*]+

= (6f/r) (5b/f) (s/g) # 3brf2 z

= 2b2 z

|

= (5l/6d) (5s/6d) (5f/6r) # 4dfl/z 3bms/z ldf/z

= 3d3

|

= (6d/r) (d/r) (d/r) # 3sbdf3.{ritard.}g

= !3

|

= (6d/5b) (s/m) (d/4b) # 3sbdm2.& z

= !2 z

|

= (4l.{a tempo}t/b/5d) (r/m/f) (s/l/b) # 4dfl/z 3bms/z ldf/z

= 3f/z z z

|

= (6d3.ow6r.of5t6d) # 3sbdf3

= 3d3

|

= (7d.?/6b/l) (s/f/m) (r/d/5b) # 3sbdm3.&

= !3

|

= (5l.{ritard.}g/s/f) (m/r/d) (4b/l/s) # z3

= 3p/z r/z m/z

Tip: Use your browser’s find function to locate the definition of any particular command in this document. Since every description of a command begins with three underline signs, put, for example, ___c in the search field to find the definition of a command that begins with c.

The following labels, in the headings below, identify the different kinds of commands:

(G)Global
(=)Stave-specific
(#)Part-specific
(:)Can begin (:) and end (;)
(<>)Can have a position added

File Format Commands

___@___ File Format Version (G)

Write @M for Modulo notation. Add the file format version number.

Example: @M2

___|___ Next Measure

The next measure begins.

___=___ Next Stave

The next stave begins. Yield this command also at the beginning of the file; and right after each next measure command (|).

___#___ Next Part

1→ The next part begins. Each # has a positional number: the first # thus describes part 1 (its positional number is 1), and so on.

2→ If needed, add the positional number from the previous measure that this part is a continuation of. In other words, the part is a continuation of a part from the previous measure, and the corresponding # in the previous measure didn’t have the same positional number (that is, the order in which it was written). The number of parts can vary from measure to measure, but it will always be clear if a part is a possible continuation of a previous part. The positional number is useful for knowing what part in the next measure a tie or slur, that crosses a bar line, should be connected to.

Example: # 2d # 2p # 2r | #3 2r # 2p #1 2d The parts are yielded in reversed order (note that it was not necessary to write #2 in the second measure since the positional number had not changed for that second part).

Example: # 2d # 2p | #2 2p One part disappeared; and we also showed that the remaining part (which now has positional number 1) is a continuation of the second part from the previous measure.

Example: # 2d | # 2r #1 2d A new part has been added, and the second part is the one that picks up any tie or slur from the previous measure.

___/___ Stem Separator (#)

Separates commands belonging to different stems within a beat.

It is also possible to repeat the latest command(s) associated with a stem by not writing anything after a stem separator.

Example: 4mgt//dv/ Equal to 4mgt/mgt/dv/dv

___.___ Command Separator (#)

Associates separate commands.

Example: 2d.t Associates command 2d with command t

___( )___ Slurs (#)

Insert parentheses to show where slurs begin and end. If more control is needed, use command s also.

Example: (2d m)/f Puts a slur between Do2 and Mo2.

___!___ Ties (#)

1→ Write ! where a tie arc ends at a stem without note heads. All notes in a chord will be tied. If the behavior of a tie should be controlled, use command t also.

2→ If needed, add a number (2 or higher) that represents how many of the smallest time units within a beat the stem will represent. The appropriate symbols (dots, triangles, or numbers) will be printed automatically.

Example: 4m !5 The receiving stem without note heads, will have a triangle and a dot.

Write !% for an abbreviated tie arc to appear both after the note/chord where it starts, and at the receiving stem that has no note heads.

Example: 4m !%

___&___ Pointers (#)

Write & to mark where a pointer from the preceding note/chord ends. A pointer looks like a slur with an arrowhead. A pointer indicates that notes that can be tied should be tied, and that notes that cannot be tied should be slurred. If needed, use command p to control the behavior of a pointer.

Example: 4mvg mgb.& Applies a pointer between the two chords.

Write &% for an abbreviated pointer arc to appear both after the note/chord where it starts, and at the receiving note/chord.

Example: 4mv mg.&%

___?___ Stem Direction (#)

Write ? to flip the stem direction. The default stem direction on a stave is up. If a stave has more than one part, the default direction for the part stated first, is up. The default for the next part is down. A third part would have up-stems by default; and so on, in an alternating fashion. The direction of each and every stem can always be precisely controlled with the stem direction command.

Example: 3m.? Flips the stem direction for this note, and for any subsequent notes/chords within the part, until the end of the measure.

___0 to 9___ Notes/Chords (#)

Note heads in a chord are analyzed from bottom to top and with respect to pitch. The note heads that belong to a specific octave, range from positions Do to Ta (referring to SaLaTa note names).

1→ Begin with the octave number for a note head (in a chord it refers to the lowest note head). Use scientific pitch notation (which means that Middle C belongs to octave 4). The octave number always reflects the actual sounding octave, even when all'ottava is used. The octave number, however, should be left out if it has been stated before (within the part, and within the measure), and if it does not need to be changed.

2→ Add a note (d p r n m f v s g l b t).

3→ Add an asterisk (*) if the gap to the next note head is more than twelve steps (an octave) above the previous note head. Add ** if the gap to the next note head is more than 24 steps above the previous note head, and so on. This generally means that * will be used when the interval between two neighboring notes in a chord exceeds one octave.

Example: 2d*r Do2 and Ro3.

4→ Add a + if the note should have an up-comma specifier/accidental. Add a - if the note should have a down-comma specifier/accidental. Once a key signature has been set, all notes that require specifiers will get those according to what has been set with command S. Here, however, they can be explicitly changed, or added as courtesy specifiers.

Example: 2n+ d-r Adds an up-comma to Na2, and a down-comma to Do2.

5→ If needed, add a number (2 or higher) that represents how many of the smallest time units within a beat the note/chord will have. The appropriate symbols will be printed automatically.

Example: 2a5 Note A2 will have a triangle and a dot near its stem.

___a___ Beam Connectors (#)(:)

Write a for an adjoining beam/beat connector that will connect with the preceding beat. Write a: to start a connector. Write a; to finish a connector. Write a:+ to force the connector to start from above. Write a:- to force the connector to start from below. Write a;+ to force the connector to finish from above. Write a;- to force the connector to finish from below. A connector will connect with the extended stem that sticks out of a beam, if possible; otherwise the connector will simply embrace a note/chord.

Example: 4m/m m.a/m Applies a connector between the two beams.
Example: 4m.a: m m.a; Applies a connector that embraces the three beats.
Example: 4m/m.a:+ 5s.a;- Applies a connector between the beam and Sa5. The connector will start from above the beam, and embrace Sa5 from below.

___b___ Beam Breaks (#)

Write b for a beam break.

Example: 4m.b/g Breaks the beam between Mo4 and Go4.

___c___ SaLaTa Chord Symbols (=)

1→ Write c for a chord symbol.

2→ Add the note name (d p r n m f v s g l b t).

3→ If one of the SaLaTa signs (circle = 369, tilde = 57, or the signs for chords 37 47 37X 47X) should be used, write the corresponding intervals in ascending order (X and Y should not be capital letters when written in this format).

Example: cd37x A Do37X chord where 37X will be replaced with the corresponding SaLaTa sign.

4→ If the chord symbol only contains interval numbers, write * followed by the interval numbers.

Example: cd*246 Do246

Chord symbols can have both a SaLaTa sign and interval numbers.

Example: cd57*x A Do chord symbol, with a tilde sign followed by X.

5→ If needed, add % and repeat steps 2 to 4 to write a compound chord (written on two rows with a horizontal divider line).

Example: cd47%r37 Puts Do47 over Ro37 (47 and 37 will be replaced with their respective SaLaTa signs).

___f___ Fingering Numbers (#)

Fingers are always numbered the same way in Modulo notation. The thumb equals 0, and the remaining fingers are 1, 2, 3, and 4, for both hands, and irrespective of musical instrument. A loose string on a stringed instrument is marked as n.

• For Single Notes:

Write f followed by the finger number that the note will get. Associate with a note. Use two finger numbers separated by a plus sign for finger switches.

Example: 4m.f3 Finger number 3 will be applied to note Mo4.
Example: 4m.f2+3 Note Mo4 gets finger numbers 2 and 3, with a small tie between the numbers.

• For Chords:

Write f followed by the finger numbers one after another. Use two finger numbers separated by a plus sign for finger switches. The two numbers will be assigned to a single note in the chord.

Example: 4ltd.f234 La4 gets finger number 2, Ta4 gets finger number 3, and Do5 gets finger number 4.
Example: 4lt.f23+4 Note La4 gets finger number 2, and note Ta4 gets finger numbers 3 and 4, with a small tie between the numbers.

___g___ Piano Pedal Marks (=)(:)

Write g: for a piano pedal mark (a line will follow after the pedal mark). Write g; if the line finishes. Write g% for a release/depress. Write g associated with a note if only a pedal mark without a line is needed.

Example: 4m.g: m.g% m.g;

___h___ Horizontally Extending Objects (#)(:)(<>)

• All’ottava:

Write ha for an All’ottava with a dashed line. If needed, add a number that designates the number of octaves. If needed, add a minus sign if the all'ottava lowers pitch.

Example: 4m.ha Puts All’ottava over Mo4.
Example: 4m.ha:2- m.ha; Lowers the two successive notes by two octaves.

• Horizontal Brackets:

Write hb for a (square) horizontal bracket. If needed, add text inside curly brackets.

Example: 4m.hb:{dolce} f.hb; Puts a horizontal bracket above notes Mo4 and Fa4, with text dolce.

• Crescendo and Diminuendo Wedges:

Write hc for a crescendo wedge. Write hd for a diminuendo/decrescendo wedge.

Example: 4m.hc: m.hc; Yields a crescendo wedge that begins at note Mo4, and ends at Ta4.

• Glissando Lines:

Write hg for glissando line(s). All notes (or as many as possible) in a chord will have glissando lines. If needed, add text inside curly brackets.

Example: 4m.hg:{gliss.} t.hg; Yields a glissando line that begins at note Mo4, and ends at Ta4.

• Dotted Lines:

Write hj for a dotted line.

Example: 4m.hj: t.hj; Yields a dotted line between Mo4 and Ta4.

• Roman String Numerals:

Write hr followed by the string number. The string number will be translated into the corresponding Roman numeral. A dashed line follows after the numeral.

Example: 4r.hr:3 r.hr; Yields III, followed by a dashed line, above the two notes.

• Wavy Lines:

Write hw for a wavy line. If needed, add text inside curly brackets.

Example: 4m.hw:{shake} m.hw; Yields the text, followed by a wavy line above Mo4 and Ta4.

___i___ Signs (#)(:)

• Regularly used Signs. See command u, and I, also.

Write iz for Firmata. Write im for a mordent. Write im2 for an inverted mordent. Write it for a turn. Write it2 for a turn with a vertical line in the middle.

• Instrument Specific Signs:

Write ip for a left hand pizzicato (+). Write ip2 for a snap pizzicato. Write ib for Bouché (+). Write io for Ouvert (o). Write iu for Sull'arco = up bow (V). Write id for Giù arco = down bow.

• Staccato:

Write i for a staccato dot. Write iw for a staccatissimo wedge.

• Tenuto/Portamento:

Write in for a tenuto dash.

• Accents:

Write ia for marcato (>). Write ir for a strong accent (^). Write iv for martelato (v).

• Flageolets:

Write if for a flageolet circle.

___j___ Join Notes/Chords with Horizontal Brackets (#)

If two note heads in a chord occupy the same vertical position on the stave and cannot be handled by the default procedure (see the note/chord command), write this instead as two separate notes/chords joined by a horizontal bracket. Write j in association with the second note/chord. The second note/chord will thus be played at the same time as the first note/chord.

Example: 4d d.j.up Yields Do4, and Do4 raised by a comma (see microtonal signs), joined by a horizontal bracket.

___n___ Beam Courtesy Numbers (#)(:)

Write n for an explicit beam courtesy number.

Example: 4m.n/m/m/m/m Writes out beam courtesy number 5.

___o___ Ornaments (#)(:)

• Stemless Note Heads:

Write of for any stemless note heads that follow after a note or chord. Add as many stemless note heads as needed, using the same syntax as for regular notes or chords.

Example: 4m.of4f4v Adds two stemless note heads in a row (Fa4 and Vo4) after the note Mo4.

Write og for any stemless (grace) note heads that precede a note or chord. Add as many stemless note heads as needed, using the same syntax as for regular notes or chords.

Example: 4m.og4r4n Adds two stemless note heads in a row (Ro4 and Na4) before note Mo4.

• Tremolo Bars on a Stem:

Write om followed by a number to put as many tremolo bars on the stem of a note as the number indicates.

Example: 4m.om3 Puts three tremolo bars on the stem of note Mo4.

• Trills:

Write ot for a trill. The command should be associated with a trill note. Add an auxiliary note (the auxiliary note will be written as a stemless note head inside parentheses).

Example: 4m.ot4f A trill with trill note Mo4, and auxiliary note Fa4.

Write ow for a trill followed by a wavy line. The command should be associated with a trill note. Add an auxiliary note (the auxiliary note will be written as a stemless note head inside parentheses).

Example: 4m.ow4f A trill with trill note Mo4, and auxiliary note Fa4.

___p___ Pointer Control (#)(<>)

1→ Write p to control a pointer, and add a number from 0 to 9 to specify how the pointer should behave. Odd numbers make the pointer arch upwards. Even numbers make the pointer arch downwards. 0 or 1 makes the pointer start/stop near the lowest point of the stem. 8 or 9 makes the pointer start/stop near the highest point of the stem. 4 or 5 makes the pointer start/stop at the midpoint of the stem. All other values (2, 3, 6, and 7) are intermediary.

Example: 4mv.p0 mg.&.p8 Forces the pointer to arch downwards, and start near the lowest point of the stem. The pointer then ends near the highest point of the receiving stem.

2→ If needed, add a position (<>).

Example: 4mv.p0<b> mg.& Forces the pointer to reach a vertical position, at a point halfway along its horizontal extension, where a note head of Bo4 would have been positioned.

___q___ Transfer Up or Down (#)(:)

1→ Write qd to transfer a note (or all notes in a chord) to the next stave below.

Example: 2m.qd Puts note Mo2 on the next stave below (in a system of staves).

2→ If needed, add a number if a maximum number of notes should be transferred down.

Example: 2mst.qd2 Puts notes Mo2 and Sa2 on the next stave below.

1→ Write qu to transfer a note (or all notes in a chord) to the next stave above.

Example: 4m.qu Puts note Mo4 on the next stave above (in a system of staves).

2→ If needed, add a number if a maximum number of notes should be transferred up.

Example: 4mst.qu2 Puts notes Sa4 and Ta4 on the next stave above.

___s___ Slur Control (#)(<>)

Write s to control a slur, and add a number from 0 to 9 to specify how the slur should behave. Odd numbers make the slur arch upwards. Even numbers make the slur arch downwards. 0 or 1 makes the slur start/stop near the lowest point of the stem. 8 or 9 makes the slur start/stop near the highest point of the stem. 4 or 5 makes the slur start/stop near the midpoint of the stem. All other values (2, 3, 6, and 7) are intermediary.

Example: (4d.s0 r.s4) Forces the slur to arch downwards, and start near the lowest point of the stem. The slur then ends near the midpoint of the receiving stem.

Write s and add a vertical position if a slur that passes by another note should be controlled at that point.

Example: (4d r.s<b> m) Forces the slur that passes above Ro4 to be vertically positioned where a note head of Bo4 would have been positioned.

___t___ Tie Control (#)(<>)

1→ Write t to control a tie, and add a number from 0 to 9 to specify how the tie should behave. Odd numbers make the tie arch upwards. Even numbers make the tie arch downwards. 0 or 1 makes the tie start near the lowest point of the stem. 8 or 9 makes the tie start near the highest point of the stem. 4 or 5 makes the tie start at the midpoint of the stem. All other values (2, 3, 6, and 7) are intermediary.

Example: 4m.t0 ! Forces the tie to arch downwards, and start near the lowest point of the stem.

2→ If needed, add a position (<>).

Example: 4m.t0<b> ! Forces the tie to reach a vertical position, at a point halfway along its horizontal extension, where a note head of Bo4 would have been positioned.

___u___ Signs that Affect Individual Note Heads (#)(:)

• Asterisks:

1→ Write ua for an asterisk. All notes in a chord are affected if step 2 is not followed through.

Example: 4m.ua Note Mo4 gets an asterisk.

2→ If needed, add the equivalent of a chord if individual note heads in a chord are targeted. Define what the asterisk means with a separate text command, for example: 3m.{*Prima Voce}

Example: 4stdrm.ua4stdm Notes Sa4, Ta4, Do5 and Mo5 get asterisks.

• Microtonal Signs:

1→ Write u followed by a number that represents the number of half comma signs that the microtonal signs are equal to.

2→ Add + for a raised pitch. Add - for a lowered pitch.

Example: 4m.u2+ Raises note Mo4 one comma (=23 cents).
Example: 4m.u1- Lowers note Mo4 by half a comma.
Example: 4m.u6- Lowers note Mo4 by three commas.
Example: 4m.u5+ Raises note Mo4 by two and a half comma.

3→ If needed, add the equivalent of a chord if individual note heads in a chord are targeted.

Example: 4stdrm.u2+4stdm Notes Sa4, Ta4, Do5 and Mo5 are all raised by one comma.

• Parenthesized Note Heads:

1→ For single notes: Write ub in association with a note command. If the note command represents a chord, all notes in the chord will be parenthesized.

Example: 4m.ub Note Mo4 will be written inside parentheses.

2→ If needed, add the equivalent of a chord if individual note heads in a chord are targeted.

Example: 4gtd.ub4gt Notes Go4 and Ta4 will be parenthesized.

___v___ Vertically Extending Objects (#)(:)

• Wavy Line Arpeggio:

Write va for a vertical wavy arpeggio line. Write va+ for a vertical wavy arpeggio line that is specifically marked to be upwards directed. Write va- for a vertical wavy arpeggio line that is specifically marked to be downwards directed. Write vau for a vertical wavy arpeggio line that is to be joined with the arpeggio on the stave above. Write vad for a vertical wavy arpeggio line that is marked to be downwards directed, and that is to be joined with the arpeggio on the stave above.

Example: 4mtd.va Applies a vertical wavy arpeggio line to the chord.

• Straight Line Arpeggio:

Write vr+ for a straight vertical arpeggio line with an upwards pointing arrow. Write vr- for a straight vertical arpeggio line with a downwards pointing arrow. Write vru for a straight vertical arpeggio line that is to be joined with the arpeggio line on the stave above. Write vrd for a vertical arpeggio line with a downwards pointing arrow, and that is to be joined with the arpeggio on the stave above.

Example: 4dsd.vru

___y___ Stem Length (#)(:)

Write y followed by a number that represents the desired stem length in stave units.

Example: 4m.y12 Note Mo4 will have a stem length equal to 12 stave units.

The stem length command will only be applied to the first and last stem of a beam. The beam itself does not make part of stem length.

___z___ Rests (#)

1→ Write z for a rest sign. Write zi for an invisible rest. Write zm for a multi-rest.

2→ If needed, add a number (2 or higher) that represents how many of the smallest time units within a beat the rest will have. The appropriate symbols will be printed automatically. In case it's a multi-rest, the number instead signals how many measures the rest will last.

Example: z2 The rest will have a dot near its stem.
Example: z5 The rest will have a triangle and a dot near its stem.
Example: zm3 A multi-rest that lasts three measures.

___A___ Assign Stave Braces (G)

Put stave IDs in square brackets to assign staves to individual groups, where each group will have its own stave brace. Such stave braces will be linked together with straight vertical lines.

Example: A[vi1,vi2][br1,br2] Creates two groups with two staves in each. The topmost stave will be vi1, and so on. Note that a group could also just contain one stave.

Instrument labels for each group (that will appear to the left of staves and their stave braces) can be added after each stave or group.

Example: A[vi1,vi2]{Violins}[br1,br2]{Brass} Creates two groups with two staves in each. Each group is also labeled (Violins and Brass, respectively).
Example: A[vi1{I},vi2{II}]{Violins} Creates one group containing two staves. The group label is: Violins. Each stave has its own label (I and II, respectively).

___B___ Specific Bar Lines (G)

1→ Write B to address the next bar line.

2→ Add d for a double bar line. Add e for a (double) ending bar line. Add i for an invisible bar line.

Example: Bd Turns the next bar line (on all staves) into a double bar line.

___C___ Clefs (=)

Write C followed by the clef number (0 to 9).

Example: C4 The stave gets clef 4.
Example: C[*]234 Yields clefs 2, 3, and 4, respectively, for all three staves in use.

___D___ Dispensable Staves (=)

In this file format, it is not possible beforehand to know where a certain measure will appear on the page. A stave that contains no printable information for the duration of a whole measure can be flagged for potential omission with this command. Only if all measures of a specific stave happen to end up on the same line of music, and they all have this command, that stave on that line will be omitted. For example, in piano music it is common to sometimes have two staves per line, and then maybe three staves on the next line. As soon as there is no printable information for a certain stave throughout a line of music, these commands will remove that unnecessary stave.

Example: D The stave is marked as dispensable in this measure.

___F___ Fonts (G)

1→ Write Font followed by a font number to define a font. If font 0 is defined, it will be used as the default font.

2→ If needed, add parameters inside parentheses: i = italic, b = bold, s = superscript, u = subscript. Separate parameters with commas (insert no spaces). The text size can be added as a parameter in the form of a number or as a ratio: for example, 2 means that the text will be two stave units tall; 25%10 means that the text will be 2.5 stave units tall.

3→ Add the font name inside curly braces.

Example: Font2(i,b,23%10){Times New Roman} Defines a bold and italic Times New Roman font, size 2.3 stave units.
Example: Font3(i,26%10) Will not specify what font will be used, but the size will be 2.6, and it’s italic.

___H___ Horizontal Compression (G)

Write H followed by a number, %, and another number, to alter the horizontal compression of the music.

Example: H98%100 The overall horizontal compression will be 98% of the default compression that a particular software uses.
Example: H1025%1000 There will be an expansion to 102.5%
Example: H3%4 There will be a reduction to 75%

The H command could be useful for adapting the music with respect to the pages. Let’s say that a computer program outputs two pages, where the second page only has one measure in it. Then, if a suitable compression is applied, the whole composition could instead be rendered in just one page. Or, let’s say that a composition only almost reaches the end of the page, then a suitable expansion could be applied to fill the entire page. Please note that a compression that works well with one particular software version can not be expected to yield the same results with another version. To get the desired result, some trial and error with various numbers may be necessary.

___I___ Intervening Signs (=)

Write Ia for an ampersand (&).

Example: 3m Ia m Puts an ampersand between the two notes. The ampersand is inserted between phrases.

Write Ib for a breath mark (drop-shaped).

Example: 3m Ib m Puts a breath mark between the two notes. The breath mark borrows time from the preceding note/chord.

Write Ic for a caesura mark (//). The caesura inserts a short pause that will slightly delay the rhythm.

Example: 3m Ic m Puts a caesura mark between the two notes.

Write Id for three vertically aligned dots.

Example: 3m Id m Puts three vertically aligned dots between the two notes. This command may be used together with command Ia.

Write Ir for a dotted polyrhythm delimiter. A polyrhythm delimiter should consist of only four points: two points between the stave lines, one point just above the upper stave line, and one point just below the lower stave line.

Example: 3m Ir m Puts a delimiter between the two notes.

Write Is for a simile mark (/) that repeats the latest beat. The simile mark is a broad slash that fits perfectly between the two stave lines. The command can be repeated with command X.

Example: 3m Is Puts a simile mark between the two notes.

___J___ Jump Instructions (G)

Associate this command with bar line command Bd.

1→ Write Jb for a ← (jump back) instruction. Write Jf for a → (jump forward) instruction. Write Je for a ⊣ (jump to the end bar) instruction. Write Ja for a jump anchor.

2→ Add the anchor designations (the appropriate arrow, or the rotated T, or the colon, will be automatically added).

Examples: Bd.Jb1 Bd.Jf4-6,8 Bd.Je Bd.Ja1

___K___ Key Signatures (=)

Write K followed by the key signature.

Example: KbVo The key signature for this stave is bVo

If one or a few staves should have a deviating key signature, add the corresponding stave IDs inside square brackets, followed by a key signature.

Example: K[*]nDo[vi1,vi2]nFa[br]nSa All staves except vi1, vi2, and br get key signature nDo

___M___ Time Signatures (=)

Write M followed by the number of beats per measure. It's also possible to construct time signatures by introducing plus signs. If the number of beats is allowed to vary from measure to measure, separate numbers with %. If all measures take up an equal amount of time, but the number of beats within each measure varies, write e for an equals sign.

Example: M3 Yields 3
Example: M2+3+3 Yields 2+3+3
Example: M2%3 Yields 2/3
Example: M3e4 Yields 3=4

If one or a few staves should have a deviating time signature, add the corresponding stave IDs inside square brackets, followed by a time signature.

Example: M[*]3[vi1,vi2]4[br]2 All staves except vi1, vi2, and br get time signature 3

___R___ Rehearsal Measure Numbers (G)

Write R to put the rehearsal number, according to the measure number, above the bar line. Write Rb for a rehearsal number in a box. Write Ro for a rehearsal number in an oval.

___S___ Specifier Default Type (=)

Write S+ if specifiers (accidentals) by default should be up-commas. Write S- if specifiers by default should be down-commas. Write S to force courtesy specifiers for all applicable notes. Specifiers can be overridden inside note/chord commands. A specifier command should appear after a new measure (|) command, and before any note/chord commands.

___V___ Controlling Staves (=)

• Indent the Stave(s):

1→ Write VIndent for an arbitrary initial stave indentation.

Example: VIndent An arbitrary indentation.

2→ If needed, add a parenthesis containing the desired stave indentation in stave units (specifies how much the first line of music will be indented in comparison to the following lines of music; measured between points at which stave lines begin; the height of a note head equals two stave units). This command is only necessary when to override the interpreting computer program's preset indentation.

Example: VIndent(45) An indentation equal to 45 stave units.

• Smaller Stave:

Write V followed by the affected stave IDs between square brackets (separate with commas if there is more than one ID). Then add the word Smallstave.

Example: V[v1,v2]Smallstave Staves v1 and v2 will be of the smaller kind.

• Stave Space:

Write V followed by two stave IDs between square brackets (separate with a comma). Then add the word Stavespace followed by a parenthesis containing the number of stave units between two successive staves (the height of a note head equals two stave units). The distance is measured between the closest stave lines of two neighboring staves.

Example: V[v1,v2]Stavespace(35) Staves v1 and v2 will be 35 stave units apart.

___X___ Repeat the Latest Beat (#)

Write X to repeat the latest command (or entire group of commands) for a beat. Add a number (2 or higher) that describes how many times to repeat.

Example: 4dms/dms X2 The same as 4dms/dms dms/dms
Example: 4dms.i X3 The same as 4dms.i dms.i dms.i

___Z___ Apply to Staves (=)

Write Z followed by a command which will then be applied to all available staves. Add stave IDs inside square brackets to address individual staves. To, for example, write a Firmata sign above a double bar line on all staves, write instead: Bd.iz

Example: Z.iz Writes a Firmata sign above all staves.
Example: Z[vi1,vi2].iz The two designated staves each get a Firmata sign.

Text

___{ }___ Text (<>)

Text is written inside curly braces. A backslash (\) represents a line break.

• Regular text:

Example: {Some text} Plain text.
Example: {Adagio}t A tempo markings text.
Example: {calmo}m A mood markings (with a tempo connotation) text.
Example: {rallentando}g A gradual tempo change text.

• Stretched out text:

A text can also be split into smaller segments, distributed across several notes. Adding the vertical position ensures that all segments will appear along the same line.

Example: 4m.{es-}<5d> m.{-press-}<5d> m.{-ivo}<5d>

Write d to format the text into a dynamics mark.

Examples: {p}d (piano), {pp}d (pianissimo), {f}d (forte),
{ff}d (fortissimo), {mf}d (mezzoforte), {sf}d (sforzando), {sfp}d
(sforzandopiano), {sfz}d (sforzato), {fz}d (forzando/forzato), {rf}d
(rinforzando), {rfz}d (rinforzato), {fzp}d (forzatopiano), {ffz}d,
{fffz}d, {ffffz}d, {sff}d, {sfff}d, {sffff}d

A font, being defined with command Font, can be invoked like this: {some text}f2 uses font number 2 to write the text. Texts can also be concatenated by putting them together. They can then be rendered with different fonts.

Example: 4m.{some }f3{text} The first word would be written in italics if the font f3 has been defined with that property.

An asterisk (*) points to where an associated note/chord/rest etc will be situated in relation to the text (if not used, the text will instead begin at the associated note/chord/rest).

Example: 4m.{some arbitrary }*{text}

Comments (without any other function than being a comment) can be written like this: {A comment}%

If an ending curly brace, }, should be included in a text, replace it with two ending curly braces: }}

Example: 4m.{a{b}}} Yields the text: a{b}

• Lyrics:

Write the lyrics for a complete measure, and state the row number. Spaces and slashes in the text are matched with spaces and slashes between commands. Write _ for a melisma. Write a dash after syllables if the word is split up into syllables.

Example: 3m m m m {you are my friend}1
Example: 3m m m.t m {want to sing _}1
Example: 3m m m m {roll- ing a- way}1
Example: 3m/m m/m {shall/make every-/thing}1

If in one of the verses a note matches no word or syllable in the lyrics, write a dash in that corresponding place.

Example: 3m m m {sing - along}2

If texts are concatenated when describing lyrics, the first part will precede the main part.

Example: 4m m {2.}{yeah yeah}2

More than one verse number can share the same text.

Example: {what a wonderful day}2%3 The words are shared by verses 2 and 3, and are thus only written once (between line 2 and 3).

If needed, add a font.

Example: 3m m m {here we go}1f3 Writes the text in italics if font 3 has been specified with that property.

Complete verses can also be described. Add a number to indicate the verse number.

Example: {It was a sunny day\It was in early May}V2 Writes out a complete verse.

• Text Area Designations:

TL
TR

T
L
C

(room for music)

V
BL
BR

TL = Top Left, TR = Top Right, T = Title, L = Lyrics, C = Composer, V = Verses, BL = Bottom Left, BR = Bottom Right.

State the desired text area, from the table above, after the curly braces. The table represents the page layout. Examples: {Summer Song}T {W. Peterson-Berger}C {Copyright©Nydana}BL

%comment f2 etcset a font
<4a> etcvertical position *center indication
ddynamics mark ttempo marking
mmood marking ggradual tempo change

©Nydana, Sweden