4.4.2 Four-part SATB vocal score (LilyPond Learning Manual)

#### 4.4.2 Four-part SATB vocal score

Most vocal scores of music written for four-part mixed choir with orchestral accompaniment such as Mendelssohn’s Elijah or Handel’s Messiah have the choral music and words on four staves, one for each of SATB, with a piano reduction of the orchestral accompaniment underneath. Here’s an example from Handel’s Messiah:

Note: This layout can be achieved very easily using the built-in template: `satb.ly`, see Built-in templates. But for ease of use this template deliberately hides the necessary context structure, instead providing it automatically. So for purposes of learning let us see how to build this up from scratch. You may need to do this if the built-in template does not meet your needs adequately.

The nearest copy-and-edit template to this layout is SATB vocal score and automatic piano reduction – but we need to change the layout and add a piano accompaniment which is not derived automatically from the vocal parts. The variables holding the music and words for the vocal parts are fine, but we shall need to add variables for the piano reduction.

The order in which the contexts appear in the `ChoirStaff` of the template do not correspond with the order in the vocal score shown above. We need to rearrange them so there are four staves with the words written directly underneath the notes for each part. All the voices should be `\voiceOne`, which is the default, so the `\voiceXXX` commands should be removed. We also need to adjust the clef for the tenors. The way in which lyrics are specified in the template has not yet been encountered so we need to use the method with which we are familiar. We should also add the names of each staff.

Doing this gives for our ChoirStaff:

    \new ChoirStaff <<
      \new Staff = "sopranos"
      \with { instrumentName = "Soprano" }
      <<
        \new Voice = "sopranos" {
          \global
          \sopranoMusic
        }
      >>
      \new Lyrics \lyricsto "sopranos" {
        \sopranoWords
      }
      \new Staff = "altos"
      \with { instrumentName = "Alto" }
      <<
        \new Voice = "altos" {
          \global
          \altoMusic
        }
      >>
      \new Lyrics \lyricsto "altos" {
        \altoWords
      }
      \new Staff = "tenors"
      \with { instrumentName = "Tenor" }
      <<
        \new Voice = "tenors" {
          \global
          \tenorMusic
        }
      >>
      \new Lyrics \lyricsto "tenors" {
        \tenorWords
      }
      \new Staff = "basses"
      \with { instrumentName = "Bass" }
      <<
        \new Voice = "basses" {
          \global
          \bassMusic
        }
      >>
      \new Lyrics \lyricsto "basses" {
        \bassWords
      }
    >>  % end ChoirStaff

Next we must work out the piano part. This is easy – we just pull out the piano part from the ‘Solo piano’ template:

    \new PianoStaff \with { instrumentName = "Piano  " }
    <<
      \new Staff = "upper" \upper
      \new Staff = "lower" \lower
    >>

and add the variable definitions for `upper` and `lower`.

The `ChoirStaff` and `PianoStaff` must be combined using angle brackets as we want them to be stacked one above the other:

    <<  % combine ChoirStaff and PianoStaff one above the other
      \new ChoirStaff <<
        \new Staff = "sopranos" <<
          \new Voice = "sopranos" {
            \global
            \sopranoMusic
          }
        >>
        \new Lyrics \lyricsto "sopranos" {
          \sopranoWords
         }
        \new Staff = "altos" <<
          \new Voice = "altos" {
            \global
            \altoMusic
          }
        >>
        \new Lyrics \lyricsto "altos" {
          \altoWords
        }
        \new Staff = "tenors" <<
          \clef "G_8"  % tenor clef
          \new Voice = "tenors" {
            \global
            \tenorMusic
          }
        >>
        \new Lyrics \lyricsto "tenors" {
          \tenorWords
        }
        \new Staff = "basses" <<
          \clef "bass"
          \new Voice = "basses" {
            \global
            \bassMusic
          }
        >>
        \new Lyrics \lyricsto "basses" {
          \bassWords
        }
      >>  % end ChoirStaff

      \new PianoStaff \with { instrumentName = "Piano" }
      <<
        \new Staff = "upper" \upper
        \new Staff = "lower" \lower
      >>
    >>

Combining all these together and adding the music for the three bars of the example above gives:

>     global = { \key d \major \time 4/4 }
>     sopranoMusic = \relative {
>       \clef "treble"
>       r4 d''2 a4 | d4. d8 a2 | cis4 d cis2 |
>     }
>     sopranoWords = \lyricmode {
>       Wor -- thy | is the lamb | that was slain |
>     }
>     altoMusic = \relative {
>       \clef "treble"
>       r4 a'2 a4 | fis4. fis8 a2 | g4 fis fis2 |
>     }
>     altoWords = \sopranoWords
>     tenorMusic = \relative {
>       \clef "G_8"
>       r4 fis'2 e4 | d4. d8 d2 | e4 a, cis2 |
>     }
>     tenorWords = \sopranoWords
>     bassMusic = \relative {
>       \clef "bass"
>       r4 d'2 cis4 | b4. b8 fis2 | e4 d a'2 |
>     }
>     bassWords = \sopranoWords
>     upper = \relative {
>       \clef "treble"
>       \global
>       r4 <a' d fis>2 <a e' a>4 |
>       <d fis d'>4. <d fis d'>8 <a d a'>2 |
>       <g cis g'>4 <a d fis> <a cis e>2 |
>     }
>     lower = \relative {
>       \clef "bass"
>       \global
>       <d, d'>4 <d d'>2 <cis cis'>4 |
>       <b b'>4. <b' b'>8 <fis fis'>2 |
>       <e e'>4 <d d'> <a' a'>2 |
>     }

>     \score {
>       <<  % combine ChoirStaff and PianoStaff in parallel
>         \new ChoirStaff <<
>           \new Staff = "sopranos"
>           \with { instrumentName = "Soprano" }
>           <<
>             \new Voice = "sopranos" {
>               \global
>               \sopranoMusic
>             }
>           >>
>           \new Lyrics \lyricsto "sopranos" {
>             \sopranoWords
>           }
>           \new Staff = "altos"
>           \with { instrumentName = "Alto" }
>           <<
>             \new Voice = "altos" {
>               \global
>               \altoMusic
>             }
>           >>
>           \new Lyrics \lyricsto "altos" {
>             \altoWords
>           }
>           \new Staff = "tenors"
>           \with { instrumentName = "Tenor" }
>           <<
>             \new Voice = "tenors" {
>               \global
>               \tenorMusic
>             }
>           >>
>           \new Lyrics \lyricsto "tenors" {
>             \tenorWords
>           }
>           \new Staff = "basses"
>           \with { instrumentName = "Bass" }
>           <<
>             \new Voice = "basses" {
>               \global
>               \bassMusic
>             }
>           >>
>           \new Lyrics \lyricsto "basses" {
>             \bassWords
>           }
>         >>  % end ChoirStaff

>         \new PianoStaff
>         \with { instrumentName = "Piano  " }
>         <<
>           \new Staff = "upper" \upper
>           \new Staff = "lower" \lower
>         >>
>       >>
>     }

#### LilyPond Learning Manual v2.26.0 (stable-branch).

- 1 Installing
  - 1.1 Graphical setup
  - 1.2 Command line setup
- 2 Tutorial
  - 2.1 Compiling a file
  - 2.2 How to write input files
    - 2.2.1 Input characters
    - 2.2.2 Simple notation
      - Pitches
      - Durations (rhythms)
      - Rests
      - Time signature
      - Tempo marks
      - Clef
      - All together
    - 2.2.3 Working on input files
  - 2.3 Dealing with errors
  - 2.4 How to read the manuals
    - 2.4.1 Omitted material
    - 2.4.2 Clickable examples
    - 2.4.3 Overview of manuals
- 3 Common notation
  - 3.1 Single-staff notation
    - 3.1.1 Bar lines and bar checks
      - Bar lines
      - Bar checks
    - 3.1.2 Pitches and key signatures
      - Pitch alterations
      - Key signatures
      - Warning: key signatures and pitches
    - 3.1.3 Ties and slurs
      - Ties
      - Slurs
      - Phrasing slurs
      - Warnings: slurs vs. ties
    - 3.1.4 Articulations and dynamics
      - Articulations
      - Fingerings
      - Dynamics
    - 3.1.5 Adding text
    - 3.1.6 Automatic and manual beams
    - 3.1.7 Advanced rhythmic commands
      - Partial measure
      - Tuplets
      - Grace notes
  - 3.2 Multiple notes at once
    - 3.2.1 Music expressions explained
      - Analogy: mathematical expressions
      - Simultaneous music expressions: multiple staves
      - Simultaneous music expressions: single-staff
    - 3.2.2 Multiple staves
    - 3.2.3 Staff groups
    - 3.2.4 Combining notes into chords
    - 3.2.5 Single-staff polyphony
  - 3.3 Songs
    - 3.3.1 Setting simple songs
    - 3.3.2 Aligning lyrics to a melody
    - 3.3.3 Lyrics to multiple staves
  - 3.4 Final touches
    - 3.4.1 Organizing pieces with variables
    - 3.4.2 Adding titles
    - 3.4.3 Absolute note names
    - 3.4.4 After the tutorial
- 4 Fundamental concepts
  - 4.1 How LilyPond input files work
    - 4.1.1 Introduction to the LilyPond file structure
    - 4.1.2 A score is a (single) compound musical expression
    - 4.1.3 Nesting music expressions
    - 4.1.4 Structure of a note entry
    - 4.1.5 On the un-nestedness of brackets and ties
  - 4.2 Voices contain music
    - 4.2.1 I’m hearing voices
    - 4.2.2 Explicitly instantiating voices
    - 4.2.3 Voices and vocals
  - 4.3 Contexts and engravers
    - 4.3.1 Contexts explained
    - 4.3.2 Creating contexts
    - 4.3.3 Engravers explained
    - 4.3.4 Modifying context properties
    - 4.3.5 Adding and removing engravers
  - 4.4 Extending the templates
    - 4.4.1 Soprano and cello
    - 4.4.2 Four-part SATB vocal score
    - 4.4.3 Building a score from scratch
    - 4.4.4 Saving typing with variables and functions
    - 4.4.5 Scores and parts
- 5 Tweaking output
  - 5.1 Tweaking basics
    - 5.1.1 Objects and interfaces
    - 5.1.2 Naming conventions of objects and properties
    - 5.1.3 Tweaking methods
      - The `\override` command
      - The `\revert` command
      - The `\once` prefix
      - The `\tweak` and `\offset` commands
      - The `\single` prefix
  - 5.2 The Internals Reference manual
    - 5.2.1 Properties of layout objects
    - 5.2.2 Properties found in interfaces
    - 5.2.3 Types of properties
  - 5.3 Appearance of objects
    - 5.3.1 Visibility and color of objects
      - The `stencil` property
      - The `break-visibility` property
      - The `transparent` property
      - The `color` property
    - 5.3.2 Size of objects
    - 5.3.3 Length and thickness of objects
  - 5.4 Offsets and alignments
  - 5.5 Placement of objects
    - 5.5.1 Automatic behavior
    - 5.5.2 Within-staff objects
      - The `direction` property
      - Fingering
    - 5.5.3 Outside-staff objects
      - The `outside-staff-priority` property
      - The `\textLengthOn` command
      - Dynamics placement
      - Grob sizing
  - 5.6 Vertical spacing
  - 5.7 Collisions of objects
    - 5.7.1 Moving objects
    - 5.7.2 Fixing overlapping notation
      - The `padding` property
      - The `right-padding` property
      - The `staff-padding` property
      - The `self-alignment-X` property
      - The `staff-position` property
      - The `extra-offset` property
      - The `positions` property
      - The `force-hshift` property
    - 5.7.3 Real music example
  - 5.8 Further tweaking
    - 5.8.1 Other uses for tweaks
      - Tying notes across voices
      - Simulating a fermata in MIDI
    - 5.8.2 Using variables for layout adjustments
    - 5.8.3 Style sheets
    - 5.8.4 Other sources of information
    - 5.8.5 Advanced tweaks with Scheme
- Appendix A Templates
  - A.1 Built-in templates
    - A.1.1 SATB template
    - A.1.2 SSAATTBB template
  - A.2 Single staff templates
    - A.2.1 Notes only
    - A.2.2 Notes and lyrics
    - A.2.3 Notes and chords
    - A.2.4 Notes, lyrics, and chords
  - A.3 Piano templates
    - A.3.1 Solo piano
    - A.3.2 Piano and melody with lyrics
    - A.3.3 Piano-centered lyrics
  - A.4 String quartet templates
    - A.4.1 String quartet
    - A.4.2 String quartet parts
  - A.5 Vocal ensembles templates
    - A.5.1 SATB vocal score
    - A.5.2 SATB vocal score and automatic piano reduction
    - A.5.3 SATB with aligned contexts
    - A.5.4 SATB on four staves
    - A.5.5 Solo verse and two-part refrain
    - A.5.6 Hymn tunes
    - A.5.7 Psalms
  - A.6 Orchestral templates
    - A.6.1 Orchestra, choir and piano
  - A.7 Ancient notation templates
    - A.7.1 Transcription of mensural music
    - A.7.2 Gregorian transcription template
  - A.8 Other templates
    - A.8.1 Jazz combo
- Appendix B GNU Free Documentation License
- Appendix C Index