1 @c -*- coding: utf-8; mode: texinfo; -*-
6 Since LilyPond input files are text, there are two issues to
7 consider when working with vocal music:
11 Song texts must be entered as text, not notes. For example, the
12 input@tie{}@code{d} should be interpreted as a one letter syllable, not the
16 Song texts must be aligned with the notes of their melody.
19 There are a few different ways to define lyrics; we shall begin
20 by examining the simplest method, and gradually increase complexity.
23 * TODO subsection vocal music::
29 Checking to make sure that text scripts and lyrics are within the margins is
30 a relatively large computational task. To speed up processing, lilypond does
31 not perform such calculations by default; to enable it, use
34 \override Score.PaperColumn #'keep-inside-line = ##t
37 To make lyrics avoid barlines as well, use
42 \consists "Bar_engraver"
43 \consists "Separating_line_group_engraver"
44 \override BarLine #'transparent = ##t
50 @node TODO subsection vocal music
51 @subsection TODO subsection vocal music
54 * Setting simple songs::
56 * Aligning lyrics to a melody::
57 * Automatic syllable durations::
58 * Another way of entering lyrics::
59 * Assigning more than one syllable to a single note::
60 * More than one note on a single syllable::
61 * Extenders and hyphens::
62 * Working with lyrics and identifiers::
63 * Flexibility in placement::
64 * Lyrics to multiple notes of a melisma::
66 * Switching the melody associated with a lyrics line::
67 * Lyrics independent of notes::
69 * More about stanzas::
70 * Other vocal issues::
73 @node Setting simple songs
74 @unnumberedsubsubsec Setting simple songs
78 The easiest way to add lyrics to a melody is to append
81 \addlyrics @{ @var{the lyrics} @}
85 to a melody. Here is an example,
87 @lilypond[ragged-right,verbatim,fragment,quote]
89 \relative { c2 e4 g2. }
90 \addlyrics { play the game }
93 More stanzas can be added by adding more
94 @code{\addlyrics} sections
96 @lilypond[ragged-right,verbatim,fragment,quote]
98 \relative { c2 e4 g2. }
99 \addlyrics { play the game }
100 \addlyrics { speel het spel }
101 \addlyrics { joue le jeu }
104 The command @code{\addlyrics} cannot handle polyphony settings. For these
105 cases you should use @code{\lyricsto} and @code{\lyricmode}, as will be
106 introduced in @ref{Entering lyrics}.
110 @node Entering lyrics
111 @unnumberedsubsubsec Entering lyrics
116 @cindex spaces, in lyrics
117 @cindex quotes, in lyrics
119 Lyrics are entered in a special input mode, which can be introduced
120 by the keyword @code{\lyricmode}, or by using @code{\addlyrics} or
121 @code{\lyricsto}. In this mode you can enter lyrics,
122 with punctuation and accents, and the input @code{d} is not parsed as
123 a pitch, but rather as a one letter syllable. Syllables are entered
124 like notes, but with pitches replaced by text. For example,
127 \lyricmode @{ Twin-4 kle4 twin- kle litt- le star2 @}
130 There are two main methods to specify the horizontal placement
131 of the syllables, either by specifying the duration of each syllable
132 explicitly, like in the example above, or by automatically aligning
133 the lyrics to a melody or other voice of music, using @code{\addlyrics}
136 @c For more details see @ref{The Lyrics context}.
138 A word or syllable of lyrics begins with an alphabetic character, and ends
140 any space or digit. The following characters can be any character
141 that is not a digit or white space.
143 Any character that is not a digit or white space will be regarded as
144 part of the syllable; one important consequence of this is that a word
145 can end with @code{@}}, which often leads to the following mistake:
148 \lyricmode @{ lah- lah@}
151 In this example, the @code{@}} is included in the final syllable, so the
152 opening brace is not balanced and the input file will probably not
156 @funindex \property in \lyricmode
159 Similarly, a period which follows an alphabetic sequence is included in
160 the resulting string. As a consequence, spaces must be inserted around
161 property commands: do @emph{not} write
164 \override Score.LyricText #'font-shape = #'italic
171 \override Score . LyricText #'font-shape = #'italic
175 @cindex spaces, in lyrics
176 @cindex quotes, in lyrics
177 @cindex ties, in lyrics
179 In order to assign more than one syllable to a single note, you can
180 surround them with quotes or use a @code{_} character, to get spaces
181 between syllables, or use tilde symbol (@code{~}) to get a lyric tie.
183 @lilypond[quote,relative=2,ragged-right,fragment,verbatim]
185 \relative { c2 e4 g2 e4 }
186 \addlyrics { gran- de_a- mi- go }
187 \addlyrics { pu- "ro y ho-" nes- to }
188 \addlyrics { pu- ro~y~ho- nes- to }
191 The lyric tie is implemented with the Unicode character U+203F, so be
192 sure to have a font (Like DejaVuLGC) installed that includes this
196 To enter lyrics with characters from non-English languages, or with
197 accented and special characters (such as the heart symbol or slanted quotes),
198 simply insert the characters directly into the input file and save
199 it with utf-8 encoding. See @ref{Text encoding}, for more info.
201 @lilypond[quote,ragged-right,fragment,verbatim]
202 \relative { e4 f e d e f e2 }
203 \addlyrics { He said: “Let my peo ple go”. }
206 To use normal quotes in lyrics, add a backslash before the
209 @lilypond[quote,ragged-right,fragment,verbatim]
210 \relative c' { \time 3/4 e4 e4. e8 d4 e d c2. }
211 \addlyrics { "\"I" am so lone- "ly\"" said she }
214 The full definition of a word start in Lyrics mode is somewhat more
217 A word in Lyrics mode begins with: an alphabetic character, @code{_},
218 @code{?}, @code{!}, @code{:}, @code{'}, the control characters @code{^A}
219 through @code{^F}, @code{^Q} through @code{^W}, @code{^Y}, @code{^^},
220 any 8-bit character with ASCII code over 127, or a two-character
221 combination of a backslash followed by one of @code{`}, @code{'},
222 @code{"}, or @code{^}.
224 To define identifiers containing lyrics, the function @code{lyricmode}
228 verseOne = \lyricmode @{ Joy to the world the Lord is come @}
231 \new Voice = "one" \relative c'' @{
234 c4 b8. a16 g4. f8 e4 d c2
236 \addlyrics @{ \verseOne @}
244 Program reference: @internalsref{LyricText}, @internalsref{LyricSpace}.
248 @node Aligning lyrics to a melody
249 @unnumberedsubsubsec Aligning lyrics to a melody
256 Lyrics are printed by interpreting them in the context called
257 @internalsref{Lyrics}.
260 \new Lyrics \lyricmode @dots{}
263 There are two main methods to specify the horizontal placement
268 by automatically aligning
269 the lyrics to a melody or other voice of music, using @code{\addlyrics}
273 or by specifying the duration of each syllable
274 explicitly, using @code{\lyricmode}
278 * Automatic syllable durations::
279 * Another way of entering lyrics::
280 * Assigning more than one syllable to a single note::
281 * More than one note on a single syllable::
282 * Extenders and hyphens::
285 @node Automatic syllable durations
286 @unnumberedsubsubsec Automatic syllable durations
288 @cindex automatic syllable durations
289 @cindex lyrics and melodies
291 The lyrics can be aligned under a given melody
292 automatically. This is achieved by combining the
293 melody and the lyrics with the @code{\lyricsto} expression
296 \new Lyrics \lyricsto @var{name} @dots{}
299 This aligns the lyrics to the
300 notes of the @internalsref{Voice} context called @var{name}, which must
301 already exist. Therefore normally the @code{Voice} is specified first, and
302 then the lyrics are specified with @code{\lyricsto}. The command
303 @code{\lyricsto} switches to @code{\lyricmode} mode automatically, so the
304 @code{\lyricmode} keyword may be omitted.
306 The following example uses different commands for entering lyrics.
308 @lilypond[quote,fragment,ragged-right,verbatim]
310 \new Voice = "one" \relative c'' {
313 c4 b8. a16 g4. f8 e4 d c2
315 \new Lyrics \lyricmode { Joy4 to8. the16 world!4. the8 Lord4 is come.2 }
316 \new Lyrics \lyricmode { Joy to the earth! the Sa -- viour reigns. }
317 \new Lyrics \lyricsto "one" { No more let sins and sor -- rows grow. }
321 The second stanza is not properly aligned because the durations
322 were not specified. A solution for that would be to use @code{\lyricsto}.
324 The @code{\addlyrics} command is actually just a convenient way
325 to write a more complicated LilyPond structure that sets up the
330 \addlyrics @{ LYRICS @}
337 \new Voice = "blah" @{ music @}
338 \new Lyrics \lyricsto "blah" @{ LYRICS @}
341 @node Another way of entering lyrics
342 @unnumberedsubsubsec Another way of entering lyrics
344 Lyrics can also be entered without @code{\addlyrics} or
345 @code{\lyricsto}. In this case,
346 syllables are entered like notes -- but with pitches replaced by text -- and the
347 duration of each syllable must be entered explicitly. For example:
354 The alignment to a melody can be specified with the
355 @code{associatedVoice} property,
358 \set associatedVoice = #"lala"
362 The value of the property (here: @code{"lala"}) should be the name of
363 a @internalsref{Voice} context. Without this setting, extender lines
364 will not be formatted properly.
366 Here is an example demonstrating manual lyric durations,
368 @lilypond[relative=1,ragged-right,verbatim,fragment,quote]
369 << \new Voice = "melody" {
373 \new Lyrics \lyricmode {
374 \set associatedVoice = #"melody"
381 Program reference: @internalsref{Lyrics}.
384 @node Assigning more than one syllable to a single note
385 @unnumberedsubsubsec Assigning more than one syllable to a single note
389 @cindex ties, in lyrics
391 In order to assign more than one syllable to a single note, you can
392 surround them with quotes or use a @code{_} character, to get spaces
393 between syllables, or use tilde symbol (@code{~}) to get a lyric
394 tie@footnote{The lyric ties is implemented with the Unicode character
396 sure to have a font (Like DejaVuLGC) installed that includes this
399 @lilypond[quote,relative=2,ragged-right,fragment,verbatim]
401 \relative { c2 e4 g2 e4 }
402 \addlyrics { gran- de_a- mi- go }
403 \addlyrics { pu- "ro y ho-" nes- to }
404 \addlyrics { pu- ro~y~ho- nes- to }
409 Program reference: @internalsref{LyricCombineMusic}.
411 @c Here come the section which used to be "Melismata"
412 @c the new title might be more self-explanatory
415 @node More than one note on a single syllable
416 @unnumberedsubsubsec More than one note on a single syllable
420 @cindex phrasing, in lyrics
422 Sometimes, particularly in Medieval music, several notes are to be sung on one
423 single syllable; such vocalises are called melismas, or melismata.
425 @c this method seems to be the simplest; therefore
426 @c it might be better to present it first - vv
428 You can define melismata entirely in the lyrics, by entering @code{_}
430 that is part of the melisma.
432 @lilypond[relative=1,verbatim,fragment,quote]
433 { \set melismaBusyProperties = #'()
434 c d( e) f f( e) e e }
436 { Ky -- _ _ ri __ _ _ _ e }
439 In this case, you can also have ties and slurs in the melody if you
440 set @code{melismaBusyProperties}, as is done in the example above.
442 However, the @code{\lyricsto} command can also
443 detect melismata automatically: it only puts one
444 syllable under a tied or slurred group of notes. If you want to force
445 an unslurred group of notes to be a melisma, insert @code{\melisma}
446 after the first note of the group, and @code{\melismaEnd} after the
449 @lilypond[quote,relative=2,ragged-right,fragment,verbatim]
451 \new Voice = "lala" {
459 \new Lyrics \lyricsto "lala" {
465 In addition, notes are considered a melisma if they are manually
466 beamed, and automatic beaming (see @ref{Setting automatic beam
467 behavior}) is switched off.
469 @c TODO: there might be some more relevant place for
470 @c the following link (?)
475 A complete example of a SATB score setup is in section
476 @ref{Vocal ensembles}.
481 @code{\melisma}, @code{\melismaEnd}
482 @funindex \melismaEnd
487 Program reference: @internalsref{Melisma_translator}.
489 @lsr{vocal,lyric@/-combine.ly}.
493 Melismata are not detected automatically, and extender lines must be
496 @node Extenders and hyphens
497 @unnumberedsubsubsec Extenders and hyphens
502 Melismata are indicated with a horizontal line centered between a syllable
503 and the next one. Such a line is called an extender line, and it is entered
504 as @samp{ __ } (note the spaces before and after the two underscore
509 Centered hyphens are entered as @samp{ -- } between syllables of a same word
510 (note the spaces before and after the two hyphen characters). The hyphen
511 will be centered between the syllables, and its length will be adjusted
512 depending on the space between the syllables.
514 In tighly engraved music, hyphens can be removed. Whether this
515 happens can be controlled with the @code{minimum-distance} (minimum
516 distance between two syllables) and the @code{minimum-length}
517 (threshold below which hyphens are removed).
521 Program reference: @internalsref{LyricExtender},
522 @internalsref{LyricHyphen}
525 @node Working with lyrics and identifiers
526 @unnumberedsubsubsec Working with lyrics and identifiers
527 @cindex lyrics, identifiers
529 To define identifiers containing lyrics, the function @code{\lyricmode}
530 must be used. You do not have to enter durations though, if you add
531 @code{\addlyrics} or @code{\lyricsto}
532 when invoking your identifier.
535 verseOne = \lyricmode @{ Joy to the world the Lord is come @}
538 \new Voice = "one" \relative c'' @{
541 c4 b8. a16 g4. f8 e4 d c2
543 \addlyrics @{ \verseOne @}
548 For different or more complex orderings, the best way is to setup the
549 hierarchy of staves and lyrics first, e.g.,
552 \new Voice = "soprano" @{ @emph{music} @}
553 \new Lyrics = "sopranoLyrics" @{ s1 @}
554 \new Lyrics = "tenorLyrics" @{ s1 @}
555 \new Voice = "tenor" @{ @emph{music} @}
559 and then combine the appropriate melodies and lyric lines
562 \context Lyrics = sopranoLyrics \lyricsto "soprano"
568 The final input would resemble
571 <<\new ChoirStaff << @emph{setup the music} >>
572 \lyricsto "soprano" @emph{etc}
573 \lyricsto "alto" @emph{etc}
580 @c TODO: document \new Staff << Voice \lyricsto >> bug
581 Program reference: @internalsref{LyricCombineMusic},
582 @internalsref{Lyrics}.
585 @node Flexibility in placement
586 @unnumberedsubsubsec Flexibility in placement
588 Often, different stanzas of one song are put to one melody in slightly
589 differing ways. Such variations can still be captured with
593 * Lyrics to multiple notes of a melisma::
595 * Switching the melody associated with a lyrics line::
596 * Lyrics independent of notes::
600 @node Lyrics to multiple notes of a melisma
601 @unnumberedsubsubsec Lyrics to multiple notes of a melisma
603 One possibility is that the text has a melisma in one stanza, but
604 multiple syllables in another one. One solution is to make the faster
605 voice ignore the melisma. This is done by setting
606 @code{ignoreMelismata} in the Lyrics context.
608 There is one tricky aspect: the setting for @code{ignoreMelismata}
609 must be set one syllable @emph{before} the non-melismatic syllable
610 in the text, as shown here,
612 @c FIXME: breaks compile
613 @lilypond[verbatim,ragged-right,quote]
616 \relative \new Voice = "lahlah" {
617 \set Staff.autoBeaming = ##f
623 \new Lyrics \lyricsto "lahlah" {
626 \new Lyrics \lyricsto "lahlah" {
627 \set ignoreMelismata = ##t % applies to "fas"
629 \unset ignoreMelismata
637 The @code{ignoreMelismata} applies to the syllable @q{fas}, so it
638 should be entered before @q{go}.
640 The reverse is also possible: making a lyric line slower than the
641 standard. This can be achieved by insert @code{\skip}s into the
642 lyrics. For every @code{\skip}, the text will be delayed another note.
645 @lilypond[verbatim,ragged-right,quote]
655 @unnumberedsubsubsec Divisi lyrics
657 You can display alternate (or divisi) lyrics by naming voice
658 contexts and attaching lyrics to those specific contexts.
660 @lilypond[verbatim,ragged-right,quote]
662 \new Voice = "melody" {
667 \new Voice = "splitpart" { \voiceTwo c4 }
672 \new Lyrics \lyricsto "melody" { we shall not o- ver- come }
673 \new Lyrics \lyricsto "splitpart" { will }
678 You can use this trick to display different lyrics for a repeated
681 @lilypond[verbatim,ragged-right,quote]
683 \new Voice = "melody" \relative c' {
685 \new Voice = "verse" \repeat volta 2 {c4 d e f | g1 | }
687 \new Lyrics = "mainlyrics" \lyricsto melody \lyricmode {
690 \context Lyrics = "mainlyrics" \lyricsto verse \lyricmode {
692 \new Lyrics = "repeatlyrics" \lyricsto verse \lyricmode {
693 dodo rere mimi fafa solsol }
700 @node Switching the melody associated with a lyrics line
701 @unnumberedsubsubsec Switching the melody associated with a lyrics line
703 More complex variations in text underlay are possible. It is possible
704 to switch the melody for a line of lyrics during the text. This is
705 done by setting the @code{associatedVoice} property. In the example
707 @lilypond[ragged-right,quote]
709 \relative \new Voice = "lahlah" {
710 \set Staff.autoBeaming = ##f
713 \new Voice = "alternative" {
716 % show associations clearly.
717 \override NoteColumn #'force-hshift = #-3
728 \new Lyrics \lyricsto "lahlah" {
729 Ju -- ras -- sic Park
731 \new Lyrics \lyricsto "lahlah" {
732 % Tricky: need to set associatedVoice
733 % one syllable too soon!
734 \set associatedVoice = alternative % applies to "ran"
738 \set associatedVoice = lahlah % applies to "rus"
744 the text for the first stanza is set to a melody called @q{lahlah},
747 \new Lyrics \lyricsto "lahlah" @{
748 Ju -- ras -- sic Park
753 The second stanza initially is set to the @code{lahlah} context, but
754 for the syllable @q{ran}, it switches to a different melody.
755 This is achieved with
757 \set associatedVoice = alternative
761 Here, @code{alternative} is the name of the @code{Voice} context
762 containing the triplet.
764 Again, the command must be one syllable too early, before @q{Ty} in
768 \new Lyrics \lyricsto "lahlah" @{
769 \set associatedVoice = alternative % applies to "ran"
773 \set associatedVoice = lahlah % applies to "rus"
779 The underlay is switched back to the starting situation by assigning
780 @code{lahlah} to @code{associatedVoice}.
783 @node Lyrics independent of notes
784 @unnumberedsubsubsec Lyrics independent of notes
786 In some complex vocal music, it may be desirable to place
787 lyrics completely independently of notes. Music defined
788 inside @code{lyricrhythm} disappears into the
789 @code{Devnull} context, but the rhythms can still be used
792 @lilypond[quote,verbatim,ragged-right]
795 \tag #'music { c''2 }
796 \tag #'lyricrhythm { c''4. c''8 }
800 lyr = \lyricmode { I like my cat! }
803 \new Staff \keepWithTag #'music \voice
804 \new Devnull="nowhere" \keepWithTag #'lyricrhythm \voice
805 \new Lyrics \lyricsto "nowhere" \lyr
806 \new Staff { c'8 c' c' c' c' c' c' c'
807 c' c' c' c' c' c' c' c' }
813 @unnumberedsubsubsec Spacing lyrics
815 @cindex Spacing lyrics
816 @cindex Lyrics, increasing space between
818 To increase the spacing between lyrics, set the minimum-distance property of
821 @lilypond[relative,verbatim,fragment,quote,ragged-right]
824 \override Lyrics.LyricSpace #'minimum-distance = #1.0
828 longtext longtext longtext longtext
829 longtext longtext longtext longtext
833 To make this change for all lyrics in the score, set the property in the
836 @lilypond[relative,verbatim,quote,ragged-right]
843 longtext longtext longtext longtext
844 longtext longtext longtext longtext
849 \override LyricSpace #'minimum-distance = #1.0
856 @node More about stanzas
857 @unnumberedsubsubsec More about stanzas
859 @cindex stanza number
860 @unnumberedsubsubsec Adding stanza numbers
862 Stanza numbers can be added by setting @code{stanza}, e.g.,
864 @lilypond[quote,ragged-right,verbatim,relative=2,fragment]
866 \time 3/4 g2 e4 a2 f4 g2.
872 Oh, ché -- ri, je t'aime
877 These numbers are put just before the start of the first syllable.
880 @unnumberedsubsubsec Adding dynamics marks
882 Stanzas differing in loudness may be indicated by putting a
883 dynamics mark before each stanza. In Lilypond, everthing coming in
884 front of a stanza goes into the @code{StanzaNumber} object; dynamics marks
885 are no different. For technical reasons, you have to set the stanza
886 outside @code{\lyricmode}:
888 @lilypond[quote,ragged-right,verbatim]
890 \set stanza = \markup { \dynamic "ff" "1. " }
897 \new Voice = "tune" {
901 \new Lyrics \lyricsto "tune" \text
906 @cindex name of singer
907 @unnumberedsubsubsec Adding singer names
909 Names of singers can also be added. They are printed at the start of
910 the line, just like instrument names. They are created by setting
911 @code{vocalName}. A short version may be entered as @code{shortVocalName}.
913 @lilypond[fragment,ragged-right,quote,verbatim,relative=2]
915 \time 3/4 g2 e4 a2 f4 g2.
917 \set vocalName = "Bert "
920 \set vocalName = "Ernie "
921 Oh, che -- ri, je t'aime
926 @unnumberedsubsubsec Printing stanzas at the end
928 Sometimes it is appropriate to have one stanza set
929 to the music, and the rest added in verse form at
930 the end of the piece. This can be accomplished by adding
931 the extra verses into a @code{\markup} section outside
932 of the main score block. Notice that there are two
933 different ways to force linebreaks when using
936 @lilypond[ragged-right,verbatim,quote]
937 melody = \relative c' {
943 \set stanza = "1." Ma- ry had a lit- tle lamb,
944 its fleece was white as snow.
948 \new Voice = "one" { \melody }
949 \new Lyrics \lyricsto "one" \text
955 \line{ All the children laughed and played }
956 \line{ To see a lamb at school. }
963 Mary took it home again,
965 It was against the rule."
970 @unnumberedsubsubsec Printing stanzas at the end in multiple columns
972 When a piece of music has many verses, they are often printed in
973 multiple columns across the page. An outdented verse number often
974 introduces each verse. The following example shows how to produce such
977 @lilypond[ragged-right,quote,verbatim]
978 melody = \relative c' {
983 \set stanza = "1." This is verse one.
988 \new Voice = "one" { \melody }
989 \new Lyrics \lyricsto "one" \text
996 \hspace #0.1 % moves the column off the left margin; can be removed if
997 % space on the page is tight
1001 "This is verse two."
1005 \hspace #0.1 % adds vertical spacing between verses
1008 "This is verse three."
1013 \hspace #0.1 % adds horizontal spacing between columns; if they are
1014 % still too close, add more " " pairs until the result
1019 "This is verse four."
1023 \hspace #0.1 % adds vertical spacing between verses
1026 "This is verse five."
1031 \hspace #0.1 % gives some extra space on the right margin; can
1032 % be removed if page space is tight
1040 Program reference: @internalsref{LyricText}, @internalsref{StanzaNumber},
1041 @internalsref{VocalName}.
1045 @node Other vocal issues
1046 @unnumberedsubsubsec Other vocal issues
1049 yeah, I'm giving up somewhat by stuffing a bunch of things in
1050 here. But at least they're in the manual now; it's easier to
1051 move them around in the manual once they're already here.
1053 Besides, if users complain about everything stuffed in here, I
1054 can ask them for specific instructions about where to move these
1055 examples, and that might get them more involved in the docs. -gp
1058 @q{Parlato} is spoken without pitch but still with rhythm; it is
1059 notated by cross noteheads. This is demonstrated in
1060 @ref{Special noteheads}.