GNU LilyPond 学習マニュアル: A.5.2 SATB ボーカル譜と自動ピアノ譜

### A.5.2 SATB ボーカル譜と自動ピアノ譜

このテンプレートは、“合唱テンプレート” で示した標準の SATB ボーカル譜に自動ピアノ譜を付け加えています。これは LilyPond の強みの 1 つを示しています - 音楽定義を何回も使用することができます。ボーカルの音符 (例えば、`tenorMusic` の音符) に変更が加えられた場合、その変更はピアノ譜にも適用されます。

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

#### LilyPond — 学習マニュアル v2.22.2 (安定版).