X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Fnotation%2Fvocal.itely;h=b8f13106e30ed0650294da924781e735aa9dfdfd;hb=6353f0972b47829b4003763f5d73a79192cb248a;hp=0b2e0b075d2b4d84828bee0c5ba5dc1207763a3e;hpb=e1a149d0cc60b02e86209387958f4028567dd366;p=lilypond.git diff --git a/Documentation/notation/vocal.itely b/Documentation/notation/vocal.itely index 0b2e0b075d..b8f13106e3 100644 --- a/Documentation/notation/vocal.itely +++ b/Documentation/notation/vocal.itely @@ -7,20 +7,18 @@ Guide, node Updating translation committishes.. @end ignore -@c \version "2.12.0" +@c \version "2.14.0" @node Vocal music @section Vocal music -@c TODO: inspirational headword +@lilypondfile[quote]{vocal-headword.ly} This section explains how to typeset vocal music, and make sure that the lyrics will be aligned with the notes of their melody. @menu * Common notation for vocal music:: -* Entering lyrics:: -* Aligning lyrics to a melody:: * Techniques specific to lyrics:: * Stanzas:: * Songs:: @@ -35,17 +33,22 @@ that the lyrics will be aligned with the notes of their melody. @node Common notation for vocal music @subsection Common notation for vocal music -This section and sections 2.1.2 to 2.1.5 discuss issues common to -all types of vocal music. Issues specific to certain types of -vocal music are covered in section 2.1.6 on. +This section discusses issues common to most types of vocal music. @menu -* Common references for vocal music:: +* References for vocal music:: +* Entering lyrics:: +* Aligning lyrics to a melody:: +* Automatic syllable durations:: +* Manual syllable durations:: +* Multiple syllables to one note:: +* Multiple notes to one syllable:: +* Extenders and hyphens:: @end menu -@node Common references for vocal music -@unnumberedsubsubsec Common references for vocal music +@node References for vocal music +@unnumberedsubsubsec References for vocal music This section indicates where to find details of notation issues that may arise in any type of vocal music. @@ -53,94 +56,105 @@ that may arise in any type of vocal music. @itemize @item -Most styles of vocal music use written text as lyrics. An introduction -to this notation is to be found in @rlearning{Setting simple songs}. +Most styles of vocal music use written text as lyrics. An +introduction to this notation is to be found in +@rlearning{Setting simple songs}. @item -Vocal music is likely to require the use of @code{markup} mode, either -for lyrics of for other text elements (character's names, etc.). -This syntax is described in @ref{Text markup introduction}. +Vocal music is likely to require the use of @code{markup} mode, +either for lyrics or for other text elements (characters' names, +etc.) This syntax is described in @ref{Text markup introduction}. @item -@q{Ambitus} may be added at the beginning of vocal staves, as explained -in @ref{Ambitus}. - -@end itemize +@notation{Ambitus} may be added at the beginning of vocal staves, +as explained in @ref{Ambitus}. +@item +Dynamic markings by default are placed below the staff, but in +choral music they are usually placed above the staff in order to +avoid the lyrics, as explained in @ref{Score layouts for choral}. -@node Entering lyrics -@subsection Entering lyrics +@end itemize -Lyrics are entered in lyric mode. This section explains how this -done. +@seealso +Music Glossary: +@rglos{ambitus}. -@menu -* Lyrics explained:: -* Working with lyrics and variables:: -@end menu +Learning Manual: +@rlearning{Setting simple songs}. +Notation Reference: +@ref{Text markup introduction}, +@ref{Ambitus}, +@ref{Score layouts for choral}. -@node Lyrics explained -@unnumberedsubsubsec Lyrics explained +Snippets: +@rlsr{Vocal music}. -@cindex lyrics +@node Entering lyrics +@unnumberedsubsubsec Entering lyrics + +@cindex lyrics, entering +@cindex entering lyrics +@cindex formatting in lyrics +@cindex lyrics, formatting +@cindex punctuation in lyrics +@cindex lyrics punctuation +@cindex spaces in lyrics +@cindex quotes in lyrics @funindex \lyricmode -@cindex punctuation -@cindex spaces, in lyrics -@cindex quotes, in lyrics -@c TODO: this section is to be rewritten. -Since LilyPond input files are text, there is at least one -issue to consider when working with vocal music: -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. -Therefore, a special lyric mode has to be used, either explicitly -or using some abbreviated methods. +@c TODO should we explain hyphens here Lyrics are entered in a special input mode, which can be introduced by the keyword @code{\lyricmode}, or by using @code{\addlyrics} or -@code{\lyricsto}. In this mode you can enter lyrics, -with punctuation and accents, and the input @code{d} is not parsed as -a pitch, but rather as a one letter syllable. Syllables are entered -like notes, but with pitches replaced by text. For example, +@code{\lyricsto}. In this special input mode, the input @code{d} +is not parsed as the pitch @notation{D}, but rather as a one-letter +syllable of text. In other words, syllables are entered like notes +but with pitches replaced by text. + +For example: @example -\lyricmode @{ Twin-4 kle4 twin- kle litt- le star2 @} +\lyricmode @{ Three4 blind mice,2 three4 blind mice2 @} @end example -There are two main methods to specify the horizontal placement +There are two main methods for specifying the horizontal placement of the syllables, either by specifying the duration of each syllable -explicitly, like in the example above, or by automatically aligning -the lyrics to a melody or other voice of music, using @code{\addlyrics} -or @code{\lyricsto}. -@c TODO: broken -@c For more details see @ref{The Lyrics context}. +explicitly, as in the example above, or by leaving the lyrics to be +aligned automatically to a melody or other voice of music, using +@code{\addlyrics} or @code{\lyricsto}. The former method is +described below in @ref{Manual syllable durations}. The latter +method is described in @ref{Automatic syllable durations}. -A word or syllable of lyrics begins with an alphabetic character, and ends -with -any space or digit. The following characters can be any character -that is not a digit or white space. +A word or syllable of lyrics begins with an alphabetic character +(plus some other characters, see below) and is terminated by any +white space or a digit. Later characters in the syllable can be any +character that is not a digit or white space. -Any character that is not a digit or white space will be regarded as -part of the syllable; one important consequence of this is that a word -can end with @code{@}}, which often leads to the following mistake: +Because any character that is not a digit or white space is regarded +as part of the syllable, a word is valid even if it ends with +@code{@}}, which often leads to the following mistake: @example -\lyricmode @{ lah- lah@} +\lyricmode @{ lah lah lah@} @end example In this example, the @code{@}} is included in the final syllable, so the opening brace is not balanced and the input file will probably not -compile. +compile. Instead, braces should always be surrounded with white space: +@example +\lyricmode @{ lah lah lah @} +@end example -@funindex \property in \lyricmode +@cindex overrides in lyric mode +@funindex \override in \lyricmode -@noindent -Similarly, a period which follows an alphabetic sequence is included in -the resulting string. As a consequence, spaces must be inserted around -property commands: do @emph{not} write +Similarly, in lyric mode, a period will be included in the +alphabetic sequence that it follows. As a consequence, spaces +must be inserted around the period in @code{\override} commands. +Do @emph{not} write @example \override Score.LyricText #'font-shape = #'italic @@ -153,284 +167,264 @@ but instead use \override Score . LyricText #'font-shape = #'italic @end example -@funindex _ -@cindex spaces, in lyrics -@cindex quotes, in lyrics -@cindex ties, in lyrics - -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,ragged-right,fragment,verbatim] -\time 3/4 -\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 } -@end lilypond - -@noindent -The lyric tie is implemented with the Unicode character -@code{U+203F}; therefore a font that includes this glyph -(such as DejaVuLGC) has to be used. More explanations about -text and non-text fonts can be found in @ref{Fonts}. - +Punctuation, lyrics with accented characters, characters from +non-English languages, or special characters (such as the heart +symbol or slanted quotes), may simply be inserted directly +into the input file, providing it is saved with UTF-8 encoding. +For more information, see @ref{Text encoding}. -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. - -@lilypond[quote,ragged-right,fragment,verbatim] -\relative c' { e4 f e d e f e2 } -\addlyrics { He said: “Let my peo ple go”. } +@lilypond[quote,verbatim] +\relative c'' { d8 c16 a bes8 f e' d c4 } +\addlyrics { „Schad’ um das schö -- ne grü -- ne Band, } @end lilypond -To use normal quotes in lyrics, add a backslash before the -quotes. For example, +Normal quotes may be used in lyrics, but they have to be preceded +with a backslash character and the whole syllable has to be +enclosed between additional quotes. For example, -@lilypond[quote,ragged-right,fragment,verbatim] +@lilypond[quote,verbatim] \relative c' { \time 3/4 e4 e4. e8 d4 e d c2. } -\addlyrics { "\"I" am so lone- "ly\"" said she } +\addlyrics { "\"I" am so lone -- "ly,\"" said she } @end lilypond -The full definition of a word start in Lyrics mode is somewhat more -complex. - -A word in Lyrics mode begins with: an alphabetic character, @code{_}, -@code{?}, @code{!}, @code{:}, @code{'}, the control characters @code{^A} -through @code{^F}, @code{^Q} through @code{^W}, @code{^Y}, @code{^^}, -any 8-bit character with ASCII code over 127, or a two-character +The full definition of a word start in lyrics mode is somewhat more +complex. A word in lyrics mode is one that begins with an +alphabetic character, @code{_}, @code{?}, @code{!}, @code{:}, +@code{'}, the control characters @code{^A} through @code{^F}, +@code{^Q} through @code{^W}, @code{^Y}, @code{^^}, any 8-bit +character with an 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. +Great control over the appearance of lyrics comes from using +@code{\markup} inside the lyrics themselves. For explanation of many +options, see @ref{Formatting text}. -@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 +@snippets + +@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle] +{formatting-lyrics-syllables.ly} @seealso +Learning Manual: +@rlearning{Songs}. + Notation Reference: -@ref{Fonts}. +@ref{Automatic syllable durations}, +@ref{Fonts}, +@ref{Formatting text}, +@ref{Input modes}, +@ref{Manual syllable durations}, +@ref{Text encoding}. Internals Reference: -@rinternals{LyricText}, -@rinternals{LyricSpace}. +@rinternals{LyricText}. +Snippets: +@rlsr{Text} -@node Working with lyrics and variables -@unnumberedsubsubsec Working with lyrics and variables +@node Aligning lyrics to a melody +@unnumberedsubsubsec Aligning lyrics to a melody -@cindex lyrics, variables +@cindex lyrics, aligning to a melody +@cindex @code{associatedVoice} +@funindex \lyricmode +@funindex \addlyrics +@funindex \lyricsto -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. +Lyrics are printed by interpreting them in the context called +@code{Lyrics}, see @ref{Contexts explained}. @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 @} - >> -@} +\new Lyrics \lyricmode @{ @dots{} @} @end example -For different or more complex orderings, the best way is to set up 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 +Lyrics can be aligned with melodies in two main ways: -@noindent -and then combine the appropriate melodies and lyric lines +@itemize -@example -\context Lyrics = sopranoLyrics \lyricsto "soprano" -@emph{the lyrics} -@end example +@item +Lyrics can be aligned automatically, with the durations of the +syllables being taken from another voice of music or (in special +circumstances) an associated melody, using @code{\addlyrics}, +@code{\lyricsto}, or by setting the @code{associatedVoice} property. +For more details, see @ref{Automatic syllable durations}. -@noindent -The final input would resemble +@lilypond[quote,ragged-right,verbatim] +<< + \new Staff << + \time 2/4 + \new Voice = "one" \relative c'' { + \voiceOne + c4 b8. a16 g4. r8 a4 ( b ) c2 + } + \new Voice = "two" \relative c' { + \voiceTwo + s2 s4. f8 e4 d c2 + } + >> -@example -<<\new ChoirStaff << @emph{setup the music} >> - \lyricsto "soprano" @emph{etc} - \lyricsto "alto" @emph{etc} -@emph{etc} +% takes durations and alignment from notes in "one" + \new Lyrics \lyricsto "one" { + Life is __ _ love, live __ life. + } + +% takes durations and alignment from notes in "one" initially +% then switches to "two" + \new Lyrics \lyricsto "one" { + No more let + \set associatedVoice = "two" % must be set one syllable early + sins and sor -- rows grow. + } >> -@end example +@end lilypond -@ignore -@c TODO -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 +The first stanza shows the normal way of entering lyrics. +The second stanza shows how the voice from which the lyric +durations are taken can be changed. This is useful if the words to +different stanzas fit the notes in different ways and all the +durations are available in Voice contexts. For more details, see +@ref{Stanzas}. -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: +@item +Lyrics can be aligned independently of the duration of any notes +if the durations of the syllables are specified explicitly, +and entered with @code{\lyricmode}. -@example -words = \lyrics{ %warning: this creates a new context - one two -} +@lilypond[quote,ragged-right,verbatim] << - \new Voice = "sop" { c1 } - \new Lyrics \lyricsto "sop" { \words } - \new Voice = "alt" { c2 c } - \new Lyrics \lyricsto "alt" { \words } + \new Voice = "one" \relative c'' { + \time 2/4 + c4 b8. a16 g4. f8 e4 d c2 + } + +% uses previous explicit duration of 2; + \new Lyrics \lyricmode { + Joy to the earth! + } + +% explicit durations, set to a different rhythm + \new Lyrics \lyricmode { + Life4 is love,2. live4 life.2 + } >> -@end example +@end lilypond -the problem is that \lyricsto will try to connect the "sop" melody with the context -created by "\new Lyrics". +The first stanza is not aligned with the notes because the durations +were not specified, and the previous value of 2 is used for each +word. -Then \lyrics in \words creates another context, and the original "\new Lyrics" one -remains empty. +The second stanza shows how the words can be aligned quite +independently from the notes. This is useful if the words to +different stanzas fit the notes in different ways and the required +durations are not available in a music context. For more details +see @ref{Manual syllable durations}. This technique is also useful +when setting dialogue over music; for examples showing this, see +@ref{Dialogue over music}. -@end ignore +When entered in this way the words are left-aligned to the notes +by default, but may be center-aligned to the notes of a melody by +specifying an associated voice, if one exists. For details, see +@ref{Manual syllable durations}. +@end itemize @seealso -@c TODO: document \new Staff << Voice \lyricsto >> bug +Learning Manual: +@rlearning{Aligning lyrics to a melody}. + +Notation Reference: +@ref{Contexts explained}, +@ref{Automatic syllable durations}. +@ref{Stanzas}, +@ref{Manual syllable durations}, +@ref{Dialogue over music}, +@ref{Manual syllable durations}. + Internals Reference: -@rinternals{LyricCombineMusic}, @rinternals{Lyrics}. +@node Automatic syllable durations +@unnumberedsubsubsec Automatic syllable durations -@node Aligning lyrics to a melody -@subsection Aligning lyrics to a melody - -@funindex \lyricmode +@cindex syllable durations, automatic +@cindex lyrics and melodies +@cindex associatedVoice @funindex \addlyrics @funindex \lyricsto -@c TODO: this stuff is to be rewritten. -vv - -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. - -Lyrics are printed by interpreting them in the context called -@code{Lyrics}; see @rinternals{Lyrics}, for more. +Lyrics can be automatically aligned to the notes of a melody in +three ways: -@example -\new Lyrics \lyricmode @dots{} -@end example +@itemize -There are two main methods to specify the horizontal placement -of the syllables: +@item +by specifying the named Voice context containing the melody with +@code{\lyricsto}, -@itemize @item -by automatically aligning -the lyrics to a melody or other voice of music, using @code{\addlyrics} -or @code{\lyricsto} +by introducing the lyrics with @code{\addlyrics} and placing them +immediately after the Voice context containing the melody, @item -or by specifying the duration of each syllable -explicitly, using @code{\lyricmode} +by setting the @code{associatedVoice} property, the alignment of +the lyrics may be switched to a different named Voice context at +any musical moment. + @end itemize +In all three methods hyphens can be drawn between the syllables of +a word and extender lines can be drawn beyond the end of a word. For +details, see @ref{Extenders and hyphens}. + The @code{Voice} context containing the melody to which the lyrics are being aligned must not have @qq{died}, or the lyrics after that point will be lost. This can happen if there are periods when that voice has nothing to do. For methods of keeping contexts alive, see @ref{Keeping contexts alive}. +@subheading Using @code{\lyricsto} -@menu -* 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 -@unnumberedsubsubsec Automatic syllable durations - -@cindex automatic syllable durations -@cindex lyrics and melodies - -The lyrics can be aligned under a given melody -automatically. This is achieved by combining the -melody and the lyrics with the @code{\lyricsto} expression - -@example -\new Lyrics \lyricsto @var{name} @dots{} -@end example - -@noindent -This aligns the lyrics to the -notes of the @code{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 -@code{\lyricmode} keyword may be omitted. +@cindex \lyricsto +@funindex \lyricsto -The following example uses different commands for entering lyrics. +Lyrics can be aligned under a melody automatically by specifying +the named Voice context containing the melody with +@code{\lyricsto}: -@lilypond[quote,fragment,ragged-right,verbatim] +@lilypond[quote,verbatim,relative=2] << - \new Voice = "one" \relative c'' { - \autoBeamOff - \time 2/4 - c4 b8. a16 g4. f8 e4 d c2 + \new Voice = "melody" { + a4 a a a + } + \new Lyrics \lyricsto "melody" { + These are the words } - -% not recommended: left-aligned 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 -The second stanza is not properly aligned because the durations -were not specified. A solution for that would be to use @code{\lyricsto}. +@noindent +This aligns the lyrics to the notes of the named @code{Voice} +context, which must already exist. Therefore normally the +@code{Voice} context is specified first, followed by the +@code{Lyrics} context. The lyrics themselves follow the +@code{\lyricsto} command. The @code{\lyricsto} command +invokes lyric mode automatically, so the @code{\lyricmode} keyword +may be omitted. By default, the lyrics are placed underneath the +notes. For other placements, see @ref{Placing lyrics vertically}. + +@subheading Using @code{\addlyrics} @cindex \addlyrics +@funindex \addlyrics -The @code{\addlyrics} command is actually just a convenient way -to write a more complicated LilyPond structure that sets up the -lyrics. +The @code{\addlyrics} command is just a convenient shortcut that +can sometimes be used instead of having to set up the lyrics +through a more complicated LilyPond structure. @example @{ MUSIC @} @@ -441,75 +435,163 @@ lyrics. is the same as @example -\new Voice = "blah" @{ music @} +\new Voice = "blah" @{ MUSIC @} \new Lyrics \lyricsto "blah" @{ LYRICS @} @end example Here is an example, -@lilypond[ragged-right,verbatim,fragment,quote] -\time 3/4 -\relative c' { c2 e4 g2. } -\addlyrics { play the game } +@lilypond[verbatim,quote] +{ + \time 3/4 + \relative c' { c2 e4 g2. } + \addlyrics { play the game } +} @end lilypond More stanzas can be added by adding more -@code{\addlyrics} sections - -@lilypond[ragged-right,verbatim,fragment,quote] -\time 3/4 -\relative c' { c2 e4 g2. } -\addlyrics { play the game } -\addlyrics { speel het spel } -\addlyrics { joue le jeu } -@end lilypond +@code{\addlyrics} sections: -The command @code{\addlyrics} cannot handle polyphony settings. -For these cases you should use @code{\lyricsto} and -@code{\lyricmode}, for details see@ref{Lyrics explained}. -@node Manual syllable durations -@unnumberedsubsubsec Manual syllable durations +@lilypond[ragged-right,verbatim,quote] +{ + \time 3/4 + \relative c' { c2 e4 g2. } + \addlyrics { play the game } + \addlyrics { speel het spel } + \addlyrics { joue le jeu } +} +@end lilypond -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: +The command @code{\addlyrics} cannot handle polyphonic settings. +For these cases one should use @code{\lyricsto}. -@example -play2 the4 game2. -sink2 or4 swim2. -@end example +@subheading Using associatedVoice -The alignment to a melody can be specified with the -@code{associatedVoice} property, +The melody to which the lyrics are being aligned can be changed by +setting 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 @code{Voice} context. Without this setting, extender lines -will not be formatted properly. -Here is an example demonstrating manual lyric durations, +The value of the property (here: @code{"lala"}) should be the name +of a @code{Voice} context. For technical reasons, the @code{\set} +command must be placed one syllable before the one to which the +change in voice is to apply. + +Here is an example demonstrating its use: + +@lilypond[quote,ragged-right,verbatim] +<< + \new Staff << + \time 2/4 + \new Voice = "one" \relative c'' { + \voiceOne + c4 b8. a16 g4. r8 a4 ( b ) c2 + } + \new Voice = "two" \relative c' { + \voiceTwo + s2 s4. f8 e8 d4. c2 + } + >> +% takes durations and alignment from notes in "one" initially +% then switches to "two" + \new Lyrics \lyricsto "one" { + No more let + \set associatedVoice = "two" % must be set one syllable early + sins and sor -- rows grow. + } +>> +@end lilypond + +@seealso +Notation Reference: +@ref{Extenders and hyphens}, +@ref{Keeping contexts alive}, +@ref{Placing lyrics vertically}. + +@node Manual syllable durations +@unnumberedsubsubsec Manual syllable durations + +In some complex vocal music, it may be desirable to place lyrics +completely independently of notes. In this case do not use +@code{\lyricsto} or @code{\addlyrics} and do not set +@code{associatedVoice}. Syllables are entered like notes -- +but with pitches replaced by text -- and the duration of each +syllable is entered explicitly after the syllable. + +By default, syllables will be left-aligned to the corresponding +musical moment. Hyphenated lines may be drawn between syllables +as usual, but extender lines cannot be drawn when there is no +associated voice. + +Here are two examples: + +@lilypond[relative=1,verbatim,quote] +<< + \new Voice = "melody" { + \time 3/4 + c2 e4 g2 f + } + \new Lyrics \lyricmode { + play1 the4 game4 + } +>> +@end lilypond + + +@lilypond[quote,verbatim,ragged-right] +<< + \new Staff { + \relative c'' { + c2 c2 + d1 + } + } + \new Lyrics { + \lyricmode { + I2 like4. my8 cat!1 + } + } + \new Staff { + \relative c' { + c8 c c c c c c c + c8 c c c c c c c + } + } +>> +@end lilypond + +This technique is useful when writing dialogue over music, see +@ref{Dialogue over music}. -@lilypond[relative=1,ragged-right,verbatim,fragment,quote] -<< \new Voice = "melody" { +To center-align syllables on the notes at the corresponding musical +moments, set @code{associatedVoice} to the name of the Voice context +containing those notes. When @code{associatedVoice} is set, both +double hyphens and double underscores can be used to draw +hyphenated lines and extenders under melismata correctly. + +@lilypond[relative=1,verbatim,quote] +<< + \new Voice = "melody" { \time 3/4 - c2 e4 g2. - } - \new Lyrics \lyricmode { - \set associatedVoice = #"melody" - play2 the4 game2. - } >> + c2 e4 g f g + } + \new Lyrics \lyricmode { + \set associatedVoice = #"melody" + play2 the4 game2. __ + } +>> @end lilypond +@c TODO see also feature request 707 - show how to do this with manual durations @seealso Notation Reference: -@ref{Keeping contexts alive}. +@ref{Dialogue over music}. Internals Reference: @rinternals{Lyrics}, @@ -519,24 +601,30 @@ Internals Reference: @node Multiple syllables to one note @unnumberedsubsubsec Multiple syllables to one note - @funindex _ +@cindex spaces, in lyrics +@cindex quotes, in lyrics @cindex ties, in lyrics -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.@footnote{The lyric ties is implemented with the Unicode character -U+203F, so be -sure to have a font (like DejaVuLGC) installed that includes this -glyph.} +In order to assign more than one syllable to a single note with +spaces between the syllables, you can surround the phrase with +quotes or use a @code{_} character. Alternatively, you can use +code the tilde symbol (@code{~}) to get a lyric tie. The lyric +tie is implemented with the Unicode character U+203F, so be +sure to use a font for this glyph which actually contains it. +Freely available fonts with a lyric tie are, for example, +`FreeSerif' (a Times clone), `DejaVuSans' (but not +`DejaVuSerif'), or `TeXGyreSchola' (a Century Schoolbook +clone). -@lilypond[quote,ragged-right,fragment,verbatim] -\time 3/4 -\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 } +@lilypond[quote,ragged-right,verbatim] +{ + \time 3/4 + \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 } +} @end lilypond @@ -545,141 +633,219 @@ Internals Reference: @rinternals{LyricCombineMusic}. -@c Here come the section which used to be "Melismata" -@c the new title might be more self-explanatory - - @node Multiple notes to one syllable @unnumberedsubsubsec Multiple notes to one syllable @cindex melisma @cindex melismata @cindex phrasing, in lyrics +@funindex \melisma +@funindex \melismaEnd + +Sometimes, particularly in Medieval music, several notes are to be +sung on one syllable; such vocalises are called melismata, or +@rglos{melisma}s. The syllable to a melisma is usually +left-aligned with the first note of the melisma. -Sometimes, particularly in Medieval music, several notes are to be sung on one -single syllable; such vocalises are called melismas, or melismata. +When a melisma occurs on a syllable other that the last one in a +word, that syllable is usually joined to the following one with a +hyphenated line. This is indicated by placing a double hyphen, +@code{--}, immediately after the syllable. -@c this method seems to be the simplest; therefore -@c it might be better to present it first - vv +Alternatively, when a melisma occurs on the last or only syllable in +a word an extender line is usually drawn from the end of the syllable +to the last note of the melisma. This is indicated by placing a +double underscore, @code{__}, immediately after the word. -You can define melismata entirely in the lyrics, by entering @code{_} -for every extra note that has to be added to the melisma. +There are five ways in which melismata can be indicated: -@c TODO: clarify: __ is used to crate a lyric extender, -@c _ is used to add a note to a melisma, so both __ and _ are needed. +@itemize -@c verbose! --FV -@c duplicated: TODO fix -Additionally, 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. +@item +Melismata are created automatically over notes which are tied +together: -@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 } -\addlyrics - { Ky -- _ _ ri __ _ _ _ e } +@lilypond[quote,relative=2,verbatim] +<< + \new Voice = "melody" { + \time 3/4 + f4 g2 ~ | + g4 e2 ~ | + e8 + } + \new Lyrics \lyricsto "melody" { + Ky -- ri -- e __ + } +>> @end lilypond -In this case, you can also have ties and slurs in the melody if you -set @code{melismaBusyProperties}, as is done in the example above. - -However, the @code{\lyricsto} command can also -detect melismata automatically: it only puts one -syllable under a tied or slurred group of notes. If you want to force -an unslurred group of notes to be a melisma, insert @code{\melisma} -after the first note of the group, and @code{\melismaEnd} after the -last one, e.g., +@item +Melismata can be created automatically from the music by placing +slurs over the notes of each melisma. This is the usual way of +entering lyrics: -@lilypond[quote,relative=2,ragged-right,fragment,verbatim] +@lilypond[quote,relative=2,verbatim] << - \new Voice = "lala" { + \new Voice = "melody" { \time 3/4 - f4 g8 - \melisma - f e f - \melismaEnd - e2 + f4 g8 ( f e f ) + e8 ( d e2 ) } - \new Lyrics \lyricsto "lala" { - la di __ daah + \new Lyrics \lyricsto "melody" { + Ky -- ri -- e __ } >> @end lilypond -In addition, notes are considered a melisma if they are manually -beamed, and automatic beaming (see @ref{Setting automatic beam -behavior}) is switched off. +@item +Notes are considered a melisma if they are manually beamed, +providing automatic beaming is switched off. See +@ref{Setting automatic beam behavior}. -@lilypond[quote,relative=2,ragged-right,fragment,verbatim] +@lilypond[quote,relative=2,verbatim] << - \new Voice = "lala" { + \new Voice = "melody" { \time 3/4 \autoBeamOff f4 g8[ f e f] - e2 + e2. } - \new Lyrics \lyricsto "lala" { - la di __ daah + \new Lyrics \lyricsto "melody" { + Ky -- ri -- e } >> @end lilypond -@c TODO: this now links to LM -vv -@c umm, yeah... so what? -gp +Clearly this is not suited to melismata over notes which are longer +than eighth notes. -@cindex SATB -@cindex choral score +@item +An unslurred group of notes will be treated as a melisma if they +are bracketed between @code{\melisma} and @code{\melismaEnd}. -A complete example of a SATB score setup is in -@rlearning{Vocal ensembles}. +@lilypond[quote,relative=2,verbatim] +<< + \new Voice = "melody" { + \time 3/4 + f4 g8 + \melisma + f e f + \melismaEnd + e2. + } + \new Lyrics \lyricsto "melody" { + Ky -- ri -- e + } +>> +@end lilypond +Note that this method cannot be used to indicate two melismata if +the first one is immediately followed by another. -@predefined -@funindex \melisma -@code{\melisma}, -@funindex \melismaEnd -@code{\melismaEnd}. -@endpredefined +@item +A melisma can be defined entirely in the lyrics by entering a +single underscore character, @code{_}, for every extra note that has +to be added to the melisma. +@lilypond[verbatim, quote, relative=2] +<< + \new Voice = "melody" { + \time 3/4 + f4 g8 f e f + e8 d e2 + } + \new Lyrics \lyricsto "melody" { + Ky -- ri -- _ _ _ e __ _ _ + } +>> +@end lilypond -@c @seealso -@c @lsr{vocal,lyric@/-combine.ly}. +@end itemize +It is possible to have ties, slurs and manual beams in the melody +without their indicating melismata. To do this, set +@code{melismaBusyProperties}: -@knownissues +@lilypond[relative=1,verbatim,quote] +<< + \new Voice = "melody" { + \time 3/4 + \set melismaBusyProperties = #'() + c4 d ( e ) + g8 [ f ] f4 ~ f + } + \new Lyrics \lyricsto "melody" { + Ky -- ri -- e e -- le -- i -- son + } +>> +@end lilypond -Melismata are not detected automatically, and extender lines must be -inserted by hand. +Other settings for @code{melismaBusyProperties} can be used to +selectively include or exclude ties, slurs, and beams from the +automatic detection of melismata; see @code{melismaBusyProperties} +in @rinternals{Tunable context properties}. -@node Skipping notes -@unnumberedsubsubsec Skipping notes +Alternatively, if all melismata indications are to be ignored, +@code{ignoreMelismata} may be set true; +see @ref{Stanzas with different rhythms}. -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. The @code{\skip} command -must be followed by a valid duration, but this is ignored when -@code{\skip} is used in lyrics. +If a melisma is required during a passage in which +@code{melismaBusyProperties} is active, it may be indicated by +placing a single underscore in the lyrics for each note which +should be included in the melisma: -@lilypond[verbatim,ragged-right,quote] -\relative c' { c c g' } -\addlyrics { - twin -- \skip 4 - kle -} +@lilypond[relative=1,verbatim,quote] +<< + \new Voice = "melody" { + \time 3/4 + \set melismaBusyProperties = #'() + c4 d ( e ) + g8 [ f ] ~ f4 ~ f + } + \new Lyrics \lyricsto "melody" { + Ky -- ri -- _ e __ _ _ _ + } +>> @end lilypond +@predefined + +@code{\autoBeamOff}, +@code{\autoBeamOn}, +@code{\melisma}, +@code{\melismaEnd}. + +@seealso +Musical Glossary: +@rglos{melisma}. + +Learning Manual: +@rlearning{Aligning lyrics to a melody}. + +Notation Reference: +@ref{Aligning lyrics to a melody}, +@ref{Automatic syllable durations}, +@ref{Setting automatic beam behavior}, +@ref{Stanzas with different rhythms}. + +Internals Reference: +@rinternals{Tunable context properties}. + +@knownissues + +Extender lines under melismata are not created automatically; they +must be inserted manually with a double underscore. + + @node Extenders and hyphens @unnumberedsubsubsec Extenders and hyphens @cindex melisma @cindex extender +@c TODO cf Multiple notes to one syllable; should this be merged in? + @c leave this as samp. -gp In the last syllable of a word, melismata are sometimes indicated with a long horizontal line starting in the melisma syllable, and ending in @@ -696,15 +862,17 @@ typeset by default.} @cindex hyphens @c leave this as samp. -gp -Centered hyphens are entered as @samp{ -- } between syllables of a same word -(note the spaces before and after the two hyphen characters). The hyphen -will be centered between the syllables, and its length will be adjusted -depending on the space between the syllables. +Centered hyphens are entered as @samp{ -- } between syllables of a +same word (note the spaces before and after the two hyphen +characters). The hyphen will be centered between the syllables, and +its length will be adjusted depending on the space between the +syllables. In tightly engraved music, hyphens can be removed. Whether this happens can be controlled with the @code{minimum-distance} (minimum distance between two syllables) and the @code{minimum-length} -(threshold below which hyphens are removed). +(threshold below which hyphens are removed) properties of +@code{LyricHyphen}. @seealso @@ -713,128 +881,243 @@ Internals Reference: @rinternals{LyricHyphen}. -@node Lyrics and repeats -@unnumberedsubsubsec Lyrics and repeats - -@c TODO New section. Add text -TBC - - @node Techniques specific to lyrics @subsection Techniques specific to lyrics -@c TODO This whole section is to be reorganized. -vv - -Often, different stanzas of one song are put to one melody in slightly -differing ways. Such variations can still be captured with -@code{\lyricsto}. +@c TODO this whole section is to be reorganised @menu +* Working with lyrics and variables:: +* Placing lyrics vertically:: +* Placing syllables horizontally:: +* Lyrics and repeats:: * Divisi lyrics:: -* Lyrics independent of notes:: -* Spacing out syllables:: -* Placement of lyrics between staves:: @end menu -@node Divisi lyrics -@unnumberedsubsubsec Divisi lyrics +@node Working with lyrics and variables +@unnumberedsubsubsec Working with lyrics and variables -You can display alternate (or divisi) lyrics by naming voice -contexts and attaching lyrics to those specific contexts. +@cindex lyrics, using variables -@lilypond[verbatim,ragged-right,quote] -\score{ << - \new Voice = "melody" { - \relative c' { - c4 - << - { \voiceOne c8 e } - \new Voice = "splitpart" { \voiceTwo c4 } - >> - \oneVoice c4 c | c +Variables containing lyrics can be created, but the lyrics must be +entered in lyric mode: + +@lilypond[quote,verbatim] +musicOne = \relative c'' { + c4 b8. a16 g4. f8 e4 d c2 +} +verseOne = \lyricmode { + Joy to the world, the Lord is come. +} +\score { + << + \new Voice = "one" { + \time 2/4 + \musicOne } - } - \new Lyrics \lyricsto "melody" { we shall not o- ver- come } - \new Lyrics \lyricsto "splitpart" { will } ->> } + \new Lyrics \lyricsto "one" { + \verseOne + } + >> +} @end lilypond +Durations do not need to be added if the variable is to be invoked +with @code{\addlyrics} or @code{\lyricsto}. -You can use this trick to display different lyrics for a repeated -section. +For different or more complex orderings, the best way is to define +the music and lyric variables first, then set up the hierarchy of +staves and lyrics, omitting the lyrics themselves, and then add the +lyrics using @code{\context} underneath. This ensures that the +voices referenced by @code{\lyricsto} have always been defined +earlier. For example: -@lilypond[verbatim,ragged-right,quote] -\score{ << - \new Voice = "melody" \relative c' { - c2 e | g e | c1 | - \new Voice = "verse" \repeat volta 2 {c4 d e f | g1 | } - a2 b | c1} - \new Lyrics = "mainlyrics" \lyricsto melody \lyricmode { - do mi sol mi do - la si do } - \context Lyrics = "mainlyrics" \lyricsto verse \lyricmode { - do re mi fa sol } - \new Lyrics = "repeatlyrics" \lyricsto verse \lyricmode { - dodo rere mimi fafa solsol } ->> +@lilypond[quote,verbatim] +sopranoMusic = \relative c'' { c4 c c c } +contraltoMusic = \relative c'' { a4 a a a } +sopranoWords = \lyricmode { Sop -- ra -- no words } +contraltoWords = \lyricmode { Con -- tral -- to words } + +\score { + \new ChoirStaff << + \new Staff { + \new Voice = "sopranos" { + \sopranoMusic + } + } + \new Lyrics = "sopranos" + \new Lyrics = "contraltos" + \new Staff { + \new Voice = "contraltos" { + \contraltoMusic + } + } + \context Lyrics = "sopranos" { + \lyricsto "sopranos" { + \sopranoWords + } + } + \context Lyrics = "contraltos" { + \lyricsto "contraltos" { + \contraltoWords + } + } + >> } @end lilypond +@seealso +Notation Reference: +@ref{Placing lyrics vertically}. + +Internals Reference: +@rinternals{LyricCombineMusic}, +@rinternals{Lyrics}. + -@node Lyrics independent of notes -@unnumberedsubsubsec Lyrics independent of notes +@node Placing lyrics vertically +@unnumberedsubsubsec Placing lyrics vertically -@cindex Devnull context +@cindex placement of lyrics +@cindex lyrics, positioning -In some complex vocal music, it may be desirable to place -lyrics completely independently of notes. Music defined -inside @code{lyricrhythm} disappears into the -@code{Devnull} context, but the rhythms can still be used -to place the lyrics. +Depending on the type of music, lyrics may be positioned +above the staff, below the staff, or between staves. Placing +lyrics below the associated staff is the easiest, and can be +achieved by simply defining the Lyrics context below the Staff +context: -@lilypond[quote,verbatim,ragged-right] -voice = { - c''2 - \tag #'music { c''2 } - \tag #'lyricrhythm { c''4. c''8 } - d''1 +@lilypond[quote,verbatim] +\score { + << + \new Staff { + \new Voice = "melody" { + \relative c'' { c4 c c c } + } + } + \new Lyrics { + \lyricsto "melody" { + Here are the words + } + } + >> } +@end lilypond -lyr = \lyricmode { I like my cat! } +Lyrics may be positioned above the staff using one of +two methods. The simplest (and preferred) method +is to use the same syntax as above and explicitly +specify the position of the lyrics: -<< - \new Staff \keepWithTag #'music \voice - \new Devnull="nowhere" \keepWithTag #'lyricrhythm \voice - \new Lyrics \lyricsto "nowhere" \lyr - \new Staff { c'8 c' c' c' c' c' c' c' - c' c' c' c' c' c' c' c' } ->> +@lilypond[quote,verbatim] +\score { + << + \new Staff = "staff" { + \new Voice = "melody" { + \relative c'' { c4 c c c } + } + } + \new Lyrics \with { alignAboveContext = "staff" } { + \lyricsto "melody" { + Here are the words + } + } + >> +} +@end lilypond + +Alternatively, a two-step process may be used. First the Lyrics +context is declared (without any content) before the Staff and +Voice contexts, then the @code{\lyricsto} command is placed after +the Voice declaration it references by using @code{\context}, as +follows: + +@lilypond[quote,verbatim] +\score { + << + \new Lyrics = "lyrics" \with { + % lyrics above a staff should have this override + \override VerticalAxisGroup #'staff-affinity = #DOWN + } + \new Staff { + \new Voice = "melody" { + \relative c'' { c4 c c c } + } + } + \context Lyrics = "lyrics" { + \lyricsto "melody" { + Here are the words + } + } + >> +} +@end lilypond + +When there are two voices on separate staves the lyrics may be +placed between the staves using either of these methods. Here +is an example of the second method: + +@lilypond[quote,verbatim] +\score { + \new ChoirStaff << + \new Staff { + \new Voice = "sopranos" { + \relative c'' { c4 c c c } + } + } + \new Lyrics = "sopranos" + \new Lyrics = "contraltos" \with { + % lyrics above a staff should have this override + \override VerticalAxisGroup #'staff-affinity = #DOWN + } + \new Staff { + \new Voice = "contraltos" { + \relative c'' { a4 a a a } + } + } + \context Lyrics = "sopranos" { + \lyricsto "sopranos" { + Sop -- ra -- no words + } + } + \context Lyrics = "contraltos" { + \lyricsto "contraltos" { + Con -- tral -- to words + } + } + >> +} @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. +Other combinations of lyrics and staves may be generated by +elaborating these examples, or by examining the +@rlearning{Vocal ensembles} templates in the Learning Manual. + +@snippets +@lilypondfile[verbatim,lilyquote,texidoc,doctitle] +{lyrics-old-spacing-settings.ly} -@c Conclusion: do not use devnull for lyrics -FV +@seealso +Learning Manual: +@rlearning{Vocal ensembles}. -@c this clarifies http://code.google.com/p/lilypond/issues/detail?id=248 +Notation Reference: +@ref{Aligning contexts}, +@ref{Creating contexts}. -@node Spacing out syllables -@unnumberedsubsubsec Spacing out syllables +@node Placing syllables horizontally +@unnumberedsubsubsec Placing syllables horizontally @cindex Spacing lyrics @cindex Lyrics, increasing space between -To increase the spacing between lyrics, set the @code{minimum-distance} -property of @code{LyricSpace}. +To increase the spacing between lyrics, set the +@code{minimum-distance} property of @code{LyricSpace}. -@lilypond[relative,verbatim,fragment,quote,ragged-right] +@lilypond[relative=1,verbatim,quote,ragged-right] { c c c c \override Lyrics.LyricSpace #'minimum-distance = #1.0 @@ -848,7 +1131,7 @@ property of @code{LyricSpace}. @noindent To make this change for all lyrics in the score, set the property in the -layout. +@code{\layout} block. @lilypond[verbatim,quote,ragged-right] \score { @@ -869,21 +1152,18 @@ layout. } @end lilypond -@c @snippets -@c This snippet has been renamed to "lyrics-alignment.ly" -@c update as soon as lsr/is updated -vv -@c @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle] -@c {lyrics-alignment.ly} +@snippets +@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle] +{lyrics-alignment.ly} @c TODO: move to LSR -vv -@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 +Checking to make sure that text scripts and lyrics are within the margins +requires additional calculations. To speed up processing slightly, this +feature can be disabled: @example -\override Score.PaperColumn #'keep-inside-line = ##t +\override Score.PaperColumn #'keep-inside-line = ##f @end example To make lyrics avoid bar lines as well, use @@ -911,89 +1191,509 @@ To make lyrics avoid bar lines as well, use @end ignore -@node Placement of lyrics between staves -@unnumberedsubsubsec Placement of lyrics between staves - -@c TODO Add text from -user -@c TODO Add new spacing properties, centering lyrics, etc -TBC +@node Lyrics and repeats +@unnumberedsubsubsec Lyrics and repeats -@node Stanzas -@subsection Stanzas +@cindex repeats and lyrics +@cindex lyrics, repeating -@menu -* 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 +@subheading Simple repeats +Repeats in @emph{music} are fully described elsewhere; see +@ref{Repeats}. This section explains how to add lyrics to repeated +sections of music. -@node Adding stanza numbers -@unnumberedsubsubsec Adding stanza numbers +Lyrics to a section of music that is repeated should be surrounded +by exactly the same repeat construct as the music, if the words are +unchanged. -@cindex stanza number +@lilypond[verbatim,quote] +\score { + << + \new Staff { + \new Voice = "melody" { + \relative c'' { + a4 a a a + \repeat volta 2 { b4 b b b } + } + } + } + \new Lyrics { + \lyricsto "melody" { + Not re -- peat -- ed. + \repeat volta 2 { Re -- peat -- ed twice. } + } + } + >> +} +@end lilypond -Stanza numbers can be added by setting @code{stanza}, e.g., +The words will then be correctly expanded if the repeats are +unfolded. -@lilypond[quote,ragged-right,verbatim,relative=2,fragment] -\new Voice { - \time 3/4 g2 e4 a2 f4 g2. -} \addlyrics { - \set stanza = #"1. " - Hi, my name is Bert. -} \addlyrics { - \set stanza = #"2. " - Oh, ché -- ri, je t'aime +@lilypond[verbatim,quote] +\score { + \unfoldRepeats { + << + \new Staff { + \new Voice = "melody" { + \relative c'' { + a4 a a a + \repeat volta 2 { b4 b b b } + } + } + } + \new Lyrics { + \lyricsto "melody" { + Not re -- peat -- ed. + \repeat volta 2 { Re -- peat -- ed twice. } + } + } + >> + } } @end lilypond +If the repeated section is to be unfolded and has different words, +simply enter all the words: -@noindent -These numbers are put just before the start of the first syllable. +@lilypond[verbatim,quote,ragged-right] +\score { + << + \new Staff { + \new Voice = "melody" { + \relative c'' { + a4 a a a + \repeat unfold 2 { b4 b b b } + } + } + } + \new Lyrics { + \lyricsto "melody" { + Not re -- peat -- ed. + The first time words. + Sec -- ond time words. + } + } + >> +} +@end lilypond -@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 +When the words to a repeated volta section are different, the words +to each repeat must be entered in separate @code{Lyrics} contexts, +correctly nested in parallel sections: -@ignore -leftbrace = \markup { \override #'(font-encoding . fetaBraces) \lookup -#"brace105" } +@lilypond[verbatim,quote] +\score { + << + \new Staff { + \new Voice = "melody" { + \relative c'' { + a4 a a a + \repeat volta 2 { b4 b b b } + } + } + } + \new Lyrics \lyricsto "melody" { + Not re -- peat -- ed. + << + { The first time words. } + \new Lyrics { + \set associatedVoice = "melody" + Sec -- ond time words. + } + >> + } + >> +} +@end lilypond -stanzaOneOne = { - \set stanza = \markup { "1. " \leftbrace } - \lyricmode { Child, you're mine and I love you. - Lend thine ear to what I say. +More verses may be added in a similar way: - } +@lilypond[verbatim,quote] +\score { + << + \new Staff { + \new Voice = "singleVoice" { + \relative c'' { + a4 a a a + \repeat volta 3 { b4 b b b } + c4 c c c + } + } + } + \new Lyrics \lyricsto "singleVoice" { + Not re -- peat -- ed. + << + { The first time words. } + \new Lyrics { + \set associatedVoice = "singleVoice" + Sec -- ond time words. + } + \new Lyrics { + \set associatedVoice = "singleVoice" + The third time words. + } + >> + The end sec -- tion. + } + >> } +@end lilypond -stanzaOneThree = { -% \set stanza = \markup { " "} - \lyricmode { Child, I have no great -- er joy - Than to have you walk in truth. - } -} +@c TODO positioning a common line of lyrics -\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 } +@subheading Repeats with alternative endings -@end ignore +@cindex lyrics, repeats with alternative endings +@cindex repeating lyrics with alternative endings +@cindex alternative endings and lyrics -@node Adding dynamics marks to stanzas -@unnumberedsubsubsec Adding dynamics marks to stanzas +If the words of the repeated section are the same, exactly the +same structure can be used for both the lyrics and music. -Stanzas differing in loudness may be indicated by putting a +@lilypond[quote,verbatim] +\score { + << + \new Staff { + \time 2/4 + \new Voice = "melody" { + \relative c'' { + a4 a a a + \repeat volta 2 { b4 b } + \alternative { { b b } { b c } } + } + } + } + \new Lyrics { + \lyricsto "melody" { + Not re -- peat -- ed. + \repeat volta 2 { Re -- peat -- } + \alternative { { ed twice. } { ed twice. } } + } + } + >> +} +@end lilypond + +@funindex \skip +@cindex skipping notes in lyrics +@cindex lyrics, skipping notes + +But when the repeated section has different words, a repeat +construct cannot be used around the words and @code{\skip} commands +have to be inserted manually to skip over the notes in the +alternative sections which do not apply. + +Note: do not use an underscore, @code{_}, to skip notes -- an +underscore indicates a melisma, causing the preceding syllable +to be left-aligned. + +@warning{The @code{@bs{}skip} command must be followed by a number, +but this number is ignored in lyrics which derive their durations +from the notes in an associated melody through @code{\addlyrics} or +@code{\lyricsto}. Each @code{@bs{}skip} skips a single note of any +value, irrespective of the value of the following number.} + +@lilypond[verbatim,quote,ragged-right] +\score { + << + \new Staff { + \time 2/4 + \new Voice = "melody" { + \relative c'' { + \repeat volta 2 { b4 b } + \alternative { { b b } { b c } } + c4 c + } + } + } + \new Lyrics { + \lyricsto "melody" { + The first time words. + \repeat unfold 2 { \skip 1 } + End here. + } + } + \new Lyrics { + \lyricsto "melody" { + Sec -- ond + \repeat unfold 2 { \skip 1 } + time words. + } + } + >> +} +@end lilypond + +@cindex lyrics and tied notes +@funindex \repeatTie + +When a note is tied over into two or more alternative endings a +tie is used to carry the note into the first alternative ending and +a @code{\repeatTie} is used in the second and subsequent endings. +This structure causes difficult alignment problems when lyrics are +involved and increasing the length of the alternative sections so +the tied notes are contained wholly within them may give a more +acceptable result. + +The tie creates a melisma into the first alternative, but not into +the second and subsequent alternatives, so to align the lyrics +correctly it is necessary to disable the automatic creation of +melismata over the volta section and insert manual skips. + +@lilypond[quote,verbatim] +\score { + << + \new Staff { + \time 2/4 + \new Voice = "melody" { + \relative c'' { + \set melismaBusyProperties = #'() + \repeat volta 2 { b4 b ~} + \alternative { { b b } { b \repeatTie c } } + \unset melismaBusyProperties + c4 c + } + } + } + \new Lyrics { + \lyricsto "melody" { + \repeat volta 2 { Here's a __ } + \alternative { + { \skip 1 verse } + { \skip 1 sec } + } + ond one. + } + } + >> +} +@end lilypond + +Note that if @code{\unfoldRepeats} is used around a section +containing @code{\repeatTie}, the @code{\repeatTie} should be +removed to avoid both types of tie being printed. + +When the repeated section has different words a @code{\repeat} +cannot be used around the lyrics and @code{\skip} commands need to +be inserted manually, as before. + +@lilypond[quote,verbatim] +\score { + << + \new Staff { + \time 2/4 + \new Voice = "melody" { + \relative c'' { + \repeat volta 2 { b4 b ~} + \alternative { { b b } { b \repeatTie c } } + c4 c + } + } + } + \new Lyrics { + \lyricsto "melody" { + Here's a __ verse. + \repeat unfold 2 { \skip 1 } + } + } + \new Lyrics { + \lyricsto "melody" { + Here's one + \repeat unfold 2 { \skip 1 } + more to sing. + } + } + >> +} +@end lilypond + +If you wish to show extenders and hyphens into and out of +alternative sections these must be inserted manually. + +@lilypond[quote,verbatim] +\score { + << + \new Staff { + \time 2/4 + \new Voice = "melody" { + \relative c'' { + \repeat volta 2 { b4 b ~} + \alternative { { b b } { b \repeatTie c } } + c4 c + } + } + } + \new Lyrics { + \lyricsto "melody" { + Here's a __ verse. + \repeat unfold 2 { \skip 1 } + } + } + \new Lyrics { + \lyricsto "melody" { + Here's "a_" + \skip 1 + "_" sec -- ond one. + } + } + >> +} +@end lilypond + +@seealso +Notation Reference: +@ref{Keeping contexts alive}, +@ref{Repeats}. + + +@node Divisi lyrics +@unnumberedsubsubsec Divisi lyrics + +@cindex divided lyrics +@cindex lyrics, divided + +When just the words and rhythms of the two parts differ with the +pitches remaining the same, temporarily turning off the automatic +detection of melismata and indicating the melisma in the lyrics +may be the appropriate method to use: + +@lilypond[quote,verbatim] +\score { + << + \new Voice = "melody" { + \relative c' { + \set melismaBusyProperties = #'() + \slurDown + \slurDashed + e4 e8 ( e ) c4 c | + \unset melismaBusyProperties + c + } + } + \new Lyrics \lyricsto "melody" { + They shall not o -- ver -- come + } + \new Lyrics \lyricsto "melody" { + We will _ + } + >> +} +@end lilypond + +When both music and words differ it may be better to display +the differing music and lyrics by naming voice contexts and +attaching lyrics to those specific contexts: + +@lilypond[verbatim,ragged-right,quote] +\score { + << + \new Voice = "melody" { + \relative c' { + << + { + \voiceOne + e4 e8 e + } + \new Voice = "splitpart" { + \voiceTwo + c4 c + } + >> + \oneVoice + c4 c | + c + } + } + \new Lyrics \lyricsto "melody" { + They shall not o -- ver -- come + } + \new Lyrics \lyricsto "splitpart" { + We will + } + >> +} +@end lilypond + + +@node Stanzas +@subsection Stanzas + +@menu +* 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 +@unnumberedsubsubsec Adding stanza numbers + +@cindex stanza number + +Stanza numbers can be added by setting @code{stanza}, e.g., + +@lilypond[quote,ragged-right,verbatim,relative=2] +\new Voice { + \time 3/4 g2 e4 a2 f4 g2. +} \addlyrics { + \set stanza = #"1. " + Hi, my name is Bert. +} \addlyrics { + \set stanza = #"2. " + 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. + + } +} + +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 +@unnumberedsubsubsec 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 -front of a stanza goes into the @code{StanzaNumber} object; dynamics marks -are no different. For technical reasons, you have to set the stanza -outside @code{\lyricmode}: +front of a stanza goes into the @code{StanzaNumber} object; dynamics +marks are no different. For technical reasons, you have to set the +stanza outside @code{\lyricmode}: @lilypond[quote,ragged-right,verbatim] text = { @@ -1020,9 +1720,10 @@ text = { Names of singers can also be added. They are printed at the start of the line, just like instrument names. They are created by setting -@code{vocalName}. A short version may be entered as @code{shortVocalName}. +@code{vocalName}. A short version may be entered as +@code{shortVocalName}. -@lilypond[fragment,ragged-right,quote,verbatim,relative=2] +@lilypond[ragged-right,quote,verbatim,relative=2] \new Voice { \time 3/4 g2 e4 a2 f4 g2. } \addlyrics { @@ -1037,10 +1738,14 @@ the line, just like instrument names. They are created by setting @node Stanzas with different rhythms @unnumberedsubsubsec Stanzas with different rhythms +Often, different stanzas of one song are put to one melody in slightly +differing ways. Such variations can still be captured with +@code{\lyricsto}. + @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 +multiple syllables in another. One solution is to make the faster voice ignore the melisma. This is done by setting @code{ignoreMelismata} in the Lyrics context. @@ -1074,32 +1779,38 @@ are to be ignored. @subsubheading Adding syllables to grace notes +@cindex grace notes and lyrics +@cindex lyrics on grace notes + By default, grace notes (e.g. via @code{\grace}) do not get assigned syllables when using @code{\lyricsto}, but this behavior can be changed: @lilypond[verbatim,ragged-right,quote] -\relative c' { - f4 \appoggiatura a32 b4 - \grace { f16[ a16] } b2 - \afterGrace b2 { f16[ a16] } - \appoggiatura a32 b4 - \acciaccatura a8 b4 -} -\addlyrics { - normal - \set includeGraceNotes = ##t - case, - gra -- ce case, - after -- grace case, - \set ignoreMelismata = ##t - app. case, - acc. case. -} +<< + \new Voice = melody \relative c' { + f4 \appoggiatura a32 b4 + \grace { f16[ a16] } b2 + \afterGrace b2 { f16[ a16] } + \appoggiatura a32 b4 + \acciaccatura a8 b4 + } + \new Lyrics + \lyricsto melody { + normal + \set includeGraceNotes = ##t + case, + gra -- ce case, + after -- grace case, + \set ignoreMelismata = ##t + app. case, + acc. case. + } +>> @end lilypond @knownissues -Like for @code{associatedVoice}, @code{includeGraceNotes} needs to be +Like @code{associatedVoice}, @code{includeGraceNotes} needs to be set at latest one syllable before the one which is to be put under a grace note. For the case of a grace note at the very beginning of a piece of music, consider using a @code{\with} or @code{\context} @@ -1120,11 +1831,14 @@ block: @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 +@cindex associatedVoice +@cindex alternative melody, switching to -@lilypond[ragged-right,quote] +More complex variations in setting lyrics to music are possible. +The melody to which the lyrics are being set can be changed from +within the lyrics by setting the @code{associatedVoice} property: + +@lilypond[verbatim,quote] << \relative c' \new Voice = "lahlah" { \set Staff.autoBeaming = ##f @@ -1151,56 +1865,43 @@ done by setting the @code{associatedVoice} property. In the example \new Lyrics \lyricsto "lahlah" { % Tricky: need to set associatedVoice % one syllable too soon! - \set associatedVoice = alternative % applies to "ran" + \set associatedVoice = "alternative" % applies to "ran" Ty -- ran -- no -- - \set associatedVoice = lahlah % applies to "rus" + \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 text for the first stanza is set to the melody called +@q{lahlah} in the usual way, but the second stanza is set initally +to the @code{lahlah} context and is then switched to the +@code{alternative} melody for the syllables @q{ran} to @q{sau} by +the lines: -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 +\set associatedVoice = "alternative" % applies to "ran" +Ty -- +ran -- +no -- +\set associatedVoice = "lahlah" % applies to "rus" +sau -- rus Rex @end example @noindent Here, @code{alternative} is the name of the @code{Voice} context containing the triplet. -@c TODO: make this easier to understand -vv -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 +Note the placement of the @code{\set associatedVoice} command -- +it appears to be one syllable too early, but this is correct. -@noindent -The underlay is switched back to the starting situation by assigning -@code{lahlah} to @code{associatedVoice}. +@warning{The @code{\set associatedVoice} command must be placed +one syllable @emph{before} the one at which the switch to the new +voice is to occur. In other words, changing the associated Voice +happens one syllable later than expected. This is for technical +reasons, and it is not a bug.} @node Printing stanzas at the end @@ -1266,10 +1967,11 @@ text = \lyricmode { It has two lines. } -\score{ << +\score { + << \new Voice = "one" { \melody } \new Lyrics \lyricsto "one" \text - >> + >> \layout { } } @@ -1334,14 +2036,68 @@ Internals Reference: @node References for songs @unnumberedsubsubsec References for songs -@c TODO chords, setting simple songs (LM), stanzas -TBC +Songs are usually written on three staves with the melody for the +singer on the top staff and two staves of piano accompaniment at +the bottom. The lyrics of the first stanza are printed immediately +underneath the top staff. If there are just a small number of +further stanzas these can be printed immediately under the first +one, but if there are more stanzas than can be easily accommodated +there the second and subsequent stanzas are printed after the music +as stand-alone text. + +All the notational elements needed to write songs are fully described +elsewhere: + +@itemize + +@item +For constructing the staff layout, see @ref{Displaying staves}. + +@item +For writing piano music, see +@ref{Keyboard and other multi-staff instruments}. + +@item +For writing the lyrics to a melody line, see +@ref{Common notation for vocal music}. + +@item +For placing the lyrics, see @ref{Placing lyrics vertically}. + +@item +For entering stanzas, see @ref{Stanzas}. + +@item +Songs are frequently printed with the chording indicated by chord +names above the staves. This is described in @ref{Displaying chords}. + +@item +To print fret diagrams of the chords for guitar accompaniment or +accompaniment by other fretted instruments, see @qq{Fret diagram +markups} in @ref{Common notation for fretted strings}. + +@end itemize + +@seealso +Learning Manual: +@rlearning{Songs}. + +Notation Reference: +@ref{Common notation for vocal music}, +@ref{Displaying chords}, +@ref{Displaying staves}, +@ref{Keyboard and other multi-staff instruments}, +@ref{Placing lyrics vertically}, +@ref{Stanzas}. + +Snippets: +@rlsr{Vocal music}. @node Lead sheets @unnumberedsubsubsec Lead sheets -Lead sheets may be printed by combining vocal parts and @q{chord mode}; -this syntax is explained in @ref{Chord notation}. +Lead sheets may be printed by combining vocal parts and +@q{chord mode}; this syntax is explained in @ref{Chord notation}. @snippets @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle] @@ -1367,6 +2123,7 @@ etc. @menu * References for choral:: * Score layouts for choral:: +* Divided voices:: @end menu @node References for choral @@ -1376,8 +2133,9 @@ Choral music is usually notated on two, three or four staves within a @code{ChoirStaff} group. Accompaniment, if required, is placed beneath in a @code{PianoStaff} group, which is usually reduced in size for @emph{a capella} choral works. The notes for each vocal -part are placed in a @code{Voice} context, with each either on a -staff of its own or grouped in pairs on a single staff. +part are placed in a @code{Voice} context, with each staff +being given either a single vocal part (i.e., one @code{Voice}) or +a pair of vocal parts (i.e., two @code{Voice}s). Words are placed in @code{Lyrics} contexts, either underneath each corresponding music staff, or one above and one below the music @@ -1401,25 +2159,35 @@ For information about @code{ChoirStaff} and @code{PianoStaff} see @ref{Grouping staves}. @item -General information about entering the words (i.e. @qq{lyrics}) to -vocal music is described in sections 2.1.2 to 2.1.5 of this manual. -All these sections are relevant to choral music. +Shape note heads, as used in Sacred Harp and similar notation, are +described in @ref{Shape note heads}. @item -Shape noteheads, as used in Sacred Harp and similar notation, are -described in @ref{Shape note heads}. +When two vocal parts share a staff the stems, ties, slurs, etc., of +the higher part will be directed up and those of the lower part +down. To do this, use @code{\voiceOne} and @code{\voiceTwo}. See +@ref{Single-staff polyphony}. @end itemize +@predefined +@code{\oneVoice}, +@code{\voiceOne}, +@code{\voiceTwo}. + @seealso Learning Manual: @rlearning{Four-part SATB vocal score}, @rlearning{Vocal ensembles}. Notation Reference: -@ref{Grouping staves}, @ref{Context layout order}, -@ref{Shape note heads}. +@ref{Grouping staves}, +@ref{Shape note heads}, +@ref{Single-staff polyphony}. + +Snippets: +@rlsr{Vocal music}. Internals Reference: @rinternals{ChoirStaff}, @@ -1446,73 +2214,135 @@ The distances between the systems, the staves and the lyrics can all be adjusted independently. See @ref{Vertical spacing}. @item -Setting @code{annotate-spacing = ##t} in the layout block will -display the dimensions of the vertical layout variables. This -may help in adjusting them. For details, see -@ref{Displaying spacing}. +The dimensions of the vertical layout variables can be displayed as +an aid to adjusting the vertical spacing. This and other +possibilities for fitting the music onto fewer pages are described +in @ref{Fitting music onto fewer pages}. @item -Other possibilities for fitting the music onto fewer pages are -described in @ref{Changing spacing}. - -@end itemize - If the number of systems per page changes from one to two it is customary to indicate this with a system separator mark between -the two systems. By default the system separator is blank. It -may be activated with +the two systems. See @ref{Separating systems}. -@example -\paper @{ - system-separator-markup = \slashSeparator -@} -@end example +@item +For details of other page formatting properties, see +@ref{Page layout}. + +@end itemize -@noindent -For details of this and other page formatting properties, see -@ref{Page formatting}. Dynamic markings by default are placed below the staff, but in -choral music they are often placed above the staff in order to +choral music they are usually placed above the staff in order to avoid the lyrics. The predefined command @code{\dynamicUp} does this for the dynamic markings in a single @code{Voice} context. -To place all dynamic markings in the score above their respective -staves use the following in a @code{\layout} block within the -@code{\score} block: +If there are many @code{Voice} contexts this predefined command +would have to be placed in every one. Alternatively its expanded +form can be used to place all dynamic markings in the entire score +above their respective staves, as shown here: -@example -\layout @{ - \context @{ - \Score - \override DynamicText #'direction = #UP - \override DynamicLineSpanner #'direction = #UP - @} -@} -@end example +@lilypond[verbatim,quote] +\score { + \new ChoirStaff << + \new Staff { + \new Voice { + \relative c'' { g4\f g g g } + } + } + \new Staff { + \new Voice { + \relative c' { d4 d d\p d } + } + } + >> + \layout { + \context { + \Score + \override DynamicText #'direction = #UP + \override DynamicLineSpanner #'direction = #UP + } + } +} +@end lilypond @predefined -@code{\dynamicUp}. +@code{\dynamicUp}, @code{\dynamicDown}, @code{\dynamicNeutral}. @seealso Notation Reference: -@ref{Setting the staff size}, -@ref{Vertical spacing}, -@ref{Displaying spacing}, @ref{Changing spacing}, +@ref{Displaying spacing}, +@ref{Fitting music onto fewer pages}, +@ref{Page layout}, @ref{Score layout}, +@ref{Separating systems}, +@ref{Setting the staff size}, @ref{Using an extra voice for breaks}, -@ref{Page formatting}. +@ref{Vertical spacing}. Internals Reference: @rinternals{VerticalAxisGroup}, @rinternals{StaffGrouper}. +@node Divided voices +@unnumberedsubsubsec Divided voices + +@cindex voices, divided + +@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle] +{using-arpeggiobracket-to-make-divisi-more-visible.ly} + +@seealso +Notation Reference: +@ref{Expressive marks as lines}. + + @node Opera and stage musicals @subsection Opera and stage musicals +The music, lyrics and dialogue to opera and stage musicals are +usually set out in one or more of the following forms: + +@itemize + +@item +A @emph{Conductors' Score} containing the full orchestral and vocal +parts, together with libretto cues if there are spoken passages. + +@item +@emph{Orchestral Parts} containing the music for the individual +instruments of the orchestra or band. + +@item +A @emph{Vocal Score} containing all vocal parts with piano +accompaniment. The accompaniment is usually an orchestral +reduction, and if so the name of the original orchestral instrument +is often indicated. Vocal scores sometimes includes stage +directions and libretto cues. + +@item +A @emph{Vocal Book} containing just the vocal parts +(no accompaniment), sometimes combined with the libretto. + +@item +A @emph{Libretto} containing the extended passages of spoken +dialogue usually found in musicals, together with the words to the +sung parts. Stage directions are usually included. LilyPond can +be used to typeset libretti but as they contain no music +alternative methods may be preferable. + +@end itemize + +The sections in the LilyPond documentation which cover the topics +needed to create scores in the styles commonly found in opera and +musicals are indicated in the References below. This is followed +by sections covering those techniques which are peculiar to +typesetting opera and musical scores. + @menu * References for opera and stage musicals:: +* Character names:: +* Musical cues:: * Spoken music:: * Dialogue over music:: @end menu @@ -1520,19 +2350,297 @@ Internals Reference: @node References for opera and stage musicals @unnumberedsubsubsec References for opera and stage musicals -@c TODO Choral, cues, character names, French staves -@c vocal/conductor scores -@c add characters names snippet -vv +@itemize + +@item +A conductors' score contains many grouped staves and lyrics. Ways +of grouping staves is shown in @ref{Grouping staves}. To nest +groups of staves see @ref{Nested staff groups}. + +@item +The printing of empty staves in conductors' scores and vocal scores +is often suppressed. To create such a @qq{Frenched score} see +@ref{Hiding staves}. + +@item +Writing orchestral parts is covered in @ref{Writing parts}. +Other sections in the Specialist notation chapter may be relevant, +depending on the orchestration used. Many instruments are +transposing instruments, see @ref{Instrument transpositions}. + +@item +If the number of systems per page changes from page to page it is +customary to separate the systems with a system separator mark. +See @ref{Separating systems}. + +@item +For details of other page formatting properties, see +@ref{Page layout}. + +@item +Dialogue cues and stage directions can be inserted with markup. +See @ref{Text}. Extensive stage directions can be inserted with +a section of stand-alone markup between two @code{\score} blocks. +See @ref{Separate text}. + +@end itemize + +@seealso +Musical Glossary: +@rglos{Frenched score}, +@rglos{Frenched staves}, +@rglos{transposing instrument}. + +Notation Reference: +@ref{Grouping staves}, +@ref{Hiding staves}, +@ref{Instrument transpositions}, +@ref{Nested staff groups}, +@ref{Page layout}, +@ref{Separating systems}, +@ref{Transpose}, +@ref{Writing parts}, +@ref{Writing text}. + +Snippets: +@rlsr{Vocal music}. + + +@node Character names +@unnumberedsubsubsec Character names + +@cindex character names +@cindex names, character + +Character names are usually shown to the left of the staff when the +staff is dedicated to that character alone: + +@lilypond[quote,verbatim,ragged-right] +\score { + << + \new Staff { + \set Staff.vocalName = \markup \smallCaps Kaspar + \set Staff.shortVocalName = \markup \smallCaps Kas. + \relative c' { + \clef "G_8" + c4 c c c + \break + c4 c c c + } + } + \new Staff { + \set Staff.vocalName = \markup \smallCaps Melchior + \set Staff.shortVocalName = \markup \smallCaps Mel + \clef "bass" + \relative c' { + a4 a a a + a4 a a a + } + } + >> +} +@end lilypond + +When two or more characters share a staff the character's name is +usually printed above the staff at the start of every section +applying to that character. This can be done with markup. Often a +specific font is used for this purpose. + +@lilypond[quote,verbatim,relative=1] +\clef "G_8" +c4^\markup \fontsize #1 \smallCaps Kaspar +c c c +\clef "bass" +a4^\markup \fontsize #1 \smallCaps Melchior +a a a +\clef "G_8" +c4^\markup \fontsize #1 \smallCaps Kaspar +c c c +@end lilypond + +Alternatively, if there are many character changes, it may be +easier to set up @qq{instrument} definitions for each character at +the top level so that @code{\instrumentSwitch} can be used to +indicate each change. + +@lilypond[quote,verbatim] +\addInstrumentDefinition #"kaspar" + #`((instrumentTransposition . ,(ly:make-pitch -1 0 0)) + (shortInstrumentName . "Kas.") + (clefGlyph . "clefs.G") + (clefOctavation . -7) + (middleCPosition . 1) + (clefPosition . -2) + (instrumentCueName . ,(markup #:fontsize 1 #:smallCaps "Kaspar")) + (midiInstrument . "voice oohs")) + +\addInstrumentDefinition #"melchior" + #`((instrumentTransposition . ,(ly:make-pitch 0 0 0)) + (shortInstrumentName . "Mel.") + (clefGlyph . "clefs.F") + (clefOctavation . 0) + (middleCPosition . 6) + (clefPosition . 2) + (instrumentCueName . ,(markup #:fontsize 1 #:smallCaps "Melchior")) + (midiInstrument . "voice aahs")) + +\relative c' { + \instrumentSwitch "kaspar" + c4 c c c + \instrumentSwitch "melchior" + a4 a a a + \instrumentSwitch "kaspar" + c4 c c c +} +@end lilypond + +@seealso +Notation Reference: +@ref{Instrument names}, +@ref{Scheme functions}, +@ref{Text}, +@ref{Text markup commands}. + +Extending LilyPond: +@rextend{Markup construction in Scheme}. + +@node Musical cues +@unnumberedsubsubsec Musical cues + +@cindex musical cues +@cindex cues, musical + +Musical cues can be inserted in Vocal Scores, Vocal Books and +Orchestral Parts to indicate what music in another part +immediately precedes an entry. Also, cues are often inserted in the +piano reduction in Vocal Scores to indicate what each orchestral +instrument is playing. This aids the conductor when a full +Conductors' Score is not available. + +The basic mechanism for inserting cues is fully explained in the +main text, see @ref{Quoting other voices} and +@ref{Formatting cue notes}. But when many cues have to be +inserted, for example, as an aid to a conductor in a vocal score, +the instrument name must be positioned carefully just before and +close to the start of the cue notes. The following example shows +how this is done. + +@lilypond[quote,verbatim] +flute = \relative c'' { + s4 s4 e g +} +\addQuote "flute" { \flute } + +pianoRH = \relative c'' { + c4. g8 + % position name of cue-ing instrument just before the cue notes, + % and above the staff + s1*0^\markup { \right-align { \tiny "Flute" } } + \cueDuring "flute" #UP { g4 bes4 } +} +pianoLH = \relative c { c4 e, } + +\score { + \new PianoStaff << + \new Staff { + \pianoRH + } + \new Staff { + \clef "bass" + \pianoLH + } + >> +} +@end lilypond + +If a transposing instrument is being quoted the instrument part should +specify its key so the conversion of its cue notes will be done +automatically. The example below shows this transposition for a +B-flat clarinet. The notes in this example are low on the staff so +@code{#DOWN} is specified in @code{\cueDuring} (so the stems are +down) and the instrument name is positioned below the staff. Note +also that the piano right-hand voice is explicitly declared. This +is because the cue notes in this example begin at the start of the +first bar and this would otherwise cause the entire piano right-hand +notes to be placed in a @code{CueVoice} context. + +@lilypond[quote,verbatim] +clarinet = \relative c' { + \transposition bes + fis4 d d c +} +\addQuote "clarinet" { \clarinet } + +pianoRH = \relative c'' { + \transposition c' + % position name of cue-ing instrument below the staff + s1*0_\markup { \right-align { \tiny "Clar." } } + \cueDuring "clarinet" #DOWN { c4. g8 } + g4 bes4 +} +pianoLH = \relative c { c4 e, } + +\score { + << + \new PianoStaff << + \new Staff { + \new Voice { + \pianoRH + } + } + \new Staff { + \clef "bass" + \pianoLH + } + >> + >> +} +@end lilypond + +From these two examples it is clear that inserting many cues in a +Vocal Score would be tedious, and the notes of the piano part would +become obscured. However, as the following snippet shows, it is +possible to define a music function to reduce the amount of typing +and to make the piano notes clearer. + +@snippets +@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle] +{adding-orchestral-cues-to-a-vocal-score.ly} + +@seealso +Musical Glossary: +@rglos{cue-notes}. + +Notation Reference: +@ref{Aligning objects}, +@ref{Direction and placement}, +@ref{Formatting cue notes}, +@ref{Quoting other voices}, +@ref{Using music functions}. + +Snippets: +@rlsr{Vocal music}. + +Internals Reference: +@rinternals{InstrumentSwitch}, +@rinternals{CueVoice}. + +@knownissues +@code{\cueDuring} automatically inserts a @code{CueVoice} context +and all cue notes are placed in that context. This means it is not +possible to have two overlapping sequences of cue notes by this +technique. Overlapping sequences could be entered by explicitly +declaring separate @code{CueVoice} contexts and using +@code{\quoteDuring} to extract and insert the cue notes. -TBC @node Spoken music @unnumberedsubsubsec Spoken music @cindex parlato @cindex Sprechgesang -Such effects as @q{parlato} or @q{Sprechgesang} require performers to speak -without pitch but still with rhythm; these are notated by cross +Such effects as @q{parlato} or @q{Sprechgesang} require performers to +speak without pitch but still with rhythm; these are notated by cross note heads, as demonstrated in @ref{Special note heads}. @c TODO add "marking-notes-on-spoken-parts" snippet -vv @@ -1544,7 +2652,80 @@ note heads, as demonstrated in @ref{Special note heads}. @node Dialogue over music @unnumberedsubsubsec Dialogue over music -TBC +Dialogue over music is usually printed over the staves in an italic +font, with the start of each phrase keyed in to a particular music +moment. + +For short interjections a simple markup suffices. + +@lilypond[quote,verbatim,relative=2] +a4^\markup { \smallCaps { Alex - } \italic { He's gone } } a a a +a4 a a^\markup { \smallCaps { Bethan - } \italic Where? } a +a4 a a a +@end lilypond + +For longer phrases it may be necessary to expand the music to make +the words fit neatly. There is no provision in LilyPond to do this +fully automatically, and some manual intervention to layout the +page will be necessary. + +For long phrases or for passages with a lot of closely packed +dialogue, using a Lyrics context will give better results. The +Lyrics context should not be associated with a music Voice; instead +each section of dialogue should be given an explicit duration. If +there is a gap in the dialogue, the final word should be separated +from the rest and the duration split between them so that the +underlying music spaces out smoothly. + +If the dialogue extends for more than one line it will be necessary +to manually insert @code{\break}s and adjust the placing of the +dialogue to avoid running into the right margin. The final word of +the last measure on a line should also be separated out, as above. + +Here is an example illustrating how this might be done. + +@c This should be a snippet, but it can't be as it needs to be +@c manually adjusted to suit the imposed line length. -td + +@lilypond[quote,verbatim,ragged-right] +music = \relative c'' { + \repeat unfold 3 { a4 a a a } +} + +dialogue = \lyricmode { + \markup { + \fontsize #1 \upright \smallCaps Abe: + "Say this over measures one and" + }4*7 + "two"4 | + \break + "and this over measure"4*3 + "three"4 | +} + +\score { + << + \new Lyrics \with { + \override LyricText #'font-shape = #'italic + \override LyricText #'self-alignment-X = #LEFT + } + { \dialogue } + \new Staff { + \new Voice { \music } + } + >> +} +@end lilypond + +@c TODO show use of \column to produce dialogue on two lines + +@seealso +Notation Reference: +@ref{Manual syllable durations}, +@ref{Text}. + +Internal Reference: +@rinternals{LyricText}. @node Chants psalms and hymns @@ -1573,71 +2754,461 @@ which arise are broadly similar, and are covered in this section. Typesetting Gregorian chant in various styles of ancient notation is described in @ref{Ancient notation}. +@seealso +Notation reference: +@ref{Ancient notation}. + +Snippets: +@rlsr{Vocal music}. + + +@node Setting a chant +@unnumberedsubsubsec Setting a chant + Modern chant settings use modern notation with varying numbers of elements taken from ancient notation. Some of the elements and -methods to consider are these: - -@itemize +methods to consider are shown here. -@item Chants often use quarter notes without stems to indicate the pitch, -with the rhythm being taken from the spoken rhythm of the words. To -remove the stem set the @code{transparent} property of the -@code{Stem} grob to @code{#t}. See -@rlearning{Visibility and color of objects} and -@ref{Visibility of objects}. An alternative is set the -@code{length} property to @code{0}. +with the rhythm being taken from the spoken rhythm of the words. -@item -Chants usually omit the bar lines or use shortened or dotted bar -lines to indicate pauses in the music. To omit bar lines -completely use @code{\cadenzaOn} or remove the @code{Bar_engraver}. -See @ref{Unmetered music} and @ref{Modifying context plug-ins}. +@lilypond[verbatim,quote] +stemOff = { \override Staff.Stem #'transparent = ##t } -@item -To use modified bar lines see the @emph{Bar lines} section in -@ref{Bars}. Alternatively, the correct Gregorian chant notation -for pauses or rests in the music are described in @emph{Divisiones} -in @ref{Typesetting Gregorian chant}. +\relative c' { + \stemOff + a'4 b c2 | +} + +@end lilypond + +Chants often omit the bar lines or use shortened or dotted bar +lines to indicate pauses in the music. To omit all bar lines from +all staves remove the bar line engraver completely: + +@lilypond[verbatim,quote] +\score { + \new StaffGroup << + \new Staff { + \relative c'' { + a4 b c2 | + a4 b c2 | + a4 b c2 | + } + } + \new Staff { + \relative c'' { + a4 b c2 | + a4 b c2 | + a4 b c2 | + } + } + >> + \layout { + \context { + \Staff + \remove Bar_engraver + } + } +} +@end lilypond + +Bar lines can also be removed on a staff-by-staff basis: + +@lilypond[verbatim, quote] +\score { + \new ChoirStaff << + \new Staff + \with { \remove Bar_engraver } { + \relative c'' { + a4 b c2 | + a4 b c2 | + a4 b c2 | + } + } + \new Staff { + \relative c'' { + a4 b c2 | + a4 b c2 | + a4 b c2 | + } + } + >> +} +@end lilypond + +To remove bar lines from just a section of music treat it as a +cadenza. If the section is long you may need to insert dummy +bar lines with @code{\bar ""} to show where the line should break. + +@lilypond[verbatim,quote,relative=2] +a4 b c2 | +\cadenzaOn +a4 b c2 +a4 b c2 +\bar "" +a4 b c2 +a4 b c2 +\cadenzaOff +a4 b c2 | +a4 b c2 | +@end lilypond + +Rests or pauses in chants can be indicated by modified bar lines. + +@lilypond[verbatim, quote,relative=2] +a4 +\cadenzaOn +b c2 +a4 b c2 +\bar "'" +a4 b c2 +a4 b c2 +\bar ":" +a4 b c2 +\bar "dashed" +a4 b c2 +\bar "||" +@end lilypond + +Alternatively, the notation used in Gregorian chant for pauses or +rests is sometimes used even though the rest of the notation is +modern. This uses a modified @code{\breathe} mark: + +@lilypond[verbatim,quote] +divisioMinima = { + \once \override BreathingSign #'stencil = #ly:breathing-sign::divisio-minima + \once \override BreathingSign #'Y-offset = #0 + \breathe +} +divisioMaior = { + \once \override BreathingSign #'stencil = #ly:breathing-sign::divisio-maior + \once \override BreathingSign #'Y-offset = #0 + \breathe +} +divisioMaxima = { + \once \override BreathingSign #'stencil = #ly:breathing-sign::divisio-maxima + \once \override BreathingSign #'Y-offset = #0 + \breathe +} +finalis = { + \once \override BreathingSign #'stencil = #ly:breathing-sign::finalis + \once \override BreathingSign #'Y-offset = #0 + \breathe +} + +\score { + \relative c'' { + g2 a4 g + \divisioMinima + g2 a4 g + \divisioMaior + g2 a4 g + \divisioMaxima + g2 a4 g + \finalis + } + \layout { + \context { + \Staff + \remove Bar_engraver + } + } +} +@end lilypond -@item Chants usually omit the time signature and often omit the clef too. -To omit these remove the @code{Time_signature_engraver} and -@code{Clef_engraver} from the @code{Staff} context respectively. -For details, see @ref{Modifying context plug-ins}. -@end itemize +@lilypond[verbatim,quote] +\score { + \new Staff { + \relative c'' { + a4 b c2 | + a4 b c2 | + a4 b c2 | + } + } + \layout { + \context { + \Staff + \remove Bar_engraver + \remove Time_signature_engraver + \remove Clef_engraver + } + } +} +@end lilypond -@seealso -Learning Manual: -@rlearning{Visibility and color of objects}. +Chants for psalms in the Anglican tradition are usually either +@emph{single}, with 7 bars of music, or @emph{double}, with two lots +of 7 bars. Each group of 7 bars is divided into two halves, +corresponding to the two halves of each verse, usually separated by +a double bar line. Only whole and half notes are used. The 1st bar +in each half always contains a single chord of whole notes. This is +the @qq{reciting note}. Chants are usually centered on the page. + +@lilypond[verbatim,quote] +SopranoMusic = \relative g' { + g1 | c2 b | a1 | \bar "||" + a1 | d2 c | c b | c1 | \bar "||" +} -Notation reference: -@ref{Ancient notation}, -@ref{Visibility of objects}, -@ref{Bars}, -@ref{Unmetered music}, -@ref{Modifying context plug-ins}, -@ref{Typesetting Gregorian chant}. +AltoMusic = \relative c' { + e1 | g2 g | f1 | + f1 | f2 e | d d | e1 | +} -@node Setting a chant -@unnumberedsubsubsec Setting a chant +TenorMusic = \relative a { + c1 | c2 c | c1 | + d1 | g,2 g | g g | g1 | +} + +BassMusic = \relative c { + c1 | e2 e | f1 | + d1 | b2 c | g' g | c,1 | +} -Some approaches to setting a chant are shown in the following -snippets. +global = { + \time 2/2 +} + +% Use markup to center the chant on the page +\markup { + \fill-line { + \score { % centered + << + \new ChoirStaff << + \new Staff << + \global + \clef "treble" + \new Voice = "Soprano" << + \voiceOne + \SopranoMusic + >> + \new Voice = "Alto" << + \voiceTwo + \AltoMusic + >> + >> + \new Staff << + \clef "bass" + \global + \new Voice = "Tenor" << + \voiceOne + \TenorMusic + >> + \new Voice = "Bass" << + \voiceTwo + \BassMusic + >> + >> + >> + >> + \layout { + \context { + \Score + \override SpacingSpanner + #'base-shortest-duration = #(ly:make-moment 1 2) + } + \context { + \Staff + \remove "Time_signature_engraver" + } + } + } % End score + } +} % End markup +@end lilypond + +Some other approaches to setting such a chant are shown in the first +of the following snippets. @snippets + @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle] {chant-or-psalms-notation.ly} +Canticles and other liturgical texts may be set more freely, and +may use notational elements from ancient music. Often the words +are shown underneath and aligned with the notes. If so, the notes +are spaced in accordance with the syllables rather than the notes' +durations. + @lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle] {ancient-notation-template----modern-transcription-of-gregorian-music.ly} +@seealso +Learning Manual: +@rlearning{Visibility and color of objects}, +@rlearning{Vocal ensembles}. + +Notation Reference: +@ref{Ancient notation}, +@ref{Bar lines}, +@ref{Modifying context plug-ins}, +@ref{Typesetting Gregorian chant}, +@ref{Unmetered music}, +@ref{Visibility of objects}. + @node Pointing a psalm @unnumberedsubsubsec Pointing a psalm -TBC +The words to an Anglican psalm are usually printed in separate +verses centered underneath the chant. + +Single chants (with 7 bars) are repeated for every verse. Double +chants (with 14 bars) are repeated for every pair of verses. Marks +are inserted in the words to show how they should be fitted to the +chant. Each verse is divided into two halves. A colon is usually +used to indicate this division. This corresponds to the double bar +line in the music. The words before the colon are sung to the first +three bars of music; the words after the colon are sung to the last +four bars. + +Single bar lines (or in some psalters an inverted comma or similar +symbol) are inserted between words to indicate where the bar lines +in the music fall. In markup mode a single bar line can be entered +with the bar check symbol, @code{|}. + +@lilypond[verbatim,quote] +\markup { + \fill-line { + \column { + \left-align { + \line { O come let us sing | unto the | Lord : let } + \line { us heartily rejoice in the | strength of | our } + \line { sal- | -vation. } + } + } + } +} +@end lilypond + +Other symbols may require glyphs from the @code{fetaMusic} fonts. +For details, see @ref{Fonts}. + +@lilypond[verbatim,quote] +tick = \markup { + \raise #1 \fontsize #-5 \musicglyph #"scripts.rvarcomma" +} +\markup { + \fill-line { + \column { + \left-align { + \line { O come let us sing \tick unto the \tick Lord : let } + \line { + us heartily rejoice in the \tick strength of \tick our + } + \line { sal \tick vation. } + } + } + } +} +@end lilypond + +Where there is one whole note in a bar all the words corresponding +to that bar are recited on that one note in speech rhythm. Where +there are two notes in a bar there will usually be only one or two +corresponding syllables. If there are more that two syllables a +dot is usually inserted to indicate where the change in note occurs. + +@lilypond[verbatim,quote] +dot = \markup { + \raise #0.7 \musicglyph #"dots.dot" +} +tick = \markup { + \raise #1 \fontsize #-5 \musicglyph #"scripts.rvarcomma" +} +\markup { + \fill-line { + \column { + \left-align { + \line { + O come let us sing \tick unto \dot the \tick Lord : let + } + \line { + us heartily rejoice in the \tick strength of \tick our + } + \line { sal \tick vation. } + } + } + } +} +@end lilypond + +In some psalters an asterisk is used to indicate a break in a +recited section instead of a comma, and stressed or slightly +lengthened syllables are indicated in bold text. + +@lilypond[verbatim,quote] +dot = \markup { + \raise #0.7 \musicglyph #"dots.dot" +} +tick = \markup { + \raise #1 \fontsize #-5 \musicglyph #"scripts.rvarcomma" +} +\markup { + \fill-line { + \column { + \left-align { + \line { Today if ye will hear his voice * } + \line { + \concat { \bold hard en } + | not your | hearts : as in the pro- + } + \line { vocation * and as in the \bold day of tempt- | } + \line { -ation | in the | wilderness. } + } + } + } +} +@end lilypond + +In other psalters an accent is placed over the syllable to indicate +stress. + +@lilypond[verbatim,quote] +tick = \markup { + \raise #2 \fontsize #-5 \musicglyph #"scripts.rvarcomma" +} +\markup { + \fill-line { + \column { + \left-align { + \line { + O come let us \concat { + si \combine \tick ng + } + | unto the | Lord : let + } + \line { + us heartily \concat { + rejo \combine \tick ice + } + in the | strength of | our + } + \line { sal- | -vation. } + } + } + } +} +@end lilypond + +The use of markup to center text, and arrange lines in columns is +described in @ref{Formatting text}. + +Most of these elements are shown in one or other of the two verses +in the template, see @qq{Psalms} in @rlearning{Vocal ensembles}. + +@seealso +Learning Manual: +@rlearning{Vocal ensembles}. + +Notation Reference: +@ref{Fonts}, +@ref{Formatting text}. + @node Partial measures in hymn tunes @unnumberedsubsubsec Partial measures in hymn tunes @@ -1655,7 +3226,8 @@ commands at the end of each line. @node Ancient vocal music @subsection Ancient vocal music -Ancient vocal music is supported, as explained in @ref{Ancient notation}. +Ancient vocal music is supported, as explained in +@ref{Ancient notation}. @c TODO