This document is also available as a PDF and as one big page.

This file documents GNU LilyPond.

Copyright 1999–2007 by the authors

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections. A copy of the license is included in the section entitled “GNU Free Documentation License”.

GNU LilyPond — The music typesetter

This is the Notation Reference (NR) for GNU LilyPond version 2.11.52. For more information about how this fits with the other documentation, see About the documentation.

More information can be found at http://www.lilypond.org/. The website contains on-line copies of this and other documentation.

We want to dedicate this program to all the friends that we met through music.

Han-Wen and Jan

Table of Contents

1 Musical notation

This chapter explains how to create musical notation.

1.1 Pitches

[image of music]

This section discusses how to specify the pitch of notes. There are three steps to this process: input, modification, and output.

1.1.1 Writing pitches

This section discusses how to input pitches. There are two different ways to place notes in octaves: absolute and relative mode. In most cases, relative mode will be more convenient.

Absolute octave entry

A pitch name is specified using lowercase letters a through g. The note names c to b are engraved in the octave below middle C.

     
     \clef bass
     c d e f
     g a b c
     d e f g

[image of music]

Other octaves may be specified with a single quote (') or comma (,) character. Each ' raises the pitch by one octave; each , lowers the pitch by an octave.

     
     \clef treble
     c' c'' e' g
     d'' d' d c
     \clef bass
     c, c,, e, g
     d,, d, d c

[image of music]

See also

Music Glossary: Pitch names.

Snippets: Pitches.

Relative octave entry

When octaves are specified in absolute mode it is easy to accidentally put a pitch in the wrong octave. Relative octave mode reduces these errors since most of the time it is not necessary to indicate any octaves at all. Furthermore, in absolute mode a single mistake may be difficult to spot, while in relative mode a single error puts the rest of the piece off by one octave.

\relative startpitch musicexpr

In relative mode, each note is assumed to be as close to the previous note as possible. This means that the octave of each pitch inside musicexpr is calculated as follows:

Here is the relative mode shown in action:

     
     \relative c {
       \clef bass
       c d e f
       g a b c
       d e f g
     }

[image of music]

Octave changing marks are used for intervals greater than a fourth:

     
     \relative c'' {
       c g c f,
       c' a, e'' c
     }

[image of music]

A note sequence without a single octave mark can nevertheless span large intervals:

     
     \relative c {
       c f b e
       a d g c
     }

[image of music]

If the preceding item is a chord, the first note of the chord is used as the reference point for the octave placement of a following note or chord. Inside chords, the next note is always relative to the preceding one. Examine the next example carefully, paying attention to the c notes.

     
     \relative c' {
       c
       <c e g>
       <c' e g'>
       <c, e, g''>
     }

[image of music]

As explained above, the octave of pitches is calculated only with the note names, regardless of any alterations. Therefore, an E-double-sharp following a B will be placed higher, while an F-double-flat will be placed lower. In other words, a double-augmented fourth is considered a smaller interval than a double-diminished fifth, regardless of the number of semitones that each interval contains.

     
     \relative c'' {
       c2 fis
       c2 ges
       b2 eisis
       b2 feses
     }

[image of music]

See also

Music Glossary: fifth, interval, Pitch names.

Notation Reference: Octave checks.

Snippets: Pitches.

Internals Reference: RelativeOctaveMusic.

Known issues and warnings

The relative conversion will not affect \transpose, \chordmode or \relative sections in its argument. To use relative mode within transposed music, an additional \relative must be placed inside \transpose.

If no startpitch is specified for \relative, then c' is assumed. However, this is a deprecated option and may disappear in future versions, so its use is discouraged.

Accidentals

Note: New users are sometimes confused about accidentals and key signatures. In LilyPond, note names are the raw input; key signatures and clefs determine how this raw input is displayed. An unaltered note like c means ‘C natural’, regardless of the key signature or clef. For more information, see Accidentals and key signatures.

A sharp pitch is made by adding is to the note name, and a flat pitch by adding es. As you might expect, a double sharp or double flat is made by adding isis or eses. This syntax is derived from Dutch note naming conventions. To use other names for accidentals, see Note names in other languages.

     
     ais1 aes aisis aeses

[image of music]

A natural will cancel the effect of an accidental or key signature. However, naturals are not encoded into the note name syntax with a suffix; a natural pitch is shown as a simple note name:

     
     a4 aes a2

[image of music]

Quarter tones may be added; the following is a series of Cs with increasing pitches:

     
     ceseh1 ces ceh c cih cis cisih

[image of music]

Normally accidentals are printed automatically, but you may also print them manually. A reminder accidental can be forced by adding an exclamation mark ! after the pitch. A cautionary accidental (i.e., an accidental within parentheses) can be obtained by adding the question mark ? after the pitch. These extra accidentals can also be used to produce natural signs.

     
     cis cis cis! cis? c c c! c?

[image of music]

Accidentals on tied notes are only printed at the beginning of a new system:

     
     cis1 ~ cis ~
     \break
     cis

[image of music]

Selected Snippets

Preventing extra naturals from being automatically added

In accordance with standard typesetting rules, a natural sign is printed before a sharp or flat if a previous accidental on the same note needs to be canceled. To change this behavior, set the extraNatural property to "false" in the Staff context.

     
     \relative c'' {
       aeses4 aes ais a
       \set Staff.extraNatural = ##f
       aeses4 aes ais a
     }

[image of music]

See also

Music Glossary: sharp, flat, double sharp, double flat, Pitch names, quarter tone.

Learning Manual: Accidentals and key signatures.

Notation Reference: Automatic accidentals, Annotational accidentals, Note names in other languages.

Snippets: Pitches.

Internals Reference: Accidental_engraver, Accidental, AccidentalCautionary, accidental-interface.

Known issues and warnings

There are no generally accepted standards for denoting quarter-tone accidentals, so LilyPond's symbol does not conform to any standard.

Note names in other languages

There are predefined sets of note names for various other languages. To use them, include the language-specific init file. For example, to use English notes names, add \include "english.ly" to the top of the input file. The available language files and the note names they define are:

Language Note names sharp flat double sharp double flat
nederlands.ly c d e f g a bes b -is -es -isis -eses
english.ly c d e f g a bf b -s/-sharp -f/-flat -ss/-x/-sharpsharp -ff/-flatflat
deutsch.ly c d e f g a b h -is -es -isis -eses
norsk.ly c d e f g a b h -iss/-is -ess/-es -ississ/-isis -essess/-eses
svenska.ly c d e f g a b h -iss -ess -ississ -essess
suomi.ly c d e f g a b h -is -es -isis -eses
italiano.ly do re mi fa sol la sib si -d -b -dd -bb
catalan.ly do re mi fa sol la sib si -d/-s -b -dd/-ss -bb
espanol.ly do re mi fa sol la sib si -s -b -ss -bb
portugues.ly do re mi fa sol la sib si -s -b -ss -bb
vlaams.ly do re mi fa sol la sib si -k -b -kk -bb

In Dutch, aes is contracted to as, but both forms are accepted in LilyPond. Similarly, both es and ees are accepted. This also applies to aeses / ases and eeses / eses. Sometimes only these contracted names are defined in the corresponding language files.

     
     a2 as e es a ases e eses

[image of music]

Some music uses microtones whose alterations are fractions of a ‘normal’ sharp or flat. The note names for quarter-tones defined in the various language files are listed in the following table. Here the prefixes semi- and sesqui- mean ‘half’ and ‘one and a half’, respectively. For the other languages, no special names have been defined yet.

Language Note names semi-sharp semi-flat sesqui-sharp sesqui-flat
nederlands.ly c d e f g a bes b -ih -eh -isih -eseh
english.ly c d e f g a bf b -qs -qf -tqs -tqf
deutsch.ly c d e f g a b h -ih -eh -isih -eseh
italiano.ly do re mi fa sol la sib si -sd -sb -dsd -bsb
portugues.ly do re mi fa sol la sib si -sqt -bqt -stqt -btqt

See also

Music Glossary: Pitch names.

Snippets: Pitches.

1.1.2 Changing multiple pitches

This section discusses how to modify pitches.

Octave checks

In relative mode, it is easy to forget an octave changing mark. Octave checks make such errors easier to find by displaying a warning and correcting the octave if a note is found in an unexpected octave.

To check the octave of a note, specify the absolute octave after the = symbol. This example will generate a warning (and change the pitch) because the second note is the absolute octave d'' instead of d' as indicated by the octave correction.

     
     \relative c'' {
       c2 d='4 d
       e2 f
     }

[image of music]

The octave of notes may also be checked with the \octaveCheck controlpitch command. controlpitch is specified in absolute mode. This checks that the interval between the previous note and the controlpitch is within a fourth (i.e., the normal calculation of relative mode). If this check fails, a warning is printed, but the previous note is not changed. Future notes are relative to the controlpitch.

     
     \relative c'' {
       c2 d
       \octaveCheck c'
       e2 f
     }

[image of music]

Compare the two bars below. The first and third \octaveCheck checks fail, but the second one does not fail.

     
     \relative c'' {
       c4 f g f
     
       c4
       \octaveCheck c'
       f
       \octaveCheck c'
       g
       \octaveCheck c'
       f
     }

[image of music]

See also

Snippets: Pitches.

Internals Reference: RelativeOctaveCheck.

Transpose

A music expression can be transposed with \transpose. The syntax is

\transpose frompitch topitch musicexpr

This means that musicexpr is transposed by the interval between the pitches frompitch and topitch: any note with pitch frompitch is changed to topitch and any other note is transposed by the same interval. Both pitches are entered in absolute mode.

Consider a piece written in the key of D-major. It can be transposed up to E-major; note that the key signature is automatically transposed as well.

     
     \transpose d e {
       \relative c' {
         \key d \major
         d4 fis a d
       }
     }

[image of music]

If a part written in C (normal concert pitch) is to be played on the A clarinet (for which an A is notated as a C and thus sounds a minor third lower than notated), the appropriate part will be produced with:

     
     \transpose a c' {
       \relative c' {
         \key c \major
         c4 d e g
       }
     }

[image of music]

Note that we specify \key c \major explicitly. If we do not specify a key signature, the notes will be transposed but no key signature will be printed.

\transpose distinguishes between enharmonic pitches: both \transpose c cis or \transpose c des will transpose up a semitone. The first version will print sharps and the notes will remain on the same scale step, the second version will print flats on the scale step above.

     
     music = \relative c' { c d e f }
     \new Staff {
       \transpose c cis { \music }
       \transpose c des { \music }
     }

[image of music]

\transpose may also be used in a different way, to input written notes for a transposing instrument. The previous examples show how to enter pitches in C (or concert pitch) and typeset them for a transposing instrument, but the opposite is also possible if you for example have a set of instrumental parts and want to print a conductor's score. For example, when entering music for a B-flat trumpet that begins on a notated E (concert D), one would write:

musicInBflat = { e4 ... }
\transpose c bes, \musicInBflat

To print this music in F (e.g., rearranging to a French horn) you could wrap the existing music with another \transpose:

musicInBflat = { e4 ... }
\transpose f c' { \transpose c bes, \musicInBflat }

For more information about transposing instruments, see Instrument transpositions.

Selected Snippets

Transposing music with minimum accidentals

This example uses some Scheme code to enforce enharmonic modifications for notes in order to have the minimum number of accidentals. In this case, the following rules apply:

In this manner, the most natural enharmonic notes are chosen.

     
     #(define  (naturalize-pitch p)
       (let* ((o (ly:pitch-octave p))
              (a (* 4 (ly:pitch-alteration p)))
         ; alteration, a, in quarter tone steps, for historical reasons
              (n (ly:pitch-notename p)))
         (cond
          ((and (> a 1) (or (eq? n 6) (eq? n 2)))
           (set! a (- a 2))
           (set! n (+ n 1)))
          ((and (< a -1) (or (eq? n 0) (eq? n 3)))
           (set! a (+ a 2))
           (set! n (- n 1))))
         (cond
          ((> a 2) (set! a (- a 4)) (set! n (+ n 1)))
          ((< a -2) (set! a (+ a 4)) (set! n (- n 1))))
         (if (< n 0) (begin (set! o (- o 1)) (set! n (+ n 7))))
         (if (> n 6) (begin (set! o (+ o 1)) (set! n (- n 7))))
         (ly:make-pitch o n (/ a 4))))
     
     #(define (naturalize music)
       (let* ((es (ly:music-property music 'elements))
              (e (ly:music-property music 'element))
              (p (ly:music-property music 'pitch)))
         (if (pair? es)
             (ly:music-set-property!
              music 'elements
              (map (lambda (x) (naturalize x)) es)))
         (if (ly:music? e)
             (ly:music-set-property!
              music 'element
              (naturalize e)))
         (if (ly:pitch? p)
             (begin
               (set! p (naturalize-pitch p))
               (ly:music-set-property! music 'pitch p)))
         music))
     
     naturalizeMusic =
     #(define-music-function (parser location m)
     					(ly:music?)
     			(naturalize m))
     
     music = \relative c' { c4 d e g }
     
     \score {
       \new Staff {
         \transpose c ais \music
         \naturalizeMusic \transpose c ais \music
         \transpose c deses \music
         \naturalizeMusic \transpose c deses \music
       }
       \layout { }
     }

[image of music]

See also

Notation Reference: Instrument transpositions.

Snippets: Pitches.

Internals Reference: TransposedMusic.

Known issues and warnings

The relative conversion will not affect \transpose, \chordmode or \relative sections in its argument. To use relative mode within transposed music, an additional \relative must be placed inside \transpose.

1.1.3 Displaying pitches

This section discusses how to alter the output of pitches.

Clef

The clef may be altered. Middle C is shown in every example.

     
     \clef treble
     c2 c
     \clef alto
     c2 c
     \clef tenor
     c2 c
     \clef bass
     c2 c

[image of music]

Other clefs include:

     
     \clef french
     c2 c
     \clef soprano
     c2 c
     \clef mezzosoprano
     c2 c
     \clef baritone
     c2 c
     
     \break
     
     \clef varbaritone
     c2 c
     \clef subbass
     c2 c
     \clef percussion
     c2 c
     \clef tab
     c2 c

[image of music]

Further supported clefs are described under Ancient clefs.

By adding _8 or ^8 to the clef name, the clef is transposed one octave down or up, respectively, and _15 and ^15 transpose by two octaves. The clef name must be enclosed in quotes when it contains underscores or digits.

     
     \clef treble
     c2 c
     \clef "treble_8"
     c2 c
     \clef "bass^15"
     c2 c

[image of music]

Selected Snippets

Tweaking clef properties

The command \clef "treble_8" is equivalent to setting clefGlyph, clefPosition (which controls the vertical position of the clef), middleCPosition and clefOctavation. A clef is printed when any of the properties except middleCPosition are changed.

Note that changing the glyph, the position of the clef, or the octavation does not in itself change the position of subsequent notes on the staff: the position of middle C must also be specified to do this. The positional parameters are relative to the staff center line, positive numbers displacing upwards, counting one for each line and space. The clefOctavation value would normally be set to 7, -7, 15 or -15, but other values are valid.

When a clef change takes place at a line break the new clef symbol is printed at both the end of the previous line and the beginning of the new line by default. If the warning clef at the end of the previous line is not required it can be suppressed by setting the Staff property explicitClefVisibility to the value end-of-line-invisible. The default behavior can be recovered with \unset Staff.explicitClefVisibility.

The following examples show the possibilities when setting these properties manually. On the first line, the manual changes preserve the standard relative positioning of clefs and notes, whereas on the second line, they do not.

     
     {
       % The default treble clef
       c'1
       % The standard bass clef
       \set Staff.clefGlyph = #"clefs.F"
       \set Staff.clefPosition = #2
       \set Staff.middleCPosition = #6
       c'1
       % The baritone clef
       \set Staff.clefGlyph = #"clefs.C"
       \set Staff.clefPosition = #4
       \set Staff.middleCPosition = #4
       c'1
       % The standard choral tenor clef
       \set Staff.clefGlyph = #"clefs.G"
       \set Staff.clefPosition = #-2
       \set Staff.clefOctavation = #-7
       \set Staff.middleCPosition = #1
       c'1
       % A non-standard clef
       \set Staff.clefPosition = #0
       \set Staff.clefOctavation = #0
       \set Staff.middleCPosition = #-4
       c'1 \break
     
       % The following clef changes do not preserve
       % the normal relationship between notes and clefs:
     
       \set Staff.clefGlyph = #"clefs.F"
       \set Staff.clefPosition = #2
       c'1
       \set Staff.clefGlyph = #"clefs.G"
       c'1
       \set Staff.clefGlyph = #"clefs.C"
       c'1
       \set Staff.clefOctavation = #7
       c'1
       \set Staff.clefOctavation = #0
       \set Staff.clefPosition = #0
       c'1
       
       % Here we go back to the normal clef:
     
       \set Staff.middleCPosition = #0
       c'1
     }

[image of music]

See also

Notation Reference: Ancient clefs.

Snippets: Pitches.

Internals Reference: Clef_engraver, Clef, OctavateEight, clef-interface.

Key signature

Note: New users are sometimes confused about accidentals and key signatures. In LilyPond, note names are the raw input; key signatures and clefs determine how this raw input is displayed. An unaltered note like c means ‘C natural’, regardless of the key signature or clef. For more information, see Accidentals and key signatures.

The key signature indicates the tonality in which a piece is played. It is denoted by a set of alterations (flats or sharps) at the start of the staff. The key signature may be altered:

\key pitch mode

Here, mode should be \major or \minor to get a key signature of pitch-major or pitch-minor, respectively. You may also use the standard mode names, also called church modes: \ionian, \dorian, \phrygian, \lydian, \mixolydian, \aeolian, and \locrian.

     
     \key g \major
     fis1
     f
     fis

[image of music]

Selected Snippets

Preventing natural signs from being printed when the key signature changes

When the key signature changes, natural signs are automatically printed to cancel any accidentals from previous key signatures. This may be prevented by setting to "false" the printKeyCancellation property in the Staff context.

     
     \relative c' {
       \key d \major
       a4 b cis d
       \key g \minor
       a4 bes c d
       \set Staff.printKeyCancellation = ##f
       \key d \major
       a4 b cis d
       \key g \minor
       a4 bes c d
     }

[image of music]

Non-traditional key signatures

The commonly used \key command sets the keySignature property, in the Staff context.

To create non-standard key signatures, set this property directly. The format of this command is a list:

\set Staff.keySignature = #`(((octave . step) . alter) ((octave . step) . alter) ...) where, for each element in the list, octave specifies the octave (0 being the octave from middle C to the B above), step specifies the note within the octave (0 means C and 6 means B), and alter is ,SHARP ,FLAT ,DOUBLE-SHARP etc. (Note the leading comma.)

Alternatively, for each item in the list, using the more concise format (step . alter) specifies that the same alteration should hold in all octaves.

Here is an example of a possible key signature for generating a whole-tone scale:

     
     \relative c' {
       \set Staff.keySignature = #`(((0 .  3) . ,SHARP) ((0 . 5) . ,FLAT) ((0 . 6) . ,FLAT))
       c4 d e fis
       aes4 bes c2
     }
     

[image of music]

See also

Music Glossary: church mode, scordatura.

Learning Manual: Accidentals and key signatures.

Snippets: Pitches.

Internals Reference: KeyChangeEvent, Key_engraver, Key_performer, KeyCancellation, KeySignature, key-cancellation-interface, key-signature-interface.

Ottava brackets

Ottava brackets introduce an extra transposition of an octave for the staff:

     
     a'2 b
     #(set-octavation 1)
     a b
     #(set-octavation 0)
     a b

[image of music]

The set-octavation function also takes -1 (for 8va bassa), 2 (for 15ma), and -2 (for 15ma bassa) as arguments.

Selected Snippets

Ottava text

Internally, the set-octavation function sets the properties ottavation (for example, to "8va" or "8vb") and middleCPosition. To override the text of the bracket, set ottavation after invoking set-octavation.

     
     {
       #(set-octavation 1)
       \set Staff.ottavation = #"8"
       c''1
       #(set-octavation 0)
       c'1
       #(set-octavation 1)
       \set Staff.ottavation = #"Text"
       c''1
     }

[image of music]

See also

Music Glossary: octavation.

Snippets: Pitches.

Internals Reference: Ottava_spanner_engraver, OttavaBracket, ottava-bracket-interface.

Instrument transpositions

When typesetting scores that involve transposing instruments, some parts can be typeset in a different pitch than the concert pitch. In these cases, the key of the transposing instrument should be specified; otherwise the MIDI output and cues in other parts will produce incorrect pitches. For more information about quotations, see Quoting other voices.

\transposition pitch

The pitch to use for \transposition should correspond to the real sound heard when a c' written on the staff is played by the transposing instrument. This pitch is entered in absolute mode, so an instrument that produces a real sound which is one tone higher than the printed music should use \transposition d'. \transposition should only be used if the pitches are not being entered in concert pitch.

Here are a few notes for violin and B-flat clarinet where the parts have been entered using the notes and key as they appear in each part of the conductor's score. The two instruments are playing in unison.

     
     \new GrandStaff <<
       \new Staff = "violin" {
         \relative c'' {
           \set Staff.instrumentName = "Vln"
           \set Staff.midiInstrument = "violin"
           % not strictly necessary, but a good reminder
           \transposition c'
     
           \key c \major
           g4( c8) r c r c4
         }
       }
       \new Staff = "clarinet" {
         \relative c'' {
           \set Staff.instrumentName = \markup { Cl (B\flat) }
           \set Staff.midiInstrument = "clarinet"
           \transposition bes
     
           \key d \major
           a4( d8) r d r d4
         }
       }
     >>

[image of music]

The \transposition may be changed during a piece. For example, a clarinetist may switch from an A clarinet to a B-flat clarinet.

     
     \set Staff.instrumentName = "Cl (A)"
     \key a \major
     \transposition a
     c d e f
     \textLengthOn
     s1*0^\markup { Switch to B\flat clarinet }
     R1
     
     \key bes \major
     \transposition bes
     c2 g

[image of music]

See also

Music Glossary: concert pitch, transposing instrument.

Notation Reference: Quoting other voices, Transpose.

Snippets: Pitches.

Automatic accidentals

There are many different conventions on how to typeset accidentals. LilyPond provides a function to specify which accidental style to use. This function is called as follows:

\new Staff <<
  #(set-accidental-style 'voice)
  { ... }
>>

The accidental style applies to the current Staff by default (with the exception of the styles piano and piano-cautionary, which are explained below). Optionally, the function can take a second argument that determines in which scope the style should be changed. For example, to use the same style in all staves of the current StaffGroup, use:

#(set-accidental-style 'voice 'StaffGroup)

The following accidental styles are supported. To demonstrate each style, we use the following example:

     
     musicA = {
       <<
         \relative c' {
           cis'8 fis, d'4 <a cis>8 f bis4 |
           cis2. <c, g'>4 |
         }
         \\
         \relative c' {
           ais'2 cis, |
           fis8 b a4 cis2 |
         }
       >>
     }
     
     musicB = {
       \clef bass
       \new Voice {
         \voiceTwo \relative c' {
           <fis, a cis>4
           \change Staff = up
           cis'
           \change Staff = down
           <fis, a>
           \change Staff = up
           dis' |
           \change Staff = down
           <fis, a cis>4 gis <f a d>2 |
         }
       }
     }
     
     \new PianoStaff {
       <<
         \context Staff = "up" {
           #(set-accidental-style 'default)
           \musicA
         }
         \context Staff = "down" {
           #(set-accidental-style 'default)
           \musicB
         }
       >>
     }

[image of music]

Note that the last lines of this example can be replaced by the following, as long as the same accidental style should be used in both staves.

\new PianoStaff {
  <<
    \context Staff = "up" {
      %%% change the next line as desired:
      #(set-accidental-style 'default 'Score)
      \musicA
    }
    \context Staff = "down" {
      \musicB
    }
  >>
}
default
This is the default typesetting behavior. It corresponds to eighteenth-century common practice: accidentals are remembered to the end of the measure in which they occur and only in their own octave. Thus, in the example below, no natural signs are printed before the b in the second measure or the last c:

[image of music]


voice
The normal behavior is to remember the accidentals at Staff-level. In this style, however, accidentals are typeset individually for each voice. Apart from that, the rule is similar to default.

As a result, accidentals from one voice do not get canceled in other voices, which is often an unwanted result: in the following example, it is hard to determine whether the second a should be played natural or sharp. The voice option should therefore be used only if the voices are to be read solely by individual musicians. If the staff is to be used by one musician (e.g., a conductor or in a piano score) then modern or modern-cautionary should be used instead.

[image of music]


modern

This rule corresponds to the common practice in the twentieth century. It prints the same accidentals as default, with two exceptions that serve to avoid ambiguity: after temporary accidentals, cancellation marks are printed also in the following measure (for notes in the same octave) and, in the same measure, for notes in other octaves. Hence the naturals before the b and the c in the second measure of the upper staff:

[image of music]


modern-cautionary

This rule is similar to modern, but the ‘extra’ accidentals (the ones not typeset by default) are typeset as cautionary accidentals. They are by default printed with parentheses, but they can also be printed in reduced size by defining the cautionary-style property of AccidentalSuggestion.

[image of music]


modern-voice

This rule is used for multivoice accidentals to be read both by musicians playing one voice and musicians playing all voices. Accidentals are typeset for each voice, but they are canceled across voices in the same Staff. Hence, the a in the last measure is canceled because the previous cancellation was in a different voice, and the d in the lower staff is canceled because of the accidental in a different voice in the previous measure:

[image of music]


modern-voice-cautionary
This rule is the same as modern-voice, but with the extra accidentals (the ones not typeset by voice) typeset as cautionaries. Even though all accidentals typeset by default are typeset with this rule, some of them are typeset as cautionaries.

[image of music]


piano
This rule reflects twentieth-century practice for piano notation. Its behavior is very similar to modern style, but here accidentals also get canceled across the staves in the same GrandStaff or PianoStaff, hence all the cancellations of the final notes.

This accidental style applies to the current GrandStaff or PianoStaff by default.

[image of music]


piano-cautionary
This is the same as piano but with the extra accidentals typeset as cautionaries.

[image of music]


no-reset
This is the same as default but with accidentals lasting ‘forever’ and not only within the same measure:

[image of music]


forget
This is the opposite of no-reset: Accidentals are not remembered at all – and hence all accidentals are typeset relative to the key signature, regardless of what came before in the music:

[image of music]

Selected Snippets

Dodecaphonic-style accidentals for each note including naturals

In early 20th century works, starting with Schoenberg, Berg and Webern (the "Second" Viennese school), every pitch in the twelve-tone scale has to be regarded as equal, without any hierarchy such as the classical (tonal) degrees. Therefore, these composers print one accidental for each note, even at natural pitches, to emphasize their new approach to music theory and language.

This snippet shows how to achieve such notation rules.

     
     webernAccidentals = {
       % the 5s are just "a value different from any accidental"
       \set Staff.keySignature = #'((0 . 5) (1 . 5) (2 . 5) (3 . 5)
                                    (4 . 5) (5 . 5) (6 . 5))
       \set Staff.extraNatural = ##f
       #(set-accidental-style 'forget)
     }
     
     \score {
       {
         \webernAccidentals
         c'4 dis' cis' cis'
         c'4 dis' cis' cis'
         c'4 c' dis' des'
       }
       \layout {
         \context {
         \Staff
         \remove "Key_engraver"
         }
       }
     }

[image of music]

See also

Snippets: Pitches.

Internals Reference: Accidental, Accidental_engraver, GrandStaff and PianoStaff, Staff, AccidentalSuggestion, AccidentalPlacement, accidental-suggestion-interface.

Known issues and warnings

Simultaneous notes are considered to be entered in sequential mode. This means that in a chord the accidentals are typeset as if the notes in the chord happen one at a time, in the order in which they appear in the input file. This is a problem when accidentals in a chord depend on each other, which does not happen for the default accidental style. The problem can be solved by manually inserting ! and ? for the problematic notes.

Ambitus

The term ambitus (pl. ambitus) denotes a range of pitches for a given voice in a part of music. It may also denote the pitch range that a musical instrument is capable of playing. Ambitus are printed on vocal parts so that performers can easily determine if it matches their capabilities.

Ambitus are denoted at the beginning of a piece near the initial clef. The range is graphically specified by two note heads that represent the lowest and highest pitches. Accidentals are only printed if they are not part of the key signature.

     
     \layout {
       \context {
         \Voice
         \consists "Ambitus_engraver"
       }
     }
     
     \relative c'' {
       aes c e2
       cis,1
     }

[image of music]

Selected Snippets

Adding ambitus per voice

Ambitus can be added per voice. In this case, the ambitus must be moved manually to prevent collisions.

     
     \new Staff <<
       \new Voice \with {
         \consists "Ambitus_engraver"
       } \relative c'' {
         \override Ambitus #'X-offset = #2.0
         \voiceOne
         c4 a d e
         f1
       }
       \new Voice \with {
         \consists "Ambitus_engraver"
       } \relative c' {
         \voiceTwo
         es4 f g as
         b1
       }
     >>

[image of music]

Ambitus with multiple voices

Adding the Ambitus_engraver to the Staff context creates a single ambitus per staff, even in the case of staves with multiple voices.

     
     \new Staff \with {
       \consists "Ambitus_engraver"
       }
     <<
       \new Voice \relative c'' {
         \voiceOne
         c4 a d e
         f1
       }
       \new Voice \relative c' {
         \voiceTwo
         es4 f g as
         b1
       }
     >>
     

[image of music]

See also

Music Glossary: ambitus.

Snippets: Pitches.

Internals Reference: Ambitus_engraver, Voice, Staff, Ambitus, AmbitusAccidental, AmbitusLine, AmbitusNoteHead, ambitus-interface.

Known issues and warnings

There is no collision handling in the case of multiple per-voice ambitus.

1.1.4 Note heads

This section suggests ways of altering note heads.

Special note heads

Note heads may be altered:

     
     c4 b a b
     \override NoteHead #'style = #'cross
     c4 b a b
     \revert NoteHead #'style
     c4 d e f

[image of music]

There is a shorthand for diamond shapes which can only be used inside chords:

     
     <c f\harmonic>2 <d a'\harmonic>4 <c g'\harmonic>

[image of music]

To see all note head styles, see Note head styles.

See also

Snippets: Pitches.

Notation Reference: Note head styles, Chorded notes.

Internals Reference: note-event, Note_heads_engraver, Ledger_line_engraver, NoteHead, LedgerLineSpanner, note-head-interface, ledger-line-spanner-interface.

Easy notation note heads

The ‘easy play’ note head includes a note name inside the head. It is used in music for beginners. To make the letters readable, it should be printed in a large font size. To print with a larger font, see Setting the staff size.

     
     #(set-global-staff-size 26)
     \relative c' {
       \easyHeadsOn
       c2 e4 f
       g1
       \easyHeadsOff
       c,1
     }

[image of music]

Predefined commands

\easyHeadsOn, \easyHeadsOff

See also

Notation Reference: Setting the staff size.

Snippets: Pitches.

Internals Reference: note-event, Note_heads_engraver, NoteHead, note-head-interface.

Shape note heads

In shape note head notation, the shape of the note head corresponds to the harmonic function of a note in the scale. This notation was popular in nineteenth-century American song books. Shape note heads can be produced:

     
     \aikenHeads
     c, d e f g a b c
     \sacredHarpHeads
     c, d e f g a b c

[image of music]

Shapes are typeset according to the step in the scale, where the base of the scale is determined by the \key command.

Predefined commands

\aikenHeads, \sacredHarpHeads

Selected Snippets

Applying note head styles depending on the step of the scale

The shapeNoteStyles property can be used to define various note head styles for each step of the scale (as set by the key signature or the "tonic" property). This property requires a set of symbols, which can be purely arbitrary (geometrical expressions such as triangle, cross, and xcircle are allowed) or based on old American engraving tradition (some latin note names are also allowed).

That said, to imitate old American song books, there are several predefined note head styles available through shortcut commands such as \aikenHeads or \sacredHarpHeads.

This example shows different ways to obtain shape note heads, and demonstrates the ability to transpose a melody without losing the correspondence between harmonic functions and note head styles.

     
     fragment = {
       \key c \major
       c2 d
       e2 f
       g2 a
       b2 c
     }
     
     \score {
       \new Staff {
         \transpose c d 
         \relative c' {
           \set shapeNoteStyles = ##(do re mi fa #f la ti)
           \fragment
         }
         
         \relative c' {
           \set shapeNoteStyles  = ##(cross triangle fa #f mensural xcircle diamond)
           \fragment
         }
       }
     }
     

[image of music]

To see all note head styles, see Note head styles.

See also

Snippets: Pitches.

Notation Reference: Note head styles.

Internals Reference: note-event, Note_heads_engraver, NoteHead, note-head-interface.

Improvisation

Improvisation is sometimes denoted with slashed note heads, where the performer may choose any pitch but should play the specified rhythm. Such note heads can be created:

     
     \new Voice \with {
       \consists "Pitch_squash_engraver"
     } {
       e8 e g a a16( bes) a8 g
       \improvisationOn
       e8 ~
       e2 ~ e8 f4 f8 ~
       f2
       \improvisationOff
       a16( bes) a8 g e
     }

[image of music]

Predefined commands

\improvisationOn, \improvisationOff

See also

Snippets: Pitches.

Internals Reference: Pitch_squash_engraver, Voice, RhythmicStaff.

1.2 Rhythms

[image of music]

This section discusses rhythms, rests, durations, beaming and bars.

1.2.1 Writing rhythms

1.2.1.1 Durations

Durations are designated by numbers and dots. Durations are entered as their reciprocal values. For example, a quarter note is entered using a 4 (since it is a 1/4 note), and a half note is entered using a 2 (since it is a 1/2 note). For notes longer than a whole you must use the \longa (a double breve) and \breve commands. Durations as short as 64th notes may be specified. Shorter values are possible, but only as beamed notes.

     
     \time 8/1
     c\longa c\breve c1 c2
     c4 c8 c16 c32 c64 c64

[image of music]

Here are the same durations with automatic beaming turned off.

     
     \time 8/1
     \autoBeamOff
     c\longa c\breve c1 c2
     c4 c8 c16 c32 c64 c64

[image of music]

A note with the duration of a quadruple breve may be entered with \maxima, but this is supported only within ancient music notation. For details, see Ancient notation.

If the duration is omitted, it is set to the previously entered duration. The default for the first note is a quarter note.

     
     a a a2 a a4 a a1 a

[image of music]

To obtain dotted note lengths, place a dot (.) after the duration. Double-dotted notes are specified by appending two dots, and so on.

     
     a4 b c4. b8 a4. b4.. c8.

[image of music]

Some durations cannot be represented with just binary durations and dots; they can be represented only by tying two or more notes together. For details, see Ties.

For ways of specifying durations for the syllables of lyrics and ways of aligning lyrics to notes, see Vocal music.

Optionally, notes can be spaced strictly proportionately to their duration. For details of this and other settings which control proportional notation, see Proportional notation.

Dots are normally moved up to avoid staff lines, except in polyphonic situations. Predefined commands are available to force a particular direction manually, for details see Direction and placement.

Predefined commands

\autoBeamOff, \dotsUp, \dotsDown, \dotsNeutral.

See also

Music Glossary: breve, longa, note value, Duration names notes and rests.

Notation Reference: Automatic beams, Ties, Writing rhythms, Writing rests, Vocal music, Ancient notation, Proportional notation.

Snippets: Rhythms.

Internals Reference: Dots, DotColumn.

Known issues and warnings

There is no fundamental limit to rest durations (both in terms of longest and shortest), but the number of glyphs is limited: rests from 128th to maxima (8 x whole) may be printed.

1.2.1.2 Tuplets

Tuplets are made from a music expression by multiplying all the durations with a fraction:

\times fraction { music }

The duration of music will be multiplied by the fraction. The fraction's denominator will be printed over or under the notes, optionally with a bracket. The most common tuplet is the triplet in which 3 notes have the duration of 2, so the notes are 2/3 of their written length.

     
     a2 \times 2/3 { b4 b b }
     c4 c \times 2/3 { b4 a g }

[image of music]

The automatic placement of the tuplet bracket above or below the notes may be overridden manually with predefined commands, for details see Direction and placement.

Tuplets may be nested:

     
     \autoBeamOff
     c4 \times 4/5 { f8 e f \times 2/3 { e[ f g] } } f4 |

[image of music]

Modifying nested tuplets which begin at the same musical moment must be done with \tweak.

To modify the duration of notes without printing a tuplet bracket, see Scaling durations.

Predefined commands

\tupletUp, \tupletDown, \tupletNeutral.

Selected Snippets

Entering several tuplets using only one \times command

The property tupletSpannerDuration sets how long each of the tuplets contained within the brackets after \times should last. Many consecutive tuplets can then be placed within a single \times expression, thus saving typing.

In the example, two triplets are shown, while \times was entered only once.

For more information about make-moment, see "Time administration".

     
     \relative c' {
       \time 2/4
       \set tupletSpannerDuration = #(ly:make-moment 1 4)
       \times 2/3 { c8 c c c c c }
     }

[image of music]

Changing the tuplet number

By default, only the numerator of the tuplet number is printed over the tuplet bracket, i.e., the denominator of the argument to the \times command. Alternatively, num:den of the tuplet number may be printed, or the tuplet number may be suppressed altogether.

     
     \relative c'' {
       \times 2/3 { c8 c c } \times 2/3 { c8 c c }
       \override TupletNumber #'text = #tuplet-number::calc-fraction-text
       \times 2/3 { c8 c c }
       \override TupletNumber #'stencil = ##f
       \times 2/3 { c8 c c }
     }

[image of music]

Permitting line breaks within beamed tuplets

This artificial example shows how both manual and automatic line breaks may be permitted to within a beamed tuplet. Note that such off-beat tuplets have to be beamed manually.

     
     \layout {
       \context {
         \Voice
         % Permit line breaks within tuplets
         \remove "Forbid_line_break_engraver"
         % Allow beams to be broken at line breaks
         \override Beam #'breakable = ##t
       }
     }
     \relative c'' {
       a8
       \repeat unfold 8 { \times 2/3 { c[ b a] } }
       % Insert a manual line break within a tuplet
       \times 2/3 { c[ b \bar "" \break a] }
       \repeat unfold 2 { \times 2/3 { c[ b a] } }
       c8
     }

[image of music]

See also

Music Glossary: triplet, tuplet, polymetric.

Learning Manual: Tweaking methods.

Notation Reference: Time administration, Scaling durations, Objects connected to the input, Polymetric notation.

Snippets: Rhythms.

Internals Reference: TupletBracket, TupletNumber, TimeScaledMusic.

Known issues and warnings

When the first note on a staff is a grace note followed by a tuplet the grace note must be placed before the \times command to avoid errors. Anywhere else, grace notes may be placed within tuplet brackets.

1.2.1.3 Scaling durations

You can alter the duration of single notes, rests or chords by a fraction N/M by appending *N/M (or *N if M is 1) to the duration. This will not affect the appearance of the notes or rests produced, but the altered duration will be used in calculating the position within the measure and setting the duration in the MIDI output. Multiplying factors may be combined such as *L*M/N.

In the following example, the first three notes take up exactly two beats, but no triplet bracket is printed.

     
     \time 2/4
     % Alter durations to triplets
     a4*2/3 gis4*2/3 a4*2/3
     % Normal durations
     a4 a4
     % Double the duration of chord
     <a d>4*2
     % Duration of quarter, appears like sixteenth
     b16*4 c4

[image of music]

The duration of skip or spacing notes may also be modified by a multiplier. This is useful for skipping many measures, e.g., s1*23.

Longer stretches of music may be compressed by a fraction in the same way, as if every note, chord or rest had the fraction as a multiplier. This leaves the appearance of the music unchanged but the internal duration of the notes will be multiplied by the fraction num/den. The spaces around the dot are required. Here is an example showing how music can be compressed and expanded:

     
     \time 2/4
     % Normal durations
     <c a>4 c8 a
     % Scale music by *2/3
     \scaleDurations #'(2 . 3) {
       <c a f>4. c8 a f
     }
     % Scale music by *2
     \scaleDurations #'(2 . 1) {
       <c' a>4 c8 b
     }

[image of music]

One application of this command is in polymetric notation, see Polymetric notation.

See also

Notation Reference: Tuplets, Invisible rests, Polymetric notation.

Snippets: Rhythms.

1.2.1.4 Ties

A tie connects two adjacent note heads of the same pitch. The tie in effect extends the duration of a note.

Note: Ties should not be confused with slurs, which indicate articulation, or phrasing slurs, which indicate musical phrasing. A tie is just a way of extending a note duration, similar to the augmentation dot.

A tie is entered using the tilde symbol ~

     
     e'2 ~ e'

[image of music]

Ties are used either when the note crosses a bar line, or when dots cannot be used to denote the rhythm. Ties should also be used when note values cross larger subdivisions of the measure:

[image of music]

If you need to tie many notes across bar lines, it may be easier to use automatic note splitting, see Automatic note splitting. This mechanism automatically splits long notes, and ties them across bar lines.

When a tie is applied to a chord, all note heads whose pitches match are connected. When no note heads match, no ties will be created. Chords may be partially tied by placing the tie inside the chord.

     
     <c e g> ~ <c e g>
     <c~ e g~ b> <c e g b>

[image of music]

When a second alternative of a repeat starts with a tied note, you have to specify the repeated tie as follows:

     
     \repeat volta 2 { c g <c e>2 ~ }
     \alternative {
       % First alternative: following note is tied normally
       { <c e>2. r4 }
       % Second alternative: following note has a repeated tie
       { <c e>2\repeatTie d4 c } }