GNU LilyPond 学習マニュアル: 3.2.1 私はボイスを聴いている

### 3.2.1 私はボイスを聴いている

LilyPond の楽譜の中で最も低レベルで、最も基礎的であり、最も内部にあるレイヤは ‘ボイス コンテキスト’ または縮めて単に ‘ボイス’ と呼ばれます。ボイスはときどき他の記譜法パッケージの中で ‘レイヤ’ と呼ばれます。

実際、ボイス レイヤまたはコンテキストは音楽を保持することができる唯一のものです。ボイス コンテキストが明示的に宣言されていない場合、この章の始めで見てきたようにボイス コンテキストが 1 つ自動的に生成されます。オーボエなどといった楽器は同時に 1 つの音符だけを演奏できます。そのような楽器のために書かれた音楽は単声であり、ボイスを 1 つだけを必要とします。ピアノのように同時に複数の音符を演奏することができる楽器はしばしば、それらが演奏することのできる同時進行の異なる音符やリズムをエンコードするために、複数のボイスを必要とします。

もちろん、単一のボイスは和音の中で多くの音符を保持することができます。それでは、複数のボイスが実際に必要とされるのはどんな場合なのでしょうか？まずは、4 つの和音を持つ以下の例を見てください:

>     \key g \major
>     <d g>4 <d fis> <d a'> <d g>

この例は単一の山括弧からなる和音記号 `< ... >` を使って表記することができ、必要とされるボイスは 1 つだけです。しかしながら、F シャープが A に移行する際に、F シャープは実際には 8 分音符であり、そのあとに 8 分音符の G が続くとしたらどうでしょうか？そのような場合、同時に開始されるが演奏時間が異なる 2 つの音符を持つことになります: 4 分音符の D と 8 分音符の F シャープです。これらの音符をどのように記述すればよいのでしょうか？これらの音符は和音として記述することはできません。なぜなら、和音の中の音符はすべて同じ演奏時間でなければならないからです。そして、それらの音符は同時に開始しなければならないので、2 つのシーケンシャルな (連続した) 音符として記述することもできません。この場合は 2 つのボイスが必要となります。

上記のことが LilyPond 入力構文でどのように達成されるのかを見てみましょう。

1 つの譜に複数のボイスがある楽譜を入力する最も簡単な方法は、各ボイスをシーケンスに (続けて) 入力し (各ボイスを `{...}` の中に入れます)、それらのボイスを `<<...>>` を使って同時進行するよう組み合わせます。さらに、各断片は、それぞれが別の断片であることを示すために、ダブル バックスラッシュ `\\` で区切られなければなりません。ダブル バックスラッシュが無ければ、すべての音符は単一のボイスの中に挿入され、通常はエラーとなります。このテクニックは、大部分が単声であり、時々短い部分で多声になる楽曲に特に適しています。

以下では、上記の例の和音を 2 つのボイスに分け、経過音とスラーを付け加えています:

>     \key g \major
>     %    Voice "1"               Voice "2"
>     << { g4 fis8( g) a4 g } \\ { d4 d d d }  >>

この例では 2 番目のボイスの符幹が下向きになっていることに気付いてください。

今度はもう 1 つ簡単な例を挙げてみます:

>     \key d \minor
>     %    Voice "1"             Voice "2"
>     << { r4 g g4. a8 }    \\ { d,2 d4 g }       >> |
>     << { bes4 bes c bes } \\ { g4 g g8( a) g4 } >> |
>     << { a2. r4 }         \\ { fis2. s4 }       >> |

各小節で別々に `<< \\ >>` 構造を使用する必要はありません。各小節に音符が少ししかないような音楽の場合、このレイアウトはコードの可読性を良くするのに役立ちます。しかしながら、各小節に多くの音符がある場合、以下のようにボイス毎に分離した方が良いかもしれません:

>     \key d \minor
>     << {
>       % Voice "1"
>       r4 g g4. a8 |
>       bes4 bes c bes |
>       a2. r4 |
>     } \\ {
>       % Voice "2"
>       d,2 d4 g |
>       g4 g g8( a) g4 |
>       fis2. s4 |
>     } >>

この例にあるボイスは 2 つだけです。しかしながら、これと同じ構成にもっと多くのバック スラッシュを付け加えることによって、3 つかそれ以上のボイスを持たせることが可能です。

ボイス コンテキストは `"1"`, `"2"` などの名前を持ちます。各コンテキストの中では、スラー、符幹、タイ、強弱記号などの垂直方向の向きは適切にセットされます。

>     \new Staff \relative c' {
>       % Main voice
>       c16 d e f
>       %    Voice "1"     Voice "2"                 Voice "3"
>       << { g4 f e } \\ { r8 e4 d c8 ~ } >> |
>       << { d2 e2 }  \\ { c8 b16 a b8 g ~ g2 } \\ { s4 b4 c2 } >> |
>     }

これらのボイスはすべてメインのボイスからは分かれています。メインのボイスの音符は`<< .. >>` 構造の外にあるからです。この `<< .. >>` 構造を 同時進行構造 と呼ぶことにしましょう。スラーとタイは同じボイス内にある音符だけをつなぎます。そのため、スラーとタイは同時進行構造を出たり入ったりすることはありません。反対に、同じ譜上にある個々の同時進行構造で、平行の位置にあるボイスは同じボイスになります。さらに、その他のボイス関連プロパティは同時進行構造をまたがって持ち越されます。ここで、上記と同じ例で各ボイスに対して異なる色と符頭を割り当ててみます。あるボイスでの変更は他のボイスに影響を与えませんが、その後に続く同じボイス (訳者: 平行位置にあるボイス) でその変更が維持されることに注意してください。さらに、タイでつながれた音符は、同じボイスとなる 2 つの同時進行構造にまたがって分かれるかもしれないということに注意してください。

>     \new Staff \relative c' {
>       % Main voice
>       c16 d e f
>       <<  % Bar 1
>         {
>           \voiceOneStyle
>           g4 f e
>         }
>       \\
>         {
>           \voiceTwoStyle
>           r8 e4 d c8~
>         }
>       >> |
>       <<  % Bar 2
>          % Voice 1 continues
>         { d2 e }
>       \\
>          % Voice 2 continues
>         { c8 b16 a b8 g~ g2 }
>       \\
>         {
>           \voiceThreeStyle
>           s4 b c2
>         }
>       >> |
>     }

コマンド `\voiceXXXStyle` は主にこのマニュアルのような教育目的のドキュメントで使用することを意図したものです。このコマンドは、各ボイスが容易に見分けられるように、符頭、符幹、連桁の色、それに符頭のスタイルを変更します。ボイス 1 は赤でダイアモンドの符頭を持つようにセットされ、ボイス 2 は青で三角形の符頭を、ボイス 3 は緑で×付きの円を、ボイス 4 (ここでは使用されていません) はマゼンダの×の符頭を持つようにセットされます。`\voiceNeutralStyle` (これもここでは使用されていません) は符頭のスタイルをデフォルトに戻します。後ほど、ユーザがこのようなコマンドを作成するための方法を見ていきます。オブジェクトの可視性と色 と 調整のために変数を使用する を参照してください。

多声部は `\relative { }` ブロック内の音符の相対関係を変えません。各音符は直前の音符あるいは直前の和音の最初の音符との相対関係で計算されます。そのため、以下の例では

>     \relative c' { noteA << < noteB noteC > \\ noteD >> noteE }

`noteB` は `noteA` との相対関係で決まり
`noteC` は `noteA` ではなく `noteB` との相対関係で決まり
`noteD` は `noteA` や `noteC` ではなく `noteC` との相対関係で決まり
`noteE` は `noteA` ではなく `noteD` との相対関係で決まります。

各ボイスの中にある音符の音程がボイスごとに大きく離れている場合、各ボイスの始めに `\relative` コマンドを置くと明瞭になるかもしれません:

>     \relative c' { noteA ... }
>     <<
>       \relative c'' { < noteB noteC > ... }
>     \\
>       \relative g' { noteD ... }
>     >>
>     \relative c' { noteE ... }

最後に、もっと複雑な楽曲の中にあるボイスを分析してみましょう。以下は、ショパンの Deux Nocturnes, Op 32 の 2 番の最初の 2 小節です。この例は、記譜を行うためのテクニックをいくつか示すために、本章の後の方と次の章で使用されます。ですから、今はコードの中にある意味不明に見えるものは無視して、音楽とボイスだけに注目してください – 込み入った内容は後ほど説明します。

符幹の向きはしばしば 2 つの同時進行する旋律ラインのつながりを示すために使用されます。ここでは、一番上の音符の符幹はすべて上向きであり、下の方にある音符の符幹はすべて下向きです。これは、複数のボイスが必要とされているということを示す最初の兆候です。

しかしながら、複数のボイスが実際に必要とされるのは、同時に始まる音符が異なる演奏時間を持つ場合です。最初の小節の 3 拍目を見てください。A フラットは付点 4 分音符であり、F は 4 分音符、D フラットは半音符です。これらの音符を和音として記述することはできません。なぜなら、和音の中の音符はすべて同じ演奏時間でなければならないからです。これらの音符をシーケンシャルな (連続する) 音符として記述することもできません。なぜなら、これらの音符は同時に始まらなければならないからです。この箇所では 3 つのボイスが必要となり、以下に示すように一般的にはこの小節全体を 3 つのボイスで記述します。そこでは、3 つのボイスに対して異なる符頭と色を割り当てています。もう一度繰り返しますが、この例のコードのことは後ほど説明しますので、理解できないことは無視してください。

この音楽のコードをゼロから記述してみましょう。これから見ていくように、いくつかの問題に遭遇します。すでに学んだように、最初の小節の音楽を 3 つのボイスに分けて記述するために `<< \\ >>` 構造を使用します:

>     \new Staff \relative c'' {
>       \key aes \major
>       <<
>         { c2 aes4. bes8 } \\ { aes2 f4 fes } \\ { <ees c>2 des2 }
>       >>
>       <c ees aes c>1
>     }

符幹の向きは自動的に割り当てられ、奇数番号のボイスが上向きの符幹、偶数番号のボイスが下向きの符幹を持ちます。ボイス 1 と 2 の符幹は正しいのですが、ボイス 3 の符幹はここでは下向きになるべきです。ボイス 3 を省略して音楽をボイス 4 に記述することによって修正できます。ボイス 3 を省略するには、`\\` を 2 つ記述します:

>     \new Staff \relative c'' {
>       \key aes \major
>       << % Voice one
>         { c2 aes4. bes8 }
>       \\ % Voice two
>         { aes2 f4 fes   }
>       \\ % Omit Voice three
>       \\ % Voice four
>         { <ees c>2 des2 }
>       >> |
>       <c ees aes c>1 |
>     }

これにより符幹の向きが修正されました。しかしながら、複数のボイスを持つ場合にしばしば発生する問題に遭遇してしまいました – あるボイスの中にある音符の符幹が他のボイスの中にある符頭と衝突しています。音符をレイアウトするときに、LilyPond は 2 つのボイスの符幹の向きを反対にすることによって 2 つのボイスの音符や和音が同じ垂直方向の音符列に位置することを可能にします。しかしながら、3 番目や 4 番目のボイスは符頭の衝突を避けるために必要があれば移動させられます。これは普通はうまくいきますが、この例では一番下のボイスの音符はデフォルトの状態では明らかにうまくいっていません。LilyPond は音符の水平方向位置を調節するためにいくつかの手段を提供します。我々はまだこの問題を修正するための方法を見ていく準備が整っていないので、この問題は後に残しておくことにします – 表記の重なりを修正する の `force-hshift` プロパティを参照してください。

#### 参照

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

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

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