]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/user/vocal.itely
Preparing the terrain in Vocal
[lilypond.git] / Documentation / user / vocal.itely
1 @c -*- coding: utf-8; mode: texinfo; -*-
2 @ignore
3     Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
4
5     When revising a translation, copy the HEAD committish of the
6     version that you are working on.  See TRANSLATION for details.
7 @end ignore
8
9 @c \version "2.11.51"
10
11 @node Vocal music
12 @section Vocal music
13
14 @c TODO: CLARIFY
15 @c TODO: delete this comment block
16 @c http://code.google.com/p/lilypond/issues/detail?id=248
17 @c Done, see @node Lyrics independent of notes ----FV
18
19 @c http://code.google.com/p/lilypond/issues/detail?id=329
20 @c Done, see @node Working with lyrics and variables ----FV
21
22 @c partially done, needs improvement, see Switching to an alternative melody ----FV
23 @ignore
24
25 > I think the issue here is that changing the associatedVoice
26 > happens one step
27 > later than expected.  I could be wrong, but I don't think this
28 > is obviously
29 > documented.
30
31 If you read section "Switching the melody associated with a lyrics
32 line"
33 it indeed says "Again, the command must be one syllable too
34 early,..."!
35 One problem with the current formulation is that the "Again"
36 refers to what's described 2 subsections earlier in "Lyrics to
37 multiple notes of a melisma", which isn't obvious unless you have
38 read all the sections
39 sequentially.
40
41
42 @c Done in @node Extenders and hyphens ---FV
43 @c also done (duplicated) in @node Multiple notes to one syllable --FV
44 I don't know who's working on the vocal music right now, but I
45 found something that should be clarified in NR 2.1.2.4.
46
47 It should be made clear that __ is used to crate a lyric extender,
48 and _ is used to add a note to a melisma, so both __ and _ are
49 used.  The example shows it, but there is no description of the
50 lyrics extender in this section.
51 @end ignore
52
53
54 Since LilyPond input files are text, there are two issues to consider
55 when working with vocal music:
56
57 @itemize
58 @item
59 Song texts must be interpreted as text, not notes.  For example, the
60 input@tie{}@code{d} should be interpreted as a one letter syllable,
61 not the note@tie{}D.
62
63 @item
64 Song texts must be aligned with the notes of their melody.
65 @end itemize
66
67 To address the first issue, the fundamental method is the special mode
68 opened by @code{\lyricmode} that interprets its contents as text.
69 This mode is implicit by some abbreviated methods, as we will see.
70
71 Aligning of text with melodies can be made automatically, but if you
72 specify the durations of the syllables it can also be made manually.
73 Lyrics aligning and typesetting are prepared with the help of skips,
74 hyphens and extender lines.
75
76 All these methods and their combinations lead to a few different ways
77 to define lyrics; we shall begin by examining the simplest method, and
78 gradually increase complexity.
79
80 @menu
81 * Common notation for vocals::
82 * Aligning lyrics to a melody::
83 * Placement of lyrics::
84 * Stanzas::
85 @end menu
86
87
88 @node Common notation for vocals
89 @subsection Common notation for vocals
90
91 @menu
92 * References for vocal music::
93 * Setting simple songs::
94 * Entering lyrics::
95 * Working with lyrics and variables::
96 @end menu
97
98 @node References for vocal music
99 @subsubsection References for vocal music
100
101 TBC
102 @c TODO Add @refs
103
104 @q{Parlato} is spoken without pitch but still with rhythm; it is
105 notated by cross note heads.  This is demonstrated in
106 @ref{Special note heads}.
107
108
109 @node Setting simple songs
110 @subsubsection Setting simple songs
111
112 @cindex \addlyrics
113
114 The easiest way to add lyrics to a melody is to append
115
116 @example
117 \addlyrics @{ @var{the lyrics} @}
118 @end example
119
120 @noindent
121 to a melody.  Here is an example,
122
123 @lilypond[ragged-right,verbatim,fragment,quote]
124 \time 3/4
125 \relative c' { c2 e4 g2. }
126 \addlyrics { play the game }
127 @end lilypond
128
129 More stanzas can be added by adding more
130 @code{\addlyrics} sections
131
132 @lilypond[ragged-right,verbatim,fragment,quote]
133 \time 3/4
134 \relative c' { c2 e4 g2. }
135 \addlyrics { play the game }
136 \addlyrics { speel het spel }
137 \addlyrics { joue le jeu }
138 @end lilypond
139
140 The command @code{\addlyrics} cannot handle polyphony settings.  For these
141 cases you should use @code{\lyricsto} and @code{\lyricmode}, as will be
142 introduced in @ref{Entering lyrics}.
143
144
145
146 @node Entering lyrics
147 @subsubsection Entering lyrics
148
149 @cindex lyrics
150 @funindex \lyricmode
151 @cindex punctuation
152 @cindex spaces, in lyrics
153 @cindex quotes, in lyrics
154
155 Lyrics are entered in a special input mode, which can be introduced
156 by the keyword @code{\lyricmode}, or by using @code{\addlyrics} or
157 @code{\lyricsto}.  In this mode you can enter lyrics,
158 with punctuation and accents, and the input @code{d} is not parsed as
159 a pitch, but rather as a one letter syllable.  Syllables are entered
160 like notes, but with pitches replaced by text.  For example,
161
162 @example
163 \lyricmode @{ Twin-4 kle4 twin- kle litt- le star2 @}
164 @end example
165
166 There are two main methods to specify the horizontal placement
167 of the syllables, either by specifying the duration of each syllable
168 explicitly, like in the example above, or by automatically aligning
169 the lyrics to a melody or other voice of music, using @code{\addlyrics}
170 or @code{\lyricsto}.
171 @c  TODO: broken
172 @c For more details see @ref{The Lyrics context}.
173
174 A word or syllable of lyrics begins with an alphabetic character, and ends
175 with
176 any space or digit.  The following characters can be any character
177 that is not a digit or white space.
178
179 Any character that is not a digit or white space will be regarded as
180 part of the syllable; one important consequence of this is that a word
181 can end with @code{@}}, which often leads to the following mistake:
182
183 @example
184 \lyricmode @{ lah- lah@}
185 @end example
186
187 In this example, the @code{@}} is included in the final syllable, so the
188 opening brace is not balanced and the input file will probably not
189 compile.
190
191
192 @funindex \property in \lyricmode
193
194 @noindent
195 Similarly, a period which follows an alphabetic sequence is included in
196 the resulting string.  As a consequence, spaces must be inserted around
197 property commands: do @emph{not} write
198
199 @example
200 \override Score.LyricText #'font-shape = #'italic
201 @end example
202
203 @noindent
204 but instead use
205
206 @example
207 \override Score . LyricText #'font-shape = #'italic
208 @end example
209
210 @funindex _
211 @cindex spaces, in lyrics
212 @cindex quotes, in lyrics
213 @cindex ties, in lyrics
214
215 In order to assign more than one syllable to a single note, you can
216 surround them with quotes or use a @code{_} character, to get spaces
217 between syllables, or use tilde  symbol (@code{~}) to get a lyric tie.
218
219 @lilypond[quote,ragged-right,fragment,verbatim]
220 \time 3/4
221 \relative c' { c2 e4 g2 e4 }
222 \addlyrics { gran- de_a- mi- go }
223 \addlyrics { pu- "ro y ho-" nes- to }
224 \addlyrics { pu- ro~y~ho- nes- to }
225 @end lilypond
226
227 The lyric tie is implemented with the Unicode character U+203F, so be
228 sure to have a font (Like DejaVuLGC) installed that includes this
229 glyph.
230
231
232 To enter lyrics with characters from non-English languages, or with
233 accented and special characters (such as the heart symbol or slanted quotes),
234 simply insert the characters directly into the input file and save
235 it with UTF-8 encoding.  See @ref{Text encoding}, for more info.
236
237 @lilypond[quote,ragged-right,fragment,verbatim]
238 \relative c' { e4 f e d e f e2 }
239 \addlyrics { He said: “Let my peo ple go”. }
240 @end lilypond
241
242 To use normal quotes in lyrics, add a backslash before the
243 quotes.  For example,
244
245 @lilypond[quote,ragged-right,fragment,verbatim]
246 \relative c' { \time 3/4 e4 e4. e8 d4 e d c2. }
247 \addlyrics { "\"I" am so lone- "ly\"" said she }
248 @end lilypond
249
250 The full definition of a word start in Lyrics mode is somewhat more
251 complex.
252
253 A word in Lyrics mode begins with: an alphabetic character, @code{_},
254 @code{?}, @code{!}, @code{:}, @code{'}, the control characters @code{^A}
255 through @code{^F}, @code{^Q} through @code{^W}, @code{^Y}, @code{^^},
256 any 8-bit character with ASCII code over 127, or a two-character
257 combination of a backslash followed by one of @code{`}, @code{'},
258 @code{"}, or @code{^}.
259
260 @c " to balance double quotes for not-so-bright context-sensitive editors
261
262 To define variables containing lyrics, the function @code{lyricmode}
263 must be used.
264
265 @example
266 verseOne = \lyricmode @{ Joy to the world the Lord is come @}
267 \score @{
268   <<
269     \new Voice = "one" \relative c'' @{
270       \autoBeamOff
271       \time 2/4
272       c4 b8. a16 g4. f8 e4 d c2
273     @}
274     \addlyrics @{ \verseOne @}
275   >>
276 @}
277 @end example
278
279
280 @seealso
281
282 Internals Reference:
283 @rinternals{LyricText},
284 @rinternals{LyricSpace}.
285
286 @node Working with lyrics and variables
287 @subsubsection Working with lyrics and variables
288
289 @cindex lyrics, variables
290
291 To define variables containing lyrics, the function @code{\lyricmode}
292 must be used.  You do not have to enter durations though, if you add
293 @code{\addlyrics} or @code{\lyricsto}
294 when invoking your variable.
295
296 @example
297 verseOne = \lyricmode @{ Joy to the world the Lord is come @}
298 \score @{
299  <<
300    \new Voice = "one" \relative c'' @{
301      \autoBeamOff
302      \time 2/4
303      c4 b8. a16 g4. f8 e4 d c2
304    @}
305    \addlyrics @{ \verseOne @}
306  >>
307 @}
308 @end example
309
310 For different or more complex orderings, the best way is to setup the
311 hierarchy of staves and lyrics first, e.g.,
312 @example
313 \new ChoirStaff <<
314   \new Voice = "soprano" @{ @emph{music} @}
315   \new Lyrics = "sopranoLyrics" @{ s1 @}
316   \new Lyrics = "tenorLyrics" @{ s1 @}
317   \new Voice = "tenor" @{ @emph{music} @}
318 >>
319 @end example
320
321 and then combine the appropriate melodies and lyric lines
322
323 @example
324 \context Lyrics = sopranoLyrics \lyricsto "soprano"
325 @emph{the lyrics}
326 @end example
327
328 @noindent
329
330 The final input would resemble
331
332 @example
333 <<\new ChoirStaff << @emph{setup the music} >>
334  \lyricsto "soprano" @emph{etc}
335  \lyricsto "alto" @emph{etc}
336 @emph{etc}
337 >>
338 @end example
339
340 @ignore
341
342 http://code.google.com/p/lilypond/issues/detail?id=329
343 The problem cannot be reproduced.
344 The following has no sense, because the issue seems to be fixed.
345 A comment is in tracker waiting for response ---FV
346
347
348 Be careful when defining a variable with lyrics that creates a new
349 context, for example, using the deprecated @code{\lyrics} command. See
350 the next erroneous example:
351
352 @example
353 words = \lyrics{ %warning: this creates a new context
354  one two
355 }
356 <<
357   \new Voice = "sop" { c1 }
358   \new Lyrics \lyricsto "sop" { \words }
359   \new Voice = "alt" { c2 c }
360   \new Lyrics \lyricsto "alt" { \words }
361 >>
362 @end example
363
364 the problem is that \lyricsto will try to connect the "sop" melody with the context
365 created by "\new Lyrics".
366
367 Then \lyrics in \words creates another context, and the original "\new Lyrics" one
368 remains empty.
369
370 @end ignore
371
372 @seealso
373
374 @c TODO: document \new Staff << Voice \lyricsto >> bug
375 Internals Reference:
376 @rinternals{LyricCombineMusic},
377 @rinternals{Lyrics}.
378
379
380 @node Aligning lyrics to a melody
381 @subsection Aligning lyrics to a melody
382
383 @funindex \lyricmode
384 @funindex \addlyrics
385 @funindex \lyricsto
386
387
388 Lyrics are printed by interpreting them in the context called
389 @rinternals{Lyrics}.
390
391 @example
392 \new Lyrics \lyricmode @dots{}
393 @end example
394
395 There are two main methods to specify the horizontal placement
396 of the syllables:
397
398 @itemize
399 @item
400 by automatically aligning
401 the lyrics to a melody or other voice of music, using @code{\addlyrics}
402 or @code{\lyricsto}.
403
404 @item
405 or by specifying the duration of each syllable
406 explicitly, using @code{\lyricmode}
407 @end itemize
408
409 @menu
410 * Automatic syllable durations::
411 * Manual syllable durations::
412 * Multiple syllables to one note::
413 * Multiple notes to one syllable::
414 * Skipping notes::
415 * Extenders and hyphens::
416 * Lyrics and repeats::
417 @end menu
418
419 @node Automatic syllable durations
420 @subsubsection Automatic syllable durations
421
422 @cindex automatic syllable durations
423 @cindex lyrics and melodies
424
425 The lyrics can be aligned under a given melody
426 automatically.  This is achieved by combining the
427 melody and the lyrics with the @code{\lyricsto} expression
428
429 @example
430 \new Lyrics \lyricsto @var{name} @dots{}
431 @end example
432
433 This aligns the lyrics to the
434 notes of the @rinternals{Voice} context called @var{name}, which must
435 already exist.  Therefore normally the @code{Voice} is specified first, and
436 then the lyrics are specified with @code{\lyricsto}.  The command
437 @code{\lyricsto} switches to @code{\lyricmode} mode automatically, so the
438 @code{\lyricmode} keyword may be omitted.
439
440 The following example uses different commands for entering lyrics.
441
442 @lilypond[quote,fragment,ragged-right,verbatim]
443 <<
444   \new Voice = "one" \relative c'' {
445     \autoBeamOff
446     \time 2/4
447     c4 b8. a16 g4. f8 e4 d c2
448   }
449
450 % not recommended: left aligns syllables 
451   \new Lyrics \lyricmode { Joy4 to8. the16 world!4. the8 Lord4 is come.2 }
452
453 % wrong: durations needed
454   \new Lyrics \lyricmode { Joy to the earth! the Sa -- viour reigns. }
455
456 %correct
457   \new Lyrics \lyricsto "one" { No more let sins and sor -- rows grow. }
458 >>
459 @end lilypond
460
461 The second stanza is not properly aligned because the durations
462 were not specified.  A solution for that would be to use @code{\lyricsto}.
463
464 The @code{\addlyrics} command is actually just a convenient way
465 to write a more complicated LilyPond structure that sets up the
466 lyrics.
467
468 @example
469 @{ MUSIC @}
470 \addlyrics @{ LYRICS @}
471 @end example
472
473 @noindent
474 is the same as
475
476 @example
477 \new Voice = "blah" @{ music @}
478 \new Lyrics \lyricsto "blah" @{ LYRICS @}
479 @end example
480
481 @node Manual syllable durations
482 @subsubsection Manual syllable durations
483
484 Lyrics can also be entered without @code{\addlyrics} or
485 @code{\lyricsto}.  In this case,
486 syllables are entered like notes -- but with pitches replaced by text -- and the
487 duration of each syllable must be entered explicitly.  For example:
488
489 @example
490 play2 the4 game2.
491 sink2 or4 swim2.
492 @end example
493
494 The alignment to a melody can be specified with the
495 @code{associatedVoice} property,
496
497 @example
498 \set associatedVoice = #"lala"
499 @end example
500
501 @noindent
502 The value of the property (here: @code{"lala"}) should be the name of
503 a @rinternals{Voice} context.  Without this setting, extender lines
504 will not be formatted properly.
505
506 Here is an example demonstrating manual lyric durations,
507
508 @lilypond[relative=1,ragged-right,verbatim,fragment,quote]
509 << \new Voice = "melody" {
510     \time 3/4
511     c2 e4 g2.
512  }
513  \new Lyrics \lyricmode {
514    \set associatedVoice = #"melody"
515    play2 the4 game2.
516  } >>
517 @end lilypond
518
519 @seealso
520
521 Internals Reference:
522 @rinternals{Lyrics}.
523
524
525 @node Multiple syllables to one note
526 @subsubsection Multiple syllables to one note
527
528
529 @funindex _
530 @cindex ties, in lyrics
531
532 In order to assign more than one syllable to a single note, you can
533 surround them with quotes or use a @code{_} character, to get spaces
534 between syllables, or use tilde  symbol (@code{~}) to get a lyric
535 tie@footnote{The lyric ties is implemented with the Unicode character
536 U+203F, so be
537 sure to have a font (Like DejaVuLGC) installed that includes this
538 glyph.}.
539
540 @lilypond[quote,ragged-right,fragment,verbatim]
541 \time 3/4
542 \relative c' { c2 e4 g2 e4 }
543 \addlyrics { gran- de_a- mi- go }
544 \addlyrics { pu- "ro y ho-" nes- to }
545 \addlyrics { pu- ro~y~ho- nes- to }
546 @end lilypond
547
548 @seealso
549
550 Internals Reference:
551 @rinternals{LyricCombineMusic}.
552
553 @c Here come the section which used to be "Melismata"
554 @c the new title might be more self-explanatory
555
556
557 @node Multiple notes to one syllable
558 @subsubsection Multiple notes to one syllable
559
560 @cindex melisma
561 @cindex melismata
562 @cindex phrasing, in lyrics
563
564 Sometimes, particularly in Medieval music, several notes are to be sung on one
565 single syllable; such vocalises are called melismas, or melismata.
566
567 @c this method seems to be the simplest; therefore
568 @c it might be better to present it first - vv
569
570 You can define melismata entirely in the lyrics, by entering @code{_}
571 for every extra note that has to be added to the the melisma.
572
573 @c verbose! --FV
574 @c duplicated: TODO fix
575 Additionaly, you can make an extender line to be typeset to indicate
576 the melisma in the score, writing a double underscore next to the
577 first syllable of the melisma. This example shows the three elements
578 that are used for this purpose (all of them surrounded by spaces):
579 double hyphens to separate syllables in a word, underscores to add
580 notes to a melisma, and a double underscore to put an extender line.
581
582 @c wrong: extender line only on last syllable of a word. Change example
583 @lilypond[relative=1,verbatim,fragment,quote]
584 { \set melismaBusyProperties = #'()
585  c d( e) f f( e) e e  }
586 \addlyrics
587  { Ky -- _ _ ri __ _ _ _  e }
588 @end lilypond
589
590 In this case, you can also have ties and slurs in the melody if you
591 set @code{melismaBusyProperties}, as is done in the example above.
592
593 However, the @code{\lyricsto} command can also
594 detect melismata automatically: it only puts one
595 syllable under a tied or slurred group of notes.  If you want to force
596 an unslurred group of notes to be a melisma, insert @code{\melisma}
597 after the first note of the group, and @code{\melismaEnd} after the
598 last one, e.g.,
599
600 @lilypond[quote,relative=2,ragged-right,fragment,verbatim]
601 <<
602   \new Voice = "lala" {
603     \time 3/4
604     f4 g8
605     \melisma
606     f e f
607     \melismaEnd
608     e2
609   }
610   \new Lyrics \lyricsto "lala" {
611     la di __ daah
612   }
613 >>
614 @end lilypond
615
616 In addition, notes are considered a melisma if they are manually
617 beamed, and automatic beaming (see @ref{Setting automatic beam
618 behavior}) is switched off.
619
620 @c TODO: there might be some more relevant place for
621 @c the following link (?)
622
623 @cindex SATB
624 @cindex choral score
625
626 A complete example of a SATB score setup is in section
627 @rlearning{Vocal ensembles}.
628
629
630 @predefined
631
632 @code{\melisma}, @code{\melismaEnd}
633 @funindex \melismaEnd
634 @funindex \melisma
635
636 @seealso
637
638 Internals Reference:
639 @rinternals{Melisma_translator}.
640
641 @c @lsr{vocal,lyric@/-combine.ly}.
642
643 @knownissues
644
645 Melismata are not detected automatically, and extender lines must be
646 inserted by hand.
647
648 @node Skipping notes
649 @subsubsection Skipping notes
650
651 Making a lyric line run slower than the melody can be achieved by
652 inserting @code{\skip}s into the lyrics.  For every @code{\skip}, 
653 the text will be delayed another note.
654
655 For example,
656
657 @lilypond[verbatim,ragged-right,quote]
658 \relative c' { c c g' }
659 \addlyrics {
660   twin -- \skip 4
661   kle
662 }
663 @end lilypond
664
665
666 @node Extenders and hyphens
667 @subsubsection Extenders and hyphens
668
669 @cindex melisma
670 @cindex extender
671
672 @c leave this as samp. -gp
673 In the last syllable of a word, melismata are sometimes indicated with
674 a long horizontal line starting in the melisma syllable, and ending in
675 the next one.  Such a line is called an extender line, and it is
676 entered as @samp{ __ } (note the spaces before and after the two
677 underscore characters).
678
679 @warning{Melismata are indicated in the score with extender lines,
680 which are entered as one double underscore; but short melismata can
681 also be entered by skipping individual notes, which are entered as
682 single underscore characters; these do not make an extender line to be
683 typeset by default.}
684
685 @cindex hyphens
686
687 @c leave this as samp. -gp
688 Centered hyphens are entered as @samp{ -- } between syllables of a same word
689 (note the spaces before and after the two hyphen characters).  The hyphen
690 will be centered between the syllables, and its length will be adjusted
691 depending on the space between the syllables.
692
693 In tightly engraved music, hyphens can be removed.  Whether this
694 happens can be controlled with the @code{minimum-distance} (minimum
695 distance between two syllables) and the @code{minimum-length}
696 (threshold below which hyphens are removed).
697
698 @seealso
699
700 Internals Reference:
701 @rinternals{LyricExtender},
702 @rinternals{LyricHyphen}
703
704 @node Lyrics and repeats
705 @subsubsection Lyrics and repeats
706
707 @c TODO New section.  Add text
708 TBC
709
710
711 @node Placement of lyrics
712 @subsection Placement of lyrics
713
714 Often, different stanzas of one song are put to one melody in slightly
715 differing ways.  Such variations can still be captured with
716 @code{\lyricsto}.
717
718 @menu
719 * Divisi lyrics::
720 * Lyrics independent of notes::
721 * Chants::
722 * Spacing out syllables::
723 * Centering lyrics between staves::
724 @end menu
725
726
727
728 @node Divisi lyrics
729 @subsubsection Divisi lyrics
730
731 You can display alternate (or divisi) lyrics by naming voice
732 contexts and attaching lyrics to those specific contexts.
733
734 @lilypond[verbatim,ragged-right,quote]
735 \score{ <<
736   \new Voice = "melody" {
737     \relative c' {
738       c4
739       <<
740         { \voiceOne c8 e }
741         \new Voice = "splitpart" { \voiceTwo c4 }
742       >>
743       \oneVoice c4 c | c
744     }
745   }
746   \new Lyrics \lyricsto "melody" { we shall not o- ver- come }
747   \new Lyrics \lyricsto "splitpart" { will }
748 >> }
749 @end lilypond
750
751
752 You can use this trick to display different lyrics for a repeated
753 section.
754
755 @lilypond[verbatim,ragged-right,quote]
756 \score{ <<
757   \new Voice = "melody" \relative c' {
758     c2 e | g e | c1 |
759     \new Voice = "verse" \repeat volta 2 {c4 d e f | g1 | }
760     a2 b | c1}
761   \new Lyrics = "mainlyrics" \lyricsto melody \lyricmode {
762     do mi sol mi do
763     la si do }
764   \context Lyrics = "mainlyrics" \lyricsto verse \lyricmode {
765    do re mi fa sol }
766   \new Lyrics = "repeatlyrics" \lyricsto verse \lyricmode {
767    dodo rere mimi fafa solsol }
768 >>
769 }
770 @end lilypond
771
772
773
774 @node Lyrics independent of notes
775 @subsubsection Lyrics independent of notes
776
777 @cindex Devnull context
778
779 In some complex vocal music, it may be desirable to place
780 lyrics completely independently of notes.  Music defined
781 inside @code{lyricrhythm} disappears into the
782 @code{Devnull} context, but the rhythms can still be used
783 to place the lyrics.
784
785 @lilypond[quote,verbatim,ragged-right]
786 voice = {
787   c''2
788   \tag #'music { c''2 }
789   \tag #'lyricrhythm { c''4. c''8 }
790   d''1
791 }
792
793 lyr = \lyricmode { I like my cat! }
794
795 <<
796   \new Staff \keepWithTag #'music \voice
797   \new Devnull="nowhere" \keepWithTag #'lyricrhythm \voice
798   \new Lyrics \lyricsto "nowhere" \lyr
799   \new Staff { c'8 c' c' c' c' c' c' c'
800   c' c' c' c' c' c' c' c' }
801 >>
802 @end lilypond
803
804 This method is recommended only if the music in the @code{Devnull}
805 context does not contain melismata.  Melismata are defined by the
806 @code{Voice} context. Connecting lyrics to a @code{Devnull} context
807 makes the voice/lyrics links to get lost, and so does the info on
808 melismata.  Therefore, if you link lyrics to a @code{Devnull} context,
809 the implicit melismata get ignored.
810
811 @c Conclusion: do not use devnull for lyrics -FV
812
813 @c this clarifies http://code.google.com/p/lilypond/issues/detail?id=248
814
815
816 @node Chants
817 @subsubsection Chants
818
819 @c TODO Add text from lsr and -user
820 TBC
821
822 @node Spacing out syllables
823 @subsubsection Spacing out syllables
824
825 @cindex Spacing lyrics
826 @cindex Lyrics, increasing space between
827
828 To increase the spacing between lyrics, set the minimum-distance property of
829 LyricSpace.
830
831 @lilypond[relative,verbatim,fragment,quote,ragged-right]
832 {
833   c c c c
834   \override Lyrics.LyricSpace #'minimum-distance = #1.0
835   c c c c
836 }
837 \addlyrics {
838   longtext longtext longtext longtext
839   longtext longtext longtext longtext
840 }
841 @end lilypond
842
843 To make this change for all lyrics in the score, set the property in the
844 layout.
845
846 @lilypond[verbatim,quote,ragged-right]
847 \score {
848   \relative c' {
849   c c c c
850   c c c c
851   }
852   \addlyrics {
853   longtext longtext longtext longtext
854   longtext longtext longtext longtext
855   }
856   \layout {
857     \context {
858       \Lyrics
859       \override LyricSpace #'minimum-distance = #1.0
860     }
861   }
862 }
863 @end lilypond
864
865 @snippets
866 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
867 {aligning-lyrics.ly}
868
869
870 @snippets
871
872 Checking to make sure that text scripts and lyrics are within the margins is
873 a relatively large computational task.  To speed up processing, LilyPond does
874 not perform such calculations by default; to enable it, use
875
876 @example
877 \override Score.PaperColumn #'keep-inside-line = ##t
878 @end example
879
880 To make lyrics avoid bar lines as well, use
881
882 @example
883 \layout @{
884   \context @{
885     \Lyrics
886       \consists "Bar_engraver"
887       \consists "Separating_line_group_engraver"
888       \override BarLine #'transparent = ##t
889   @}
890 @}
891 @end example
892
893 @c TODO Create and add lsr example of lyricMelismaAlignment
894 @c It's used like this to center-align all lyric syllables,
895 @c even when notes are tied. -td
896
897 @ignore
898 \layout
899 {
900      \context { \Score lyricMelismaAlignment = #0 }
901 }
902 @end ignore
903
904
905 @node Centering lyrics between staves
906 @subsubsection Centering lyrics between staves
907
908 @c TODO Add text from -user
909 TBC
910
911 @node Stanzas
912 @subsection Stanzas
913
914 @menu
915 * Adding stanza numbers ::
916 * Adding dynamics marks to stanzas::
917 * Adding singers' names to stanzas::
918 * Stanzas with different rhythms::
919 * Printing stanzas at the end ::
920 * Printing stanzas at the end in multiple columns ::
921 @end menu
922
923
924 @node Adding stanza numbers
925 @subsubsection Adding stanza numbers
926
927 @cindex stanza number
928
929 Stanza numbers can be added by setting @code{stanza}, e.g.,
930
931 @lilypond[quote,ragged-right,verbatim,relative=2,fragment]
932 \new Voice {
933   \time 3/4 g2 e4 a2 f4 g2.
934 } \addlyrics {
935   \set stanza = "1. "
936   Hi, my name is Bert.
937 } \addlyrics {
938   \set stanza = "2. "
939   Oh, ché -- ri, je t'aime
940 }
941 @end lilypond
942
943
944 @noindent
945 These numbers are put just before the start of the first syllable.
946
947 @c TODO Create and add snippet to show how two lines of a
948 @c stanza can be grouped together, along these lines: 
949 @c (might need improving a bit) -td
950
951 @ignore
952 leftbrace = \markup { \override #'(font-encoding . fetaBraces) \lookup
953 #"brace105" }
954
955 stanzaOneOne = {
956   \set stanza = \markup { "1. " \leftbrace }
957   \lyricmode { Child, you're mine and I love you.
958     Lend thine ear to what I say.
959
960   }
961 }
962
963 stanzaOneThree =  {
964 %  \set stanza = \markup { "   "}
965   \lyricmode { Child, I have no great -- er joy
966     Than to have you walk in truth.
967
968   }
969 }
970
971 \new Voice {
972   \repeat volta 2 { c'8 c' c' c' c' c' c'4 
973                     c'8 c' c' c' c' c' c'4   } 
974 }  \addlyrics { \stanzaOneOne }
975    \addlyrics { \stanzaOneThree }
976
977 @end ignore
978
979 @node Adding dynamics marks to stanzas
980 @subsubsection Adding dynamics marks to stanzas
981
982 Stanzas differing in loudness may be indicated by putting a
983 dynamics mark before each stanza.  In LilyPond, everything coming in
984 front of a stanza goes into the @code{StanzaNumber} object; dynamics marks
985 are no different.  For technical reasons, you have to set the stanza
986 outside @code{\lyricmode}:
987
988 @lilypond[quote,ragged-right,verbatim]
989 text = {
990   \set stanza = \markup { \dynamic "ff" "1. " }
991   \lyricmode {
992     Big bang
993   }
994 }
995
996 <<
997   \new Voice = "tune" {
998     \time 3/4
999     g'4 c'2
1000   }
1001 \new Lyrics \lyricsto "tune" \text
1002 >>
1003 @end lilypond
1004
1005 @node Adding singers' names to stanzas
1006 @subsubsection Adding singers' names to stanzas
1007
1008 @cindex singer name
1009 @cindex name of singer
1010
1011 Names of singers can also be added.  They are printed at the start of
1012 the line, just like instrument names.  They are created by setting
1013 @code{vocalName}.  A short version may be entered as @code{shortVocalName}.
1014
1015 @lilypond[fragment,ragged-right,quote,verbatim,relative=2]
1016 \new Voice {
1017   \time 3/4 g2 e4 a2 f4 g2.
1018 } \addlyrics {
1019   \set vocalName = "Bert "
1020   Hi, my name is Bert.
1021 } \addlyrics {
1022   \set vocalName = "Ernie "
1023   Oh, ché -- ri, je t'aime
1024 }
1025 @end lilypond
1026
1027 @node Stanzas with different rhythms
1028 @subsubsection Stanzas with different rhythms
1029
1030 @subsubheading Ignoring melismata
1031
1032 One possibility is that the text has a melisma in one stanza, but
1033 multiple syllables in another one.  One solution is to make the faster
1034 voice ignore the melisma.  This is done by setting
1035 @code{ignoreMelismata} in the Lyrics context.
1036
1037 There is one tricky aspect: the setting for @code{ignoreMelismata}
1038 must be set one syllable @emph{before} the non-melismatic syllable
1039 in the text, as shown here,
1040
1041 @c  TODO: breaks compile
1042 @c seems to be fixed, does not break compile anymore --FV
1043 @lilypond[verbatim,ragged-right,quote]
1044 <<
1045   \relative c' \new Voice = "lahlah" {
1046     \set Staff.autoBeaming = ##f
1047     c4
1048     \slurDotted
1049     f8.[( g16])
1050     a4
1051   }
1052   \new Lyrics \lyricsto "lahlah" {
1053     more slow -- ly
1054   }
1055   \new Lyrics \lyricsto "lahlah" {
1056     \set ignoreMelismata = ##t % applies to "fas"
1057     go fas -- ter
1058     \unset ignoreMelismata
1059     still
1060   }
1061 >>
1062 @end lilypond
1063
1064
1065 The @code{ignoreMelismata} applies to the syllable @q{fas}, so it
1066 should be entered before @q{go}.
1067
1068
1069 @subsubheading Switching to an alternative melody
1070
1071 More complex variations in text underlay are possible.  It is possible
1072 to switch the melody for a line of lyrics during the text.  This is
1073 done by setting the @code{associatedVoice} property.  In the example
1074
1075 @lilypond[ragged-right,quote]
1076 <<
1077   \relative c' \new Voice = "lahlah" {
1078     \set Staff.autoBeaming = ##f
1079     c4
1080     <<
1081       \new Voice = "alternative" {
1082         \voiceOne
1083         \times 2/3 {
1084           % show associations clearly.
1085           \override NoteColumn #'force-hshift = #-3
1086           f8 f g
1087         }
1088       }
1089       {
1090         \voiceTwo
1091         f8.[ g16]
1092         \oneVoice
1093       } >>
1094     a8( b) c
1095   }
1096   \new Lyrics \lyricsto "lahlah" {
1097     Ju -- ras -- sic Park
1098   }
1099   \new Lyrics \lyricsto "lahlah" {
1100     % Tricky: need to set associatedVoice
1101     % one syllable too soon!
1102     \set associatedVoice = alternative % applies to "ran"
1103     Ty --
1104     ran --
1105     no --
1106     \set associatedVoice = lahlah % applies to "rus"
1107     sau -- rus Rex
1108   } >>
1109 @end lilypond
1110
1111 @noindent
1112 the text for the first stanza is set to a melody called @q{lahlah},
1113
1114 @example
1115 \new Lyrics \lyricsto "lahlah" @{
1116   Ju -- ras -- sic Park
1117 @}
1118 @end example
1119
1120
1121 The second stanza initially is set to the @code{lahlah} context, but
1122 for the syllable @q{ran}, it switches to a different melody.
1123 This is achieved with
1124 @example
1125 \set associatedVoice = alternative
1126 @end example
1127
1128 @noindent
1129 Here, @code{alternative} is the name of the @code{Voice} context
1130 containing the triplet.
1131
1132 This command must be one syllable too early, before @q{Ty} in this
1133 case.  In other words, changing the associatedVoice happens one step
1134 later than expected.  This is for technical reasons, and it is not a
1135 bug.
1136
1137 @example
1138 \new Lyrics \lyricsto "lahlah" @{
1139   \set associatedVoice = alternative % applies to "ran"
1140   Ty --
1141   ran --
1142   no --
1143   \set associatedVoice = lahlah % applies to "rus"
1144   sau -- rus Rex
1145 @}
1146 @end example
1147
1148 @noindent
1149 The underlay is switched back to the starting situation by assigning
1150 @code{lahlah} to @code{associatedVoice}.
1151
1152
1153 @node Printing stanzas at the end
1154 @subsubsection Printing stanzas at the end
1155
1156 Sometimes it is appropriate to have one stanza set
1157 to the music, and the rest added in verse form at
1158 the end of the piece.  This can be accomplished by adding
1159 the extra verses into a @code{\markup} section outside
1160 of the main score block.  Notice that there are two
1161 different ways to force linebreaks when using
1162 @code{\markup}.
1163
1164 @lilypond[ragged-right,verbatim,quote]
1165 melody = \relative c' {
1166 e d c d | e e e e |
1167 d d e d | c1 |
1168 }
1169
1170 text = \lyricmode {
1171 \set stanza = "1." Ma- ry had a lit- tle lamb,
1172 its fleece was white as snow.
1173 }
1174
1175 \score{ <<
1176   \new Voice = "one" { \melody }
1177   \new Lyrics \lyricsto "one" \text
1178 >>
1179   \layout { }
1180 }
1181 \markup { \column{
1182   \line{ Verse 2. }
1183   \line{ All the children laughed and played }
1184   \line{ To see a lamb at school. }
1185   }
1186 }
1187 \markup{
1188   \wordwrap-string #"
1189   Verse 3.
1190
1191   Mary took it home again,
1192
1193   It was against the rule."
1194 }
1195 @end lilypond
1196
1197
1198 @node Printing stanzas at the end in multiple columns
1199 @subsubsection Printing stanzas at the end in multiple columns
1200
1201 When a piece of music has many verses, they are often printed in
1202 multiple columns across the page.  An outdented verse number often
1203 introduces each verse.  The following example shows how to produce such
1204 output in LilyPond.
1205
1206 @lilypond[ragged-right,quote,verbatim]
1207 melody = \relative c' {
1208   c c c c | d d d d
1209 }
1210  
1211 text = \lyricmode {
1212   \set stanza = "1." This is verse one.
1213   It has two lines.
1214 }
1215
1216 \score{ <<
1217     \new Voice = "one" { \melody }
1218     \new Lyrics \lyricsto "one" \text
1219    >>
1220   \layout { }
1221 }
1222
1223 \markup {
1224   \fill-line {
1225     \hspace #0.1 % moves the column off the left margin; 
1226         % can be removed if space on the page is tight
1227      \column {
1228       \line { \bold "2."
1229         \column {
1230           "This is verse two."
1231           "It has two lines."
1232         }
1233       }
1234       \hspace #0.1 % adds vertical spacing between verses
1235       \line { \bold "3."
1236         \column {
1237           "This is verse three."
1238           "It has two lines."
1239         }
1240       }
1241     }
1242     \hspace #0.1  % adds horizontal spacing between columns; 
1243         % if they are still too close, add more " " pairs  
1244         % until the result looks good
1245      \column {
1246       \line { \bold "4."
1247         \column {
1248           "This is verse four."
1249           "It has two lines."
1250         }
1251       }
1252       \hspace #0.1 % adds vertical spacing between verses
1253       \line { \bold "5."
1254         \column {
1255           "This is verse five."
1256           "It has two lines."
1257         }
1258       }
1259     }
1260   \hspace #0.1 % gives some extra space on the right margin; 
1261       % can be removed if page space is tight
1262   }
1263 }
1264 @end lilypond
1265
1266
1267 @seealso
1268
1269 Internals Reference:
1270 @rinternals{LyricText},
1271 @rinternals{StanzaNumber},
1272 @rinternals{VocalName}.
1273
1274
1275
1276