Jump to content

Vocal ensemble template with automatic piano reduction: Difference between revisions

From LilyPond wiki
m Replace version="2.24.0" with version="2.24" now that the LilyWiki extension supports auto-selecting the latest release in a stable series
mNo edit summary
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
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, <code>tenorMusic</code>), then the changes will also apply to the piano reduction.
This template adds an automatic piano reduction to the standard SATB vocal score demonstrated in snippet [[Vocal ensemble template]]. It 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, <code>tenorMusic</code>), then the changes also apply to the piano reduction.


<lilypond version="2.24">
<lilypond version="2.24">
Line 54: Line 54:
       >>
       >>
       \new Lyrics = "altos"
       \new Lyrics = "altos"
       \new Lyrics = "tenors" \with {
       \new Lyrics = "tenors" \with {
         % This is needed for lyrics above a staff
         % This is needed for lyrics above a staff
         \override VerticalAxisGroup.staff-affinity = #DOWN
         \override VerticalAxisGroup.staff-affinity = #DOWN
       }
       }
       \new Staff = "men" <<
       \new Staff = "men" <<
         \clef bass
         \clef bass
Line 65: Line 65:
       >>
       >>
       \new Lyrics = "basses"
       \new Lyrics = "basses"
       \context Lyrics = "sopranos" \lyricsto "sopranos" \sopWords
       \context Lyrics = "sopranos" \lyricsto "sopranos" \sopWords
       \context Lyrics = "altos" \lyricsto "altos" \altoWords
       \context Lyrics = "altos" \lyricsto "altos" \altoWords
Line 70: Line 71:
       \context Lyrics = "basses" \lyricsto "basses" \bassWords
       \context Lyrics = "basses" \lyricsto "basses" \bassWords
     >>
     >>
     \new PianoStaff <<
     \new PianoStaff <<
       \new Staff <<
       \new Staff <<
Line 89: Line 91:
</lilypond>
</lilypond>


[[Category:Automatic notation]]
[[Category:Keyboards]]
[[Category:Template]]
[[Category:Template]]
[[Category:Vocal music]]
[[Category:Vocal music]]
[[Category:Keyboards]]
[[Category:Automatic notation]]
[[Category:Included in the official documentation]]
[[Category:Included in the official documentation]]
[[Category:Snippet]]

Latest revision as of 06:26, 13 December 2025

This template adds an automatic piano reduction to the standard SATB vocal score demonstrated in snippet Vocal ensemble template. It 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 also apply to the piano reduction.

\version "2.24"

\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''4 c c8[( b)] c4
}
sopWords = \lyricmode {
  hi hi hi hi
}

altoMusic = \relative {
  e'4 f d e
}
altoWords =\lyricmode {
  ha ha ha ha
}

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

bassMusic = \relative {
  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 >>
      >>
    >>
  >>
}