GNU LilyPond 学習マニュアル: 3.2.2 ボイスを明示的にインスタンス化する

### 3.2.2 ボイスを明示的にインスタンス化する

多声部音楽を作成するためにボイス コンテキストを手動で `<< >>` ブロックの中に作成することもできます。符幹、スラーなどの向きを示すために `\voiceOne` ... `\voiceFour` を使用します。この手法は各ボイスを別々にして、より記述的な名前を与えることを可能にするため、長い楽譜ではわかりやすいものになります。

本質的には、前のセクションで使用した構造 `<< \\ >>`:

>     \new Staff {
>       \relative c' {
>         << { e4 f g a } \\ { c,4 d e f } >>
>       }
>     }

は以下と等価です:

>     \new Staff <<
>       \new Voice = "1" { \voiceOne \relative c' { e4 f g a } }
>       \new Voice = "2" { \voiceTwo \relative c' { c4 d e f } }
>     >>

上記の両方ともが以下の楽譜を生成します:

`\voiceXXX` コマンドは符幹、スラー、タイ、アーティキュレーション、テキストの注釈、付点音符の付点、運指記号の向きをセットします。`\voiceOne` と `\voiceThree` はこれらのオブジェクトを上向きにし、一方の `\voiceTwo` と `\voiceFour` は下向きにします。さらに、符頭の衝突を避ける必要がある場合、これらのコマンドは各ボイスに対して水平方向のシフトを発生させます。コマンド `\oneVoice` は設定を単一のボイスの場合の通常値に戻します。

いくつかの簡単な例で、`\oneVoice`, `\voiceOne`, `\voiceTwo` がマークアップ、タイ、スラー、強弱記号に与える影響を見ていきましょう:

>     \relative c' {
>       % Default behavior or behavior after \oneVoice
>       c4 d8~ d e4( f | g4 a) b-> c |
>     }

>     \relative c' {
>       \voiceOne
>       c4 d8~ d e4( f | g4 a) b-> c |
>       \oneVoice
>       c,4 d8~ d e4( f | g4 a) b-> c |
>     }

>     \relative c' {
>       \voiceTwo
>       c4 d8~ d e4( f | g4 a) b-> c |
>       \oneVoice
>       c,4 d8~ d e4( f | g4 a) b-> c |
>     }

今度は、前のセクションの例を使って同じ多声部音楽のパッセージを 3 つの異なる方法で表記する例を見ていきます。それぞれ異なる状況で利点があります。

1 つはメイン ボイスに属する `<< >>` の内部に直接表記を記述する方法です (しかしながら、音符は `<< \\ >>` 構造の中に置かれてはいません)。これはメイン ボイスの途中で追加のボイスが現れる場合に有用です。ここでは例にさらに調整を加えます。赤のダイアモンド形の音符はメイン メロディが単一のボイス コンテキストになっていて、その上にフレージング スラーを描くことができるということを示しています。

>     \new Staff \relative c' {
>       \voiceOneStyle
>       % The following notes are monophonic
>       c16^( d e f
>       % Start simultaneous section of three voices
>       <<
>         % Continue the main voice in parallel
>         { g4 f e | d2 e) | }
>         % Initiate second voice
>         \new Voice {
>           % Set stems, etc., down
>           \voiceTwo
>           r8 e4 d c8~ | c8 b16 a b8 g~ g2 |
>         }
>         % Initiate third voice
>         \new Voice {
>           % Set stems, etc, up
>           \voiceThree
>           s2. | s4 b c2 |
>         }
>       >>
>     }

>     \new Staff \relative c' {
>       c16^( d e f
>       <<
>         { g4 f e | d2 e) | }
>         \new Voice {
>           \voiceTwo
>           r8 e4 d c8~ |
>           <<
>             { c8 b16 a b8 g~ g2 | }
>             \new Voice {
>               \voiceThree
>               s4 b c2 |
>             }
>           >>
>         }
>       >>
>     }

新しいボイスを一時的にネストさせる手法は音楽のほんの一部だけが多声である場合に有用です。しかしながら、楽譜全体が多声である場合、一貫して複数のボイスを使用した方がわかりやすくなります。ボイスが無音の場所を飛ばすには以下のように空白音符を使用します:

>     \new Staff \relative c' <<
>       % Initiate first voice
>       \new Voice {
>         \voiceOne
>         c16^( d e f g4 f e | d2 e) |
>       }
>       % Initiate second voice
>       \new Voice {
>         % Set stems, etc, down
>         \voiceTwo
>         s4 r8 e4 d c8~ | c8 b16 a b8 g~ g2 |
>       }
>       % Initiate third voice
>       \new Voice {
>         % Set stems, etc, up
>         \voiceThree
>         s1 | s4 b c2 |
>       }
>     >>

#### 音符列

和音の中で小さな間隔で置かれる音符、あるいは異なるボイスで同時に発生する音符は、符頭が重なるのを避けるために 2 列、時にはそれ以上の列に割り振られます。これらの列は音符列と呼ばれます。それぞれのボイスに対して別々の列が存在し、符頭の衝突が起こる場合はボイスごとのシフトが適用されます。これは上の例でも見ることができます。2 小節目でボイス 2 の C はボイス 1 の D との関係で右にシフトされていて、最後の和音でボイス 3 の C も他の音符との関係で右にシフトされています。

`\shiftOn`, `\shiftOnn`, `\shiftOnnn`, それに `\shiftOff` コマンドは、衝突が起こる場合に音符や和音をシフトさせる度合いを指定します。デフォルトでは、外側のボイス (通常はボイス 1 と 2) には `\shiftOff` が指定されていて、内側のボイス (ボイス 3 と 4) には `\shiftOn` が指定されています。シフトが適用される場合、ボイス 1 と 3 は右にシフトされ、ボイス 2 と 4は左にシフトされます。

`\shiftOnn` と `\shiftOnnn` はさらなるシフト レベルを定義するものであり、複雑な状況での衝突を解決するために一時的に指定されるかもしれません – 実際の音楽からの例 を参照してください。

ある音符列は上向きの符幹を持つボイスからの音符 (あるいは和音) を 1 つだけ、下向きの符幹を持つボイスからの音符 (あるいは和音) を 1 つだけ保持することができます。同じ向きの符幹を持つ 2 つのボイスからの音符が同じ位置に置かれ、両方のボイスにシフトが指定されていない、あるいは同じシフトが指定されている場合、エラー メッセージ “Too many clashing note columns” (音符が多すぎて音符列で衝突が起こっています) が生成されます。

#### 参照

記譜法リファレンス: 複数のボイス

他の言語: English, česky, deutsch, español, français, magyar, italiano, nederlands

#### LilyPond — 学習マニュアル