The GUIDO Music Notation Format

Version 1.0
Specification Part 1: Basic GUIDO

Technical Report TI 20/97
Fachbereich Informatik
Technische Universität Darmstadt
Darmstadt, Germany


Holger H. Hoos
Fachbereich Informatik
Technische Universität Darmstadt
Alexanderstr. 10
D-64283 Darmstadt, Germany
Email: hoos@informatik.th-darmstadt.de
Keith A. Hamel
School of Music
University of British Columbia
6361 Memorial Road
Vancouver, BC, V6T 1Z2, Canada
Email: hamel@unixg.ubc.ca


Outline


1 Introduction

The GUIDO Notation Format is a general purpose formal language for representing score level music in a platform independent, plain-text and human-readable way. It is based on a conceptually simple but powerful formalism; its design concentrates on general musical concepts (as opposed to notational, i.e, graphical features). A key feature of the GUIDO design is adequacy, which means that simple musical concepts should be represented in a simple way and only complex notions should require complex representations.

In the present version, GUIDO supports most of the commonly used concepts of conventional music notation; however, it is designed to be a flexible and easily extendable open standard. Various extensions of the Basic GUIDO Notation Format include mechanisms for representing musical structure, abstract scores, micro-tonal music, and generalized timed events (for multi-media support). These extensions will be specified in subsequent versions of this document.

GUIDO has not been developed with a particular application in mind but to provide an adequate representation formalism for score-level music over a broad range of applications. The intended application areas include notation software, compositional and analytical systems and tools, large musical databases, performance systems, and music on the World Wide Web.

The GUIDO Notation Format has been developed by Holger H. Hoos, Technical University of Darmstadt, Germany and Keith Hamel, University of British Columbia in Vancouver, Canada; some features are based on discussions with Michael Fuhlbrügge, Kai Flade, Thomas Helbich and Jürgen Kilian. It is named after Guido d'Arezzo (990-1050), a renowned music theorist of his time and important contributor to today's conventional musical notation (CMN). His achievements include the perfection of the staff system for music notation and the invention of solmisation (solfege).

The GUIDO Notation Format is publicly and freely available; it can and should be freely used for arbitrary scientific, educational or commercial purposes. However, the GUIDO Notation Format specification remains the intellectual property of the authors of this document. It is our wish that every publicly available software supporting GUIDO and every extension of GUIDO as specified in this document should be brought to our attention.


2 Basic GUIDO Notation

Basic GUIDO Notation covers the representation of notes, rests, accidentals, single- and multi-voiced music and the most common concepts from conventional music notation such as clefs, meter, key, slurs, ties, beaming, stem directions, etc.

2.1 Notes and Rests

The general syntax for representing notes is

notename accidentals octave duration

the corresponding represention for rests is

'_' duration

Both notes and rests are instances of GUIDO events; in particular, rests are treated as special notes, which have a duration but neither accidentals nor an octave value.

Octave and duration can be omitted; if so, they are inferred from preceeding notes (or rests) within the same sequence or chord (for details, see below) or assumed to have standard values (see below) when required (such as for musical playback or notation).

2.1.1 Notenames

There are different systems of notenames:
  1. c d e f g a h/b (diatonic)
  2. c cis d dis e f fis g gis a ais h/b (chromatic)
  3. do re me fa sol la si/ti (solfege)

Remarks:

2.1.2 Accidentals

accidentals is an arbitrary sequence of the symbols '#' and '&' (for sharp and flat); in particular, '##' is a double sharp, '&&' a double flat.

Remarks:

2.1.3 Octave

octave is an integer number indicating the octave of the note, where a1 is the 440Hz a. All octaves start with the pitch-class c, so c1 is the c just below a1.

Remarks:

2.1.4 Duration

duration is specified in one of the forms
  1. '*'enum'/'denom dotting
  2. '*'enum dotting
  3. '/'denom dotting
where enum and denom are positive integers and dotting is either empty, '.', or '..'; if no dots are present, the relative duration of the notes is assumed to be Succeeding the duration by Remarks: General remarks: Examples:
  d1*3/4
  c#-1/8
  h&/6
  _*2
  c&&2/2.
  cis/4..
  fa##1
  sol&0


2.2 Tags and Tagged Ranges

Tags are used to represent additional musical information, such as slurs, clefs, keys, etc. A tag has one of the forms
  1. '\'id
  2. '\'id'<'param-list'>'
  3. '\'id'(' note-series ')'
  4. '\'id'<'param-list'>' '(' note-series ')'
where Remarks: Examples:
  \bar  % barline
  \clef<"g2"> % treble clef
  \slur(c1/4 d e) % slurred group
  \label<"motive A">(g1/2 f#/4 g g#/2)  % named sequence


2.3 Note Sequences

A note sequence is of the form '[' tagged-notes ']' where tagged-notes is a series of notes, tags, and tagged ranges separated by white space. Note sequences represent single-voiced scores. Remarks: Examples:
  [ a1*1 ]      % single note
  [ c1/4 d e f g a h c2/2 ] % C major scale

  % short motive with meter, barlines and a slur:
  [\meter<"4/4"> f0/4 \bar c1/2 \slur(e&/4 c) \bar g/2]


2.4 Chords and Chord Sequences

A chord is denoted by '{' note-list '}' where note-list is a list of (possibly tagged) notes separated by commas. Remarks: Examples:
  {c1/4., e&1/4., g1/4.}  % c minor triad , ascending order
  {c1/4.,e&,g}      % same as above, abbreviated notation
  {c#1/4,e#,g#}     % C-sharp major triad, ascending order
  {c2, dis1, ais0, fis}   % four-voice chord, descending order

Chord Sequences

A chord sequence is a generalised note sequence, where instead of individual notes, chords may also appear. Remarks: Examples:
  [ {c1/4,e,g} {c,f,a} {d,f,h} {c1/2,g1,c2} ] % progression of triads
  [ _/8 \slur(c1 d e) {fis/2, ais} e/2 ]    % mixed notes and chords


2.5 Note Segments

Note segments represent multi-voiced scores; they are denoted by '{' seq-list '}' where seq-list is a list of note sequences separated by commas. It is assumed that all voices start simultaneously. Normally, the sequences should have equal durations; if this is not the case, the duration of the segment is the duration of the longest voice within the segment; all other voices are interpreted as if they were succeeded by additional rests which compensate for the difference between their duration and that of the segment. Remarks: Examples:
  { [a0/4 h \slur(c1/8 h0) a/4],    % first voice
    [c1/4 d e/2],         % second voice
    [e1/8. \slur(f/16 e/8) d c h0 a/4] }  % third voice


2.6 Comments and Spacing

White space, i.e, any combination of blank-, newline-, or tab-characters, can be inserted everywhere except within note- or tag-names. The use of white space is discouraged in the following situations: White space is required in the following instances:

Comments

Comments can be inserted everywhere where white space is allowed. A comment is preceeded by '%' and extends to the end of the line it started in. Thus, lines beginning with '%' are comment-lines. Alternately, '(*' comment '*)' can be used for specifying comments. This form of comments can include multiple lines and may be nested.

Examples:

% a comment-line

a0/4 h \slur(c1/8 h0) % a/4 <-- the last note is commented out

[ c1/4   (* comment starts here ...
  d e f  <-- part of the comment!
  ... ends here *) d ]   % the sequence has only two notes!


2.7 Standard Tags

The following tags have standard interpretations in GUIDO Basic Notation:

\intens, \i, \cresc, \dim, \crescBegin, \crescEnd, \dimBegin, \dimEnd, \tempo, \accel, \rit, \accelBegin, \accelEnd, \ritBegin, \ritEnd, \instr, \tie, \slur, \sl, \stacc, \accent, \ten, \marcato, \trill, \mord, \turn, \trem, \fermata, \grace, \cue, \repeatBegin, \repeatEnd, \clef, \meter, \key, \oct, \staff, \beam, \bm, \beamsAuto, \beamsOff, \stemsAuto, \stemsUp, \stemsDown, \bar, \doubleBar, \tactus, \text, \t, \title, \composer, \mark, \label.

These standard tags and their usage are explained in the following sections.

2.7.1 Dynamic markings

\intens<s>
indicates a dynamic marking s

\i<s>
shorthand for \intens<s>

\intens<s,r>
indicates a dynamic marking s and associates it with an absolute intensity value of r; r is a floating point number between 0.0 (minimal intensity) and 1.0 (maximal intensity) in standard (not scientific!) notation.

\i<s,r>
shorthand for \intens<s,r>

\cresc(notes)
indicates an unspecific crescendo on notes.

\cresc<s>(notes)
indicates a crescendo starting from the current dynamic marking to dynamic marking s on notes.

\cresc<s,r>(notes)
indicates a crescendo starting from the current dynamic marking to dynamic marking s with associated absolute intensity value of r (see above) on notes.

\crescBegin
indicates the beginning of a crescendo section which ends at the next \crescEnd tag; the crescendo starts from the current dynamic marking.

\crescEnd
indicates the end of an unspecific crescendo section which began at the last \crescBegin tag.

\crescEnd<s>
indicates the end of an crescendo section which began at the last \crescBegin tag; the crescendo ends with dynamic marking s.

\crescEnd<s,r>
indicates the end of an crescendo section which began at the last \crescBegin tag; the crescendo ends with dynamic marking s and associated absolute intensity value of r (see above).

\dim(notes)
indicates an unspecific diminuendo on notes.

\dim<s>(notes)
indicates a diminuendo starting from the current dynamic marking to dynamic marking s on notes.

\dim<s,r>(notes)
indicates a diminuendo starting from the current dynamic marking to dynamic marking s with associated absolute intensity value of r (see above) on notes.

\dimBegin
indicates the beginning of a crescendo section which ends at the next \dimEnd tag; the crescendo starts from the current dynamic marking.

\dimEnd
indicates the end of an unspecific diminuendo section which began at the last \dimBegin tag.

\dimEnd<s>
indicates the end of a diminuendo section which began at the last \dimBegin tag; the diminuendo ends with dynamic marking s.

\dimEnd<s,r>
indicates the end of an diminuendo section which began at the last \dimBegin tag; the diminuendo ends with dynamic marking s and associated absolute intensity value of r (see above).
Remarks: Examples:
[ \intens<"mf"> c2/2 \intens<"pp"> d1/2] % dynamic markings
[ \intens<"mf",0.5> c2/2 \intens<"pp",0.2> d1/2] % same with MIDI velocity
[ \cresc( a#0/4 g# c#1)] % unspecific crescendo
[ \intens<"mf"> \dim<"mp">( a#0/4 g# c#1)] % diminuendo with dynamic markings
[ \intens<"mf",0.6> \dim<"mp",0.3>( a#0/4 g# c#1)] % same with MIDI velocity
[ \intens<"mf",0.6> \dimBegin a#0/4 g# c#1 \dimEnd<"mp",0.3>] % same using \dimBegin, \dimEnd


2.7.2 Tempo indications

\tempo<s>
indicates a tempo marking s

\tempo<s,s2>
indicates a tempo marking s and associates it with an absolute tempo as specified by string s2; s2 is of the general form "x/y=n" where x/y is a duration value like 1/4 or 3/8 and n an integer number which indicates the number of these duration values per minute.

\accel(notes)
indicates an unspecific accelerando on notes.

\accel<s>(notes)
indicates an accelerando from the current tempo indication to s on notes.

\accel<s,s2>(notes)
indicates an accelerando from tempo current tempo to tempo indication s with associated absolute tempo as specified by string s2 (see above).

\accelBegin
indicates the beginning of a accelerando section which ends at the next \accelEnd tag; the accelerando starts from the current tempo.

\accelEnd
indicates the end of an unspecific accelerando section which began at the last \accelBegin tag.

\accelEnd<s>
indicates the end of an accelerando section which began at the last \accelBegin tag; the accelerando ends with tempo indication s.

\accelEnd<s,s2>
indicates the end of an accelerando section which began at the last \accelBegin tag; the accelerando ends with tempo indication s and associated absolute tempo as specified by string s2 (see above).

\rit(notes)
indicates an unspecific ritardando on notes.

\rit<s>(notes)
indicates a ritardando from the current tempo to tempo indication s on notes.

\rit<s,s2>(notes)
indicates a ritardando from the current tempo to tempo indication s with tempo indication s and associated absolute tempo as specified by string s2 (see above).

\ritBegin
indicates the beginning of a ritardando section which ends at the next \ritEnd tag; the ritardando starts from the current tempo.

\ritEnd
indicates the end of an unspecific ritardando section which began at the last \ritBegin tag.

\ritEnd<s>
indicates the end of a ritardando section which began at the last \ritBegin tag; the ritardando ends with tempo indication s.

\ritEnd<s,s2>
indicates the end of a ritardando section which began at the last \ritBegin tag; the ritardando ends with tempo indication s and associated absolute tempo as specified by string s2 (see above).
Remarks: Examples:
[ \tempo<"Moderato"> c2/2 d1/2] % tempo indication
[ \tempo<"Moderato","1/4=60"> c2/2 d1/2] % same with absolute tempo
[ \rit( a#0/4 g# c#1)] % unspecific ritardando
[ \accel<"Presto">( a#0/4 g# c#1)] % accelerando
[ \accel<"Presto","1/2=160">( a#0/4 g# c#1)] % same with absolute tempo
[ \accelBegin a#0/4 g# c#1 \accelEnd<"Presto","1/2=160">] % same using \accelBegin, \accelEnd


2.7.3 Instrument

\instr<s>
sets instrument for current voice to s.

\instr<s,s2>
sets instrument for current voice to s and associates it with the instrument specified by s2; MIDI instrument codes can be accessed by values like "MIDI 3" (= MIDI instrument 3).
Remarks: Examples:
[ \instr<"Flauto 1"> c1/2 e&/4 e& | _ f a&/2 ]
[ \instr<"Piano", "MIDI 0"> 0/8 h | c1/2 c/4 | c/2. ]   % with MIDI code
[ \instr<"Cl 1 (in A)">  d&/2 g&/4 _ \instr<"BCl"> e&-1/1 ] % instrument change


2.7.4 Ties

\tie(notes)
ties notes together, only to be used for two or more notes with identical pitch.
Remarks: Examples:
[ \tie(d1/4 d/16) e/8 ]  % ties the first two notes together
[ \tie(c#1/1 | c# | c#) ] % tied group with barlines


2.7.5 Slurs

\slur(notes)
slur encompassing the group notes

\sl(notes)
shorthand for \slur(notes)

\slur<dy1,dy2>(notes)
same as \slur(notes), but the slur begins dy1 halfspaces above the head of the first note and ends dy2 halfspaces above the head of the last note (upward slur for positive values, downward slur otherwise)

\slur<dy>(notes)
shorthand for \slur<dy,dy>(notes)

\sl<dy>(notes)
shorthand for \slur<dy,dy>(notes)

\slur<dx1,dy1, dx2,dy2,dx3,dy3>(notes)
three-control-point bezier slur encompassing notes; with control-points (x1+dx1,y1+dy1), (x1+dx2,y1+dy2), and (x2+dx3,y2+dy3), where (x1,y1) is the position of the head of the first note and (x2,y2) the position of the head of the last note in notes; the dx are measured in metric units (one metric unit always corresponds to a whole note), the dy in half-spaces.

\sl<dx1,dy1, dx2,dy2, dx3,dy3>(notes)
shorthand for \slur<dx1,dy1, dx2,dy2,dx3,dy3>(notes).
Remarks: Examples:
[ \sl(d1/4 e/16) f0/8 ]     % slur between first two notes
[ \slur<+10,+12>(d1/4 _ e/16) f0/8 ] % non-standard slur
[ \slur<0,+10, 0.25,+16, 0,+12>(c#1/4 g f#) ]  % 3-control-point bezier slur


[ \sl(c#1/4 e) \sl(g f#)) ]         % nested slurs


2.7.6 Accents and Expressive Markings

\stacc(notes)
indicates that notes are marked staccato

\accent(notes)
indicates that notes are accented

\ten(notes)
indicates that notes are marked tenuto

\marcato(notes)
indicates that notes are marked marcato (strongly accented)
Remarks: Examples:
[ e1/4 \stacc(e&/8 e) e/2] % a staccato group
[ e1/4 \ten(e&/8 d&) e/2] %  a tenuto group
[ \marcato(e1/4 e) f#/2] %  a marcato group
[ \accent(e1/4 e) f#/2] %  an accented group


2.7.7 Trills and Ornaments

\trill(chords)
indicates trills for each note in the first voice of chords; the second voice notes are the auxiliary notes for the trills

\trill<i>(chords)
same as above but specifies the trills to be executed as a sequence of 1/i notes

\mord(chords)
indicates mordents for each note in the first voice of chords; the second voice notes are the auxiliary notes

\mord<i>(chords)
same as above but specifies the mordents to be executed using 1/i notes

\turn(chords)
indicates turns for each note in the first voice of chords; the second and third voice notes are the auxiliary notes

\turn<i>(chords)
same as above but specifies the turn to be executed as a sequence of 1/i notes
Remarks: Examples:
[ e1/4 \trill({e&/4,f}) e/2] % an unspecific trill
[ e1/4 \trill<32>({e&/4,f}) e/2] % trill to be executed as 1/32 notes
[ e1/4 \trill<32>({e&/4,f} {c/2,c#}) e/2] % trill sequence
[ e1/4 \mord({e&/4,f}) e/2] % a mordent
[ e1/4 \mord<32>({e&/4,d}) e/2] % inverse mordent to be executed as 1/32 notes
[ e1/4 \turn({e&/4,f,d}) e/2] % a turn
[ e1/4 \turn<64>({e&/4,d,f}) e/2] % inverse turn to be executed as 1/64 notes


2.7.8 Tremolo

\trem(notes)
indicates (unmeasured) tremolo for all notes

\trem<i>(notes)
same as above but specifies the tremolo to be executed as a sequence of 1/i notes
Remarks: Examples:
[ e1/4 \trem(e&/4) e/2] % unmeasured tremolo
[ e1/4 \trem<32>(e&/4) e/2] % measured tremolo
[ e1/4 \trem<32>(e&/4 c/2) e/2] % tremolo sequence


2.7.9 Fermatas

\fermata
indicates a fermata at the current metric position (for use between notes)

\fermata(notes)
indicates fermatas for all notes
Remarks: Examples:
[ e1/4 \fermata e/2] % fermata between notes
[ c0/4 e d \bar \fermata e/2] %  fermata on barline
[ c0/4 e \fermata(d/2)] %  fermata on single note
[ c0/4 e \fermata(d/2 d#/2 e#/1)] %  fermata sequence


2.7.10 Grace Notes and Cue Notes

\grace(notes)
marks notes as grace notes preceeding the first note after notes.

\grace<i>(notes)
marks notes as grace notes with value 1/i preceeding the first note after notes.

\cue(notes)
marks notes as cue notes for the current voice.

\cue<s>(notes)
marks notes as cue notes played by instrument s.
Remarks: Examples:
[ \grace(g1 f) e/4 \grace(f) e/2] % grace notes
[ \grace<32>(g1 f) e/4 \grace(f) e/2] % 1/32 grace notes

[ \cue(d#1/4 d# d#) g#/2] %  unspecific cue notes
[ \cue<"Ob 1">(d#1/4 d# d#) g#/2] %  cue notes played by Oboe 1


2.7.11 Repetitions

\repeatBegin
indicates the beginning of a repeated section

\repeatBegin<i>
indicates the beginning of section which is played i times (the standard \repeatBegin corresponds to \repeatBegin<2>)

\repeatEnd
indicates the end of a repeated section

\repeatEnd<i>(notes)
indicates the end of a repeated section where notes are only to be played in the ith repetition
Remarks: Examples:
[ \repeatBegin c1/2 g/4 f ... e/4 g/2 \repeatEnd ] % simple repetition
[ \repeatBegin c1/2 g/4 f ... \repeatEnd<1>(e/4 g/2) e&/4 f e& ] % simple repetition with variant ending
[ \repeatBegin<3> c1/2 g/4 f ... e/4 g/2 \repeatEnd ] % multiple repetition

[ \repeatBegin<3> c1/2 g/4 f ... \repeatEnd<1>( e/4 g/2 )
  \repeatEnd<2>( e/4 g f ) e&/4 f e& ] % same with variant endings


2.7.12 Clefs

\clef<s>
sets clef s, where s is a string indicating the form of the clef ("g","f","c","perc" = percussion, "gg" = double g-clef) and the position within the staff ("1" for lowest line, ..., "5" for highest line). Optionally, this can be succeeded by "+8","-8", "+15","-15" for transposed clefs (octave or double octave up or down).
Remarks: Examples:
  \clef<"f"> or \clef<"f3"> or \clef<"basso"> % bass clef
  \clef<"g2-8">                    % transposed treble clef
  \clef<"gg"> or \clef<"gg2">      % double g2 clef


2.7.13 Meter / Time Signatures

\meter<s>
sets time signature to s, where s is of the form "n/m" for positive integers n,m.
Remarks: Examples:
  \meter<"2/4">   % 2/4 meter
  \meter<"3/8">   % 3/8 meter
  \meter<"C">   % 4/4 meter with C time signature


2.7.14 Key / Key Signatures

\key<i>
sets key signature to i sharps, if i is positive, to |i| flats, if i is negative. For i=0, the key signature contains no sharps or flats.

\key<s>
indicates a key of s, where s is of the form "n", "n#" or "n&" for any note name n. Uppercase and lowercase letters are used to denote major and minor modes, respectively.
Remarks: Examples:
  \key<0>     % no sharps or flats
  \key<-3>    % 3 flats, E& major or c minor
  \key<+2> or \key<2>  % 2 sharps, D major or b minor
  \key<"C">   % C major, no accidentals
  \key<"e&">    % e& minor, 6 flats


2.7.15 Octava transpositions

\oct<i>
indicates beginning of a section which is transposed by i octaves upwards.

\oct<i>(notes)
indicates transposition of notes by i octaves upwards.
Remarks: Examples:
[ h2/4  \oct<+1> c2 e/2 \oct<0> e1/2]  % 8va transposition
[ h2/4  \oct<+1>( c2 e/2 ) e1/2]  % same, using different notation
[ h1/4  \oct<-2>( d0 e/2 ) e1/2]  % 15ma bassa


2.7.16 Staves

\staff<i>
assigns the voice it appears in to staff number i

\staff<str>
assigns the voice it appears in to staff named str.
Remarks: Examples:
{ [\staff<1> e1/8. \slur(f/16 e/8) d c h0 a/4],  % first voice

  [\staff<1> c1/4 d e/2],         % second voice, same staff
  [\staff<2> a0/4 h \slur(c1/8 h0) a/4] }    % third voice, separate staff



2.7.17 Beams

\beamsAuto
sets beaming to automatic mode; automatic beaming usually depends on the meter.

\beamsOff
switches beaming off, i.e., only explicitly beamed notes will be beamed.

\beam(notes)
beam notes; can be nested to enforce non-standard beam groupings.

\bm(notes)
shorthand for \beam(notes)

\beam<dy1,dy2>(notes)
same as \beam(notes), but specifies the beam to begin dy1 half-spaces above (or below, depending on the sign) the first note and to end dy2 half-spaces above (or below) the last note; the stem lengths are automatically adjusted accordingly.

\bm<dy1,dy2>(notes)
shorthand for \beam<dy1,dy2>(notes)

\beam<dy>(notes)
shorthand for beam<dy,dy>(notes).

\bm<dy>(notes)
shorthand for beam<dy,dy>(notes).
Remarks: Examples:
[ \beam(d1/16 e c/8) \beamsOff d e ]  % beams the first group, while the last two eigth notes are not beamed
[ \beamsOff \beam(d1/16 e c/8) d e ]  % equivalent to the above
[ \beam( \beam(d1/16 e) \beam(c d))]  % explicitly group the 1/16th in 2+2
[ \beam<6,8>( d1/16 e c d))]  % unusual position of the beams


2.7.18 Stems

\stemsAuto
sets the stem direction to auto mode, i.e., notes have downward stems if they are lower than the 3rd line (if any), upward stems otherwise.

\stemsUp
sets stem directions to upward mode, i.e, all stems are drawn upwards.

\stemsDown
sets stem directions to downward mode, i.e, all stems are drawn downwards. Remarks:
  • These tags determine the stem direction from where they occur to the next occurrence of a \stems* tag or the end of the note sequence (or voice of a segment);
  • The stem directions inferred for \stemAuto depend on the current clef;
  • If no \stems* tag is specified, \stemAuto is assumed.
Examples:
[\clef<"g"> \stemsAuto c1/4 e g h/2]
[\clef<"g"> \stemsDown c1/4 e g \stemsUp h/2] % same as above with explicit stem directions
[\clef<"g"> \stemsUp c1/4 e g h/2] % all stems upwards


2.7.19 Barlines and Tactus Strokes

\bar
indicates a barline at the position where it occurs.

'|'
shorthand for \bar.

\bar<i>
indicates barline and start of measure i

\doubleBar
indicates double barline

\doubleBar<i>
indicates double barline and start of measure i

\tactus
indicates tactus stroke (dotted line or comma mark)
Remarks:
  • Barlines can be automatically inferred from the information provided by the \meter tag.
  • If \meter information is present, explicit barlines can be used to facilitate metric consistency checking or to realise up-beats.
  • If \meter information is present, explicit barlines can be used to enforce incomplete measures.
  • If \meter information is not present, barlines can be used to place arbitrary barlines.
  • Double barlines should only be explicitly specified if their usage cannot be inferred from the context such as for key and meter changes.
  • Tactus strokes are used to indicates metrical subdivisions (such as beats).
Examples:
[ c1/2 e&/4 e& | _ f a&/2 ]   % two 4/4-measures
[ a0/8 h | c1/2 c/4 | c/2. ]   % two 3/4 with up-beat
[ \meter<"C"> c1/4 d e/2 \bar<2> e/4 f g \bar<3> _*1 ] % measure 3 starts 1/4 early
[ c1/2 \tactus e&/4 e& | _ f \tactus a&/2 ]   % two 4/4-measures with tactus strokes
[ c1/2 e&/4 e& \doubleBar _ f a&/2 ]   % two 4/4-measures with double barline
[ c1/2 e&/4 e& \doubleBar<15> _ f a&/2 ]   % same with measure number


2.7.20 Text

\text<s>
places text s at current metric position

\t<s>
shorthand for \text<s>

\text<s,dy>
same as above, but specifies vertical reference position as dy halfspaces below the lowest staff-line.

\t<s,dy>
shorthand for \text<s,dy>
Remarks:
  • Although \text can be used to represent lyrics, Advanced GUIDO will provide a more appropriate and elaborate way for this.
  • The position parameter dy is a floating point number in standard (not scientific!) notation or an integer number; the reference position is the bottom of the lowest staff line.
Examples:
[ a#0/2 \text<"l.h."> g# c#1)] % standard text
[ a#0/2 \text<"l.h.",-4> g# c#1)] % standard text 4 halfspaces below staff
[ a#0/2 \text<"Cara mia"> g# c#1)] % simple lyrics


2.7.21 Title and Composer

\title<s>
specifies the title of the piece as s

\composer<s>
specifies the composer of the piece as s
Remarks:
  • Should be only used once at the beginning of the first voice.
Examples:
[ \title<"Aubade"> \composer<"Holger H. Hoos"> e&2/8 _ ] % title and composer


2.7.22 Markers and Named Sections

\mark<s>
sets a marker labelled s at the current metric position

\label<s>
sets a label s for the whole piece.

\label<s>(notes)
sets a label s for notes
<Remarks:
  • Marks can be used for various purposes such as representing rehearsal numbers, optically marking chords or notes, and acoustically marking time positions; their actual usage depends on the specific software supporting GUIDO.
  • Labels can be used to mark a whole piece (segment or sequence), in which case they should appear at the beginning of the first voice. Furthermore they can be used to mark arbitrary sections within a piece. This can be used to indicate motives, themes, or other analytical information.
Examples:
[ c1/2 g/4 \mark<"A"> f e f ] % simple marker
[ \mark<"ch:c7"> {c1/4,e&,g,b&} ] % marked chord
{[\label<"A"> c1/2 g/4 f],[c0/1]} % labeled segment
[c1/2 g/4 \label<"a1">(g1/8 f e/2 f/4 d/2) ] % labeled section (motive)


3 Advanced GUIDO Notation

Advanced GUIDO Notation covers some of the more advanced concepts not covered in Basic GUIDO Notation such as glissando, arpeggio, clusters, microtonal alterations, different types of noteheads, different types of staves, and many features from contemporary notation. It also addresses issues of advanced score setting such as exact spacing and positioning of notation and graphical elements.

Advanced GUIDO Notation will be realised by an extended set of standard tags; the specification is currently under development and will be available soon.


4 Extended GUIDO Notation

Extended GUIDO Notation includes various features which extend Basic and Advanced GUIDO Notation beyond conventional music notation (CMN). Some of these features are generic pitch-classes, microtonal tuning systems and exact timing, generic tone descriptions, abstract and hierarchical scores, generalized events and user-defined tags.

Extended GUIDO Notation will be realised by introducing an extended set of event types; the specification is currently under development and will be available soon.


Acknowledgements

We wish to thank Michael Fuhlbrügge, Kai Flade, Jürgen Kilian and Thomas Helbich for their contributions to many discussions in the early stages of the GUIDO development and for their comments on earlier versions of this document.

The first author also wishes to thank the German National Merit Foundation (Studienstifung des deutschen Volkes) and Prof. Dr. Wolfgang Bibel (TU Darmstadt) who supported his stay at the University of British Columbia in Vancouver during which the main part of this work was done.