@c -*- coding: utf-8; mode: texinfo; documentlanguage: ja -*-
@ignore
Translation of GIT committish: cc3b9e1430f4cc9c54da7252e504f3d274a7ea17
When revising a translation, copy the HEAD committish of the
version that you are working on. See TRANSLATION for details.
@end ignore
@c \version "2.17.6"
@c Translators: Yoshiki Sawada
@c Translation status: post-GDP
@node 同時進行する音符
@section 同時進行する音符
@translationof Simultaneous notes
@lilypondfile[quote,ragged-right,line-width=16\cm]{simultaneous-headword.ly}
楽譜の中で多声部は楽曲の 1 節の中にある複数のボイスを参照します。@c
LilyPond の中で多声部は同じ譜にある複数のボイスを参照します。
@menu
* 単一のボイス::
* 複数のボイス::
@end menu
@node 単一のボイス
@subsection 単一のボイス
@translationof Single voice
このセクションでは同じボイスの中にある同時進行する音符について議論します。
@menu
* 和音の音符::
* 和音の繰り返し::
* 同時進行表記::
* クラスタ::
@end menu
@node 和音の音符
@unnumberedsubsubsec 和音の音符
@translationof Chorded notes
@cindex chords (和音)
@cindex brackets, angle (山括弧)
@funindex <
@funindex >
@funindex <...>
和音は @code{<} と @code{>} で 1 組のピッチを囲むことによって形成されます。@c
和音の後には -- 普通の音符と同様に -- 演奏時間が続くかもしれません:
@lilypond[verbatim,quote,relative=2]
1 2 4 8. 16
@end lilypond
さらに、和音の後には -- 普通の音符と同様に -- アーティキュレーションが@c
続くかもしれません:
@lilypond[verbatim,quote,relative=2]
1\fermata 2-> 4\prall 8.^| 16-.
@end lilypond
和音の中にある音符自体にもアーティキュレーションや装飾を付けることができます。
@lilypond[verbatim,quote,relative=2]
1 c-^ e>2 4
8. 16
@end lilypond
しかしながら、いくつかの記譜要素
-- 強弱記号、ヘアピン、それにスラーなど --
は和音の中の音符ではなく、和音に付ける必要があります。@c
そうしなければ、譜刻されません。
@lilypond[verbatim,quote,relative=2]
1 \f ( )
\< \!
@end lilypond
@c ここから L2100
@cindex chords, empty (空の和音)
@cindex placeholder events ()
和音は和音に含まれる音符、アーティキュレーション、それに他の付属要素の@c
コンテナにすぎません。@c
従って、音符を持たない和音は演奏時間を持ちません。@c
そのような和音に付属するアーティキュレーションは、後に続く音符や和音の@c
タイミングで発生して、組み合わされます (そのような要素の複雑な組み合わせ@c
については @ref{Simultaneous expressions} を参照してください):
@lilypond[verbatim,quote,relative=2]
\grace { g8[( a b] }
<> ) \p \< -. -\markup \italic "sempre staccato"
\repeat unfold 4 { c4 e } c1\f
@end lilypond
@cindex relative pitch, chords (和音と相対ピッチ)
@cindex chords, relative pitch (相対ピッチと和音)
和音の中のピッチに対して相対モードを使うことができます。@c
各和音の最初の音符は常に、前の和音の最初の音符との相対関係で決まります。@c
前が和音でない場合は、その和音の前にある最後のピッチとの相対関係になります。@c
和音の中にある残りの音符はすべて @emph{同じ和音の中にある}
前の音符との相対関係になります。
@lilypond[verbatim,quote,relative=2]
1
@end lilypond
和音についての更なる情報は、@ref{Chord notation} を参照してください。
@seealso
音楽用語集:
@rglos{chord}
学習マニュアル:
@rlearning{Combining notes into chords}
記譜法リファレンス:
@ref{Chord notation},
@ref{Articulations and ornamentations},
@ref{Relative octave entry},
@ref{Multiple voices}
コード断片集:
@rlsr{Simultaneous notes}
@knownissues
1 譜スペース内に 3 つ以上のピッチを保持している和音
-- @samp{} など --
では、符頭が重なります。@c
状況に応じて、適切な表記を用います
@itemize
@item
一時的に @ref{複数のボイス} を使用する -- @samp{<< f! \\ >>},
@item
いくつかのピッチを異名同音に書き換える -- @samp{},
@item
@ref{Clusters}
@end itemize
@node 和音の繰り返し
@unnumberedsubsubsec 和音の繰り返し
@translationof Chord repetition
@cindex Chord, repetition (和音の繰り返し)
@cindex repetition, using @code{q} (@code{q} を用いた繰り返し)
入力の手間を省くために、前の和音を繰り返すための短縮記法があります。@c
和音を繰り返すためのシンボルは @code{q} です:
@lilypond[verbatim,quote,relative=2]
1 q 2 q
@end lilypond
前の和音のピッチが複製されているだけなので、
通常の和音と同様に、和音の繰り返しのシンボルにも演奏時間、@c
アーティキュレーション、マークアップ、スラー、連桁などを使うことができます。
@lilypond[verbatim,quote,relative=2]
1\p^"text" q2\<( q8)[-| q8.]\! q16-1-2-3 q8\prall
@end lilypond
和音繰り返しのシンボルは常に最後の和音を覚えているため、@c
最後の和音の後に和音ではない音符や休符があったとしても、@c
和音を繰り返すことができます。
@lilypond[verbatim,quote,relative=2]
1 c'4 q2 r8 q8 |
q2 c, |
@end lilypond
しかしながら、和音繰り返しのシンボルは前の和音の中にある、あるいは付属している@c
強弱記号、アーティキュレーション、あるいは装飾を持ち越しません。
@lilypond[verbatim,quote,relative=2]
1\sfz c'4 q2 r8 q8 |
q2 c, |
@end lilypond
それらのイベントを持ち越すには、@code{\chordRepeats} 関数を明示的に呼び出し、@c
引数に持ち越す @var{イベント タイプ} を指定するリストを持たせます。@c
これにより持ち越されるイベントはすでに和音 @code{q} に存在しているものだけです。
@lilypond[verbatim,quote]
\relative c'' {
\chordRepeats #'(articulation-event)
{ 1\sfz c'4 q2 r8 q8-. } |
q2 c, |
}
@end lilypond
上記の例では @code{\chordRepeats} を @code{\relative} 構造の内部で使用する@c
ことで予期しない結果になっています:
@code{\chordRepeats} の和音イベントが展開されると、@c
通常どおりに入力された和音と区別が付かず、@c
@code{\relative} はカレントのコンテキストに基づいて音程を割り当てます。
ネストされた @code{\relative} のインスタンスは内外のインスタンスに@c
影響を与えないので、@c
@code{\chordRepeats} の内側に @code{\relative} を配置することで@c
@code{\chordRepeats} の和音を展開する前に音程を確定させることができます。@c
今回のケースでは、内側にある @code{\relative} の内容は@c
外側にある @code{\relative} の影響を受けないので、@c
繰り返しの和音は前の和音の音程を維持しています。@c
また、内側の @code{\relative} は外側の @code{\relative} に影響を与えないので、@c
最後の音符のオクターブ入力が変化します。
@c Without \new Voice, implicit voice creation does the dumbest thing.
@lilypond[verbatim,quote]
\new Voice
\relative c'' {
\chordRepeats #'(articulation-event)
\relative c''
{ 1\sfz c'4 q2 r8 q8-. } |
q2 c |
}
@end lilypond
@code{\chordRepeats} は明示的に呼び出された場合にのみ
@code{\relative} と相互作用します:
暗黙的な繰り返し和音の展開はすべての @code{\relative} インスタンスが@c
処理されてから行われます。
@seealso
記譜法リファレンス:
@ref{Chord notation},
@ref{Articulations and ornamentations}
インストールされているファイル:
@file{ly/chord-repetition-init.ly}
@node 同時進行表記
@unnumberedsubsubsec 同時進行表記
@translationof Simultaneous expressions
2 重山括弧で囲まれた 1 つあるいは複数の音楽表記は同時進行します。@c
最初の表記が単一の音符で始まる場合、@c
あるいは同時進行する表記全体が明らかに単一のボイスの中にある場合、@c
その表記全体は単一の譜の上に配置されます。@c
そうでない場合、同時進行する表記の要素は別々の譜の上に配置されます。
以下の例は 1 つの譜の上にある同時進行表記を示しています:
@c KEEP LY
@lilypond[quote,verbatim,relative=2]
\new Voice { % 明らかに単一のボイスです
<< { a4 b g2 } { d4 g c,2 } >>
}
@end lilypond
@lilypond[quote,verbatim,relative=2]
% 単一の音符で始まります
a << {a4 b g} {d4 g c,} >>
@end lilypond
これは同時進行するセクションが同一のリズムを持つ場合に役に立ちます。@c
しかしながら、異なる演奏時間を持つ音符を同じ符幹に取り付けようとすると@c
エラーとなります。@c
@emph{単一の} @samp{Voice} の中にある音符、アーティキュレーション、@c
それにプロパティの変更は収集され、音楽的な順序で譜刻されます:
@lilypond[quote,verbatim,relative=2]
4-. <>-. << c a >> << { c-. } { a s-. } >>
@end lilypond
同時に複数の符幹や連桁、あるいは異なる音符の演奏時間やプロパティが必要な@c
場合、複数のボイスを使う必要があります。
以下の例は、同時進行する表記が暗黙的に複数の譜を生成する様子を示しています:
@c KEEP LY
@lilypond[quote,verbatim,relative=2]
% 単一の音符で始まりません
<< {a4 b g2} {d4 g2 c,4} >>
@end lilypond
ここでは、リズムが異なっていても問題ありません。@c
異なるボイスだと解釈されるからです。
@cindex collisions, clashing note columns (音符列の衝突)
@cindex collisions, ignoring (衝突を無視する)
@knownissues
譜の同じ場所で、同じ向きの符幹を持つ複数のボイスから音符がシフトされずに
(あるいは同じシフトで) 配置された場合、@c
コンパイル中に以下のメッセージが表示されます:
@example
warning: ignoring too many clashing note columns
@end example
以下でこのメッセージを表示させなくすることができます:
@example
\override NoteColumn.ignore-collision = ##t
@end example
しかしながら、これは警告を非表示にするだけでなく、@c
衝突解決に関するすべてのメッセージを非表示にして、@c
他にも意図しない影響を与える可能性があります
(@ref{衝突の解決} の @emph{既知の問題} も参照してください)。
@node クラスタ
@unnumberedsubsubsec クラスタ
@translationof Clusters
@cindex cluster (クラスタ)
@cindex note cluster (音符のクラスタ)
@funindex \makeClusters
@funindex makeClusters
クラスタは演奏すべき連続したピッチの範囲を示します。@c
クラスタは 1 組の音符の範囲 (envelope) として表されます。@c
クラスタはひと続きの和音に関数 @code{\makeClusters}
を適用することによって入力されます。@c
例えば以下のように:
@lilypond[quote,relative=2,verbatim]
\makeClusters { 2 }
@end lilypond
通常の音符とクラスタを同じ譜に一緒にして配置することができます
-- たとえ、それらが同時進行であってもです。@c
そのようなケースでは、通常の音符とクラスタの衝突を@c
自動的に回避しようとする試みは行われません。
@seealso
音楽用語集:
@rglos{cluster}
コード断片集:
@rlsr{Simultaneous notes}
内部リファレンス:
@rinternals{ClusterSpanner},
@rinternals{ClusterSpannerBeacon},
@rinternals{Cluster_spanner_engraver}
@knownissues
クラスタは少なくとも 2 つの和音を持つ場合にのみうまく譜刻されます。@c
さもなければ、あまりにも狭く譜刻されます。
クラスタは符幹を持たず、それ自体で演奏時間を示すことはできません。@c
しかしながら、譜刻されるクラスタの長さはクラスタを定義する和音の演奏時間に@c
よって決定されます。クラスタを分割するには、クラスタとクラスタの間に@c
分割するための休符が必要です。
クラスタは MIDI 出力を作り出しません。
@node 複数のボイス
@subsection 複数のボイス
@translationof Multiple voices
このセクションでは複数のボイスあるいは複数の譜の中にある同時進行する音符に@c
ついて議論します。
@menu
* 単一譜の多声::
* ボイス スタイル::
* 衝突の解決::
* 自動パート結合::
* 音楽を並列に記述する::
@end menu
@node 単一譜の多声
@unnumberedsubsubsec 単一譜の多声
@translationof Single-staff polyphony
@cindex single-staff polyphony (単一譜の多声)
@cindex polyphony, single-staff (単一譜の多声)
@cindex voice (ボイス)
@cindex lyrics assigned to one voice (1 つのボイスに代入される歌詞)
@funindex \voiceOne
@funindex voiceOne
@funindex \voiceOne ... \voiceFour
@funindex Voice
@funindex \oneVoice
@funindex oneVoice
@strong{@i{明示的にボイスをインスタンス化する}}
単一の譜の中に複数の独立したボイスを配置するのに必要とされる基本的な構造が@c
以下の例で示されています:
@lilypond[quote,relative=3,verbatim]
\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. }
>>
@end lilypond
@noindent
ここでは、ボイスは明示的にインスタンス化されていて、名前を与えられています。@c
@code{\voiceOne} @dots{} @code{\voiceFour} コマンドはボイスをセット アップし、@c
それにより、1 番目と 3 番目のボイスは上向きの符幹を持ち、2 番目と 4 番目の@c
ボイスは下向きの符幹を持ち、3 番目と 4 番目のボイスの符頭は水平方向にずれて、@c
それぞれのボイスの中の休符は衝突を避けるために自動的に移動させられます。@c
@code{\oneVoice} コマンドはすべてのボイス設定をニュートラルなデフォルトの@c
向きに戻します。
@c passage: 楽節
@strong{@i{一時的に多声となる楽節 (passage)}}
一時的に多声となる楽節は以下のような構成で作成することができます:
@example
<< @{ \voiceOne ... @}
\new Voice @{ \voiceTwo ... @}
>> \oneVoice
@end example
@noindent
ここで、一時多声楽節の中の最初の表記は直前に使われていた
@code{Voice} コンテキストに配置され、@c
その @code{Voice} コンテキストは一時セクションの後も続いていきます。@c
山括弧の中の他の表記は別の一時ボイスに代入されます。@c
これと同様に、歌詞は多声セクションの前、最中、後に続いているボイスに@c
代入されます:
@lilypond[quote, verbatim, relative=2]
<<
\new Voice = "melody" {
a4
<<
{
\voiceOne
g f
}
\new Voice {
\voiceTwo
d2
}
>>
\oneVoice
e4
}
\new Lyrics \lyricsto "melody" {
This is my song.
}
>>
@end lilypond
@noindent
ここで、@code{\voiceOne} と @code{\voiceTwo} コマンドはそれぞれのボイスの@c
設定を定義するために必要とされています。
@strong{@i{2 重バックスラッシュ構造}}
@code{<< @{...@} \\ @{...@} >>} 構造
-- この中では 2 つ (あるいはそれ以上) の表記が
2 重バックスラッシュで区切られています --
は、同じような構造だが 2 重バックスラッシュを持たない構造とは@c
まったく異なる振る舞いをします:
この構造の中にある @emph{すべての} 表記は新たな @code{Voice} コンテキストに@c
代入されます。@c
それらの新しい @code{Voice} コンテキストは暗黙的に作成され、@c
あらかじめ決められた名前 @code{"1"}, @code{"2"} などを与えられます。
最初の例は以下のように書き換えることができます:
@lilypond[quote,relative=3,verbatim]
<<
{ r8 r16 g e8. f16 g8[ c,] f e16 d }
\\
{ d16 c d8~ d16 b c8~ c16 b c8~ c16 b8. }
>>
@end lilypond
一時ボイスが作成され、それから消去されることが問題にならない場合に、@c
この構文を使用することができます。@c
暗黙的に作成されるボイスには、それらがコードの中で現れる順番に従って、@c
@code{\voiceOne} @dots{} @code{\voiceFour} コマンドと同じ設定が与えられます。
以下の例では、真ん中のボイスは上向きの符幹を持ちます。@c
そのため、それを 3 番目に置いて、望みどおりに上向きの符幹を持つボイス 3 に@c
しています。@c
休符が 2 重に譜刻されることを避けるために、空白休符を使用しています。
@lilypond[quote,relative=3,verbatim]
<<
{ 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 }
>>
@end lilypond
簡単なことですが、@rlearning{コンテキストとエングラーバ} と
@rlearning{ボイスを明示的にインスタンス化する} で説明されているように、@c
明示的に @code{Voice} コンテキストを作成しておくと賢明です。
@strong{@i{ボイスの順序}}
入力ファイルの中にある複数のボイスを譜刻する時、以下の順序で譜刻されます:
@example
ボイス 1: 最上段
ボイス 2: 最下段
ボイス 3: 上から 2 番目
ボイス 4: 下から 2 番目
ボイス 5: 上から 3 番目
ボイス 6: 下から 3 番目
etc.
@end example
これは直感に反するように見えるかもしれませんが、@c
自動レイアウト処理をシンプルにできます。@c
奇数番号のボイスには上向きの符幹が与えられ、@c
偶数番号のボイスには下向きの符幹が与えられるということに注意してください:
@c KEEP LY
@lilypond[quote,verbatim]
\new Staff <<
\time 2/4
{ f''2 } % 1: 最上段
\\
{ c'2 } % 2: 最下段
\\
{ d''2 } % 3: 上から 2 番
\\
{ e'2 } % 4: 下から 2 番
\\
{ b'2 } % 5: 上から 2 番
\\
{ g'2 } % 6: 下から 3 番
>>
@end lilypond
@warning{歌詞、スパナ (スラー、タイ、強弱のヘアピン等) はボイスを @q{跨ぐ}
ことはできません。}
@strong{@i{同一のリズム}}
同じリズムを持ち、並行して進行する音楽を譜刻するという特殊なケースでは、@c
並行する音楽を単一の @code{Voice} の中に組み込み、@c
それにより和音を形成することができます。@c
これを実現するには、並行する音楽を明示的にインスタンス化されたボイス内の@c
同時進行音楽構造の中に置きます:
@lilypond[quote,relative=2,verbatim]
\new Voice <<
{ e4 f8 d e16 f g8 d4 }
{ c4 d8 b c16 d e8 b4 }
>>
@end lilypond
この手法では、音楽が同じリズムを持たない場合に、@c
おかしな連桁と警告を生じます。
@predefined
@code{\voiceOne},
@code{\voiceTwo},
@code{\voiceThree},
@code{\voiceFour},
@code{\oneVoice}
@endpredefined
@seealso
学習マニュアル:
@rlearning{Voices contain music},
@rlearning{Explicitly instantiating voices}
記譜法リファレンス:
@ref{Percussion staves},
@ref{Invisible rests},
@ref{Stems}
コード断片集:
@rlsr{Simultaneous notes}
@node ボイス スタイル
@unnumberedsubsubsec ボイス スタイル
@translationof Voice styles
@cindex voice styles (ボイス スタイル)
@cindex styles, voice (ボイス スタイル)
@cindex coloring voices (ボイスに色を付ける)
@funindex \voiceOneStyle
@funindex \voiceTwoStyle
@funindex \voiceThreeStyle
@funindex \voiceFourStyle
@funindex \voiceNeutralStyle
ボイス毎に異なる色と形を与えて、容易に見分けられるようにすることができます:
@lilypond[quote,relative=2,verbatim]
<<
{ \voiceOneStyle d4 c2 b4 }
\\
{ \voiceTwoStyle e,2 e }
\\
{ \voiceThreeStyle b2. c4 }
\\
{ \voiceFourStyle g'2 g }
>>
@end lilypond
@code{\voiceNeutralstyle} コマンドは標準の体裁に戻すために使用されます。
@predefined
@code{\voiceOneStyle},
@code{\voiceTwoStyle},
@code{\voiceThreeStyle},
@code{\voiceFourStyle},
@code{\voiceNeutralStyle}
@endpredefined
@seealso
学習マニュアル:
@rlearning{I'm hearing Voices},
@rlearning{Other sources of information}.
コード断片集:
@rlsr{Simultaneous notes}
@node 衝突の解決
@unnumberedsubsubsec 衝突の解決
@translationof Collision resolution
@cindex merging notes (音符に余白を設ける)
@cindex note collisions (音符の衝突)
@cindex collisions (衝突)
@cindex shift note (音符のシフト)
@cindex multiple voices
@cindex voices, multiple (複数のボイス)
@cindex polyphonic music (多声の音楽)
@cindex shifting voices (ボイスをずらす)
@cindex voices, multiple (複数のボイス)
@cindex shift rest, automatic (自動的な休符のシフト)
@funindex \shiftOn
@funindex shiftOn
@funindex \shiftOnn
@funindex shiftOnn
@funindex \shiftOnnn
@funindex shiftOnnn
@funindex \shiftOff
@funindex shiftOff
@funindex \mergeDifferentlyDottedOn
@funindex mergeDifferentlyDottedOn
@funindex \mergeDifferentlyDottedOff
@funindex mergeDifferentlyDottedOff
@funindex \mergeDifferentlyHeadedOn
@funindex mergeDifferentlyHeadedOn
@funindex \mergeDifferentlyHeadedOff
@funindex mergeDifferentlyHeadedOff
同じピッチ、同じ符頭を持ち、符幹の方向が逆で異なるボイスの中にある符頭は@c
自動的に 1 つの符頭にまとめられます -- マージされます。@c
しかしながら、音符の符頭が異なっていたり、符幹の方向が同じである場合は@c
マージされません。@c
異なるボイスの中にあり、符幹の方向が逆の休符は垂直方向にずらされます。@c
以下の例は 3 つの異なる状態を示しています
-- 第 1 小節の 1, 3 拍目、それに第 2 小節の 1 拍目で自動マージが失敗しています。
@lilypond[quote,verbatim,relative=2]
<<
{
c8 d e d c d c4
g'2 fis
} \\ {
c2 c8. b16 c4
e,2 r
} \\ {
\oneVoice
s1
e8 a b c d2
}
>>
@end lilypond
以下に示すように、異なる符頭を持つ音符をマージすることができます
-- 例外として、半音符と 4 分音符のマージはできません。@c
第 1 小節の 1 拍目の符頭がマージされました:
@lilypond[quote,verbatim,relative=2]
<<
{
\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
}
>>
@end lilypond
第 1 小節の 3 拍目のように異なる付点を持つ符頭もマージすることができます:
@lilypond[quote,relative=2,verbatim]
<<
{
\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
}
>>
@end lilypond
第 2 小節の最初の版音符と 8 分音符は正しくマージされていません。@c
なぜなら 3 つ以上の音符が同じ列に並ぶ場合、@c
自動マージは正しく機能できないからです。@c
今回のケースでは、マージされた符頭が間違っています。@c
マージが正しい符頭を選択できるようにするため、@c
マージすべきでない符頭に @code{\shift} を適用する必要があります。@c
ここでは、@code{\shiftOn} を適用することで、@c
最上段にある @notation{g} を列から外し、@c
@code{\mergeDifferentlyHeadedOn} を正しく機能させています。
@lilypond[quote,relative=2,verbatim]
<<
{
\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
}
>>
@end lilypond
@code{\shiftOn} コマンドは、ボイスの中にある音符がずれることを許可します
(強制はしません)。@c
@code{\shiftOn} がボイスに適用されると、そのボイスの中にある音符あるいは和音は、@c
同じ向きの符幹を持つ他のボイスと符幹が衝突する場合にのみ、ずらされます。@c
@code{\shiftOff} コマンドは、適用された時点から、@c
このタイプの音符の移動を禁止します。
デフォルトでは、@c
外側のボイス (通常はボイス 1 と 2) には @code{\shiftOff} が指定されていて、@c
内側のボイス (ボイス 3 以上) には @code{\shiftOn} が指定されています。@c
音符をずらす場合、上向きの符幹を持つボイス (奇数番号のボイス) は右側にずらされ、@c
下向きの符幹を持つボイス (偶数番号のボイス) は左側にずらされます。
簡略化された多声表記が内部的にどのように展開されるかをお見せするための@c
例を挙げます。
@warning{3 つ以上のボイスがある場合、@c
入力ファイルでのボイスの垂直方向の順序は、@c
譜上でのボイスの垂直方向の順序と同じにすべきではありません!}
@c KEEP LY
@lilypond[quote,verbatim]
\new Staff \relative c'' {
%% 簡略化された入力
<<
{ f2 } % 1: 最上段
\\
{ g,2 } % 2: 最下段
\\
{ d'2 } % 3: 真ん中の上側
\\
{ b2 } % 4: 真ん中の下側
>>
%% 上記の内部的な展開
<<
\new Voice = "1" { \voiceOne \shiftOff f'2 }
\new Voice = "2" { \voiceTwo \shiftOff g,2 }
\new Voice = "3" { \voiceThree \shiftOn d'2 } % shifts right
\new Voice = "4" { \voiceFour \shiftOn b2 } % shifts left
>>
}
@end lilypond
さらに 2 つのコマンド -- @code{\shiftOnn} と @code{\shiftOnnn} -- は、@c
複雑な状況で衝突を解決するために一時的に指定されるさらに大きなずれを提供します。@c
@rlearning{実際の音楽からの例} を参照してください。
音符は符幹の向きが反対である場合
(例えば、デフォルトのボイス 1 と 2 である場合や、@c
明示的に符幹の向きが反対になるよう指定されている場合)
にのみマージされます。
@predefined
@code{\mergeDifferentlyDottedOn},
@code{\mergeDifferentlyDottedOff},
@code{\mergeDifferentlyHeadedOn},
@code{\mergeDifferentlyHeadedOff}
@code{\shiftOn},
@code{\shiftOnn},
@code{\shiftOnnn},
@code{\shiftOff}
@endpredefined
@snippets
@lilypondfile[verbatim,quote,texidoc,doctitle]
{additional-voices-to-avoid-collisions.ly}
@lilypondfile[verbatim,quote,texidoc,doctitle]
{forcing-horizontal-shift-of-notes.ly}
@seealso
音楽用語集:
@rglos{polyphony}
学習マニュアル:
@rlearning{Multiple notes at once},
@rlearning{Voices contain music},
@rlearning{Real music example}
コード断片集:
@rlsr{Simultaneous notes}
内部リファレンス:
@rinternals{NoteColumn},
@rinternals{NoteCollision},
@rinternals{RestCollision}
@cindex collisions, ignoring (衝突を無視する)
@knownissues
@code{\override NoteColumn.ignore-collision = ##t} を使うと@c
異なるボイスにある符頭が異なる音符を不適切にマージします。
@lilypond[quote,relative=1,verbatim]
\mergeDifferentlyHeadedOn
<< { c16 a' b a } \\ { c,2 } >>
\override NoteColumn.ignore-collision = ##t
<< { c16 a' b a } \\ { c,2 } >>
@end lilypond
@ignore
@knownissues
上向きの符幹を持つ 8 分音符やそれよりも短い音符と下向きの符幹を持つ@c
半音符に対して @code{\mergeDifferentlyHeadedOn} を使用した場合、@c
8 分音符の符幹のオフセットはわずかに正しくなりません。@c
なぜなら、半音符の符頭シンボルと幅が異なるからです。
@c TODO investigate! Sometimes it works, sometimes not. --FV
The requirements for successfully merging different note heads that
are at the same time differently dotted are not clear.
同じ和音の中で同じ音符が異なる臨時記号を持つ場合、その和音の衝突回避は@c
サポートされません。@c
そのような場合、異名同音 (エンハーモニック) に書き換えるか、@c
クラスタという特殊な記譜法 (@ref{クラスタ} を参照してください)
を用いることを推奨します。
@end ignore
@node 自動パート結合
@unnumberedsubsubsec 自動パート結合
@translationof Automatic part combining
@cindex automatic part combining (自動パート結合)
@cindex part combiner (パート結合)
@cindex combining parts (パート結合)
@cindex a due part (二重奏パート)
@cindex solo part (ソロ パート)
@funindex \partcombine
@funindex partcombine
自動パート結合は 2 つのパートに分かれた音楽を単一の譜にマージします。@c
これはオーケストラ譜を譜刻する時に特に有用です。@c
ある範囲で 2 つのパートの音楽が同一である場合、@c
1 つの @code{Voice} だけが譜刻されます。@c
2 つのパートが異なる箇所では第 2 @code{Voice} が譜刻されます。@c
この場合、符幹の向きはそれぞれ上と下ににセットされ、@c
さらにソロ パートと @notation{二重奏 (due)} パートが識別されて@c
適切なマークが付けられます。
自動パート結合の構文は以下の通りです:
@example
\partcombine @var{musicexpr1} @var{musicexpr2}
@end example
以下の例は自動パート結合の基本的な機能を示しています:
2 つのパートを単一の譜に多声部として配置し@c
、それぞれの符幹の向きをセットしています。@c
個々のパート譜と結合譜で同じ変数が使用されています。
@lilypond[quote,verbatim]
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 |
d4 c b a |
g4 f( e) d |
e1 |
}
<<
\new Staff \instrumentOne
\new Staff \instrumentTwo
\new Staff \partcombine \instrumentOne \instrumentTwo
>>
@end lilypond
両パートの第 3 小節の音符は同じなので、片方の音符だけが譜刻されています。@c
符幹、スラー、それにタイの向きは、ソロなのかあるいは斉奏なのかによって、@c
自動的に設定されます。@c
多声が必要になる場合、第 1 パート (@code{one} と呼ばれるコンテキストを持ちます)
は常に上向きの符幹を持ち、@c
一方、第 2 パート (@code{two} と呼ばれるコンテキストを持ちます) は@c
常に下向きの符幹を持ちます。@c
ソロの場合、第 1 パートと第 2 パートにはそれぞれ @q{Solo} と @q{Solo II}
というマークが付けられます。@c
斉奏 (@notation{二重奏}) パートには、デフォルトで、テキスト @qq{a2} という@c
マークが付けられます。
@code{\partcombine} の 2 つの引数は別個の @code{Voice} コンテキストとして@c
解釈されます。@c
そのため、相対オクターブを用いる場合、両方のパートで @code{\relative} を@c
記述すべきです。@c
すなわち、以下のように記述します:
@example
\partcombine
\relative @dots{} @var{musicexpr1}
\relative @dots{} @var{musicexpr2}
@end example
@noindent
@code{\partcombine} の外側にある @code{\relative} セクションは @var{musicexpr1}
と @var{musicexpr2} のピッチには影響を与えません。
@funindex \partcombineChords
@funindex partcombineChords
@funindex \partcombineApart
@funindex partcombineApart
@funindex \partcombineUnisono
@funindex partcombineUnisono
@funindex \partcombineSoloI
@funindex partcombineSoloI
@funindex \partcombineSoloII
@funindex partcombineSoloII
@funindex \partcombineAutomatic
@funindex partcombineAutomatic
プロの楽譜では長いパッセージで、@c
2 つのボイスの音符のいくつかが同じでユニゾンとして譜刻できる場合であっても、@c
ボイスを分けて譜刻することがあります。
ですから、音符を和音に組み合わせることと、1 つのボイスをソロとして表示すること@c
は等価ではありません。@c
なぜなら、@code{\partcombine} 関数は各音符を個々に考慮するからです。
このような場合、@code{\partcombine} 関数を以下のコマンドで@c
オーバライドすることができます:
@code{...Once} で終わるコマンドは、コマンドの次に来る音符だけに適用されます。
@itemize
@item
@code{\partcombineApart} と @code{\partcombineApartOnce} は@c
音符を 2 つの別個のボイスとして譜刻します
-- たとえ和音やユニゾンにできる場合であっても分けて譜刻します。
@item
@code{\partcombineChords} と @code{\partcombineChordsOnce} は@c
音符を組み合わせて、和音として譜刻します。
@item
@code{\partcombineUnisono} と @code{\partcombineUnisonoOnce} は@c
音符を組み合わせて、@qq{ユニゾン} として譜刻します。
@item
@code{\partcombineSoloI} と @code{\partcombineSoloIOnce} は@c
ボイス 1 だけを譜刻して、@qq{Solo} のマークを付けます。
@item
@code{\partcombineSoloII} と @code{\partcombineSoloIIOnce} は@c
ボイス 2 だけを譜刻して、@qq{Solo} のマークを付けます。
@item
@code{\partcombineAutomatic} と @code{\partcombineAutomaticOnce}は@c
上記のコマンドの効果を終わらせ、標準の @code{\partcombine} に戻します。
@end itemize
@lilypond[quote,verbatim]
instrumentOne = \relative c' {
\partcombineApart c2^"apart" e |
\partcombineAutomatic e2^"auto" e |
\partcombineChords e'2^"chord" e |
\partcombineAutomatic c2^"auto" c |
\partcombineApart c2^"apart" \partcombineChordsOnce e^"chord once" |
c2 c |
}
instrumentTwo = \relative c' {
c2 c |
e2 e |
a,2 c |
c2 c' |
c2 c |
c2 c |
}
<<
\new Staff { \instrumentOne }
\new Staff { \instrumentTwo }
\new Staff { \partcombine \instrumentOne \instrumentTwo }
>>
@end lilypond
@snippets
@lilypondfile[verbatim,quote,texidoc,doctitle]
{combining-two-parts-on-the-same-staff.ly}
@lilypondfile[verbatim,quote,texidoc,doctitle]
{changing-partcombine-texts.ly}
@seealso
音楽用語集:
@rglos{a due},
@rglos{part}
記譜法リファレンス:
@ref{Writing parts}
コード断片集:
@rlsr{Simultaneous notes}
内部リファレンス:
@rinternals{PartCombineMusic},
@rinternals{Voice}
@knownissues
すべての @code{\partcombine...} はボイスを 2 つだけ受け取ることができ、@c
歌詞を処理するようには設計されていません。@c
ボイスに歌詞が付けられている場合、パート結合は処理を停止します。
@code{\partcombine} 関数を @code{\times} ブロックや @code{\relative} ブロック@c
の中に置くことはできません。
@code{printPartCombineTexts} がセットされていて、ある小節で 2 つのボイスの@c
音符が同じである場合、@c
パート結合はその小節で @code{a2} を複数譜刻する可能性があります。
@code{\partcombine} は @code{Voice} の中の音符の開始だけを検知します。@c
例えば、ある @code{Voice} でパート結合を開始した時に、@c
他の @code{Voice} で音符がすでに開始しているかどうかを知ることはできません。@c
このことは @qq{Solo} や @qq{Unison} が不適切に譜刻されるといった@c
予期しない問題を引き起こす可能性があります
@code{\partcombine} はすべてのスパナ (スラー、タイ、強弱のヘアピン等) を@c
同じ @code{Voice} で維持します。@c
そのため、異なる @code{Voice} で始まる / 終わるスパナは@c
不適切にの譜刻されたり、全く譜刻されなかったりする可能性があります。
@code{\partcombine} 関数が 2 つのパートを組み合わせることができない場合
(すなわち、2 つのボイスの演奏時間が異なる場合)、@c
内部的に 2 つのボイスにカスタム名を付与します:
それぞれ @code{one} と @code{two} です。@c
このことは、異なる名前を付けられた @code{Voice} への @qq{切り替え}
があった場合、@c
その @code{Voice} のイベントは無視されることを意味します。
@ref{Default tablatures} のタブ譜や @ref{Automatic beams} の @emph{音符}
に対して @code{\partcombine} を使う場合は、@c
それぞれの @emph{既知の問題と警告} も参照してください。
@node 音楽を並列に記述する
@unnumberedsubsubsec 音楽を並列に記述する
@translationof Writing music in parallel
@cindex writing music in parallel (音楽を並列に記述する)
@cindex interleaved music (間奏)
@cindex parallel music (並列な音楽)
@funindex \parallelMusic
@funindex parallelMusic
複数のパートを持つ音楽を入力コードの途中に挿入することができます。@c
関数 @code{\parallelMusic} は、@c
作成する変数名をいくつか持つリストと音楽表記を受け付けます。@c
各小節ごとの音楽表記は各変数の値となり、@c
後で音楽を譜刻するために使用することができます。
@warning{小節チェック @code{|} を使用する必要があり、@c
各小節は同じ長さでなければなりません。}
@lilypond[quote,verbatim]
\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 }
>>
@end lilypond
相対モードを使用することができます。@c
@code{\relative} コマンドを @code{\parallelMusic} 自体の中では@c
使用しないということに注意してください。@c
音符が前の音符と相対関係になるのはボイスの中であり、入力の中ではありません --
言い換えると、@code{voiceA} の相対音符は @code{voiceB} の音符を無視します。
@lilypond[quote,verbatim]
\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 }
>>
@end lilypond
これはピアノ譜で非常に良く機能します。@c
以下の例は、4 つの連続する小節を 4 つの変数に割り当てています:
@lilypond[quote,verbatim]
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
>>
}
>>
}
@end lilypond
@seealso
学習マニュアル:
@rlearning{Organizing pieces with variables}
コード断片集:
@rlsr{Simultaneous notes}