自動パート結合

自動パート結合は 2 つのパートに分かれた音楽を単一の譜にマージします。これはオーケストラ譜を譜刻する時に特に有用です。ある範囲で 2 つのパートの音楽が同一である場合、1 つの Voice だけが譜刻されます。2 つのパートが異なる箇所では第 2 Voice が譜刻されます。この場合、符幹の向きはそれぞれ上と下ににセットされ、さらにソロ パートと 二重奏 (due) パートが識別されて適切なマークが付けられます。

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

\partCombine musicexpr1 musicexpr2

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

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

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

<<
  \new Staff \instrumentOne
  \new Staff \instrumentTwo
  \new Staff \partCombine \instrumentOne \instrumentTwo
>>

[image of music]

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

デフォルトでは、\partCombine は同じピッチの音符を 二重奏 の音符としてマージします。また、同じリズムで音程が 9 度以下の音符は和音として結合し、9 度より大きい (あるいは、ボイスが交差している) 場合は別々のボイスになります。この挙動は \partCombine コマンドの後に、省略可能な数字のペアの引数を与えることでオーバライドすることができます: 1 つ目が、結合が始まる音程 (デフォルトは 0) で、2 つ目が別々のボイスとなる音程です。2 つ目の引数を 0 にすることで、2 度以上の音符を分割し、1 にすることで 3 度以上の音符を分割するというようになります。

instrumentOne = \relative {
  a4 b c d |
  e f g a |
  b c d e |
}

instrumentTwo = \relative {
  c'4 c c c |
  c c c c |
  c c c c |
}

<<
  \new Staff \partCombine \instrumentOne \instrumentTwo
  \new Staff \partCombine #'(2 . 3) \instrumentOne \instrumentTwo
>>

[image of music]

\partCombine の 2 つの引数は別個の Voice コンテキストとして解釈されます。そのため、相対オクターブを用いる場合、両方のパートで \relative を記述すべきです。すなわち、以下のように記述します:

\partCombine
  \relative … musicexpr1
  \relative … musicexpr2

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

プロの楽譜では長いパッセージで、2 つのボイスの音符のいくつかが同じでユニゾンとして譜刻できる場合であっても、ボイスを分けて譜刻することがあります。 ですから、音符を和音に組み合わせることと、1 つのボイスをソロとして表示することは等価ではありません。なぜなら、\partCombine 関数は各音符を個々に考慮するからです。 このような場合、\partCombine 関数を以下のコマンドのいずれかでオーバライドすることができます。全てのコマンドは音楽表記の中で次の音符だけに適用されるように \once 接頭辞を付けることができます。

instrumentOne = \relative c' {
  \partCombineApart c2^"apart" e |
  \partCombineAutomatic e2^"auto" e |
  \partCombineChords e'2^"chord" e |
  \partCombineAutomatic c2^"auto" c |
  \partCombineApart c2^"apart" \once \partCombineChords e^"chord once" |
  c2 c |
}
instrumentTwo = \relative {
  c'2 c |
  e2 e |
  a,2 c |
  c2 c' |
  c2 c |
  c2 c |
}

<<
  \new Staff { \instrumentOne }
  \new Staff { \instrumentTwo }
  \new Staff { \partCombine \instrumentOne \instrumentTwo }
>>

[image of music]

\partCombine を歌詞と同時に使う

\partCombine は歌詞と同時に動作するように設計されていません。歌詞を付けるために、ボイスの片方に名前が明示されていた場合、パート結合は動作を停止します。しかし、NullVoice コンテキストを用いることで効果を得ることができます。歌詞を共有する多声 を参照してください。

Selected Snippets

2 つのパートを 1 つの譜にまとめる

自動パート結合ツール (\partCombine コマンド) は、いくつかの異なるパートを同じ譜にまとめるものです。“solo” や “a2” といったテキスト指示は、デフォルトで追加されます。これらを削除するには、printPartCombineTexts プロパティを f にセットします。賛美歌のような歌曲では、“solo/a2” のテキストを追加する必要は無いため、これらを削除すると良いでしょう。しかしながら、これらを削除した場合、ソロの指示も表示されなくなるため問題があるかもしれません。このような場合は、通常の多声構文を用いると良いでしょう。

このスニペットは、2 つのパートを 1 つの譜に表示する 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 \with {
      instrumentName = "standard polyphony"
    } << \musicUp \\ \musicDown >>

    \new Staff \with {
      instrumentName =
        \markup { \typewriter "\\partCombine" without text}
      printPartCombineTexts = ##f
    } \partCombine \musicUp \musicDown

    \new Staff \with {
      instrumentName =
        \markup { \typewriter "\\partCombine" with text}
    } \partCombine \musicUp \musicDown
  >>

  \layout {
    indent = 6.0\cm
    \context {
      \Score
      % Setting this to a large value avoids a bar line at the
      % beginning that would connect the three staves otherwise.
      \override SystemStartBar.collapse-height = 30
    }
  }
}

[image of music]

Changing \partCombine texts

When using the automatic part combining feature, the printed text for the solo and unison sections may be changed.

\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 つだけ受け取ることができます。

\partCombine… 関数を \tuplet ブロックや \relative ブロックの中に置くことはできません。

printPartCombineTexts がセットされていて、ある小節で 2 つのボイスの音符が同じである場合、パート結合はその小節で a2 を複数譜刻する可能性があります。

\partCombineVoice の中の音符の開始だけを検知します。例えば、ある Voice でパート結合を開始した時に、他の Voice で音符がすでに開始しているかどうかを知ることはできません。このことは “Solo” や “Unison” が不適切に譜刻されるといった予期しない問題を引き起こす可能性があります

\partCombine はすべてのスパナ (スラー、タイ、強弱のヘアピン等) を同じ Voice で維持します。そのため、異なる Voice で始まる / 終わるスパナは不適切にの譜刻されたり、全く譜刻されなかったりする可能性があります。

\partCombine 関数が 2 つのパートを組み合わせることができない場合 (すなわち、2 つのボイスの演奏時間が異なる場合)、内部的に 2 つのボイスにカスタム名を付与します: それぞれ onetwo です。このことは、異なる名前を付けられた Voice への “切り替え” があった場合、その Voice のイベントは無視されることを意味します。

デフォルトのタブ譜 のタブ譜や 自動連桁音符 に対して \partCombine を使う場合は、それぞれの 既知の問題と警告 も参照してください。


LilyPond 記譜法リファレンス v2.25.22 (development-branch).