1.5.2 複数のボイス

このセクションでは複数のボイスあるいは複数の譜の中にある同時進行する音符について議論します。


単一譜の多声

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

単一の譜の中に複数の独立したボイスを配置するのに必要とされる基本的な構造が以下の例で示されています:

\new Staff <<
  \new Voice = "first"
    { \voiceOne r8 r16 g e8. f16 g8[ c,] f e16 d }
  \new Voice= "second"
    { \voiceTwo d16 c d8~ d16 b c8~ c16 b c8~ c16 b8. }
>>

[image of music]

ここでは、ボイスは明示的にインスタンス化されていて、名前を与えられています。\voiceOne ... \voiceFour コマンドはボイスをセット アップし、それにより、1 番目と 3 番目のボイスは上向きの符幹を持ち、2 番目と 4 番目のボイスは下向きの符幹を持ち、3 番目と 4 番目のボイスの符頭は水平方向にずれて、それぞれのボイスの中の休符は衝突を避けるために自動的に移動させられます。\oneVoice コマンドはすべてのボイス設定をニュートラルなデフォルトの向きに戻します。

一時的な多声パッセージ

一時的な多声パッセージは以下のような構成で作成することができます:

<< { \voiceOne ... }
  \new Voice { \voiceTwo ... }
>> \oneVoice

ここで、一時多声パッセージの中の最初の表記は直前に使われていた Voice コンテキストに配置され、その Voice コンテキストは一時セクションの後も続いていきます。山括弧の中の他の表記は別の一時ボイスに代入されます。これと同様に、歌詞は多声セクションの前、最中、後に続いているボイスに代入されます:

<<
  \new Voice = "melody" {
    a4
    <<
      {
        \voiceOne
        g f
      }
      \new Voice {
        \voiceTwo
        d2
      }
    >>
    \oneVoice
    e4
  }
  \new Lyrics \lyricsto "melody" {
  This is my song.
  }
>>

[image of music]

ここで、\voiceOne\voiceTwo コマンドはそれぞれのボイスの設定を定義するために必要とされています。

2 重バックスラッシュ構造

<< {...} \\ {...} >> 構造 – この中では 2 つ (あるいはそれ以上) の表記が 2 重バックスラッシュで区切られています – は、2 重バックスラッシュを持たないこと以外は同様の構造とはまったく異なる振る舞いをします: この構造の中にある すべての 表記は新たな Voice コンテキストに代入されます。それらの新しい Voice コンテキストは暗黙的に作成され、あらかじめ決められた名前 "1", "2" などを与えられます。

最初の例は以下のように書き換えることができます:

<<
  { r8 r16 g e8. f16 g8[ c,] f e16 d }
  \\
  { d16 c d8~ d16 b c8~ c16 b c8~ c16 b8. }
>>

[image of music]

一時ボイスが作成され、それから消去されることが問題にならない場合に、この構文を使用することができます。暗黙的に作成されるボイスには、それらがコードの中で現れる順番に従って、\voiceOne ... \voiceFour コマンドと同じ設定が与えられます。

以下の例では、真ん中のボイスは上向きの符幹を持ちます。そのため、それを 3 番目に置いて、望みどおりに上向きの符幹を持つボイス 3 にしています。休符が 2 重に譜刻されることを避けるために、空白休符を使用しています。

<<
  { r8 g g  g g f16 ees f8 d }
  \\
  { ees,8 r ees r d r d r }
  \\
  { d'8 s c s bes s a s }
>>

[image of music]

簡単なことですが、 コンテキストとエングラーバ ボイスを明示的にインスタンス化する で説明されているように、明示的に Voice コンテキストを作成しておくと賢明です。

同一のリズム

同じリズムを持ち、並行して進行する音楽を譜刻するという特殊なケースでは、並行する音楽を単一の Voice の中に組み込み、それにより和音を形成することができます。これを実現するには、並行する音楽を明示的にインスタンス化されたボイス内の同時進行音楽構造の中に置きます:

\new Voice <<
  { e4 f8 d e16 f g8 d4 }
  { c4 d8 b c16 d e8 b4 }
>>

[image of music]

この手法では、音楽が同じリズムを持たない場合に、おかしな連桁とワーニングを生じます。

定義済みコマンド

\voiceOne, \voiceTwo, \voiceThree, \voiceFour, \oneVoice

参照

学習マニュアル: 音楽を保持するボイス, ボイスを明示的にインスタンス化する

記譜法リファレンス: @ref{Percussion staves}, 不可視の休符, 符幹

コード断片集: Simultaneous notes


ボイス スタイル

ボイスには別々の色と形が与えて、容易に見分けられるようにすることができます:

<<
  { \voiceOneStyle d4 c2 b4 }
  \\
  { \voiceTwoStyle e,2 e }
  \\
  { \voiceThreeStyle b2. c4 }
  \\
  { \voiceFourStyle g'2 g }
>>

[image of music]

\voiceNeutralstyle コマンドは標準の体裁に戻すために使用されます。

定義済みコマンド

\voiceOneStyle, \voiceTwoStyle, \voiceThreeStyle, \voiceFourStyle, \voiceNeutralStyle

参照

学習マニュアル: 私はボイスを聴いている, その他の情報源

コード断片集: Simultaneous notes


衝突の解決

同じピッチ、同じ符頭を持ち、符幹の方向が逆で異なるボイスの中にある符頭は自動的に 1 つの符頭にまとめられます。しかしながら、音符の符頭が異なっていたり、符幹の方向が同じである場合はまとめられません。異なるボイスの中にあり、符幹の方向が逆の休符は垂直方向にずらされます。

<<
  {
    c8 d e d c d c4
    g'2 fis
  } \\ {
    c2 c8. b16 c4
    e,2 r
  } \\ {
    \oneVoice
    s1
    e8 a b c d2
  }
>>

[image of music]

異なる符頭を持つ音符が 1 つにまとめられる場合もありますが、半音符の符頭と 4 分音符の符頭がまとめられることはありません:

<<
  {
    \mergeDifferentlyHeadedOn
    c8 d e d c d c4
    g'2 fis
  } \\ {
    c2 c8. b16 c4
    e,2 r
  } \\ {
    \oneVoice
    s1
    e8 a b c d2
  }
>>

[image of music]

異なる付点を持つ符頭が 1 つにまとめられる場合もあります:

<<
  {
    \mergeDifferentlyHeadedOn
    \mergeDifferentlyDottedOn
    c8 d e d c d c4
    g'2 fis
  } \\ {
    c2 c8. b16 c4
    e,2 r
  } \\ {
    \oneVoice
    s1
    e8 a b c d2
  }
>>

[image of music]

第 2 小節の始めの半音符と 8 分音符は正しくまとめられていません。なぜなら 3 つ以上の音符が同じ列に並ぶ場合、\mergeDifferentlyHeadedOn は符頭をうまくまとめることができないからであり、このケースでは警告が発せられます。符頭のまとめを正しく機能させるには、\shift を 1 つにまとめるべきではない音符に適用する必要があります。ここでは、g を列の外に移動させるために \shiftOn を適用すると、\mergeDifferentlyHeadedOn は正しく機能します。

<<
  {
    \mergeDifferentlyHeadedOn
    \mergeDifferentlyDottedOn
    c8 d e d c d c4
    \shiftOn
    g'2 fis
  } \\ {
    c2 c8. b16 c4
    e,2 r
  } \\ {
    \oneVoice
    s1
    e8 a b c d2
  }

>>

[image of music]

\shiftOn, \shiftOnn それに \shiftOnnn コマンドはカレント ボイスの和音をずらす度合いを指定します。外側のボイス (通常: ボイス 1 とボイス 2) は \shiftOff を持ち、一方、内側のボイス (ボイス 2 とボイス 4) は \shiftOn を持ちます。\shiftOnn\shiftOnnn は度合いがさらに大きなずれを定義しています。

音符は符幹の方向が逆である場合にのみ 1 つにまとめられます (例えば、Voice 1 と 2)。

定義済みコマンド

\mergeDifferentlyDottedOn, \mergeDifferentlyDottedOff, \mergeDifferentlyHeadedOn, \mergeDifferentlyHeadedOff

\shiftOn, \shiftOnn, \shiftOnnn, \shiftOff

Selected Snippets

衝突を避けるための追加のボイス

複雑な多声音楽の場合、音符の衝突を避けるために追加のボイスが必要になることがあります。並列に 5 つ以上のボイスが必要である場合、Scheme 関数 context-spec-music を用いて変数を定義することによって追加のボイスを追加することができます。

voiceFive = #(context-spec-music (make-voice-props-set 4) 'Voice)

\relative c'' {
  \time 3/4
  \key d \minor
  \partial 2
  <<
    {
      \voiceOne
      a4. a8
      e'4 e4. e8
      f4 d4. c8
    }
    \\
    {
      \voiceThree
      f,2
      bes4 a2
      a4 s2
    }
    \\
    {
      \voiceFive
      s2
      g4 g2
      f4 f2
    }
    \\
    \bar "||"{
      \voiceTwo
      d2
      d4 cis2
      d4 bes2
    }
  >>
}

[image of music]

音符を強制的に水平方向にずらす

譜刻エンジンがうまく処理できない場合、以下の構文を使うことで譜刻の決定をオーバライドすることができます。ここでの距離の単位は譜表スペースです。

\relative c' <<
  {
    <d g>2 <d g>
  }
  \\
  {
    <b f'>2
    \once \override NoteColumn #'force-hshift = #1.7
    <b f'>2
  }
>>

[image of music]

参照

音楽用語集: polyphony

学習マニュアル: 同時に演奏する複数の音符, 音楽を保持するボイス, オブジェクトの衝突

コード断片集: Simultaneous notes

内部リファレンス: NoteColumn, NoteCollision, RestCollision

既知の問題と警告

同じ和音の中で同じ音符が異なる臨時記号を持つ場合、その和音の衝突回避はサポートされません。そのような場合、異名同音 (エンハーモニック) に書き換えるか、クラスタという特殊な記譜法 (クラスタ を参照してください) を用いることを推奨します。


自動パート結合

自動パート結合は 1 つの譜の上にある 2 つのパートを 1 つに組み合わせるために使用されます。これはオーケストラ譜を譜刻ことを目的としています。ある範囲で 2 つのパートが同一である場合、1 つだけが譜刻されます。2 つのパートが異なる箇所では、別々のボイスとして譜刻され、符幹の向きは自動的にセットされます。さらに、デフォルトで、ソロ パートと 正 (due) パートが識別され、マークを付けられます。

パート結合の構文は以下の通りです:

\partcombine musicexpr1 musicexpr2

以下の例はパート結合の基本的な機能を示しています: パートを 1 つの譜に配置し、符幹の向きと多声をセットします。同じ変数が個々のパートと結合譜に使用されています。

instrumentOne = \relative c' {
  c4 d e f
  R1
  d'4 c b a
  b4 g2 f4
  e1
}

instrumentTwo = \relative g' {
  R1
  g4 a b c
  d c b a
  g f( e) d
  e1
}

<<
  \new Staff \instrumentOne
  \new Staff \instrumentTwo
  \new Staff \partcombine \instrumentOne \instrumentTwo
>>

[image of music]

第 3 小節の音符は、両方のパートで指定されているにもかかわらず、1 パート分だけ譜刻されています。符幹、スラーそれにタイの向きは、ソロなのかあるいは斉奏なのかによって、自動的に設定されます。多声が必要になる場合、第 1 パート (one と呼ばれるコンテキストを持ちます) は常に上向きの符幹を持ち、一方、第 2 パート (two と呼ばれるコンテキストを持ちます) は常に下向きの符幹を持ちます。ソロの場合、第 1 パートと第 2 パートにはそれぞれ ‘Solo’ と ‘Solo II’ というマークが付けられます。斉奏 () パートには、デフォルトで、テキスト “a2” というマークが付けられます。

\partcombine の引数は 2 つとも Voice コンテキストとして解釈されます。相対オクターブを用いる場合、\relative を両方の音楽表記に対して指定すべきです。すなわち、

\partcombine
  \relative … musicexpr1
  \relative … musicexpr2

\partcombine の外側にある \relative セクションは musicexpr1musicexpr2 のピッチには影響を与えません。

Selected Snippets

2 つのパートを同じ譜に結合する

パート結合ツール ( \partcombine コマンド ) はいくつかの異なるパートを同じ譜に結合することを可能にします。"solo" や "a2" などのテキスト指示はデフォルトで付け加えられます。テキスト指示を削除するには、プロパティ printPartCombineTexts を "false" にセットするだけです。ボーカル譜 (賛美歌) では、"solo"/"a2" テキストを付け加える必要はなく、それらのテキスト指示は off にすべきです。しかしながら、ソロ部分がある場合には、off にしないほうが良いでしょう。なぜなら、ソロがどの部分なのか識別できないからです。そのようなケースでは、通常の多声記譜法が望ましいかもしれません。

この断片は、2 つのパートを同じ譜に譜刻するための 3 通りの方法を示しています: 通常の多声、テキストを持たない \partcombine、それにテキストを持つ \partcombine です。

musicUp = \relative c'' {
  \time 4/4
  a4 c4.( g8) a4 |
  g4 e' g,( a8 b) |
  c b a2.
}

musicDown = \relative c'' {
  g4 e4.( d8) c4 |
  r2 g'4( f8 e) |
  d2 \stemDown a
}

\score {
  <<
    <<
    \new Staff {
      \set Staff.instrumentName = #"Standard polyphony"
      << \musicUp \\ \musicDown >>
    }
    \new Staff \with { printPartCombineTexts = ##f } {
      \set Staff.instrumentName = #"PartCombine without texts"
      \partcombine \musicUp \musicDown
    }
    \new Staff {
      \set Staff.instrumentName = #"PartCombine with texts"
      \partcombine \musicUp \musicDown
    }
    >>
  >>
  \layout {
    indent = 6.0\cm
    \context {
      \Score
      \override SystemStartBar #'collapse-height = #30
    }
  }
}

[image of music]

partcombine のテキストを変更する

自動パート結合機能を使用する場合、ソロ セクションと斉奏セクションに譜刻されるテキストを変更することがあるかもしれません:

\new Staff <<
  \set Staff.soloText = #"girl"
  \set Staff.soloIIText = #"boy"
  \set Staff.aDueText = #"together"
  \partcombine
    \relative c'' {
      g4 g r r
      a2 g
    }
    \relative c'' {
      r4 r a( b)
      a2 g
    }
>>

[image of music]

参照

音楽用語集: a due, part

記譜法リファレンス: パートを記述する

コード断片集: Simultaneous notes

内部リファレンス: PartCombineMusic, Voice

既知の問題と警告

\partcombine が受け取れるボイスは 2 つだけです。

printPartCombineTexts がセットされていて、2 つのボイスが同じ音符を on、off した場合、パート結合機能は小節の中で a2 を複数回譜刻するかもしれません。

\partcombine\times の中に置くことはできません。

\partcombine\relative の中に置くことはできません。

内部的には、\partcombine は 2 つの引数を Voice として解釈し、2 つのパートを組み合わせることができるかどうかを決定します。2 つのパートが異なる演奏時間を持つ場合、それらを組み合わせることはできず、それぞれに one, two という名前が与えられます。Consequently, if the arguments switch to differently named Voice contexts, the events in those will be ignored. 同様に、パート結合は歌詞に対して機能するようには設計されていません。ボイスの 1 つが、歌詞をつけるために、明示的に名前を付けられた場合、パート結合は機能しなくなります。

\partcombine\partcombine の開始後の音符だけを観察します。その前に開始した音符が演奏中であるかどうかを検出することはできません。これはさまざまな問題を引き起こします。


音楽を並列に記述する

複数のパートを持つ音楽を入力コードの途中に挿入することができます。関数 \parallelMusic は、作成する変数名をいくつか持つリストと音楽表記を受け入れます。各小節ごとの音楽表記は各変数の値となり、後で音楽を譜刻するために使用することができます。

Note: 小節チェック | を使用する必要があり、各小節は同じ長さでなければなりません。

\parallelMusic #'(voiceA voiceB voiceC) {
  % Bar 1
  r8 g'16 c'' e'' g' c'' e'' r8 g'16 c'' e'' g' c'' e'' |
  r16 e'8.~   e'4            r16 e'8.~   e'4            |
  c'2                        c'2                        |

  % Bar 2
  r8 a'16 d'' f'' a' d'' f'' r8 a'16 d'' f'' a' d'' f'' |
  r16 d'8.~   d'4            r16 d'8.~   d'4            |
  c'2                        c'2                        |

}
\new StaffGroup <<
  \new Staff << \voiceA \\ \voiceB >>
  \new Staff { \clef bass \voiceC }
>>

[image of music]

相対モードを使用することができます。\relative コマンドを \parallelMusic 自体の中では使用しないということに注意してください。音符が前の音符と相対関係になるのはボイスの中であり、入力の中ではありません – 言い換えると、voiceA の相対音符は voiceB の音符を無視します。

\parallelMusic #'(voiceA voiceB voiceC) {
  % Bar 1
  r8 g16 c e g, c e r8 g,16 c e g, c e  |
  r16 e8.~ e4       r16 e8.~  e4        |
  c2                c                   |

  % Bar 2
  r8 a,16 d f a, d f r8 a,16 d f a, d f |
  r16 d8.~  d4       r16 d8.~  d4       |
  c2                 c                  |

 }
\new StaffGroup <<
  \new Staff << \relative c'' \voiceA \\ \relative c' \voiceB >>
  \new Staff \relative c' { \clef bass \voiceC }
>>

[image of music]

これはピアノ譜で非常に良く機能します。以下の例は、4 つの連続する小節を 4 つの変数に割り当てています:

global = {
  \key g \major
  \time 2/4
}

\parallelMusic #'(voiceA voiceB voiceC voiceD) {
  % Bar 1
  a8    b     c   d     |
  d4          e         |
  c16 d e fis d e fis g |
  a4          a         |

  % Bar 2
  e8      fis  g     a   |
  fis4         g         |
  e16 fis g  a fis g a b |
  a4           a         |

  % Bar 3 ...
}

\score {
  \new PianoStaff <<
     \new Staff {
       \global
       <<
         \relative c'' \voiceA
         \\
         \relative c'  \voiceB
       >>
     }
     \new Staff {
       \global \clef bass
       <<
         \relative c \voiceC
         \\
         \relative c \voiceD
       >>
     }
  >>
}

[image of music]

参照

学習マニュアル: 変数を用いて楽曲を編成する

コード断片集: Simultaneous notes


他の言語: English, deutsch, español, français

LilyPond — 記譜法リファレンス

inserted by FC2 system