]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/user/vocal.itely
accea8762540fe939377da27aa10084f54eef611
[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.57"
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 @c @lsr{vocal,lyric@/-combine.ly}.
639
640 @knownissues
641
642 Melismata are not detected automatically, and extender lines must be
643 inserted by hand.
644
645 @node Skipping notes
646 @subsubsection Skipping notes
647
648 Making a lyric line run slower than the melody can be achieved by
649 inserting @code{\skip}s into the lyrics.  For every @code{\skip}, 
650 the text will be delayed another note.
651
652 For example,
653
654 @lilypond[verbatim,ragged-right,quote]
655 \relative c' { c c g' }
656 \addlyrics {
657   twin -- \skip 4
658   kle
659 }
660 @end lilypond
661
662
663 @node Extenders and hyphens
664 @subsubsection Extenders and hyphens
665
666 @cindex melisma
667 @cindex extender
668
669 @c leave this as samp. -gp
670 In the last syllable of a word, melismata are sometimes indicated with
671 a long horizontal line starting in the melisma syllable, and ending in
672 the next one.  Such a line is called an extender line, and it is
673 entered as @samp{ __ } (note the spaces before and after the two
674 underscore characters).
675
676 @warning{Melismata are indicated in the score with extender lines,
677 which are entered as one double underscore; but short melismata can
678 also be entered by skipping individual notes, which are entered as
679 single underscore characters; these do not make an extender line to be
680 typeset by default.}
681
682 @cindex hyphens
683
684 @c leave this as samp. -gp
685 Centered hyphens are entered as @samp{ -- } between syllables of a same word
686 (note the spaces before and after the two hyphen characters).  The hyphen
687 will be centered between the syllables, and its length will be adjusted
688 depending on the space between the syllables.
689
690 In tightly engraved music, hyphens can be removed.  Whether this
691 happens can be controlled with the @code{minimum-distance} (minimum
692 distance between two syllables) and the @code{minimum-length}
693 (threshold below which hyphens are removed).
694
695 @seealso
696
697 Internals Reference:
698 @rinternals{LyricExtender},
699 @rinternals{LyricHyphen}
700
701 @node Lyrics and repeats
702 @subsubsection Lyrics and repeats
703
704 @c TODO New section.  Add text
705 TBC
706
707
708 @node Placement of lyrics
709 @subsection Placement of lyrics
710
711 Often, different stanzas of one song are put to one melody in slightly
712 differing ways.  Such variations can still be captured with
713 @code{\lyricsto}.
714
715 @menu
716 * Divisi lyrics::
717 * Lyrics independent of notes::
718 * Chants::
719 * Spacing out syllables::
720 * Centering lyrics between staves::
721 @end menu
722
723
724
725 @node Divisi lyrics
726 @subsubsection Divisi lyrics
727
728 You can display alternate (or divisi) lyrics by naming voice
729 contexts and attaching lyrics to those specific contexts.
730
731 @lilypond[verbatim,ragged-right,quote]
732 \score{ <<
733   \new Voice = "melody" {
734     \relative c' {
735       c4
736       <<
737         { \voiceOne c8 e }
738         \new Voice = "splitpart" { \voiceTwo c4 }
739       >>
740       \oneVoice c4 c | c
741     }
742   }
743   \new Lyrics \lyricsto "melody" { we shall not o- ver- come }
744   \new Lyrics \lyricsto "splitpart" { will }
745 >> }
746 @end lilypond
747
748
749 You can use this trick to display different lyrics for a repeated
750 section.
751
752 @lilypond[verbatim,ragged-right,quote]
753 \score{ <<
754   \new Voice = "melody" \relative c' {
755     c2 e | g e | c1 |
756     \new Voice = "verse" \repeat volta 2 {c4 d e f | g1 | }
757     a2 b | c1}
758   \new Lyrics = "mainlyrics" \lyricsto melody \lyricmode {
759     do mi sol mi do
760     la si do }
761   \context Lyrics = "mainlyrics" \lyricsto verse \lyricmode {
762    do re mi fa sol }
763   \new Lyrics = "repeatlyrics" \lyricsto verse \lyricmode {
764    dodo rere mimi fafa solsol }
765 >>
766 }
767 @end lilypond
768
769
770
771 @node Lyrics independent of notes
772 @subsubsection Lyrics independent of notes
773
774 @cindex Devnull context
775
776 In some complex vocal music, it may be desirable to place
777 lyrics completely independently of notes.  Music defined
778 inside @code{lyricrhythm} disappears into the
779 @code{Devnull} context, but the rhythms can still be used
780 to place the lyrics.
781
782 @lilypond[quote,verbatim,ragged-right]
783 voice = {
784   c''2
785   \tag #'music { c''2 }
786   \tag #'lyricrhythm { c''4. c''8 }
787   d''1
788 }
789
790 lyr = \lyricmode { I like my cat! }
791
792 <<
793   \new Staff \keepWithTag #'music \voice
794   \new Devnull="nowhere" \keepWithTag #'lyricrhythm \voice
795   \new Lyrics \lyricsto "nowhere" \lyr
796   \new Staff { c'8 c' c' c' c' c' c' c'
797   c' c' c' c' c' c' c' c' }
798 >>
799 @end lilypond
800
801 This method is recommended only if the music in the @code{Devnull}
802 context does not contain melismata.  Melismata are defined by the
803 @code{Voice} context. Connecting lyrics to a @code{Devnull} context
804 makes the voice/lyrics links to get lost, and so does the info on
805 melismata.  Therefore, if you link lyrics to a @code{Devnull} context,
806 the implicit melismata get ignored.
807
808 @c Conclusion: do not use devnull for lyrics -FV
809
810 @c this clarifies http://code.google.com/p/lilypond/issues/detail?id=248
811
812
813 @node Chants
814 @subsubsection Chants
815
816 @c TODO Add text from lsr and -user
817 TBC
818
819 @node Spacing out syllables
820 @subsubsection Spacing out syllables
821
822 @cindex Spacing lyrics
823 @cindex Lyrics, increasing space between
824
825 To increase the spacing between lyrics, set the minimum-distance property of
826 LyricSpace.
827
828 @lilypond[relative,verbatim,fragment,quote,ragged-right]
829 {
830   c c c c
831   \override Lyrics.LyricSpace #'minimum-distance = #1.0
832   c c c c
833 }
834 \addlyrics {
835   longtext longtext longtext longtext
836   longtext longtext longtext longtext
837 }
838 @end lilypond
839
840 To make this change for all lyrics in the score, set the property in the
841 layout.
842
843 @lilypond[verbatim,quote,ragged-right]
844 \score {
845   \relative c' {
846   c c c c
847   c c c c
848   }
849   \addlyrics {
850   longtext longtext longtext longtext
851   longtext longtext longtext longtext
852   }
853   \layout {
854     \context {
855       \Lyrics
856       \override LyricSpace #'minimum-distance = #1.0
857     }
858   }
859 }
860 @end lilypond
861
862 @snippets
863 @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
864 {aligning-lyrics.ly}
865
866
867 @snippets
868
869 Checking to make sure that text scripts and lyrics are within the margins is
870 a relatively large computational task.  To speed up processing, LilyPond does
871 not perform such calculations by default; to enable it, use
872
873 @example
874 \override Score.PaperColumn #'keep-inside-line = ##t
875 @end example
876
877 To make lyrics avoid bar lines as well, use
878
879 @example
880 \layout @{
881   \context @{
882     \Lyrics
883       \consists "Bar_engraver"
884       \consists "Separating_line_group_engraver"
885       \override BarLine #'transparent = ##t
886   @}
887 @}
888 @end example
889
890 @c TODO Create and add lsr example of lyricMelismaAlignment
891 @c It's used like this to center-align all lyric syllables,
892 @c even when notes are tied. -td
893
894 @ignore
895 \layout
896 {
897      \context { \Score lyricMelismaAlignment = #0 }
898 }
899 @end ignore
900
901
902 @node Centering lyrics between staves
903 @subsubsection Centering lyrics between staves
904
905 @c TODO Add text from -user
906 TBC
907
908 @node Stanzas
909 @subsection Stanzas
910
911 @menu
912 * Adding stanza numbers ::
913 * Adding dynamics marks to stanzas::
914 * Adding singers' names to stanzas::
915 * Stanzas with different rhythms::
916 * Printing stanzas at the end ::
917 * Printing stanzas at the end in multiple columns ::
918 @end menu
919
920
921 @node Adding stanza numbers
922 @subsubsection Adding stanza numbers
923
924 @cindex stanza number
925
926 Stanza numbers can be added by setting @code{stanza}, e.g.,
927
928 @lilypond[quote,ragged-right,verbatim,relative=2,fragment]
929 \new Voice {
930   \time 3/4 g2 e4 a2 f4 g2.
931 } \addlyrics {
932   \set stanza = "1. "
933   Hi, my name is Bert.
934 } \addlyrics {
935   \set stanza = "2. "
936   Oh, ché -- ri, je t'aime
937 }
938 @end lilypond
939
940
941 @noindent
942 These numbers are put just before the start of the first syllable.
943
944 @c TODO Create and add snippet to show how two lines of a
945 @c stanza can be grouped together, along these lines: 
946 @c (might need improving a bit) -td
947
948 @ignore
949 leftbrace = \markup { \override #'(font-encoding . fetaBraces) \lookup
950 #"brace105" }
951
952 stanzaOneOne = {
953   \set stanza = \markup { "1. " \leftbrace }
954   \lyricmode { Child, you're mine and I love you.
955     Lend thine ear to what I say.
956
957   }
958 }
959
960 stanzaOneThree =  {
961 %  \set stanza = \markup { "   "}
962   \lyricmode { Child, I have no great -- er joy
963     Than to have you walk in truth.
964
965   }
966 }
967
968 \new Voice {
969   \repeat volta 2 { c'8 c' c' c' c' c' c'4 
970                     c'8 c' c' c' c' c' c'4   } 
971 }  \addlyrics { \stanzaOneOne }
972    \addlyrics { \stanzaOneThree }
973
974 @end ignore
975
976 @node Adding dynamics marks to stanzas
977 @subsubsection Adding dynamics marks to stanzas
978
979 Stanzas differing in loudness may be indicated by putting a
980 dynamics mark before each stanza.  In LilyPond, everything coming in
981 front of a stanza goes into the @code{StanzaNumber} object; dynamics marks
982 are no different.  For technical reasons, you have to set the stanza
983 outside @code{\lyricmode}:
984
985 @lilypond[quote,ragged-right,verbatim]
986 text = {
987   \set stanza = \markup { \dynamic "ff" "1. " }
988   \lyricmode {
989     Big bang
990   }
991 }
992
993 <<
994   \new Voice = "tune" {
995     \time 3/4
996     g'4 c'2
997   }
998 \new Lyrics \lyricsto "tune" \text
999 >>
1000 @end lilypond
1001
1002 @node Adding singers' names to stanzas
1003 @subsubsection Adding singers' names to stanzas
1004
1005 @cindex singer name
1006 @cindex name of singer
1007
1008 Names of singers can also be added.  They are printed at the start of
1009 the line, just like instrument names.  They are created by setting
1010 @code{vocalName}.  A short version may be entered as @code{shortVocalName}.
1011
1012 @lilypond[fragment,ragged-right,quote,verbatim,relative=2]
1013 \new Voice {
1014   \time 3/4 g2 e4 a2 f4 g2.
1015 } \addlyrics {
1016   \set vocalName = "Bert "
1017   Hi, my name is Bert.
1018 } \addlyrics {
1019   \set vocalName = "Ernie "
1020   Oh, ché -- ri, je t'aime
1021 }
1022 @end lilypond
1023
1024 @node Stanzas with different rhythms
1025 @subsubsection Stanzas with different rhythms
1026
1027 @subsubheading Ignoring melismata
1028
1029 One possibility is that the text has a melisma in one stanza, but
1030 multiple syllables in another one.  One solution is to make the faster
1031 voice ignore the melisma.  This is done by setting
1032 @code{ignoreMelismata} in the Lyrics context.
1033
1034 There is one tricky aspect: the setting for @code{ignoreMelismata}
1035 must be set one syllable @emph{before} the non-melismatic syllable
1036 in the text, as shown here,
1037
1038 @c  TODO: breaks compile
1039 @c seems to be fixed, does not break compile anymore --FV
1040 @lilypond[verbatim,ragged-right,quote]
1041 <<
1042   \relative c' \new Voice = "lahlah" {
1043     \set Staff.autoBeaming = ##f
1044     c4
1045     \slurDotted
1046     f8.[( g16])
1047     a4
1048   }
1049   \new Lyrics \lyricsto "lahlah" {
1050     more slow -- ly
1051   }
1052   \new Lyrics \lyricsto "lahlah" {
1053     \set ignoreMelismata = ##t % applies to "fas"
1054     go fas -- ter
1055     \unset ignoreMelismata
1056     still
1057   }
1058 >>
1059 @end lilypond
1060
1061
1062 The @code{ignoreMelismata} applies to the syllable @q{fas}, so it
1063 should be entered before @q{go}.
1064
1065
1066 @subsubheading Switching to an alternative melody
1067
1068 More complex variations in text underlay are possible.  It is possible
1069 to switch the melody for a line of lyrics during the text.  This is
1070 done by setting the @code{associatedVoice} property.  In the example
1071
1072 @lilypond[ragged-right,quote]
1073 <<
1074   \relative c' \new Voice = "lahlah" {
1075     \set Staff.autoBeaming = ##f
1076     c4
1077     <<
1078       \new Voice = "alternative" {
1079         \voiceOne
1080         \times 2/3 {
1081           % show associations clearly.
1082           \override NoteColumn #'force-hshift = #-3
1083           f8 f g
1084         }
1085       }
1086       {
1087         \voiceTwo
1088         f8.[ g16]
1089         \oneVoice
1090       } >>
1091     a8( b) c
1092   }
1093   \new Lyrics \lyricsto "lahlah" {
1094     Ju -- ras -- sic Park
1095   }
1096   \new Lyrics \lyricsto "lahlah" {
1097     % Tricky: need to set associatedVoice
1098     % one syllable too soon!
1099     \set associatedVoice = alternative % applies to "ran"
1100     Ty --
1101     ran --
1102     no --
1103     \set associatedVoice = lahlah % applies to "rus"
1104     sau -- rus Rex
1105   } >>
1106 @end lilypond
1107
1108 @noindent
1109 the text for the first stanza is set to a melody called @q{lahlah},
1110
1111 @example
1112 \new Lyrics \lyricsto "lahlah" @{
1113   Ju -- ras -- sic Park
1114 @}
1115 @end example
1116
1117
1118 The second stanza initially is set to the @code{lahlah} context, but
1119 for the syllable @q{ran}, it switches to a different melody.
1120 This is achieved with
1121 @example
1122 \set associatedVoice = alternative
1123 @end example
1124
1125 @noindent
1126 Here, @code{alternative} is the name of the @code{Voice} context
1127 containing the triplet.
1128
1129 This command must be one syllable too early, before @q{Ty} in this
1130 case.  In other words, changing the associatedVoice happens one step
1131 later than expected.  This is for technical reasons, and it is not a
1132 bug.
1133
1134 @example
1135 \new Lyrics \lyricsto "lahlah" @{
1136   \set associatedVoice = alternative % applies to "ran"
1137   Ty --
1138   ran --
1139   no --
1140   \set associatedVoice = lahlah % applies to "rus"
1141   sau -- rus Rex
1142 @}
1143 @end example
1144
1145 @noindent
1146 The underlay is switched back to the starting situation by assigning
1147 @code{lahlah} to @code{associatedVoice}.
1148
1149
1150 @node Printing stanzas at the end
1151 @subsubsection Printing stanzas at the end
1152
1153 Sometimes it is appropriate to have one stanza set
1154 to the music, and the rest added in verse form at
1155 the end of the piece.  This can be accomplished by adding
1156 the extra verses into a @code{\markup} section outside
1157 of the main score block.  Notice that there are two
1158 different ways to force linebreaks when using
1159 @code{\markup}.
1160
1161 @lilypond[ragged-right,verbatim,quote]
1162 melody = \relative c' {
1163 e d c d | e e e e |
1164 d d e d | c1 |
1165 }
1166
1167 text = \lyricmode {
1168 \set stanza = "1." Ma- ry had a lit- tle lamb,
1169 its fleece was white as snow.
1170 }
1171
1172 \score{ <<
1173   \new Voice = "one" { \melody }
1174   \new Lyrics \lyricsto "one" \text
1175 >>
1176   \layout { }
1177 }
1178 \markup { \column{
1179   \line{ Verse 2. }
1180   \line{ All the children laughed and played }
1181   \line{ To see a lamb at school. }
1182   }
1183 }
1184 \markup{
1185   \wordwrap-string #"
1186   Verse 3.
1187
1188   Mary took it home again,
1189
1190   It was against the rule."
1191 }
1192 @end lilypond
1193
1194
1195 @node Printing stanzas at the end in multiple columns
1196 @subsubsection Printing stanzas at the end in multiple columns
1197
1198 When a piece of music has many verses, they are often printed in
1199 multiple columns across the page.  An outdented verse number often
1200 introduces each verse.  The following example shows how to produce such
1201 output in LilyPond.
1202
1203 @lilypond[ragged-right,quote,verbatim]
1204 melody = \relative c' {
1205   c c c c | d d d d
1206 }
1207  
1208 text = \lyricmode {
1209   \set stanza = "1." This is verse one.
1210   It has two lines.
1211 }
1212
1213 \score{ <<
1214     \new Voice = "one" { \melody }
1215     \new Lyrics \lyricsto "one" \text
1216    >>
1217   \layout { }
1218 }
1219
1220 \markup {
1221   \fill-line {
1222     \hspace #0.1 % moves the column off the left margin; 
1223         % can be removed if space on the page is tight
1224      \column {
1225       \line { \bold "2."
1226         \column {
1227           "This is verse two."
1228           "It has two lines."
1229         }
1230       }
1231       \hspace #0.1 % adds vertical spacing between verses
1232       \line { \bold "3."
1233         \column {
1234           "This is verse three."
1235           "It has two lines."
1236         }
1237       }
1238     }
1239     \hspace #0.1  % adds horizontal spacing between columns; 
1240         % if they are still too close, add more " " pairs  
1241         % until the result looks good
1242      \column {
1243       \line { \bold "4."
1244         \column {
1245           "This is verse four."
1246           "It has two lines."
1247         }
1248       }
1249       \hspace #0.1 % adds vertical spacing between verses
1250       \line { \bold "5."
1251         \column {
1252           "This is verse five."
1253           "It has two lines."
1254         }
1255       }
1256     }
1257   \hspace #0.1 % gives some extra space on the right margin; 
1258       % can be removed if page space is tight
1259   }
1260 }
1261 @end lilypond
1262
1263
1264 @seealso
1265
1266 Internals Reference:
1267 @rinternals{LyricText},
1268 @rinternals{StanzaNumber}.
1269
1270
1271
1272