X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fuser%2Fvocal.itely;h=accea8762540fe939377da27aa10084f54eef611;hb=def21b306e2b8fa2d5630fab0878e9922e197f0c;hp=9bf4cd401915d77fb5840c6532ec5b03da511c1b;hpb=855e680d327f49088fb2f9f3ca4dbf0875c43bc0;p=lilypond.git diff --git a/Documentation/user/vocal.itely b/Documentation/user/vocal.itely index 9bf4cd4019..accea87625 100644 --- a/Documentation/user/vocal.itely +++ b/Documentation/user/vocal.itely @@ -6,67 +6,105 @@ 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: “Let my peo ple go”. } +\relative c' { e4 f e d e f e2 } +\addlyrics { He said: “Let my peo ple go”. } @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é -- 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}.