Guido Music Notation

From CCARH Wiki
Jump to navigation Jump to search

Guido Music Notation (GMN) is an ASCII-text based representation for music that can be converted into graphical music notation using various programs and processing architectures. The website provides an easy online method of generating graphical music from GMN. The Guido Engine Library is an API for graphical rendering of Guido musical scores. This lab introduces the basic notational components present in GMN. More information on the GMN data format can be found on The GUIDO Music Notation Format documentation page. Also see the wikipedia page for Guido.

Guido Muisc Notation is named after Guido d'Arezzo who, among other things, developed a memorization technique for singing called the Guidonian hand (Performed here by Bill Mahrt, Stanford University). Guido (and/or his students/colleagues) also developed the ut-re-mi-fa-sol-la hexachord pitch system which later developed into solfège, based on the Ut queant laxis Hymn (Recording by canto gregorioano).

Simple Example

Below is a simple musical example in GMN. The text on the left is the musical data in GMN format which is converted to graphical music notation, using Noteserver, on the right.

[c d e f] Guido-cdef.gif


The octave of a note is indicated by a number following the pitch name. Octave 1 is the octave starting at middle C (C4), and going up through the note B4. One octave higher than middle C is octave 2, and octave 0 is one octave lower than middle C. The octave below 0 is -1, which is indicated like this: c-1.

[b0 c1 b1 c2 b2 c3 b3] Guido-octave.gif

Note that the octave is sticky. If you do not specify an octave value for the following note, then the preceeding octave value will be applied to the next note. See what happens when you generate the graphical information for the following GMN data:

[c1 c c2 c c3 c]


Chromatic alterations are indicated by a sign after the diatonic note name and before any octave indication. Sharps are indicated by a pound sign (#) and flats are indicated by an ampersand (&). Double sharps/flats are indicated by the doubling the accidental sign as shown in the following example.

[c# d& e f## g&&] Guido-accidental.gif

Notice in the above example that the note E does not have an accidental attached to it. Unlike octave indications, accidentals are not sticky. Accidentals only affect the note to which they are attached.


So far, all graphical notes have had the duration of a quarter note, which is the default duration when none is specified. To indicate a different rhythm, indicate it after any octave indicator by writing a slash (/) followed by the duration of the note in terms of divisions per whole note:

rhythm code
whole note 1
half note 2
quarter note 4
eighth note 8
sixteenth note 16
thiry-second note 32

[c/1 c d/2 d e/4 e f/8 f g/16 g a/32 a]


Notice that the duration information is sticky just like the octave information. If a duration is not specified, then the duration of the previous note is carried over to the next note.

Augmentation dots

[ c c. c c.. c] Guido-augdots.gif

Try the following example and notice how the dots and the rhythms interact, i.e., what are the rhythms of the following six notes? How do the dots affect the rhythm in the graphical notation? What is the rule for dot stickiness?

[ c/4 c c. c c. c/4 ]


Rests are indicated by replacing the pitch name with an underscore (_).

[ _/1 _/2 _/4 _/8 _/16 ] Guido-rest.gif


The default clef for GMN is the treble clef. Clefs can be specified explicitly as in the following example:

[ \clef<"g2"> c d e f
    \clef<"f4"> c d e f ]

Note that the clef parameter is case-sensitive, so "f4" is not the same as "F4". Try changing "f4" to "F4" in the above example.

Time Signature

Here is an example which generates a 4/4 time signature:

[ \meter<"4/4"> c d e f/8 g ] Guido-meter.gif

Key Signature

[ \meter<"4/4"> \key<-2>
c d e& f/8 g ]


Notice that the note e needs a flat marking even though the flat is included in the key signature. Also notice that the graphical music reverses the order of the time signature and key signature as given in the GMN data (putting it into the traditional order automatically). Try the following example:

[ \key<-2> \meter<"4/4">
   c d e& f/8 g ]


Music in a specified meter will automatically be segmented into separate measures:

[ \meter<"2/4"> c/2 d e f g a ]

If a meter is not specified, you can indicate a barline like this:

[ c/2 \bar d \bar e \bar f \bar g \bar a ]

\bar accepts a parameter which indicates the barline, such as \bar<19> for bar number 19. The pipe character is a shorthand for \bar.

[ c/2 | d e | f g | a ]


You can also specify the barlines when there is a meter present to help keep track of the position of the music.


Here is an example of a slur marking:

[ c \slur( d e f ) g a ] Guido-slur.gif


Ties look similar to slurs in musical notation, but they serve a different function. Slurs usually indicate that notes are to be played legato, overlapping slightly in time, and more than one note can be enclosed by a slur. Ties can only connect two adjacent notes with the same pitch. The second pitch's duration is added to the first's duration, and the second note is not attacked (played). The following two examples are equivalent, but the second is useful if the tie overlaps with a slur marking.

[ c d \tie( d d d ) d e f g a ]
[ c d \tieBegin d d d \tieEnd d e f g a ]


Listen to the MIDI output from the above example at NoteServer and compare to an example which uses slurs. Notice how successive tied notes are graphically represented.


Chords are indicated by enclosing notes which occur at the same time inside of braces ({, }) with each note in the chord separated by a comma. Note that octaves are sticky according to the linear progression of notes in the data, so the last g in the example is in octave 2 rather than octave 1 because it follows the note c2 in the data.

[ {c,e,g} {e,g,c2} {g,c2,e2} ] Guido-chord.gif


Note that beaming is done automatically in GMN by default.

[ c/8 d e f g a b c2 ] Guido-autobeam.gif

You can turn off beaming by using the command \beamsOff.

[ \beamsOff c/8 d e f g a b c2 ] Guido-beamless.gif

Beaming can be specified manually with the \beam() directive.

[\beamsOff c/8 \beam( d e f ) g a b c2] Guido-irrbeam.gif


[ \stacc(c) d \stacc(e f g) ] Guido-staccato.gif


Multiple staves can be grouped together with braces ({, }) separated by a comma as in the following example. Each line of music is placed in square brackets and they are listed serially starting with the top line of music in the system (group of staves).

{ [ c d e f g],
[ \clef<"f4"> g0 f e d c ] }


Dynamics are indicated by using \intens<> or the shorthand \i<> which comes before the note under which the dynamic will be placed.

[ \intens<"mf"> c2/2 \i<"pp"> d1/2 ] Guido-dynamic.gif

Crescendos/Decresendos can be indicated with two methods: (1) as a single marker using \cresc() or \dim(), or (2) as a two symbol set for more complicated groupings of notes using \crescBegin, \crescEnd and \dimBegin, \dimEnd.

[\cresc(a/8 g f e) \dimBegin c e g c2 \dimEnd] Guido-cresdim.gif

GMN Specification and Links


E-mail the answers to the following questions/exercises to Craig (cc: Eleanor).

  1. Enter the above examples at (or another program which processes GMN data) and try modifying them. Describe one of your experiments in tweaking the encoding to generate different graphical notation.

  2. Write down the GMN representation which can create the following graphical music:

  3. Convert your GMN data into graphical music. Compare your graphic representation with the above version. What are the similarities and differences between the two versions? What formatting options might or do make it look similar (particularly size, linebreaks).

  4. Create a title to a musical example in Guido Music Notation, such as the following example:
    (Hint: go look at the Guido documentation)
  5. Extra Credit: Input a melody of your choice in Guido Music Notation and convert it to graphical notation.

  6. Extra Credit: All of the musical examples on this page end with a double final bar which is the default style for the Guido NoteServer. Figure out how to specify no final bar, such as in this example:
  7. Extra Credit: Write a program which automatically generates a melody and outputs into the Guido Music Notation format. See the webpage for an example.