LilyPond snippets: Templates

# Templates

## Ancient notation template – modern transcription of gregorian music

This example demonstrates how to do modern transcription of Gregorian music. Gregorian music has no measure, no stems; it uses only half and quarter note heads, and special marks, indicating rests of different length.

    \include "gregorian.ly"

    chant = \relative c' {
      \set Score.timing = ##f
      f4 a2 \divisioMinima
      g4 b a2 f2 \divisioMaior
      g4( f) f( g) a2 \finalis
    }

    verba = \lyricmode {
      Lo -- rem ip -- sum do -- lor sit a -- met
    }

    \score {
      \new Staff <<
        \new Voice = "melody" \chant
        \new Lyrics = "one" \lyricsto melody \verba
      >>
      \layout {
        \context {
          \Staff
          \remove "Time_signature_engraver"
          \remove "Bar_engraver"
          \override Stem #'transparent = ##t
        }
        \context {
          \Voice
          \override Stem #'length = #0
        }
        \context {
          \Score
          barAlways = ##t
        }
      }
    }

## Ancient notation template – modern transcription of mensural music

When transcribing mensural music, an incipit at the beginning of the piece is useful to indicate the original key and tempo. While today musicians are used to bar lines in order to faster recognize rhythmic patterns, bar lines were not yet invented during the period of mensural music; in fact, the meter often changed after every few notes. As a compromise, bar lines are often printed between the staves rather than on the staves.

    global = {
      \set Score.skipBars = ##t

      % incipit
      \once \override Score.SystemStartBracket #'transparent = ##t
      \override Score.SpacingSpanner #'spacing-increment = #1.0 % tight spacing
      \key f \major
      \time 2/2
      \once \override Staff.TimeSignature #'style = #'neomensural
      \override Voice.NoteHead #'style = #'neomensural
      \override Voice.Rest #'style = #'neomensural
      \set Staff.printKeyCancellation = ##f
      \cadenzaOn % turn off bar lines
      \skip 1*10
      \once \override Staff.BarLine #'transparent = ##f
      \bar "||"
      \skip 1*1 % need this extra \skip such that clef change comes
                % after bar line
      \bar ""

      % main
      \revert Score.SpacingSpanner #'spacing-increment % CHECK: no effect?
      \cadenzaOff % turn bar lines on again
      \once \override Staff.Clef #'full-size-change = ##t
      \set Staff.forceClef = ##t
      \key g \major
      \time 4/4
      \override Voice.NoteHead #'style = #'default
      \override Voice.Rest #'style = #'default

      % FIXME: setting printKeyCancellation back to #t must not
      % occur in the first bar after the incipit.  Dto. for forceClef.
      % Therefore, we need an extra \skip.
      \skip 1*1
      \set Staff.printKeyCancellation = ##t
      \set Staff.forceClef = ##f

      \skip 1*7 % the actual music

      % let finis bar go through all staves
      \override Staff.BarLine #'transparent = ##f

      % finis bar
      \bar "|."
    }

    discantusNotes = {
      \transpose c' c'' {
        \set Staff.instrumentName = #"Discantus  "

        % incipit
        \clef "neomensural-c1"
        c'1. s2   % two bars
        \skip 1*8 % eight bars
        \skip 1*1 % one bar

        % main
        \clef "treble"
        d'2. d'4 |
        b e' d'2 |
        c'4 e'4.( d'8 c' b |
        a4) b a2 |
        b4.( c'8 d'4) c'4 |
        \once \override NoteHead #'transparent = ##t c'1 |
        b\breve |
      }
    }

    discantusLyrics = \lyricmode {
      % incipit
      IV-

      % main
      Ju -- bi -- |
      la -- te De -- |
      o, om --
      nis ter -- |
      ra, __ om- |
      "..." |
      -us. |
    }

    altusNotes = {
      \transpose c' c'' {
        \set Staff.instrumentName = #"Altus  "

        % incipit
        \clef "neomensural-c3"
        r1        % one bar
        f1. s2    % two bars
        \skip 1*7 % seven bars
        \skip 1*1 % one bar

        % main
        \clef "treble"
        r2 g2. e4 fis g | % two bars
        a2 g4 e |
        fis g4.( fis16 e fis4) |
        g1 |
        \once \override NoteHead #'transparent = ##t g1 |
        g\breve |
      }
    }

    altusLyrics = \lyricmode {
      % incipit
      IV-

      % main
      Ju -- bi -- la -- te | % two bars
      De -- o, om -- |
      nis ter -- ra, |
      "..." |
      -us. |
    }

    tenorNotes = {
      \transpose c' c' {
        \set Staff.instrumentName = #"Tenor  "

        % incipit
        \clef "neomensural-c4"
        r\longa   % four bars
        r\breve   % two bars
        r1        % one bar
        c'1. s2   % two bars
        \skip 1*1 % one bar
        \skip 1*1 % one bar

        % main
        \clef "treble_8"
        R1 |
        R1 |
        R1 |
        r2 d'2. d'4 b e' | % two bars
        \once \override NoteHead #'transparent = ##t e'1 |
        d'\breve |
      }
    }

    tenorLyrics = \lyricmode {
      % incipit
      IV-

      % main
      Ju -- bi -- la -- te | % two bars
      "..." |
      -us. |
    }

    bassusNotes = {
      \transpose c' c' {
        \set Staff.instrumentName = #"Bassus  "

        % incipit
        \clef "bass"
        r\maxima  % eight bars
        f1. s2    % two bars
        \skip 1*1 % one bar

        % main
        \clef "bass"
        R1 |
        R1 |
        R1 |
        R1 |
        g2. e4 |
        \once \override NoteHead #'transparent = ##t e1 |
        g\breve |
      }
    }

    bassusLyrics = \lyricmode {
      % incipit
      IV-

      % main
      Ju -- bi- |
      "..." |
      -us. |
    }

    \score {
      \new StaffGroup = choirStaff <<
        \new Voice =
          "discantusNotes" << \global \discantusNotes >>
        \new Lyrics =
          "discantusLyrics" \lyricsto discantusNotes { \discantusLyrics }
        \new Voice =
          "altusNotes" << \global \altusNotes >>
        \new Lyrics =
          "altusLyrics" \lyricsto altusNotes { \altusLyrics }
        \new Voice =
          "tenorNotes" << \global \tenorNotes >>
        \new Lyrics =
          "tenorLyrics" \lyricsto tenorNotes { \tenorLyrics }
        \new Voice =
          "bassusNotes" << \global \bassusNotes >>
        \new Lyrics =
          "bassusLyrics" \lyricsto bassusNotes { \bassusLyrics }
      >>
      \layout {
        \context {
          \Score

          % no bars in staves
          \override BarLine #'transparent = ##t

          % incipit should not start with a start delimiter
          \remove "System_start_delimiter_engraver"
        }
        \context {
          \Voice

          % no slurs
          \override Slur #'transparent = ##t

          % Comment in the below "\remove" command to allow line
          % breaking also at those barlines where a note overlaps
          % into the next bar.  The command is commented out in this
          % short example score, but especially for large scores, you
          % will typically yield better line breaking and thus improve
          % overall spacing if you comment in the following command.
          %\remove "Forbid_line_break_engraver"
        }
      }
    }

## Anglican psalm template

This template shows one way of setting out an Anglican psalm chant. It also shows how the verses may be added as stand-alone text under the music. The two verses are coded in different styles to demonstrate more possibilities.

    SopranoMusic = \relative g' {
      g1 | c2 b | a1 | \bar "||"
      a1 | d2 c | c b | c1 | \bar "||"
    }

    AltoMusic = \relative c' {
      e1 | g2 g | f1 |
      f1 | f2 e | d d | e1 |
    }

    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 |
    }

    global = {
      \time 2/2
    }

    dot = \markup {
      \raise #0.7 \musicglyph #"dots.dot"
    }

    tick = \markup {
      \raise #1 \fontsize #-5 \musicglyph #"scripts.rvarcomma"
    }

    % 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

    \markup {
      \fill-line {
        \column {
          \left-align {
            \null \null \null
            \line {
              \fontsize #5 O
              \fontsize #3 come
              let us \bold sing | unto \dot the | Lord : let
            }
            \line {
              us heartily
              \concat { re \bold joice }
              in the | strength of | our
            }
            \line {
              sal | vation.
            }
            \null
            \line {
              \hspace #2.5 8. Today if ye will hear his voice *
            }
            \line {
              \concat { \bold hard en }
              \tick not your \tick hearts : as in the pro-
            }
            \line {
              vocation * and as in the \bold day of tempt- \tick
            }
            \line {
              -ation \tick in the \tick wilderness.
            }
          }
        }
      }
    }

## Hymn template

This code shows one way of setting out a hymn tune when each line starts and ends with a partial measure. It also shows how to add the verses as stand-alone text under the music.

    Timeline = {
      \time 4/4
      \tempo 4=96
      \partial 2
      s2 | s1 | s2 \breathe s2 | s1 | s2 \bar "||" \break
      s2 | s1 | s2 \breathe s2 | s1 | s2 \bar "||"
    }

    SopranoMusic = \relative g' {
      g4 g | g g g g | g g g g | g g g g | g2
      g4 g | g g g g | g g g g | g g g g | g2
    }

    AltoMusic = \relative c' {
      d4 d | d d d d | d d d d | d d d d | d2
      d4 d | d d d d | d d d d | d d d d | d2
    }

    TenorMusic = \relative a {
      b4 b | b b b b | b b b b | b b b b | b2
      b4 b | b b b b | b b b b | b b b b | b2
    }

    BassMusic =  \relative g {
      g4 g | g g g g | g g g g | g g g g | g2
      g4 g | g g g g | g g g g | g g g g | g2
    }

    global = {
     \key g \major
    }

    \score {  % Start score
      <<
        \new PianoStaff <<  % Start pianostaff
          \new Staff <<  % Start Staff = RH
            \global
            \clef "treble"
            \new Voice = "Soprano" <<  % Start Voice = "Soprano"
              \Timeline
              \voiceOne
              \SopranoMusic
            >>  % End Voice = "Soprano"
            \new Voice = "Alto" <<  % Start Voice = "Alto"
              \Timeline
              \voiceTwo
              \AltoMusic
            >>  % End Voice = "Alto"
          >>  % End Staff = RH
          \new Staff <<  % Start Staff = LH
            \global
            \clef "bass"
            \new Voice = "Tenor" <<  % Start Voice = "Tenor"
              \Timeline
              \voiceOne
              \TenorMusic
            >>  % End Voice = "Tenor"
            \new Voice = "Bass" <<  % Start Voice = "Bass"
              \Timeline
              \voiceTwo
              \BassMusic
            >>  % End Voice = "Bass"
          >>  % End Staff = LH
        >>  % End pianostaff
      >>
    }  % End score

    \markup {
      \fill-line {
        ""
        {
          \column {
            \left-align {
              "This is line one of the first verse"
              "This is line two of the same"
              "And here's line three of the first verse"
              "And the last line of the same"
            }
          }
        }
        ""
      }
    }

    \paper {  % Start paper block
      indent = 0     % don't indent first system
      line-width = 130   % shorten line length to suit music
    }  % End paper block

## Jazz combo template

This is quite an advanced template, for a jazz ensemble. Note that all instruments are notated in `\key c \major`. This refers to the key in concert pitch; the key will be automatically transposed if the music is within a `\transpose` section.

    \header {
      title = "Song"
      subtitle = "(tune)"
      composer = "Me"
      meter = "moderato"
      piece = "Swing"
      tagline = \markup {
        \column {
          "LilyPond example file by Amelie Zapf,"
          "Berlin 07/07/2003"
        }
      }
    }

    %#(set-global-staff-size 16)
    \include "english.ly"

    %%%%%%%%%%%% Some macros %%%%%%%%%%%%%%%%%%%

    sl = {
      \override NoteHead #'style = #'slash
      \override Stem #'transparent = ##t
    }
    nsl = {
      \revert NoteHead #'style
      \revert Stem #'transparent
    }
    crOn = \override NoteHead #'style = #'cross
    crOff = \revert NoteHead #'style

    %% insert chord name style stuff here.

    jazzChords = { }

    %%%%%%%%%%%% Keys'n'thangs %%%%%%%%%%%%%%%%%

    global = { \time 4/4 }

    Key = { \key c \major }

    % ############ Horns ############

    % ------ Trumpet ------
    trpt = \transpose c d \relative c'' {
      \Key
      c1 | c | c |
    }
    trpHarmony = \transpose c' d {
      \jazzChords
    }
    trumpet = {
      \global
      \set Staff.instrumentName = #"Trumpet"
      \clef treble
      <<
        \trpt
      >>
    }

    % ------ Alto Saxophone ------
    alto = \transpose c a \relative c' {
      \Key
      c1 | c | c |
    }
    altoHarmony = \transpose c' a {
      \jazzChords
    }
    altoSax = {
      \global
      \set Staff.instrumentName = #"Alto Sax"
      \clef treble
      <<
        \alto
      >>
    }

    % ------ Baritone Saxophone ------
    bari = \transpose c a' \relative c {
      \Key
      c1
      c1
      \sl
      d4^"Solo" d d d
      \nsl
    }
    bariHarmony = \transpose c' a \chordmode {
      \jazzChords s1 s d2:maj e:m7
    }
    bariSax = {
      \global
      \set Staff.instrumentName = #"Bari Sax"
      \clef treble
      <<
        \bari
      >>
    }

    % ------ Trombone ------
    tbone = \relative c {
      \Key
      c1 | c | c
    }
    tboneHarmony = \chordmode {
      \jazzChords
    }
    trombone = {
      \global
      \set Staff.instrumentName = #"Trombone"
      \clef bass
      <<
        \tbone
      >>
    }

    % ############ Rhythm Section #############

    % ------ Guitar ------
    gtr = \relative c'' {
      \Key
      c1
      \sl
      b4 b b b
      \nsl
      c1
    }
    gtrHarmony = \chordmode {
      \jazzChords
      s1 c2:min7+ d2:maj9
    }
    guitar = {
      \global
      \set Staff.instrumentName = #"Guitar"
      \clef treble
      <<
        \gtr
      >>
    }

    %% ------ Piano ------
    rhUpper = \relative c'' {
      \voiceOne
      \Key
      c1 | c | c
    }
    rhLower = \relative c' {
      \voiceTwo
      \Key
      e1 | e | e
    }

    lhUpper = \relative c' {
      \voiceOne
      \Key
      g1 | g | g
    }
    lhLower = \relative c {
      \voiceTwo
      \Key
      c1 | c | c
    }

    PianoRH = {
      \clef treble
      \global
      \set Staff.midiInstrument = #"acoustic grand"
      <<
        \new Voice = "one" \rhUpper
        \new Voice = "two" \rhLower
      >>
    }
    PianoLH = {
      \clef bass
      \global
      \set Staff.midiInstrument = #"acoustic grand"
      <<
        \new Voice = "one" \lhUpper
        \new Voice = "two" \lhLower
      >>
    }

    piano = {
      <<
        \set PianoStaff.instrumentName = #"Piano"
        \new Staff = "upper" \PianoRH
        \new Staff = "lower" \PianoLH
      >>
    }

    % ------ Bass Guitar ------
    Bass = \relative c {
      \Key
      c1 | c | c
    }
    bass = {
      \global
      \set Staff.instrumentName = #"Bass"
      \clef bass
      <<
        \Bass
      >>
    }

    % ------ Drums ------
    up = \drummode {
      \voiceOne
      hh4 <hh sn> hh <hh sn>
      hh4 <hh sn> hh <hh sn>
      hh4 <hh sn> hh <hh sn>
    }
    down = \drummode {
      \voiceTwo
      bd4 s bd s
      bd4 s bd s
      bd4 s bd s
    }

    drumContents = {
      \global
      <<
        \set DrumStaff.instrumentName = #"Drums"
        \new DrumVoice \up
        \new DrumVoice \down
      >>
    }

    %%%%%%%%% It All Goes Together Here %%%%%%%%%%%%%%%%%%%%%%

    \score {
      <<
        \new StaffGroup = "horns" <<
          \new Staff = "trumpet" \trumpet
          \new Staff = "altosax" \altoSax
          \new ChordNames = "barichords" \bariHarmony
          \new Staff = "barisax" \bariSax
          \new Staff = "trombone" \trombone
        >>

        \new StaffGroup = "rhythm" <<
          \new ChordNames = "chords" \gtrHarmony
          \new Staff = "guitar" \guitar
          \new PianoStaff = "piano" \piano
          \new Staff = "bass" \bass
          \new DrumStaff \drumContents
        >>
      >>
      \layout {
        \context { \Staff \RemoveEmptyStaves }
        \context {
          \Score
          \override BarNumber #'padding = #3
          \override RehearsalMark #'padding = #2
          skipBars = ##t
        }
      }
      \midi { }
    }

## Orchestra choir and piano template

This template demonstrates the use of nested `StaffGroup` and `GrandStaff` contexts to sub-group instruments of the same type together, and a way to use `\transpose` so that variables hold music for transposing instruments at concert pitch.

    #(set-global-staff-size 17)
    \paper {
      indent = 3.0\cm  % space for instrumentName
      short-indent = 1.5\cm  % space for shortInstrumentName
    }

    fluteMusic = \relative c' { \key g \major g'1 b }
    % Pitches as written on a manuscript for Clarinet in A
    % are transposed to concert pitch.
    clarinetMusic = \transpose c' a
      \relative c'' { \key bes \major bes1 d }
    trumpetMusic = \relative c { \key g \major g''1 b }
    % Key signature is often omitted for horns
    hornMusic = \transpose c' f
      \relative c { d'1 fis }
    percussionMusic = \relative c { \key g \major g1 b }
    sopranoMusic = \relative c'' { \key g \major g'1 b }
    sopranoLyrics = \lyricmode { Lyr -- ics }
    altoIMusic = \relative c' { \key g \major g'1 b }
    altoIIMusic = \relative c' { \key g \major g'1 b }
    altoILyrics =  \sopranoLyrics
    altoIILyrics = \lyricmode { Ah -- ah }
    tenorMusic = \relative c' { \clef "treble_8" \key g \major g1 b }
    tenorLyrics = \sopranoLyrics
    pianoRHMusic = \relative c { \key g \major g''1 b }
    pianoLHMusic = \relative c { \clef bass \key g \major g1 b }
    violinIMusic = \relative c' { \key g \major g'1 b }
    violinIIMusic = \relative c' { \key g \major g'1 b }
    violaMusic = \relative c { \clef alto \key g \major g'1 b }
    celloMusic = \relative c { \clef bass \key g \major g1 b }
    bassMusic = \relative c { \clef "bass_8" \key g \major g,1 b }

    \score {
      <<
        \new StaffGroup = "StaffGroup_woodwinds" <<
          \new Staff = "Staff_flute" {
            \set Staff.instrumentName = #"Flute"
            % shortInstrumentName, midiInstrument, etc.
            % may be set here as well
            \fluteMusic
          }
          \new Staff = "Staff_clarinet" {
            \set Staff.instrumentName =
            \markup { \concat { "Clarinet in B" \flat } }
            % Declare that written Middle C in the music
            %  to follow sounds a concert B flat, for
            %  output using sounded pitches such as MIDI.
            \transposition bes
            % Print music for a B-flat clarinet
            \transpose bes c' \clarinetMusic
          }
        >>
        \new StaffGroup = "StaffGroup_brass" <<
          \new Staff = "Staff_hornI" {
            \set Staff.instrumentName = #"Horn in F"
            \transposition f
            \transpose f c' \hornMusic
          }
          \new Staff = "Staff_trumpet" {
            \set Staff.instrumentName = #"Trumpet in  C"
            \trumpetMusic
          }
        >>
        \new RhythmicStaff = "RhythmicStaff_percussion" <<
          \set RhythmicStaff.instrumentName = #"Percussion"
          \percussionMusic
        >>
        \new PianoStaff <<
          \set PianoStaff.instrumentName = #"Piano"
          \new Staff { \pianoRHMusic }
          \new Staff { \pianoLHMusic }
        >>
        \new ChoirStaff = "ChoirStaff_choir" <<
          \new Staff = "Staff_soprano" {
            \set Staff.instrumentName = #"Soprano"
            \new Voice = "soprano"
            \sopranoMusic
          }
          \new Lyrics \lyricsto "soprano" { \sopranoLyrics }
          \new GrandStaff = "GrandStaff_altos"
          \with { \accepts Lyrics } <<
            \new Staff = "Staff_altoI"  {
              \set Staff.instrumentName = #"Alto I"
              \new Voice = "altoI"
              \altoIMusic
            }
            \new Lyrics \lyricsto "altoI" { \altoILyrics }
            \new Staff = "Staff_altoII" {
              \set Staff.instrumentName = #"Alto II"
              \new Voice = "altoII"
              \altoIIMusic
            }
            \new Lyrics \lyricsto "altoII" { \altoIILyrics }
          >>
          \new Staff = "Staff_tenor" {
            \set Staff.instrumentName = #"Tenor"
            \new Voice = "tenor"
            \tenorMusic
          }
          \new Lyrics \lyricsto "tenor" { \tenorLyrics }
        >>
        \new StaffGroup = "StaffGroup_strings" <<
          \new GrandStaff = "GrandStaff_violins" <<
            \new Staff = "Staff_violinI" {
              \set Staff.instrumentName = #"Violin I"
              \violinIMusic
            }
            \new Staff = "Staff_violinII" {
              \set Staff.instrumentName = #"Violin II"
              \violinIIMusic
            }
          >>
          \new Staff = "Staff_viola" {
            \set Staff.instrumentName = #"Viola"
            \violaMusic
          }
          \new Staff = "Staff_cello" {
            \set Staff.instrumentName = #"Cello"
            \celloMusic
          }
          \new Staff = "Staff_bass" {
            \set Staff.instrumentName = #"Double Bass"
            \bassMusic
          }
        >>
      >>
      \layout { }
    }

## Piano template (simple)

Here is a simple piano staff with some notes.

    upper = \relative c'' {
      \clef treble
      \key c \major
      \time 4/4

      a4 b c d
    }

    lower = \relative c {
      \clef bass
      \key c \major
      \time 4/4

      a2 c
    }

    \score {
      \new PianoStaff <<
        \set PianoStaff.instrumentName = #"Piano  "
        \new Staff = "upper" \upper
        \new Staff = "lower" \lower
      >>
      \layout { }
      \midi { }
    }

## Piano template with centered dynamics

Many piano scores have the dynamics centered between the two staves. The `Dynamics` context, if placed between staves, will automatically position dynamics correctly.

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

    upper = \relative c'' {
      \clef treble
      a4 b c d
    }

    lower = \relative c {
      \clef bass
      a2 c
    }

    dynamics = {
      s2\fff\> s4 s\!\pp
    }

    pedal = {
      s2\sustainOn s\sustainOff
    }

    \score {
      \new PianoStaff = "PianoStaff_pf" <<
        \new Staff = "Staff_pfUpper" << \global \upper >>
        \new Dynamics = "Dynamics_pf" \dynamics
        \new Staff = "Staff_pfLower" << \global \lower >>
        \new Dynamics = "pedal" \pedal
      >>
      \layout { }
    }

    \score {
      \new PianoStaff = "PianoStaff_pf" <<
        \new Staff = "Staff_pfUpper" << \global \upper \dynamics \pedal >>
        \new Staff = "Staff_pfLower" << \global \lower \dynamics \pedal >>
      >>
      \midi { }
    }

## Piano template with centered lyrics

Instead of having a full staff for the melody and lyrics, lyrics can be centered between the staves of a piano staff.

    upper = \relative c'' {
      \clef treble
      \key c \major
      \time 4/4

      a4 b c d
    }

    lower = \relative c {
      \clef bass
      \key c \major
      \time 4/4

      a2 c
    }

    text = \lyricmode {
      Aaa Bee Cee Dee
    }

    \score {
      \new GrandStaff <<
        \new Staff = upper { \new Voice = "singer" \upper }
        \new Lyrics \lyricsto "singer" \text
        \new Staff = lower { \lower }
      >>
      \layout {
        \context {
          \GrandStaff
          \accepts "Lyrics"
        }
        \context {
          \Lyrics
          \consists "Bar_engraver"
        }
      }
      \midi { }
    }

## Piano template with melody and lyrics

Here is a typical song format: one staff with the melody and lyrics, with piano accompaniment underneath.

    melody = \relative c'' {
      \clef treble
      \key c \major
      \time 4/4

      a b c d
    }

    text = \lyricmode {
      Aaa Bee Cee Dee
    }

    upper = \relative c'' {
      \clef treble
      \key c \major
      \time 4/4

      a4 b c d
    }

    lower = \relative c {
      \clef bass
      \key c \major
      \time 4/4

      a2 c
    }

    \score {
      <<
        \new Voice = "mel" { \autoBeamOff \melody }
        \new Lyrics \lyricsto mel \text
        \new PianoStaff <<
          \new Staff = "upper" \upper
          \new Staff = "lower" \lower
        >>
      >>
      \layout {
        \context { \Staff \RemoveEmptyStaves }
      }
      \midi { }
    }

## SATB Choir template - four staves

SATB choir template (four staves)

    global = {
      \key c \major
      \time 4/4
      \dynamicUp
    }
    sopranonotes = \relative c'' {
      c2 \p \< d c d \f
    }
    sopranowords = \lyricmode { do do do do }
    altonotes = \relative c'' {
      c2\p d c d
    }
    altowords = \lyricmode { re re re re }
    tenornotes = {
      \clef "G_8"
      c2\mp d c d
    }
    tenorwords = \lyricmode { mi mi mi mi }
    bassnotes = {
      \clef bass
      c2\mf d c d
    }
    basswords = \lyricmode { mi mi mi mi }

    \score {
      \new ChoirStaff <<
        \new Staff <<
          \new Voice = "soprano" <<
            \global
            \sopranonotes
          >>
          \lyricsto "soprano" \new Lyrics \sopranowords
        >>
        \new Staff <<
          \new Voice = "alto" <<
            \global
            \altonotes
          >>
          \lyricsto "alto" \new Lyrics \altowords
        >>
        \new Staff <<
          \new Voice = "tenor" <<
            \global
            \tenornotes
          >>
          \lyricsto "tenor" \new Lyrics \tenorwords
        >>
        \new Staff <<
          \new Voice = "bass" <<
            \global
            \bassnotes
          >>
          \lyricsto "bass" \new Lyrics \basswords
        >>
      >>
    }

## Score for diatonic accordion

A template to write a score for a diatonic accordion.

- There is a horizontal staff indicating if the accordion must be pushed (thick line) or pulled (thin line)

- There is a small rhythmic staff with lyrics that describes the bass buttons to press. The bar lines are made from gridlines

- The tabulator staff for diatonic accordions shows the geographic position of the buttons and not (as for every other instrument) the pitch of the notes; the keys on the melody-side of the accordion are placed in three columns and about 12 rows

In the tabulator staff notation the outermost column is described with notes between lines, the innermost column is described with notes between lines and a cross as accidental, and the middle column is described with notes on a line, whereby the row in the middle is represented on the middle line in the staff.

Some words to transpose piano notes to the diatonic accordion:

1. Every diatonic accordion is built for some keys only (for example, for the keys of C major and F major), so it is important to transpose a piano melody to match one of these keys. Transpose the source code, not only the output because this code is required later on to translate it once more to the tabulator staff. This can be done with the command `displayLilyMusic`.

2. You have to alternate the push- and pull-direction of the accordion regularly. If the player has a too long part to pull the accordion gets broken. On the other hand, some harmonies are only available in one direction. Considering this, decide which parts of the melody are the push-parts and which the pull-parts.

3. For each pull- or push-part translate the piano notes to the according tabulature representation.

This snippet comes with a useful optional macro for the jEdit text editor.

    verse = \lyricmode { Wie gross bist du! Wie gross bist du! }

    harmonies = \new ChordNames \chordmode {
      \germanChords
      \set chordChanges = ##t
      bes8 bes8 bes8
      es2 f
      bes1
    }

    NoStem = \override Stem #'transparent = ##t
    NoNoteHead = \override NoteHead #'transparent = ##t
    ZeroBeam = \override Beam  #'positions = #'(0 . 0)

    staffTabLine = \new Staff \with {
      \remove "Time_signature_engraver"
      \remove "Clef_engraver"
    } {
      \override Staff.StaffSymbol #'line-positions = #'(0)
      % Shows one horizontal line. The vertical line (simulating a bar-line) is simulated with a gridline
      \set Staff.midiInstrument = #"choir aahs"
      \key c \major
      \relative c''
      {
        % disable the following line to see the the noteheads while writing the song
        \NoNoteHead
        \override NoteHead #'no-ledgers = ##t

        % The beam between 8th-notes is used to draw the push-line
        %How to fast write the push-lines:
        %  1. write repeatedly 'c c c c c c c c |' for the whole length of the song
        %  2. uncomment the line \NoNoteHead
        %  3. compile
        %  4. Mark the positions on which push/pull changes.
        %     In the score-picture click on the position the push- or pull-part starts
        %           (on the noteHead, the cursor will change to a hand-icon).
        %     The cursor in the source code will jump just at this position.
        %   a) If a push-part starts there, replace the 'c' by an 'e['
        %   b) If a pull-part starts there, replace the 'c' by an 's'
        %  5. Switch into 'overwrite-mode' by pressing the 'ins' key.
        %  6. For the pull-parts overwrite the 'c' with 's'
        %  7. For every push-part replace the last 'c' with 'e]'
        %        8. Switch into 'insert-mode' again
        %  9. At last it should look lik e.g. (s s e[ c | c c c c c c c c | c c c c c c e] s s)
        % 10. re-enable the line \NoNoteHead
        \autoBeamOff
        \ZeroBeam
        s8 s s e[ c c c c c c e] | s s s s s
      }
    }

    %{
    %}

    % Accordion melody in tabulator score
    % 1. Place a copy of the piano melody below
    % 2. Separate piano melody into pull- and push-parts according to the staffTabLine you've already made
    % 3. For each line: Double the line. Remark the 1st one (Keeps unchanged as reference) and then change the second line using the transformation paper
    %    or the macros 'conv2diaton push.bsh' and 'conv2diaton pull.bsh'
    % Tips:
    % - In jEdit Search & Replace mark the Option 'Keep Dialog'

    AccordionTabTwoCBesDur = {
      % pull 1
      %<f' bes'>8 <f' a'>8 <d' bes'>8 |
      <g'' a''>8 <g'' b''>8 <e'' a''>8 |
      % push 2
      %<g' c''>4 <f' d''> <g' ees''> <f' a'> |
      <g'' a''>4 <d'' eisis''> <g'' bisis''> <d'' f''> |
      % pull 3
      % <f' bes'>2 r8 }
      <g'' a''>2 r8 }

    AccordionTab= { \dynamicUp
      % 1. Place a copy of the piano melody above
      % 2. Separate piano melody into pull- and push-parts according to the staffTabLine you've already made
      % 3. For each line: Double the line. Remark the 1st one (Keeps unchanged as reference) and then
      %    change the second line using the transformation paper
      % Tips:
      % - In jEdit Search & Replace mark the Option 'Keep Dialog'
      % -
      \AccordionTabTwoCBesDur
    }

    \layout {
      \context {
        \Score
        % The vertical line (simulating a bar-line) in
        % the staffBassRhytm is a gridline
        \consists "Grid_line_span_engraver"
      }
      \context {
        \Staff
        \consists "Grid_point_engraver"
        gridInterval = #(ly:make-moment 4 4) % 4/4 - tact. How many beats per bar
        % The following line has to be adjusted O-F-T-E-N.
        \override GridPoint #'Y-extent = #'(-2 . -21)
      }
      \context {
        \ChoirStaff
        \remove "System_start_delimiter_engraver"
      }
    }

    staffVoice = \new Staff = astaffvoice  {
      \time 4/4
      \set Staff.instrumentName = "Voice"
      \set Staff.midiInstrument = "voice oohs"
      \key bes \major
      \partial 8*3
      \clef treble
      {
        \context Voice = "melodyVoi"
        { <f' bes'>8 <f' a'>8 <d' bes'>8 | <g' c''>4 <f' d''> <g' es''> <f' a'> | <f' bes'>2 r8 }
        \bar "|."
      }
    }

    staffAccordionMel =
    \new Staff  \with { \remove "Clef_engraver" } {
      #(set-accidental-style 'forget) %Set the accidentals (Vorzeichen) for each note,
      %do not remember them for the rest of the measure.
      \time 4/4
      \set Staff.instrumentName="Accordion"
      \set Staff.midiInstrument="voice oohs"
      \key c \major
      \clef treble
      { \AccordionTab \bar "|." }
    }

    AltOn =
    #(define-music-function (parser location mag) (number?)
      #{ \override Stem #'length = #$(* 7.0 mag)
          \override NoteHead #'font-size =
    #$(inexact->exact (* (/ 6.0 (log 2.0)) (log mag))) #})

    AltOff = {
      \revert Stem #'length
      \revert NoteHead #'font-size
    }

    BassRhytm = {s4 s8 | c2 c2 | c2 s8 }
    LyricBassRhythmI=  \lyricmode { c b | c }

    staffBassRhytm =
    \new Staff = staffbass \with { \remove "Clef_engraver" } {
      % This is not a RhythmicStaff  because it must be possible to append lyrics.

      \override Score.GridLine #'extra-offset = #'( 13.0 . 0.0 ) % x.y
      \override Staff.StaffSymbol #'line-positions = #'( 0 )
      % Shows one horizontal line. The vertical line (simulating a bar-line) is simulated by a grid
      % Search for 'grid' in this page to find all related functions
      \time 4/4
      {
        \context Voice = "VoiceBassRhytm"
        \stemDown \AltOn #0.6
        \relative c''
        {
          \BassRhytm
        }
        \AltOff
        \bar "|."
      }
    }

    \score {
      \new ChoirStaff <<
        \harmonies
        \staffVoice
        \context Lyrics = "lmelodyVoi"
          \with { alignBelowContext = astaffvoice }
          \lyricsto melodyVoi \verse
        \staffAccordionMel
        \staffTabLine
        \staffBassRhytm
        \context Lyrics = "lBassRhytmAboveI"
          \with { alignAboveContext = staffbass }
          \lyricsto VoiceBassRhytm \LyricBassRhythmI
      >>
    }
    %}

## Single staff template with notes lyrics and chords

This template allows the preparation of a song with melody, words, and chords.

    melody = \relative c' {
      \clef treble
      \key c \major
      \time 4/4

      a4 b c d
    }

    text = \lyricmode {
      Aaa Bee Cee Dee
    }

    harmonies = \chordmode {
      a2 c
    }

    \score {
      <<
        \new ChordNames {
          \set chordChanges = ##t
          \harmonies
        }
        \new Voice = "one" { \autoBeamOff \melody }
        \new Lyrics \lyricsto "one" \text
      >>
      \layout { }
      \midi { }
    }

## Single staff template with notes lyrics chords and frets

Here is a simple lead sheet template with melody, lyrics, chords and fret diagrams.

    verseI = \lyricmode {
      \set stanza = #"1."
      This is the first verse
    }

    verseII = \lyricmode {
      \set stanza = #"2."
      This is the second verse.
    }

    theChords = \chordmode {
      % insert chords for chordnames and fretboards here
      c2 g4 c
    }

    staffMelody = \relative c' {
       \key c \major
       \clef treble
       % Type notes for melody here
       c4 d8 e f4 g
       \bar "|."
    }

    \score {
      <<
        \context ChordNames { \theChords }
        \context FretBoards { \theChords }
        \new Staff {
          \context Voice = "voiceMelody" { \staffMelody }
        }
        \new Lyrics = "lyricsI" {
          \lyricsto "voiceMelody" \verseI
        }
        \new Lyrics = "lyricsII" {
          \lyricsto "voiceMelody" \verseII
        }
      >>
      \layout { }
      \midi { }
    }

## Single staff template with notes and chords

Want to prepare a lead sheet with a melody and chords? Look no further!

    melody = \relative c' {
      \clef treble
      \key c \major
      \time 4/4

      f4 e8[ c] d4 g
      a2 ~ a
    }

    harmonies = \chordmode {
      c4:m f:min7 g:maj c:aug
      d2:dim b:sus
    }

    \score {
      <<
        \new ChordNames {
          \set chordChanges = ##t
          \harmonies
        }
        \new Staff \melody
      >>
      \layout{ }
      \midi { }
    }

## Single staff template with notes and lyrics

This small template demonstrates a simple melody with lyrics. Cut and paste, add notes, then words for the lyrics. This example turns off automatic beaming, which is common for vocal parts. To use automatic beaming, change or comment out the relevant line.

    melody = \relative c' {
      \clef treble
      \key c \major
      \time 4/4

      a4 b c d
    }

    text = \lyricmode {
      Aaa Bee Cee Dee
    }

    \score{
      <<
        \new Voice = "one" {
          \autoBeamOff
          \melody
        }
        \new Lyrics \lyricsto "one" \text
      >>
      \layout { }
      \midi { }
    }

## Single staff template with only notes

This very simple template gives you a staff with notes, suitable for a solo instrument or a melodic fragment. Cut and paste this into a file, add notes, and you’re finished!

    melody = \relative c' {
      \clef treble
      \key c \major
      \time 4/4

      a4 b c d
    }

    \score {
      \new Staff \melody
      \layout { }
      \midi { }
    }

## String quartet template (simple)

This template demonstrates a simple string quartet. It also uses a `\global` section for time and key signatures

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

    violinOne = \new Voice \relative c'' {
      \set Staff.instrumentName = #"Violin 1 "

      c2 d
      e1

      \bar "|."
    }

    violinTwo = \new Voice \relative c'' {
      \set Staff.instrumentName = #"Violin 2 "

      g2 f
      e1

      \bar "|."
    }

    viola = \new Voice \relative c' {
      \set Staff.instrumentName = #"Viola "
      \clef alto

      e2 d
      c1

      \bar "|."
    }

    cello = \new Voice \relative c' {
      \set Staff.instrumentName = #"Cello "
      \clef bass

      c2 b
      a1

      \bar "|."
    }

    \score {
      \new StaffGroup <<
        \new Staff << \global \violinOne >>
        \new Staff << \global \violinTwo >>
        \new Staff << \global \viola >>
        \new Staff << \global \cello >>
      >>
      \layout { }
      \midi { }
    }

## String quartet template with separate parts

The “String quartet template” snippet produces a nice string quartet, but what if you needed to print parts? This new template demonstrates how to use the `\tag` feature to easily split a piece into individual parts.

You need to split this template into separate files; the filenames are contained in comments at the beginning of each file. `piece.ly` contains all the music definitions. The other files – `score.ly`, `vn1.ly`, `vn2.ly`, `vla.ly`, and `vlc.ly` – produce the appropriate part.

Do not forget to remove specified comments when using separate files!

    %%%%% piece.ly
    %%%%% (This is the global definitions file)

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

    Violinone = \new Voice { \relative c''{
      \set Staff.instrumentName = #"Violin 1 "

      c2 d e1

    \bar "|." }}   %*********************************
    Violintwo = \new Voice { \relative c''{
      \set Staff.instrumentName = #"Violin 2 "

      g2 f e1

    \bar "|." }}   %*********************************
    Viola = \new Voice { \relative c' {
      \set Staff.instrumentName = #"Viola "
      \clef alto

      e2 d c1

    \bar "|." }}   %*********************************
    Cello = \new Voice { \relative c' {
      \set Staff.instrumentName = #"Cello "
      \clef bass

      c2 b a1

    \bar "|."}}   %**********************************

    music = {
      <<
        \tag #'score \tag #'vn1 \new Staff { << \global \Violinone >> }
        \tag #'score \tag #'vn2 \new Staff { << \global \Violintwo>> }
        \tag #'score \tag #'vla \new Staff { << \global \Viola>> }
        \tag #'score \tag #'vlc \new Staff { << \global \Cello>> }
      >>
    }

    %%% These are the other files you need to save on your computer

    %%%%% score.ly
    %%%%% (This is the main file)

    %\include "piece.ly"             %%% uncomment this line when using a separate file
    #(set-global-staff-size 14)
    \score {
      \new StaffGroup \keepWithTag #'score \music
      \layout { }
      \midi { }
    }

    %{ Uncomment this block when using separate files

    %%%%% vn1.ly
    %%%%% (This is the Violin 1 part file)

    \include "piece.ly"
    \score {
      \keepWithTag #'vn1 \music
      \layout { }
    }

    %%%%% vn2.ly
    %%%%% (This is the Violin 2 part file)

    \include "piece.ly"
    \score {
      \keepWithTag #'vn2 \music
      \layout { }
    }

    %%%%% vla.ly
    %%%%% (This is the Viola part file)

    \include "piece.ly"
    \score {
      \keepWithTag #'vla \music
      \layout { }
    }

    %%%%% vlc.ly
    %%%%% (This is the Cello part file)

    \include "piece.ly"
    \score {
      \keepWithTag #'vlc \music
      \layout { }
    }

    %}

## Vocal ensemble template with 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.

    \paper {
      top-system-spacing #'basic-distance = #10
      score-system-spacing #'basic-distance = #20
      system-system-spacing #'basic-distance = #20
      last-bottom-spacing #'basic-distance = #10
    }

    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" \with {
            % This is needed for lyrics above a staff
            \override VerticalAxisGroup #'staff-affinity = #DOWN
          }
          \new Staff = "women" <<
            \new Voice = "sopranos" { \voiceOne << \global \sopMusic >> }
            \new Voice = "altos" { \voiceTwo << \global \altoMusic >> }
          >>
          \new Lyrics = "altos"
          \new Lyrics = "tenors" \with {
            % This is needed for lyrics above a staff
            \override VerticalAxisGroup #'staff-affinity = #DOWN
          }

          \new Staff = "men" <<
            \clef bass
            \new Voice = "tenors" { \voiceOne << \global \tenorMusic >> }
            \new Voice = "basses" { \voiceTwo << \global \bassMusic >> }
          >>
          \new Lyrics = "basses"
          \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 >>
          >>
        >>
      >>
    }

## Vocal ensemble template with lyrics aligned below and above the staves

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
      >>
    }

## Vocal ensemble template with verse and refrain

This template creates a score which starts with a solo verse and continues into a refrain for two voices. It also demonstrates the use of spacer rests within the `\global` variable to define meter changes (and other elements common to all parts) throughout the entire score.

    global = {
      \key g \major

      % verse
      \time 3/4
      s2.*2
      \break

      % refrain
      \time 2/4
      s2*2
      \bar "|."
    }

    SoloNotes = \relative g' {
      \clef "treble"

      % verse
      g4 g g |
      b4 b b |

      % refrain
      R2*2 |
    }

    SoloLyrics = \lyricmode {
      One two three |
      four five six |
    }

    SopranoNotes = \relative c'' {
      \clef "treble"

      % verse
      R2.*2 |

      % refrain
      c4 c |
      g4 g |
    }

    SopranoLyrics = \lyricmode {
      la la |
      la la |
    }

    BassNotes = \relative c {
      \clef "bass"

      % verse
      R2.*2 |

      % refrain
      c4 e |
      d4 d |
    }

    BassLyrics = \lyricmode {
      dum dum |
      dum dum |
    }

    \score {
      <<
        \new Voice = "SoloVoice" << \global \SoloNotes >>
        \new Lyrics \lyricsto "SoloVoice" \SoloLyrics

        \new ChoirStaff <<
          \new Voice = "SopranoVoice" << \global \SopranoNotes >>
          \new Lyrics \lyricsto "SopranoVoice" \SopranoLyrics

          \new Voice = "BassVoice" << \global \BassNotes >>
          \new Lyrics \lyricsto "BassVoice" \BassLyrics
        >>
      >>
      \layout {
        ragged-right = ##t
        \context { \Staff
          % these lines prevent empty staves from being printed
          \RemoveEmptyStaves
          \override VerticalAxisGroup #'remove-first = ##t
        }
      }
    }

## Vocal ensemble template

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.

    \paper {
      top-system-spacing #'basic-distance = #10
      score-system-spacing #'basic-distance = #20
      system-system-spacing #'basic-distance = #20
      last-bottom-spacing #'basic-distance = #10
    }

    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" \with {
          % this is needed for lyrics above a staff
          \override VerticalAxisGroup #'staff-affinity = #DOWN
        }
        \new Staff = "women" <<
          \new Voice = "sopranos" {
            \voiceOne
            << \global \sopMusic >>
          }
          \new Voice = "altos" {
            \voiceTwo
            << \global \altoMusic >>
          }
        >>
        \new Lyrics = "altos"
        \new Lyrics = "tenors" \with {
          % this is needed for lyrics above a staff
          \override VerticalAxisGroup #'staff-affinity = #DOWN
        }
        \new Staff = "men" <<
          \clef bass
          \new Voice = "tenors" {
            \voiceOne
            << \global \tenorMusic >>
          }
          \new Voice = "basses" {
            \voiceTwo << \global \bassMusic >>
          }
        >>
        \new Lyrics = "basses"
        \context Lyrics = "sopranos" \lyricsto "sopranos" \sopWords
        \context Lyrics = "altos" \lyricsto "altos" \altoWords
        \context Lyrics = "tenors" \lyricsto "tenors" \tenorWords
        \context Lyrics = "basses" \lyricsto "basses" \bassWords
      >>
    }

#### LilyPond — Snippets