]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/user/vocal.itely
Merge branch 'master' into nested-bookparts
[lilypond.git] / Documentation / user / vocal.itely
index 9bf4cd401915d77fb5840c6532ec5b03da511c1b..accea8762540fe939377da27aa10084f54eef611 100644 (file)
     version that you are working on.  See TRANSLATION for details.
 @end ignore
 
-@c \version "2.11.38"
+@c \version "2.11.57"
 
 @node Vocal music
 @section Vocal music
 
-Since LilyPond input files are text, there are two issues to
-consider when working with vocal music:
+@c TODO: CLARIFY
+@c TODO: delete this comment block
+@c http://code.google.com/p/lilypond/issues/detail?id=248
+@c Done, see @node Lyrics independent of notes ----FV
+
+@c http://code.google.com/p/lilypond/issues/detail?id=329
+@c Done, see @node Working with lyrics and variables ----FV
+
+@c partially done, needs improvement, see Switching to an alternative melody ----FV
+@ignore
+
+> I think the issue here is that changing the associatedVoice
+> happens one step
+> later than expected.  I could be wrong, but I don't think this
+> is obviously
+> documented.
+
+If you read section "Switching the melody associated with a lyrics
+line"
+it indeed says "Again, the command must be one syllable too
+early,..."!
+One problem with the current formulation is that the "Again"
+refers to what's described 2 subsections earlier in "Lyrics to
+multiple notes of a melisma", which isn't obvious unless you have
+read all the sections
+sequentially.
+
+
+@c Done in @node Extenders and hyphens ---FV
+@c also done (duplicated) in @node Multiple notes to one syllable --FV
+I don't know who's working on the vocal music right now, but I
+found something that should be clarified in NR 2.1.2.4.
+
+It should be made clear that __ is used to crate a lyric extender,
+and _ is used to add a note to a melisma, so both __ and _ are
+used.  The example shows it, but there is no description of the
+lyrics extender in this section.
+@end ignore
+
+
+Since LilyPond input files are text, there are two issues to consider
+when working with vocal music:
 
 @itemize
 @item
-Song texts must be entered as text, not notes.  For example, the
-input@tie{}@code{d} should be interpreted as a one letter syllable, not the
-note@tie{}D.
+Song texts must be interpreted as text, not notes.  For example, the
+input@tie{}@code{d} should be interpreted as a one letter syllable,
+not the note@tie{}D.
 
 @item
 Song texts must be aligned with the notes of their melody.
 @end itemize
 
-There are a few different ways to define lyrics; we shall begin
-by examining the simplest method, and gradually increase complexity.
+To address the first issue, the fundamental method is the special mode
+opened by @code{\lyricmode} that interprets its contents as text.
+This mode is implicit by some abbreviated methods, as we will see.
+
+Aligning of text with melodies can be made automatically, but if you
+specify the durations of the syllables it can also be made manually.
+Lyrics aligning and typesetting are prepared with the help of skips,
+hyphens and extender lines.
+
+All these methods and their combinations lead to a few different ways
+to define lyrics; we shall begin by examining the simplest method, and
+gradually increase complexity.
 
 @menu
-* Simple lyrics::               
-* Aligning lyrics to a melody::  
-* Vocals and variables::        
-* Flexibility in placement::    
-* Spacing vocals::              
-* More about stanzas::          
+* Common notation for vocals::
+* Aligning lyrics to a melody::
+* Placement of lyrics::
+* Stanzas::
 @end menu
 
-@snippets
-
-Checking to make sure that text scripts and lyrics are within the margins is
-a relatively large computational task.  To speed up processing, LilyPond does
-not perform such calculations by default; to enable it, use
 
-@example
-\override Score.PaperColumn #'keep-inside-line = ##t
-@end example
+@node Common notation for vocals
+@subsection Common notation for vocals
 
-To make lyrics avoid bar lines as well, use
+@menu
+* References for vocal music::
+* Setting simple songs::
+* Entering lyrics::
+* Working with lyrics and variables::
+@end menu
 
-@example
-\layout @{
-  \context @{
-    \Lyrics
-      \consists "Bar_engraver"
-      \consists "Separating_line_group_engraver"
-      \override BarLine #'transparent = ##t
-  @}
-@}
-@end example
+@node References for vocal music
+@subsubsection References for vocal music
 
+TBC
+@c TODO Add @refs
 
-@node Simple lyrics
-@subsection Simple lyrics
+@q{Parlato} is spoken without pitch but still with rhythm; it is
+notated by cross note heads.  This is demonstrated in
+@ref{Special note heads}.
 
-@menu
-* Setting simple songs::        
-* Entering lyrics::             
-@end menu
 
 @node Setting simple songs
 @subsubsection Setting simple songs
@@ -84,7 +122,7 @@ to a melody.  Here is an example,
 
 @lilypond[ragged-right,verbatim,fragment,quote]
 \time 3/4
-\relative { c2 e4 g2. }
+\relative c' { c2 e4 g2. }
 \addlyrics { play the game }
 @end lilypond
 
@@ -93,7 +131,7 @@ More stanzas can be added by adding more
 
 @lilypond[ragged-right,verbatim,fragment,quote]
 \time 3/4
-\relative { c2 e4 g2. }
+\relative c' { c2 e4 g2. }
 \addlyrics { play the game }
 \addlyrics { speel het spel }
 \addlyrics { joue le jeu }
@@ -178,9 +216,9 @@ In order to assign more than one syllable to a single note, you can
 surround them with quotes or use a @code{_} character, to get spaces
 between syllables, or use tilde  symbol (@code{~}) to get a lyric tie.
 
-@lilypond[quote,relative=2,ragged-right,fragment,verbatim]
+@lilypond[quote,ragged-right,fragment,verbatim]
 \time 3/4
-\relative { c2 e4 g2 e4 }
+\relative c' { c2 e4 g2 e4 }
 \addlyrics { gran- de_a- mi- go }
 \addlyrics { pu- "ro y ho-" nes- to }
 \addlyrics { pu- ro~y~ho- nes- to }
@@ -194,13 +232,11 @@ glyph.
 To enter lyrics with characters from non-English languages, or with
 accented and special characters (such as the heart symbol or slanted quotes),
 simply insert the characters directly into the input file and save
-it with utf-8 encoding.  See @ref{Text encoding}, for more info.
-
-FIXME: quotes.
+it with UTF-8 encoding.  See @ref{Text encoding}, for more info.
 
 @lilypond[quote,ragged-right,fragment,verbatim]
-\relative { e4 f e d e f e2 }
-\addlyrics { He said: Ã¢â\82¬Å\93Let my peo ple goââ\82¬Â\9d. }
+\relative c' { e4 f e d e f e2 }
+\addlyrics { He said: â\80\9cLet my peo ple goâ\80\9d. }
 @end lilypond
 
 To use normal quotes in lyrics, add a backslash before the
@@ -221,6 +257,8 @@ any 8-bit character with ASCII code over 127, or a two-character
 combination of a backslash followed by one of @code{`}, @code{'},
 @code{"}, or @code{^}.
 
+@c " to balance double quotes for not-so-bright context-sensitive editors
+
 To define variables containing lyrics, the function @code{lyricmode}
 must be used.
 
@@ -241,7 +279,102 @@ verseOne = \lyricmode @{ Joy to the world the Lord is come @}
 
 @seealso
 
-Internals Reference: @internalsref{LyricText}, @internalsref{LyricSpace}.
+Internals Reference:
+@rinternals{LyricText},
+@rinternals{LyricSpace}.
+
+@node Working with lyrics and variables
+@subsubsection Working with lyrics and variables
+
+@cindex lyrics, variables
+
+To define variables containing lyrics, the function @code{\lyricmode}
+must be used.  You do not have to enter durations though, if you add
+@code{\addlyrics} or @code{\lyricsto}
+when invoking your variable.
+
+@example
+verseOne = \lyricmode @{ Joy to the world the Lord is come @}
+\score @{
+ <<
+   \new Voice = "one" \relative c'' @{
+     \autoBeamOff
+     \time 2/4
+     c4 b8. a16 g4. f8 e4 d c2
+   @}
+   \addlyrics @{ \verseOne @}
+ >>
+@}
+@end example
+
+For different or more complex orderings, the best way is to setup the
+hierarchy of staves and lyrics first, e.g.,
+@example
+\new ChoirStaff <<
+  \new Voice = "soprano" @{ @emph{music} @}
+  \new Lyrics = "sopranoLyrics" @{ s1 @}
+  \new Lyrics = "tenorLyrics" @{ s1 @}
+  \new Voice = "tenor" @{ @emph{music} @}
+>>
+@end example
+
+and then combine the appropriate melodies and lyric lines
+
+@example
+\context Lyrics = sopranoLyrics \lyricsto "soprano"
+@emph{the lyrics}
+@end example
+
+@noindent
+
+The final input would resemble
+
+@example
+<<\new ChoirStaff << @emph{setup the music} >>
+ \lyricsto "soprano" @emph{etc}
+ \lyricsto "alto" @emph{etc}
+@emph{etc}
+>>
+@end example
+
+@ignore
+
+http://code.google.com/p/lilypond/issues/detail?id=329
+The problem cannot be reproduced.
+The following has no sense, because the issue seems to be fixed.
+A comment is in tracker waiting for response ---FV
+
+
+Be careful when defining a variable with lyrics that creates a new
+context, for example, using the deprecated @code{\lyrics} command. See
+the next erroneous example:
+
+@example
+words = \lyrics{ %warning: this creates a new context
+ one two
+}
+<<
+  \new Voice = "sop" { c1 }
+  \new Lyrics \lyricsto "sop" { \words }
+  \new Voice = "alt" { c2 c }
+  \new Lyrics \lyricsto "alt" { \words }
+>>
+@end example
+
+the problem is that \lyricsto will try to connect the "sop" melody with the context
+created by "\new Lyrics".
+
+Then \lyrics in \words creates another context, and the original "\new Lyrics" one
+remains empty.
+
+@end ignore
+
+@seealso
+
+@c TODO: document \new Staff << Voice \lyricsto >> bug
+Internals Reference:
+@rinternals{LyricCombineMusic},
+@rinternals{Lyrics}.
 
 
 @node Aligning lyrics to a melody
@@ -253,7 +386,7 @@ Internals Reference: @internalsref{LyricText}, @internalsref{LyricSpace}.
 
 
 Lyrics are printed by interpreting them in the context called
-@internalsref{Lyrics}.
+@rinternals{Lyrics}.
 
 @example
 \new Lyrics \lyricmode @dots{}
@@ -274,11 +407,13 @@ explicitly, using @code{\lyricmode}
 @end itemize
 
 @menu
-* Automatic syllable durations::  
-* Another way of entering lyrics::  
-* Assigning more than one syllable to a single note::  
-* More than one note on a single syllable::  
-* Extenders and hyphens::       
+* Automatic syllable durations::
+* Manual syllable durations::
+* Multiple syllables to one note::
+* Multiple notes to one syllable::
+* Skipping notes::
+* Extenders and hyphens::
+* Lyrics and repeats::
 @end menu
 
 @node Automatic syllable durations
@@ -296,7 +431,7 @@ melody and the lyrics with the @code{\lyricsto} expression
 @end example
 
 This aligns the lyrics to the
-notes of the @internalsref{Voice} context called @var{name}, which must
+notes of the @rinternals{Voice} context called @var{name}, which must
 already exist.  Therefore normally the @code{Voice} is specified first, and
 then the lyrics are specified with @code{\lyricsto}.  The command
 @code{\lyricsto} switches to @code{\lyricmode} mode automatically, so the
@@ -311,8 +446,14 @@ The following example uses different commands for entering lyrics.
     \time 2/4
     c4 b8. a16 g4. f8 e4 d c2
   }
+
+% not recommended: left aligns syllables 
   \new Lyrics \lyricmode { Joy4 to8. the16 world!4. the8 Lord4 is come.2 }
+
+% wrong: durations needed
   \new Lyrics \lyricmode { Joy to the earth! the Sa -- viour reigns. }
+
+%correct
   \new Lyrics \lyricsto "one" { No more let sins and sor -- rows grow. }
 >>
 @end lilypond
@@ -337,33 +478,33 @@ is the same as
 \new Lyrics \lyricsto "blah" @{ LYRICS @}
 @end example
 
-@node Another way of entering lyrics
-@subsubsection Another way of entering lyrics
+@node Manual syllable durations
+@subsubsection Manual syllable durations
 
 Lyrics can also be entered without @code{\addlyrics} or
 @code{\lyricsto}.  In this case,
 syllables are entered like notes -- but with pitches replaced by text -- and the
 duration of each syllable must be entered explicitly.  For example:
+
 @example
 play2 the4 game2.
 sink2 or4 swim2.
 @end example
+
 The alignment to a melody can be specified with the
 @code{associatedVoice} property,
+
 @example
 \set associatedVoice = #"lala"
 @end example
+
 @noindent
 The value of the property (here: @code{"lala"}) should be the name of
-a @internalsref{Voice} context.  Without this setting, extender lines
+a @rinternals{Voice} context.  Without this setting, extender lines
 will not be formatted properly.
+
 Here is an example demonstrating manual lyric durations,
+
 @lilypond[relative=1,ragged-right,verbatim,fragment,quote]
 << \new Voice = "melody" {
     \time 3/4
@@ -376,12 +517,13 @@ Here is an example demonstrating manual lyric durations,
 @end lilypond
 
 @seealso
-Internals Reference: @internalsref{Lyrics}.
+
+Internals Reference:
+@rinternals{Lyrics}.
 
 
-@node Assigning more than one syllable to a single note
-@subsubsection Assigning more than one syllable to a single note
+@node Multiple syllables to one note
+@subsubsection Multiple syllables to one note
 
 
 @funindex _
@@ -395,9 +537,9 @@ U+203F, so be
 sure to have a font (Like DejaVuLGC) installed that includes this
 glyph.}.
 
-@lilypond[quote,relative=2,ragged-right,fragment,verbatim]
+@lilypond[quote,ragged-right,fragment,verbatim]
 \time 3/4
-\relative { c2 e4 g2 e4 }
+\relative c' { c2 e4 g2 e4 }
 \addlyrics { gran- de_a- mi- go }
 \addlyrics { pu- "ro y ho-" nes- to }
 \addlyrics { pu- ro~y~ho- nes- to }
@@ -405,14 +547,15 @@ glyph.}.
 
 @seealso
 
-Internals Reference: @internalsref{LyricCombineMusic}.
+Internals Reference:
+@rinternals{LyricCombineMusic}.
 
 @c Here come the section which used to be "Melismata"
 @c the new title might be more self-explanatory
 
 
-@node More than one note on a single syllable
-@subsubsection More than one note on a single syllable
+@node Multiple notes to one syllable
+@subsubsection Multiple notes to one syllable
 
 @cindex melisma
 @cindex melismata
@@ -425,9 +568,18 @@ single syllable; such vocalises are called melismas, or melismata.
 @c it might be better to present it first - vv
 
 You can define melismata entirely in the lyrics, by entering @code{_}
-for every note
-that is part of the melisma.
-
+for every extra note that has to be added to the the melisma.
+
+@c verbose! --FV
+@c duplicated: TODO fix
+Additionaly, you can make an extender line to be typeset to indicate
+the melisma in the score, writing a double underscore next to the
+first syllable of the melisma. This example shows the three elements
+that are used for this purpose (all of them surrounded by spaces):
+double hyphens to separate syllables in a word, underscores to add
+notes to a melisma, and a double underscore to put an extender line.
+
+@c wrong: extender line only on last syllable of a word. Change example
 @lilypond[relative=1,verbatim,fragment,quote]
 { \set melismaBusyProperties = #'()
  c d( e) f f( e) e e  }
@@ -465,7 +617,7 @@ In addition, notes are considered a melisma if they are manually
 beamed, and automatic beaming (see @ref{Setting automatic beam
 behavior}) is switched off.
 
-@c TODO: there might be some more relevant place for 
+@c TODO: there might be some more relevant place for
 @c the following link (?)
 
 @cindex SATB
@@ -483,8 +635,6 @@ A complete example of a SATB score setup is in section
 
 @seealso
 
-Internals Reference: @internalsref{Melisma_translator}.
-
 @c @lsr{vocal,lyric@/-combine.ly}.
 
 @knownissues
@@ -492,6 +642,24 @@ Internals Reference: @internalsref{Melisma_translator}.
 Melismata are not detected automatically, and extender lines must be
 inserted by hand.
 
+@node Skipping notes
+@subsubsection Skipping notes
+
+Making a lyric line run slower than the melody can be achieved by
+inserting @code{\skip}s into the lyrics.  For every @code{\skip}, 
+the text will be delayed another note.
+
+For example,
+
+@lilypond[verbatim,ragged-right,quote]
+\relative c' { c c g' }
+\addlyrics {
+  twin -- \skip 4
+  kle
+}
+@end lilypond
+
+
 @node Extenders and hyphens
 @subsubsection Extenders and hyphens
 
@@ -499,10 +667,17 @@ inserted by hand.
 @cindex extender
 
 @c leave this as samp. -gp
-Melismata are indicated with a horizontal line centered between a syllable
-and the next one.  Such a line is called an extender line, and it is entered
-as @samp{ __ } (note the spaces before and after the two underscore
-characters).
+In the last syllable of a word, melismata are sometimes indicated with
+a long horizontal line starting in the melisma syllable, and ending in
+the next one.  Such a line is called an extender line, and it is
+entered as @samp{ __ } (note the spaces before and after the two
+underscore characters).
+
+@warning{Melismata are indicated in the score with extender lines,
+which are entered as one double underscore; but short melismata can
+also be entered by skipping individual notes, which are entered as
+single underscore characters; these do not make an extender line to be
+typeset by default.}
 
 @cindex hyphens
 
@@ -519,146 +694,33 @@ distance between two syllables) and the @code{minimum-length}
 
 @seealso
 
-Internals Reference: @internalsref{LyricExtender},
-@internalsref{LyricHyphen}
-
-
-@node Vocals and variables
-@subsection Vocals and variables
+Internals Reference:
+@rinternals{LyricExtender},
+@rinternals{LyricHyphen}
 
-@menu
-* Working with lyrics and variables::  
-@end menu
+@node Lyrics and repeats
+@subsubsection Lyrics and repeats
 
-@node Working with lyrics and variables
-@subsubsection Working with lyrics and variables
+@c TODO New section.  Add text
+TBC
 
-@cindex lyrics, variables
 
-To define variables containing lyrics, the function @code{\lyricmode}
-must be used.  You do not have to enter durations though, if you add
-@code{\addlyrics} or @code{\lyricsto}
-when invoking your variable.
-@example
-verseOne = \lyricmode @{ Joy to the world the Lord is come @}
-\score @{
- <<
-   \new Voice = "one" \relative c'' @{
-     \autoBeamOff
-     \time 2/4
-     c4 b8. a16 g4. f8 e4 d c2
-   @}
-   \addlyrics @{ \verseOne @}
- >>
-@}
-@end example
-For different or more complex orderings, the best way is to setup the
-hierarchy of staves and lyrics first, e.g.,
-@example
-\new ChoirStaff <<
-  \new Voice = "soprano" @{ @emph{music} @}
-  \new Lyrics = "sopranoLyrics" @{ s1 @}
-  \new Lyrics = "tenorLyrics" @{ s1 @}
-  \new Voice = "tenor" @{ @emph{music} @}
->>
-@end example
-and then combine the appropriate melodies and lyric lines
-@example
-\context Lyrics = sopranoLyrics \lyricsto "soprano"
-@emph{the lyrics}
-@end example
-@noindent
-
-The final input would resemble
-@example
-<<\new ChoirStaff << @emph{setup the music} >>
- \lyricsto "soprano" @emph{etc}
- \lyricsto "alto" @emph{etc}
-@emph{etc}
->>
-@end example
-@seealso
-@c TODO: document \new Staff << Voice \lyricsto >> bug
-Internals Reference: @internalsref{LyricCombineMusic},
-@internalsref{Lyrics}.  
-
-
-@node Flexibility in placement
-@subsection Flexibility in placement
+@node Placement of lyrics
+@subsection Placement of lyrics
 
 Often, different stanzas of one song are put to one melody in slightly
 differing ways.  Such variations can still be captured with
 @code{\lyricsto}.
 
 @menu
-* Lyrics to multiple notes of a melisma::  
-* Divisi lyrics::               
-* Switching the melody associated with a lyrics line::  
-* Lyrics independent of notes::  
+* Divisi lyrics::
+* Lyrics independent of notes::
+* Chants::
+* Spacing out syllables::
+* Centering lyrics between staves::
 @end menu
 
 
-@node Lyrics to multiple notes of a melisma
-@subsubsection Lyrics to multiple notes of a melisma
-
-One possibility is that the text has a melisma in one stanza, but
-multiple syllables in another one.  One solution is to make the faster
-voice ignore the melisma.  This is done by setting
-@code{ignoreMelismata} in the Lyrics context.
-
-There is one tricky aspect: the setting for @code{ignoreMelismata}
-must be set one syllable @emph{before} the non-melismatic syllable
-in the text, as shown here,
-
-@c  TODO: breaks compile
-@lilypond[verbatim,ragged-right,quote]
-%{
-<<
-  \relative \new Voice = "lahlah" {
-    \set Staff.autoBeaming = ##f
-    c4
-    \slurDotted
-    f8.[( g16])
-    a4
-  }
-  \new Lyrics \lyricsto "lahlah" {
-    more slow -- ly
-  }
-  \new Lyrics \lyricsto "lahlah" {
-    \set ignoreMelismata = ##t % applies to "fas"
-    go fas -- ter
-    \unset ignoreMelismata
-    still
-  }
->>
-%}
-@end lilypond
-
-
-The @code{ignoreMelismata} applies to the syllable @q{fas}, so it
-should be entered before @q{go}.
-
-The reverse is also possible: making a lyric line slower than the
-standard.  This can be achieved by insert @code{\skip}s into the
-lyrics.  For every @code{\skip}, the text will be delayed another note.
-For example,
-
-@lilypond[verbatim,ragged-right,quote]
-\relative { c c g' }
-\addlyrics {
-  twin -- \skip 4
-  kle
-}
-@end lilypond
-
 
 @node Divisi lyrics
 @subsubsection Divisi lyrics
@@ -706,92 +768,11 @@ section.
 
 
 
-@node Switching the melody associated with a lyrics line
-@subsubsection Switching the melody associated with a lyrics line
-
-More complex variations in text underlay are possible.  It is possible
-to switch the melody for a line of lyrics during the text.  This is
-done by setting the @code{associatedVoice} property.  In the example
-
-@lilypond[ragged-right,quote]
-<<
-  \relative \new Voice = "lahlah" {
-    \set Staff.autoBeaming = ##f
-    c4
-    <<
-      \new Voice = "alternative" {
-        \voiceOne
-        \times 2/3 {
-          % show associations clearly.
-          \override NoteColumn #'force-hshift = #-3
-          f8 f g
-        }
-      }
-      {
-        \voiceTwo
-        f8.[ g16]
-        \oneVoice
-      } >>
-    a8( b) c
-  }
-  \new Lyrics \lyricsto "lahlah" {
-    Ju -- ras -- sic Park
-  }
-  \new Lyrics \lyricsto "lahlah" {
-    % Tricky: need to set associatedVoice
-    % one syllable too soon!
-    \set associatedVoice = alternative % applies to "ran"
-    Ty --
-    ran --
-    no --
-    \set associatedVoice = lahlah % applies to "rus"
-    sau -- rus Rex
-  } >>
-@end lilypond
-
-@noindent
-the text for the first stanza is set to a melody called @q{lahlah},
-
-@example
-\new Lyrics \lyricsto "lahlah" @{
-  Ju -- ras -- sic Park
-@}
-@end example
-
-
-The second stanza initially is set to the @code{lahlah} context, but
-for the syllable @q{ran}, it switches to a different melody.
-This is achieved with
-@example
-\set associatedVoice = alternative
-@end example
-
-@noindent
-Here, @code{alternative} is the name of the @code{Voice} context
-containing the triplet.
-
-Again, the command must be one syllable too early, before @q{Ty} in
-this case.
-
-@example
-\new Lyrics \lyricsto "lahlah" @{
-  \set associatedVoice = alternative % applies to "ran"
-  Ty --
-  ran --
-  no --
-  \set associatedVoice = lahlah % applies to "rus"
-  sau -- rus Rex
-@}
-@end example
-
-@noindent
-The underlay is switched back to the starting situation by assigning
-@code{lahlah} to @code{associatedVoice}.
-
-
 @node Lyrics independent of notes
 @subsubsection Lyrics independent of notes
 
+@cindex Devnull context
+
 In some complex vocal music, it may be desirable to place
 lyrics completely independently of notes.  Music defined
 inside @code{lyricrhythm} disappears into the
@@ -817,16 +798,26 @@ lyr = \lyricmode { I like my cat! }
 >>
 @end lilypond
 
+This method is recommended only if the music in the @code{Devnull}
+context does not contain melismata.  Melismata are defined by the
+@code{Voice} context. Connecting lyrics to a @code{Devnull} context
+makes the voice/lyrics links to get lost, and so does the info on
+melismata.  Therefore, if you link lyrics to a @code{Devnull} context,
+the implicit melismata get ignored.
 
-@node Spacing vocals
-@subsection Spacing vocals
+@c Conclusion: do not use devnull for lyrics -FV
 
-@menu
-* Spacing lyrics::              
-@end menu
+@c this clarifies http://code.google.com/p/lilypond/issues/detail?id=248
+
+
+@node Chants
+@subsubsection Chants
+
+@c TODO Add text from lsr and -user
+TBC
 
-@node Spacing lyrics
-@subsubsection Spacing lyrics
+@node Spacing out syllables
+@subsubsection Spacing out syllables
 
 @cindex Spacing lyrics
 @cindex Lyrics, increasing space between
@@ -849,7 +840,7 @@ LyricSpace.
 To make this change for all lyrics in the score, set the property in the
 layout.
 
-@lilypond[relative,verbatim,quote,ragged-right]
+@lilypond[verbatim,quote,ragged-right]
 \score {
   \relative c' {
   c c c c
@@ -868,21 +859,67 @@ layout.
 }
 @end lilypond
 
+@snippets
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{aligning-lyrics.ly}
+
+
+@snippets
+
+Checking to make sure that text scripts and lyrics are within the margins is
+a relatively large computational task.  To speed up processing, LilyPond does
+not perform such calculations by default; to enable it, use
 
-@node More about stanzas
-@subsection More about stanzas
+@example
+\override Score.PaperColumn #'keep-inside-line = ##t
+@end example
+
+To make lyrics avoid bar lines as well, use
+
+@example
+\layout @{
+  \context @{
+    \Lyrics
+      \consists "Bar_engraver"
+      \consists "Separating_line_group_engraver"
+      \override BarLine #'transparent = ##t
+  @}
+@}
+@end example
+
+@c TODO Create and add lsr example of lyricMelismaAlignment
+@c It's used like this to center-align all lyric syllables,
+@c even when notes are tied. -td
+
+@ignore
+\layout
+{
+     \context { \Score lyricMelismaAlignment = #0 }
+}
+@end ignore
+
+
+@node Centering lyrics between staves
+@subsubsection Centering lyrics between staves
+
+@c TODO Add text from -user
+TBC
+
+@node Stanzas
+@subsection Stanzas
 
 @menu
-* Adding stanza numbers ::      
-* Adding dynamics marks::       
-* Adding singer names::         
-* Printing stanzas at the end ::  
-* Printing stanzas at the end in multiple columns ::  
+* Adding stanza numbers ::
+* Adding dynamics marks to stanzas::
+* Adding singers' names to stanzas::
+* Stanzas with different rhythms::
+* Printing stanzas at the end ::
+* Printing stanzas at the end in multiple columns ::
 @end menu
 
 
-@node Adding stanza numbers 
-@subsubsection Adding stanza numbers 
+@node Adding stanza numbers
+@subsubsection Adding stanza numbers
 
 @cindex stanza number
 
@@ -896,16 +933,48 @@ Stanza numbers can be added by setting @code{stanza}, e.g.,
   Hi, my name is Bert.
 } \addlyrics {
   \set stanza = "2. "
-  Oh, chÃ\83© -- ri, je t'aime
+  Oh, ché -- ri, je t'aime
 }
 @end lilypond
 
+
 @noindent
 These numbers are put just before the start of the first syllable.
 
+@c TODO Create and add snippet to show how two lines of a
+@c stanza can be grouped together, along these lines: 
+@c (might need improving a bit) -td
+
+@ignore
+leftbrace = \markup { \override #'(font-encoding . fetaBraces) \lookup
+#"brace105" }
+
+stanzaOneOne = {
+  \set stanza = \markup { "1. " \leftbrace }
+  \lyricmode { Child, you're mine and I love you.
+    Lend thine ear to what I say.
 
-@node Adding dynamics marks
-@subsubsection Adding dynamics marks
+  }
+}
+
+stanzaOneThree =  {
+%  \set stanza = \markup { "   "}
+  \lyricmode { Child, I have no great -- er joy
+    Than to have you walk in truth.
+
+  }
+}
+
+\new Voice {
+  \repeat volta 2 { c'8 c' c' c' c' c' c'4 
+                    c'8 c' c' c' c' c' c'4   } 
+}  \addlyrics { \stanzaOneOne }
+   \addlyrics { \stanzaOneThree }
+
+@end ignore
+
+@node Adding dynamics marks to stanzas
+@subsubsection Adding dynamics marks to stanzas
 
 Stanzas differing in loudness may be indicated by putting a
 dynamics mark before each stanza.  In LilyPond, everything coming in
@@ -930,8 +999,8 @@ text = {
 >>
 @end lilypond
 
-@node Adding singer names
-@subsubsection Adding singer names
+@node Adding singers' names to stanzas
+@subsubsection Adding singers' names to stanzas
 
 @cindex singer name
 @cindex name of singer
@@ -948,13 +1017,138 @@ the line, just like instrument names.  They are created by setting
   Hi, my name is Bert.
 } \addlyrics {
   \set vocalName = "Ernie "
-  Oh, che -- ri, je t'aime
+  Oh, ché -- ri, je t'aime
 }
 @end lilypond
 
+@node Stanzas with different rhythms
+@subsubsection Stanzas with different rhythms
+
+@subsubheading Ignoring melismata
+
+One possibility is that the text has a melisma in one stanza, but
+multiple syllables in another one.  One solution is to make the faster
+voice ignore the melisma.  This is done by setting
+@code{ignoreMelismata} in the Lyrics context.
+
+There is one tricky aspect: the setting for @code{ignoreMelismata}
+must be set one syllable @emph{before} the non-melismatic syllable
+in the text, as shown here,
+
+@c  TODO: breaks compile
+@c seems to be fixed, does not break compile anymore --FV
+@lilypond[verbatim,ragged-right,quote]
+<<
+  \relative c' \new Voice = "lahlah" {
+    \set Staff.autoBeaming = ##f
+    c4
+    \slurDotted
+    f8.[( g16])
+    a4
+  }
+  \new Lyrics \lyricsto "lahlah" {
+    more slow -- ly
+  }
+  \new Lyrics \lyricsto "lahlah" {
+    \set ignoreMelismata = ##t % applies to "fas"
+    go fas -- ter
+    \unset ignoreMelismata
+    still
+  }
+>>
+@end lilypond
+
+
+The @code{ignoreMelismata} applies to the syllable @q{fas}, so it
+should be entered before @q{go}.
+
+
+@subsubheading Switching to an alternative melody
+
+More complex variations in text underlay are possible.  It is possible
+to switch the melody for a line of lyrics during the text.  This is
+done by setting the @code{associatedVoice} property.  In the example
+
+@lilypond[ragged-right,quote]
+<<
+  \relative c' \new Voice = "lahlah" {
+    \set Staff.autoBeaming = ##f
+    c4
+    <<
+      \new Voice = "alternative" {
+        \voiceOne
+        \times 2/3 {
+          % show associations clearly.
+          \override NoteColumn #'force-hshift = #-3
+          f8 f g
+        }
+      }
+      {
+        \voiceTwo
+        f8.[ g16]
+        \oneVoice
+      } >>
+    a8( b) c
+  }
+  \new Lyrics \lyricsto "lahlah" {
+    Ju -- ras -- sic Park
+  }
+  \new Lyrics \lyricsto "lahlah" {
+    % Tricky: need to set associatedVoice
+    % one syllable too soon!
+    \set associatedVoice = alternative % applies to "ran"
+    Ty --
+    ran --
+    no --
+    \set associatedVoice = lahlah % applies to "rus"
+    sau -- rus Rex
+  } >>
+@end lilypond
+
+@noindent
+the text for the first stanza is set to a melody called @q{lahlah},
+
+@example
+\new Lyrics \lyricsto "lahlah" @{
+  Ju -- ras -- sic Park
+@}
+@end example
 
-@node Printing stanzas at the end 
-@subsubsection Printing stanzas at the end 
+
+The second stanza initially is set to the @code{lahlah} context, but
+for the syllable @q{ran}, it switches to a different melody.
+This is achieved with
+@example
+\set associatedVoice = alternative
+@end example
+
+@noindent
+Here, @code{alternative} is the name of the @code{Voice} context
+containing the triplet.
+
+This command must be one syllable too early, before @q{Ty} in this
+case.  In other words, changing the associatedVoice happens one step
+later than expected.  This is for technical reasons, and it is not a
+bug.
+
+@example
+\new Lyrics \lyricsto "lahlah" @{
+  \set associatedVoice = alternative % applies to "ran"
+  Ty --
+  ran --
+  no --
+  \set associatedVoice = lahlah % applies to "rus"
+  sau -- rus Rex
+@}
+@end example
+
+@noindent
+The underlay is switched back to the starting situation by assigning
+@code{lahlah} to @code{associatedVoice}.
+
+
+@node Printing stanzas at the end
+@subsubsection Printing stanzas at the end
 
 Sometimes it is appropriate to have one stanza set
 to the music, and the rest added in verse form at
@@ -998,8 +1192,8 @@ its fleece was white as snow.
 @end lilypond
 
 
-@node Printing stanzas at the end in multiple columns 
-@subsubsection Printing stanzas at the end in multiple columns 
+@node Printing stanzas at the end in multiple columns
+@subsubsection Printing stanzas at the end in multiple columns
 
 When a piece of music has many verses, they are often printed in
 multiple columns across the page.  An outdented verse number often
@@ -1025,8 +1219,8 @@ text = \lyricmode {
 
 \markup {
   \fill-line {
-    \hspace #0.1 % moves the column off the left margin; can be removed if
-        % space on the page is tight
+    \hspace #0.1 % moves the column off the left margin; 
+        % can be removed if space on the page is tight
      \column {
       \line { \bold "2."
         \column {
@@ -1042,9 +1236,9 @@ text = \lyricmode {
         }
       }
     }
-    \hspace #0.1  % adds horizontal spacing between columns; if they are
-        % still too close, add more " " pairs until the result 
-        % looks good
+    \hspace #0.1  % adds horizontal spacing between columns; 
+        % if they are still too close, add more " " pairs  
+        % until the result looks good
      \column {
       \line { \bold "4."
         \column {
@@ -1060,8 +1254,8 @@ text = \lyricmode {
         }
       }
     }
-  \hspace #0.1 % gives some extra space on the right margin; can
-      % be removed if page space is tight
+  \hspace #0.1 % gives some extra space on the right margin; 
+      % can be removed if page space is tight
   }
 }
 @end lilypond
@@ -1069,27 +1263,9 @@ text = \lyricmode {
 
 @seealso
 
-Internals Reference: @internalsref{LyricText}, @internalsref{StanzaNumber},
-@internalsref{VocalName}.
-
-@c TODO: stick elsewhere
-@ignore
-@n ode Other vocal issues
-@s ubsection Other vocal issues
-
-yeah, I'm giving up somewhat by stuffing a bunch of things in
-here.  But at least they're in the manual now; it's easier to
-move them around in the manual once they're already here.
-
-Besides, if users complain about everything stuffed in here, I
-can ask them for specific instructions about where to move these
-examples, and that might get them more involved in the docs.  -gp
-
-
-@q{Parlato} is spoken without pitch but still with rhythm; it is
-notated by cross note heads.  This is demonstrated in
-@ref{Special note heads}.
-@end ignore
+Internals Reference:
+@rinternals{LyricText},
+@rinternals{StanzaNumber}.