歌詞を共有する多声

2 つのボイスが異なるリズムを持ち、同じ歌詞を共有する場合、片方のボイスに歌詞を合わせるともう片方には合いません。下の例では、歌詞が上のボイスにのみ合わせられているため、2 つ目の延長線が短すぎます:

soprano = \relative { b'8( c d c) d2 }
alto = \relative { g'2 b8( a g a) }
words = \lyricmode { la __ la __ }

\new Staff <<
  \new Voice = "sopranoVoice" { \voiceOne \soprano }
  \new Voice { \voiceTwo \alto }
  \new Lyrics \lyricsto "sopranoVoice" \words
>>

[image of music]

望んでいた結果を得るには、2 つのボイスを適切に合わせた新たな NullVoice コンテキストを作り、歌詞をそれに合わせます。NullVoice コンテキストの音符は出力には現れませんが、歌詞を正しく合わせるのに使うことができます:

soprano = \relative { b'8( c d c) d2 }
alto = \relative { g'2 b8( a g a) }
aligner = \relative { b'8( c d c) b( a g a) }
words = \lyricmode { la __ la __ }

\new Staff <<
  \new Voice { \voiceOne \soprano }
  \new Voice { \voiceTwo \alto }
  \new NullVoice = "aligner" \aligner
  \new Lyrics \lyricsto "aligner" \words
>>

[image of music]

この方法は、単体では歌詞をサポートしていない \partCombine 関数にも用いることができます:

soprano = \relative { b'8( c d c) d2 }
alto = \relative { g'2 b8( a g a) }
aligner = \relative { b'8( c d c) b( a g a) }
words = \lyricmode { la __ la __ }

\new Staff <<
  \new Voice \partCombine \soprano \alto
  \new NullVoice = "aligner" \aligner
  \new Lyrics \lyricsto "aligner" \words
>>

[image of music]

既知の問題と警告

\addlyrics 関数は Voice にのみ動作するため、NullVoice と一緒に用いることはできません。

\partCombine 関数については、自動パート結合に説明があります。

最後に、この方法はボイスが異なる譜にある場合にも用いることができ、2 つよりも多くのボイスにも適用することができます:

soprano = \relative { b'8( c d c) d2 }
altoOne = \relative { g'2 b8( a b4) }
altoTwo = \relative { d'2 g4( fis8 g) }
aligner = \relative { b'8( c d c) d( d d d) }
words = \lyricmode { la __ la __ }

\new ChoirStaff \with {\accepts NullVoice } <<
  \new Staff \soprano
  \new NullVoice = "aligner" \aligner
  \new Lyrics \lyricsto "aligner" \words
  \new Staff \partCombine \altoOne \altoTwo
>>

[image of music]


LilyPond 記譜法リファレンス v2.25.15 (開発版).