2.1.2 Entering lyrics


Lyrics explained

Since LilyPond input files are text, there is at least one issue to consider when working with vocal music: song texts must be interpreted as text, not notes. For example, the input d should be interpreted as a one letter syllable, not the note D. Therefore, a special lyric mode has to be used, either explicitely or using some abbreviated methods.

Lyrics are entered in a special input mode, which can be introduced by the keyword \lyricmode, or by using \addlyrics or \lyricsto. In this mode you can enter lyrics, with punctuation and accents, and the input d is not parsed as a pitch, but rather as a one letter syllable. Syllables are entered like notes, but with pitches replaced by text. For example,

\lyricmode { Twin-4 kle4 twin- kle litt- le star2 }

There are two main methods to specify the horizontal placement of the syllables, either by specifying the duration of each syllable explicitly, like in the example above, or by automatically aligning the lyrics to a melody or other voice of music, using \addlyrics or \lyricsto.

A word or syllable of lyrics begins with an alphabetic character, and ends with any space or digit. The following characters can be any character that is not a digit or white space.

Any character that is not a digit or white space will be regarded as part of the syllable; one important consequence of this is that a word can end with }, which often leads to the following mistake:

\lyricmode { lah- lah}

In this example, the } is included in the final syllable, so the opening brace is not balanced and the input file will probably not compile.

Similarly, a period which follows an alphabetic sequence is included in the resulting string. As a consequence, spaces must be inserted around property commands: do not write

\override Score.LyricText #'font-shape = #'italic

but instead use

\override Score . LyricText #'font-shape = #'italic

In order to assign more than one syllable to a single note, you can surround them with quotes or use a _ character, to get spaces between syllables, or use tilde symbol (~) to get a lyric tie.

\time 3/4
\relative c' { c2 e4 g2 e4 }
\addlyrics { gran- de_a- mi- go }
\addlyrics { pu- "ro y ho-" nes- to }
\addlyrics { pu- ro~y~ho- nes- to }

[image of music]

The lyric tie is implemented with the Unicode character U+203F; therefore a font that includes this glyph (such as DejaVuLGC) has to be used. More explanations about text and non-text fonts can be found in Fonts.

To enter lyrics with characters from non-English languages, or with accented and special characters (such as the heart symbol or slanted quotes), simply insert the characters directly into the input file and save it with UTF-8 encoding. See Text encoding, for more info.

\relative c' { e4 f e d e f e2 }
\addlyrics { He said: “Let my peo ple go”. }

[image of music]

To use normal quotes in lyrics, add a backslash before the quotes. For example,

\relative c' { \time 3/4 e4 e4. e8 d4 e d c2. }
\addlyrics { "\"I" am so lone- "ly\"" said she }

[image of music]

The full definition of a word start in Lyrics mode is somewhat more complex.

A word in Lyrics mode begins with: an alphabetic character, _, ?, !, :, ', the control characters ^A through ^F, ^Q through ^W, ^Y, ^^, any 8-bit character with ASCII code over 127, or a two-character combination of a backslash followed by one of `, ', ", or ^.

To define variables containing lyrics, the function lyricmode must be used.

verseOne = \lyricmode { Joy to the world the Lord is come }
\score {
  <<
    \new Voice = "one" \relative c'' {
      \autoBeamOff
      \time 2/4
      c4 b8. a16 g4. f8 e4 d c2
    }
    \addlyrics { \verseOne }
  >>
}

See also

Notation Reference: Fonts.

Internals Reference: LyricText, LyricSpace.


Setting simple songs

The easiest way to add lyrics to a melody is to append

\addlyrics { the lyrics }

to a melody. Here is an example,

\time 3/4
\relative c' { c2 e4 g2. }
\addlyrics { play the game }

[image of music]

More stanzas can be added by adding more \addlyrics sections

\time 3/4
\relative c' { c2 e4 g2. }
\addlyrics { play the game }
\addlyrics { speel het spel }
\addlyrics { joue le jeu }

[image of music]

The command \addlyrics cannot handle polyphony settings. For these cases you should use \lyricsto and \lyricmode, as will be introduced in Lyrics explained.


Working with lyrics and variables

To define variables containing lyrics, the function \lyricmode must be used. You do not have to enter durations though, if you add \addlyrics or \lyricsto when invoking your variable.

verseOne = \lyricmode { Joy to the world the Lord is come }
\score {
 <<
   \new Voice = "one" \relative c'' {
     \autoBeamOff
     \time 2/4
     c4 b8. a16 g4. f8 e4 d c2
   }
   \addlyrics { \verseOne }
 >>
}

For different or more complex orderings, the best way is to setup the hierarchy of staves and lyrics first, e.g.,

\new ChoirStaff <<
  \new Voice = "soprano" { music }
  \new Lyrics = "sopranoLyrics" { s1 }
  \new Lyrics = "tenorLyrics" { s1 }
  \new Voice = "tenor" { music }
>>

and then combine the appropriate melodies and lyric lines

\context Lyrics = sopranoLyrics \lyricsto "soprano"
the lyrics

The final input would resemble

<<\new ChoirStaff << setup the music >>
 \lyricsto "soprano" etc
 \lyricsto "alto" etc
etc
>>

See also

Internals Reference: LyricCombineMusic, Lyrics.


Other languages: français, español, deutsch.

Notation Reference