ポリフォニーは << { a b c } \\ { d e f } >>
のように書くのが普通だが、タイやスラーは同じ声部の間でしかつなぐことができないので、注意が必要。たとえば、1小節目が単声部で2小節目が2声の時、普通に次のようにするとタイがつながらない。
\relative c'' { r8 g-. c-. d-. es2-> ~ << { es8-. d16( es d8-.) c8-. } \\ { fis,8-. r8 r4 } >> r2 | }
理由は、<< music1 \\ music2 >>
という構文を使ったとき、music1, music2
がそれぞれ独立した Voice
と見なされ、それまでの Voice
とは別扱いになるため。タイ・スラーは Voice
ごとに処理されるので、別の Voice
にまたがったタイはかけられない。
上のサンプルは、次のようにすればよい。
\relative c'' { r8 g-. c-. d-. es2-> ~ << { \voiceOne es8-. d16( es d8-.) c8-. } \new Voice { \voiceTwo fis,8-. r8 r4 } >> \oneVoice r2 | }
ポイントは以下の3点。
<< music1 \\ music2 >>
の代わりに << music1 \new Voice music2 >>
と書く。後者の書き方では、music1
は新しい Voice
ではなく、その前と同じ Voice
と見なされるため、タイがつながる。\voiceOne, \voiceTwo
は符尾やスタッカートなどを多声部に適した方向・位置に調整するコマンド。\voiceOne
は符尾が上向きに、\voiceTwo
は下向きになる。\oneVoice
は、\voiceOne
の効果を打ち消して元に戻す。こんな方法もある。
\relative c'' { r8 g-. c-. d-. << { \oneVoice es2-> ~ } \\ { s2 } >> << { es8-. d16( es d8-.) c8-. } \\ { fis,8-. r8 r4 } >> r2 }
これは、タイをつなげる直前の音を2声部扱いにしたもの。第2声部は s2
なので何も書かれない。第1声部は自動的に \voiceOne
を指定したことになるのだが、わざと \oneVoice
を指定して符尾を単声部と同じ扱いにする。
もちろん、タイをつなげることだけが目的ならこれでもいいのだが、音楽の意味が変わってしまう。
\relative c'' { r8 g-. c-. d-. es2-> ~ << es8-. fis,8-. >> d'16( es d8-.) c8-. r2 | }