GNU LilyPond Learning Manual: A.4 Vocal ensembles

## A.4 Vocal ensembles

### A.4.1 SATB vocal score

Here is a standard four-part SATB vocal score. With larger ensembles, it is often useful to include a section which is included in all parts. For example, the time signature and key signature are almost always the same for all parts. Like in the "Hymn" template, the four voices are regrouped on only two staves.

>     global = {
>       \key c \major
>       \time 4/4
>     }

>     sopMusic = \relative c'' {
>       c4 c c8[( b)] c4
>     }
>     sopWords = \lyricmode {
>       hi hi hi hi
>     }

>     altoMusic = \relative c' {
>       e4 f d e
>     }
>     altoWords = \lyricmode {
>       ha ha ha ha
>     }

>     tenorMusic = \relative c' {
>       g4 a f g
>     }
>     tenorWords = \lyricmode {
>       hu hu hu hu
>     }

>     bassMusic = \relative c {
>       c4 c g c
>     }
>     bassWords = \lyricmode {
>       ho ho ho ho
>     }

>     \score {
>       \new ChoirStaff <<
>         \new Lyrics = sopranos { s1 }
>         \new Staff = women <<
>           \new Voice = "sopranos" {
>             \voiceOne
>             << \global \sopMusic >>
>           }
>           \new Voice = "altos" {
>             \voiceTwo
>             << \global \altoMusic >>
>           }
>         >>
>         \new Lyrics = "altos" { s1 }
>         \new Lyrics = "tenors" { s1 }
>         \new Staff = men <<
>           \clef bass
>           \new Voice = "tenors" {
>             \voiceOne
>             << \global \tenorMusic >>
>           }
>           \new Voice = "basses" {
>             \voiceTwo << \global \bassMusic >>
>           }
>         >>
>         \new Lyrics = basses { s1 }
>         \context Lyrics = sopranos \lyricsto sopranos \sopWords
>         \context Lyrics = altos \lyricsto altos \altoWords
>         \context Lyrics = tenors \lyricsto tenors \tenorWords
>         \context Lyrics = basses \lyricsto basses \bassWords
>       >>
>       \layout {
>         \context {
>           % a little smaller so lyrics
>           % can be closer to the staff
>           \Staff
>           \override VerticalAxisGroup #'minimum-Y-extent = #'(-3 . 3)
>         }
>       }
>     }

### A.4.2 SATB vocal score and automatic piano reduction

This template adds an automatic piano reduction to the standard SATB vocal score demonstrated in "Vocal ensemble template". This demonstrates one of the strengths of LilyPond – you can use a music definition more than once. If any changes are made to the vocal notes (say, `tenorMusic`), then the changes will also apply to the piano reduction.

>     global = {
>       \key c \major
>       \time 4/4
>     }

>     sopMusic = \relative c'' {
>       c4 c c8[( b)] c4
>     }
>     sopWords = \lyricmode {
>       hi hi hi hi
>     }

>     altoMusic = \relative c' {
>       e4 f d e
>     }
>     altoWords =\lyricmode {
>       ha ha ha ha
>     }

>     tenorMusic = \relative c' {
>       g4 a f g
>     }
>     tenorWords = \lyricmode {
>       hu hu hu hu
>     }

>     bassMusic = \relative c {
>       c4 c g c
>     }
>     bassWords = \lyricmode {
>       ho ho ho ho
>     }

>     \score {
>       <<
>         \new ChoirStaff <<
>           \new Lyrics = sopranos { s1 }
>           \new Staff = women <<
>             \new Voice = sopranos { \voiceOne << \global \sopMusic >> }
>             \new Voice = altos { \voiceTwo << \global \altoMusic >> }
>           >>
>           \new Lyrics = altos { s1 }
>           \new Lyrics = tenors { s1 }
>           \new Staff = men <<
>             \clef bass
>             \new Voice = tenors { \voiceOne <<\global \tenorMusic >> }
>             \new Voice = basses { \voiceTwo <<\global \bassMusic >> }
>           >>
>           \new Lyrics = basses { s1 }
>           \context Lyrics = sopranos \lyricsto sopranos \sopWords
>           \context Lyrics = altos \lyricsto altos \altoWords
>           \context Lyrics = tenors \lyricsto tenors \tenorWords
>           \context Lyrics = basses \lyricsto basses \bassWords
>         >>
>         \new PianoStaff <<
>           \new Staff <<
>             \set Staff.printPartCombineTexts = ##f
>             \partcombine
>             << \global \sopMusic >>
>             << \global \altoMusic >>
>           >>
>           \new Staff <<
>             \clef bass
>             \set Staff.printPartCombineTexts = ##f
>             \partcombine
>             << \global \tenorMusic >>
>             << \global \bassMusic >>
>           >>
>         >>
>       >>
>       \layout {
>         \context {
>           % a little smaller so lyrics
>           % can be closer to the staff
>           \Staff
>           \override VerticalAxisGroup #'minimum-Y-extent = #'(-3 . 3)
>         }
>       }
>     }

### A.4.3 SATB with aligned contexts

This template is basically the same as the simple "Vocal ensemble" template, with the exception that here all the lyrics lines are placed using `alignAboveContext` and `alignBelowContext`.

>     global = {
>       \key c \major
>       \time 4/4
>     }

>     sopMusic = \relative c'' {
>       c4 c c8[( b)] c4
>     }
>     sopWords = \lyricmode {
>       hi hi hi hi
>     }

>     altoMusic = \relative c' {
>       e4 f d e
>     }
>     altoWords = \lyricmode {
>       ha ha ha ha
>     }

>     tenorMusic = \relative c' {
>       g4 a f g
>     }
>     tenorWords = \lyricmode {
>       hu hu hu hu
>     }

>     bassMusic = \relative c {
>       c4 c g c
>     }
>     bassWords = \lyricmode {
>       ho ho ho ho
>     }

>     \score {
>       \new ChoirStaff <<
>         \new Staff = women <<
>           \new Voice = "sopranos" { \voiceOne << \global \sopMusic >> }
>           \new Voice = "altos" { \voiceTwo << \global \altoMusic >> }
>         >>
>         \new Lyrics \with { alignAboveContext = women } \lyricsto sopranos \sopWords
>         \new Lyrics \with { alignBelowContext = women } \lyricsto altos \altoWords
>         % we could remove the line about this with the line below, since we want
>         % the alto lyrics to be below the alto Voice anyway.
>         % \new Lyrics \lyricsto altos \altoWords

>         \new Staff = men <<
>           \clef bass
>           \new Voice = "tenors" { \voiceOne << \global \tenorMusic >> }
>           \new Voice = "basses" { \voiceTwo << \global \bassMusic >> }
>         >>
>         \new Lyrics \with { alignAboveContext = men } \lyricsto tenors \tenorWords
>         \new Lyrics \with { alignBelowContext = men } \lyricsto basses \bassWords
>         % again, we could replace the line above this with the line below.
>         % \new Lyrics \lyricsto basses \bassWords
>       >>
>       \layout {
>         \context {
>           % a little smaller so lyrics
>           % can be closer to the staff
>           \Staff
>           \override VerticalAxisGroup #'minimum-Y-extent = #'(-3 . 3)
>         }
>       }
>     }

Other languages: español, deutsch.

#### Learning Manual