--- /dev/null
+\version "2.14.0"
+
+\header {
+ lsrtags = "vocal-music, keyboards, template"
+
+ texidoc = "
+This template adds an automatic piano reduction to the standard SATB
+vocal score demonstrated in @qq{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}), then the changes will also apply to the piano
+reduction.
+"
+ doctitle = "Vocal ensemble template with automatic 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 >>
+ >>
+ >>
+ >>
+}