| [ < ] | [ > ] | [ << ] | [ 上へ ] | [ >> ] | [トップ] | [目次] | [インデックス] | [ ? ] |
@translationof Collisions of objects
| 4.6.1 オブジェクトを移動させる | ||
| 4.6.2 表記の重なりを修正する | ||
| 4.6.3 実際の音楽からの例 |
| [ < ] | [ > ] | [ << ] | [ 上へ ] | [ >> ] | [トップ] | [目次] | [インデックス] | [ ? ] |
@translationof Moving objects
これを聞いて驚くかもしれませんが、LilyPond は完璧ではありません。いくつかの記譜要素が重なりある可能性があります。これは遺憾なことですが、実際にはごく稀です。通常、オブジェクトを移動させる必要性は読みやすさや美しさのためです – オブジェクトの周りにもう少しスペースを多く/少なくとった方がより良くなるといった場合です。
記譜要素の重なりを解決する主要なアプローチが 3 つあります。それらは以下の順番で考慮されるべきです:
\override を用いて変更することになるかもしれません。オブジェクト プロパティに変更を加えることの利点は、(a) スペースをとる必要がある場合に他のいくつかのオブジェクトは自動的に移動させられます、(b) 1 回のオーバライドを同じオブジェクト タイプのインスタンスすべてに適用することができます。変更するプロパティには以下のものが含まれます:
direction
これはすでに詳しくカバーされています – 譜内部オブジェクト を参照してください。
padding, left-padding,
right-padding, staff-padding
あるオブジェクトが配置されるとき、そのオブジェクトの
padding プロパティが、そのオブジェクトとそのオブジェクトに最も隣接するオブジェクトの端との間に置かれる間隔を指定します。配置される最中のオブジェクトの padding 値が使用されるということに注意してください。すでに配置されたオブジェクトの padding 値は無視されます。padding によって指定された間隔は side-position-interface をサポートするオブジェクトすべてに適用することができます。
臨時記号のグループの配置は、padding の代わりに、left-padding と
right-padding によって制御されます。これらのプロパティは AccidentalPlacement オブジェクトの中にあり、注意すべきことに、そのオブジェクトは
Staff コンテキストの中にあります。譜刻プロセスでは、符頭が最初に譜刻され、臨時記号 (がある場合は) が次に符頭の左側に付け加えられます。このとき、臨時記号と符頭の間隔は
right-padding プロパティによって指定されます。そのため、AccidentalPlacement オブジェクトの
right-padding プロパティだけが臨時記号の配置に影響を与えます。
staff-padding プロパティは padding プロパティと深い関わりがあります:
padding プロパティは、side-position-interface をサポートするオブジェクトとそれに最隣接する他のオブジェクト
(一般には音符や譜線) との間のスペースの最小量を制御します。一方、staff-padding は常に譜の外側に配置されるレイアウト オブジェクトにのみ適用されます –
これは譜の外側に配置されるオブジェクトと譜の間に挿入されるべきスペースの最小量を制御します。staff-paddin は譜ではなく音符との相対関係で配置されるオブジェクトには影響を与えないということに注意してください。そのようなオブジェクトに対して staff-padding のオーバライドを行ったとしてもエラーは起きないかもしれませんが、無視されます。
あなたが再配置しようとしているオブジェクトに対して求められる
padding プロパティはどれなのかを見つけるには、内部リファレンスに戻ってそのオブジェクトのプロパティを調べる必要があります。padding プロパティはあなたが再配置しようとしているオブジェクトの中には無いかもしれないということに注意してください。その場合は、そのオブジェクトに関係があるオブジェクトを調べてください。
すべての padding 値は譜スペースで測られます。たいていのオブジェクトでは、この値はデフォルトで約 1.0 かそれ以下にセットされています (それぞれのオブジェクトで値はさまざまです)。間隔を大きく (あるいは小さく) する必要がある場合、その値はオーバライドされるかもしれません。
self-alignment-X
このプロパティを使うことで、親オブジェクトの参照ポイントに従って、オブジェクトを左、右、中央に揃えることができます。このプロパティは self-alignment-interface をサポートするオブジェクトすべてに対して使用することができます。一般に、テキストを保持するオブジェクトです。値は Left, RIGHT, CENTER です。代替手段として、-1 から +1 までの数値を指定することもできます。-1 は左揃えであり、+1 は右揃え、その間の数値は左揃えから右揃えへのテキストを移動させます
(訳者: -0.5 であれば、左揃えと中央揃えの中間ということ)。1 よりも大きな数値を指定することでテキストをさらに左へ、-1 よりも小さな数値を指定することでテキストをさらに右へ移動させることができます。この値を 1 増減することによる移動量はそのテキストの長さの半分です。
extra-spacing-width
このプロパティは item-interface をサポートするオブジェクトすべてで利用可能です。このプロパティは 2 つの数値をとり、最初の数値はオブジェクトの左側に余白を追加し、2 番目の数値はオブジェクトの右側に余白を追加します。負値はオブジェクトの端を左に移動させ、正値は右に移動させます。そのため、オブジェクトを広くするには、最初の数値を負値にして、2 番目の数値を正値にする必要があります。すべてのオブジェクトが両方の数値を遵守するわけではないということに注意してください。例えば、Accidental オブジェクトは最初の数値 (左端) にしか注意を払いません。
staff-position
staff-position は staff-symbol-referencer-interface のプロパティです。これは、譜との相対関係で配置されるオブジェクトによってサポートされます。このプロパティはオブジェクトの垂直方向の位置を、譜の中央にある譜線から譜スペースの半分を単位として、指定します。このプロパティは複数小節に亘る休符、タイ、異なるボイスの中にある音符といったレイアウト オブジェクトの衝突を解決する場合に有用です。
horizontal-shift
ボイスの中で、同じタイミングにある全ての音符は 1 つの音符列にグループ化され、NoteColumn オブジェクトがその音符のグループの水平位置をコントロールするために作成されます (@ref{Explicitly instantiating voices} の
“Note columns” を参照してください)。
もし 1 つの Staff コンテキストにある 2 つ以上の音符列が、同じタイミングで出現し同じ向きの符幹を持つ場合に限り、それらの horizontal-shift
プロパティの値が順位を付けるために使用され、高い順位にあるものが優先的に符頭の衝突を避けるために移動します。このプロパティは \voiceXXX
コマンドによってセットされ、\override コマンドで直接上書きすることができますが、通常は \shiftOn コマンドによって上書きします。注意しなければならないことは、このプロパティは移動の 順位 を決定するだけだけであり、移動の大きさを決定するものではないということです。
移動の大きさは、順位ごとに符頭の幅を基にして 1 つずつ大きくなっていきます。1 つ分の幅は通常符頭の幅の半分ですが、それで近い場合には符頭 1 つ分の幅になります。
force-hshift
force-hshift プロパティは NoteColumn のプロパティです
(実際には note-column-interface のプロパティです)。このプロパティを変更することで、音符列が重なってしまう場合において音符列を移動させることができます。重ならない音符列には効果が無いということに注意してください。移動の量は音符列特有の単位、すなわち最初のボイスの中にある音符の符頭の幅で指定されます。
このプロパティは、通常の
\shiftOn コマンド
(ボイスを明示的にインスタンス化する を参照してください)
が音符の衝突を十分に解決できないような複雑な状況で使用されるべきです。この目的のためには、extra-offset プロパティを用いるよりも
force-hshift プロパティを用いる方が好ましいです。なぜなら、譜スペースを単位とした距離を算出する必要が無く、NoteColumn の内外に音符を移動させることは符頭のマージといった他のアクションに影響を与えるからです。
extra-offsetこのプロパティは grob-interface をサポートするレイアウト オブジェクトのいずれかに適用されます。このプロパティはペアになった数値をとり、それぞれの数値は水平方向と垂直方向の移動を指定します。負値はオブジェクトを左または下へ移動させます。単位は譜スペースです。この移動はオブジェクトの譜刻が完了した後に行われるため、あるオブジェクトを任意の位置へ、他のオブジェクトに影響を与えることなく、再配置することができます。
positionsこのプロパティは、連桁、スラー、連符の傾きと高さを手動で調節するために最も有用なプロパティです。このプロパティはペアになった数値をとり、それぞれの数値は連桁、スラーなどの左端と右端の位置を譜の中央線との距離で指定します。単位は譜スペースです。けれども、スラーとフレージング スラーを任意の値で再配置することはできないということに注意してください。LilyPond はまずスラーが取り得る位置のリストを生成し、それからデフォルトでは
“最良に見える” スラーを探します。positions がオーバライドされていた場合、そのリストの中からリクエストされた位置に最も近いスラーが選択されます。
あるオブジェクトがこれらのプロパティすべてを持っているわけではありません。内部リファレンスに行き、そのオブジェクトではどのプロパティが利用可能なのかを調べる必要があります。
ここで、衝突に関係しそうなオブジェクトをリスト アップします。内部リファレンスを調べるためのオブジェクト名を付けるので、それらのオブジェクトを移動させるのに使うプロパティを見つけ出すのに使ってください。
| オブジェクト タイプ | オブジェクト名 |
|---|---|
| アーティキュレーション (Articulation) | Script |
| 連桁 (Beam) | Beam |
| 強弱記号 (Dynamic) (垂直方向) | DynamicLineSpanner |
| 強弱記号 (Dynamic) (水平方向) | DynamicText |
| 運指法記号 (Fingering) | Fingering |
| リハーサル / テキスト記号 (Rehearsal / Text mark) | RehearsalMark |
| スラー (Slur) | Slur |
テキスト – つまり、^"text" (Text) | TextScript |
| タイ (Tie) | Tie |
| 連符 (Tuplet) | TupletBracket |
| [ < ] | [ > ] | [ << ] | [ 上へ ] | [ >> ] | [トップ] | [目次] | [インデックス] | [ ? ] |
@translationof Fixing overlapping notation
今度は、前のセクションで扱ったプロパティが記譜の重なりを解決する手助けをどのようにできるかを見ていきましょう。
padding プロパティ | ||
right-padding プロパティ | ||
staff-padding プロパティ | ||
self-alignment-X プロパティ | ||
staff-position プロパティ | ||
extra-offset プロパティ | ||
positions プロパティ | ||
force-hshift プロパティ |
| [ < ] | [ > ] | [ << ] | [ 上へ ] | [ >> ] | [トップ] | [目次] | [インデックス] | [ ? ] |
padding プロパティ@translationof The padding property
padding プロパティに値をセットすることによって、音符とその上または下に譜刻される記号との間の距離を増減することができます。
c'2\fermata \override Script.padding = #3 b2\fermata
% これは機能しません。この下を見てください \override MetronomeMark.padding = #3 \tempo 4 = 120 c'1 | % これは機能します \override Score.MetronomeMark.padding = #3 \tempo 4 = 80 d'1 |
2 番目の例では、ある特定のオブジェクトを扱うのはどのコンテキストなのかを突き止めることが重要であるということに注意してください。MetronomeMark オブジェクトは Score コンテキストの中で処理されるため、Voice コンテキストの中でのプロパティの変更は無視されます。更に詳細を知りたければ、
(notation)Modifying properties section ‘Modifying properties’ in Notation Reference を参照してください。
outside-staff-priority に従って配置されているオブジェクトの並びの中のあるオブジェクトの padding プロパティが増やされた場合、そのオブジェクトとそれよりも外側にあるすべてオブジェクトが移動させられます。
| [ < ] | [ > ] | [ << ] | [ 上へ ] | [ >> ] | [トップ] | [目次] | [インデックス] | [ ? ] |
right-padding プロパティ@translationof The right-padding property
right-padding プロパティは臨時記号とそれが適用される音符との間のスペースに影響を与えます。このプロパティを変更することは必ずしも必要ではありませんが、微分音の音楽で使われる特殊な臨時記号の図柄や図柄の組み合わせに対してデフォルトのスペースが適切ではない場合に必要となるかもしれません。臨時記号のステンシルを望みのシンボルを保持するマークアップにオーバライドする必要があります:
sesquisharp = \markup { \sesquisharp } \relative { c''4 % これは 1.5 倍シャープを譜刻しますが、スペースが小さすぎます \once \override Accidental.stencil = #ly:text-interface::print \once \override Accidental.text = #sesquisharp cis4 c % これはスペースを改善しています \once \override Score.AccidentalPlacement.right-padding = #0.6 \once \override Accidental.stencil = #ly:text-interface::print \once \override Accidental.text = #sesquisharp cis4 | }
これは必然的に臨時記号のステンシルをオーバライドすることになります。このオーバライドについては後々までカバーされません。ステンシル タイプは手続きでなければならず、ここでは Accidental の
text プロパティの内容
– 内容には 1.5 倍シャープがセットされています
– を譜刻するように変更されています。それらの記号は right-padding のオーバライドによって符頭からさらに遠くへ移動させられています。
| [ < ] | [ > ] | [ << ] | [ 上へ ] | [ >> ] | [トップ] | [目次] | [インデックス] | [ ? ] |
staff-padding プロパティ@translationof The staff-padding property
staff-padding を使うことで、強弱記号などのオブジェクトを、他のオブジェクトが譜から離すよう強制しない限り、譜から一定の距離にあるベースラインに揃えることができます。このプロパティは DynamicText のプロパティではなく、DynamicSpanner のプロパティです。この理由は、このベースラインは延長スパナを含む すべて の強弱記号に等しく適用されるべきだからです。そのため、これは以前のセクションでの例の中にある強弱記号を揃えるための方法になります:
\override DynamicLineSpanner.staff-padding = #3 \relative { a'4\f b\mf a\p b\mp }
| [ < ] | [ > ] | [ << ] | [ 上へ ] | [ >> ] | [トップ] | [目次] | [インデックス] | [ ? ] |
self-alignment-X プロパティ@translationof The self-alignment-X property
以下の例はこのプロパティが、運指法記号オブジェクトの右端を親の音符の参照ポイントに揃えることによって、弦楽器の運指法記号オブジェクトと音符の符幹との相対位置を調整している様子を示しています:
\voiceOne <a''\2> \once \override StringNumber.self-alignment-X = #RIGHT <a''\2>
| [ < ] | [ > ] | [ << ] | [ 上へ ] | [ >> ] | [トップ] | [目次] | [インデックス] | [ ? ] |
staff-position プロパティ@translationof The staff-position property
あるボイスの中にある複数小節に亘る休符は他のボイスの中にある音符と衝突する可能性があります。このような休符は小節線と小節線の間の中央に譜刻されるため、LilyPond がそれと衝突するかもしれない音符を突き止めるのは非常に困難です。なぜなら、現在の音符間それに音符-休符間の衝突対応は、同時に起こる音符と休符に対してのみ行われるからです。以下に、このタイプの衝突の例を挙げます:
<< \relative { c'4 c c c } \\ { R1 } >>
ここでの最良の解決策は、複数小節に亘る休符を下へ移動させることです。なぜなら、その休符はボイス 2 の中にあるからです。\voiceTwo (すなわち、<<{…} \\ {…}>> 構造の
2 番目のボイス) のデフォルト状態では、MultiMeasureRest の staff-position は -4 にセットされています。そのため、そのプロパティを、例えば半譜スペース 4 つ分押し下げるには、-8 に変更する必要があります。
<< \relative { c'4 c c c } \\ \override MultiMeasureRest.staff-position = #-8 { R1 } >>
これは、例えば extra-offset を使うよりも良い解決方法です。なぜなら、その休符の上に加線が自動的に挿入されるからです。
| [ < ] | [ > ] | [ << ] | [ 上へ ] | [ >> ] | [トップ] | [目次] | [インデックス] | [ ? ] |
extra-offset プロパティ@translationof The extra-offset property
extra-offset プロパティは、あるオブジェクトの水平方向と垂直方向の配置を完全に制御します。
以下の例では、2 番目の運指法記号が少し左に、そして 1.8 譜スペース下に移動させられています:
f'4-5 \once \override Fingering.extra-offset = #'(-0.3 . -1.8) f'4-5
| [ < ] | [ > ] | [ << ] | [ 上へ ] | [ >> ] | [トップ] | [目次] | [インデックス] | [ ? ] |
positions プロパティ@translationof The positions property
positions プロパティは連符、スラー、フレージング スラー、連桁の位置を手動で制御することができ、それにより傾きも制御できます。
ここで、フレージング スラーとスラーが衝突している例を示します:
\relative { a'8 \( ( a'16 ) a \) }
衝突を解決するために、フレージング スラーの両端を上に移動させます。左端を譜中央線よりも 2.5 譜スペース上に設定し、右端を 4.5 譜スペース上に設定すると、LilyPond は候補の中から両端の位置が最も設定に近いフレージング スラーを選択します:
\once \override PhrasingSlur.positions = #'(2.5 . 4.5) a'8 \( ( a''16 ) a'' \)
これで改善されました。しかしながら、スラーの右端を少し下げてみてはどうでしょうか?そうしようとした場合、この方法では実行できないことがわかります。すでに表示されているスラーよりも右端が下がっている候補は無く、そのような場合には positions は効果を持たないからです。しかしながら、必要があればタイ、スラー、それにフレージング スラーの位置と形状を非常に正確に設定することが できます。正確な設定を行う方法は
(notation)Modifying ties and slurs section ‘Modifying ties and slurs’ in Notation Reference で学習してください。
もう 1 つ例を示します。連桁がタイと衝突しています:
{ \time 4/2 << \relative { c'1~ 2. e8 f } \\ \relative { e''8 e e e e e e e f2 g } >> << \relative { c'1~ 2. e8 f } \\ \relative { e''8 e e e e e e e f2 g } >> }
これは、譜の中央線から 1.81 譜スペース上の位置にある連桁の両端を、例えば、1 に手動で上げることによって解決することができます:
{ \time 4/2 << \relative { c'1~ 2. e8 f } \\ \relative { \override Beam.positions = #'(-1 . -1) e''8 e e e e e e e f2 g } >> << \relative { c'1~ 2. e8 f } \\ \relative { e''8 e e e e e e e f2 g \revert Beam.positions } >> }
オーバライドの効果は継続して第 2 小節のボイス 2 の 8 分音符にも適用されていますが、ボイス 1 の連桁には、その後の第 2 小節においてもまったく適用されていないということに注意してください。例に示したように、オーバライドがもう適用されるべきでないところではオーバライドをリバートするべきです。
| [ < ] | [ > ] | [ << ] | [ 上へ ] | [ >> ] | [トップ] | [目次] | [インデックス] | [ ? ] |
force-hshift プロパティ@translationof The force-hshift property
今や、私はボイスを聴いている の最後で挙げた Chopin の例にどのように修正を加えるべきかを知っています。この例は以下のような状態でした:
\new Staff \relative { \key aes \major << { c''2 aes4. bes8 } \\ { <ees, c>2 des } \\ \\ { aes'2 f4 fes } >> | <c ees aes c>1 | }
最初の和音の内声の音 (つまり、4 番目のボイスにある A-フラット) を上の音符の音符列からずらす必要はありません。そのために \shiftOff を用います。
2 番目の和音では、F を A-フラットに揃えて、符幹の衝突を避けるために最下段の音符を少し右に移動させるべきでしょう。そうするには、D-フラットの NoteColumn の force-hshift
を設定して譜スペースの半分だけ右にずらし、F の force-hshift
をゼロにします。注意すべきことは、すぐ後のタイミングを越えて設定が伝播してしまわないように、
\once を使っているということです。
この小さい例においては、ボイス 4 の \once と 2 個目の
\override (訳注: \shiftOff のこと) は省略できますが、それは良い方法ではありません。
ここで、最終結果を挙げます:
\new Staff \relative { \key aes \major << { c''2 aes4. bes8 } \\ { <ees, c>2 \once \override NoteColumn.force-hshift = 0.5 des } \\ \\ { \once \shiftOff aes'2 \once \shiftOff f4 fes } >> | <c ees aes c>1 | }
| [ < ] | [ > ] | [ << ] | [ 上へ ] | [ >> ] | [トップ] | [目次] | [インデックス] | [ ? ] |
@translationof Real music example
調整についてのセクションを、望みの出力を作り出すためにいくつかの調整を必要とするトリッキーな例を処理するときにとられるステップを示すことで締めくくります。この例は、記譜法についての普通ではない問題を解決するための記譜法リファレンスの使い方を示すために慎重に選ばれたものです。この例は一般的な譜刻プロセスを代表するものではありません。ですから、この例の複雑さでやる気を失わないでください!幸いなことに、このように複雑な問題は非常に稀です!
この例は Chopin の Première Ballade, Op. 23 の第 6 - 9 小節からとりました。序盤の Lento から Moderato へと移調する部分です。まず最初に望んでいる出力挙げますが、例があまりにも複雑になり過ぎないように強弱記号、運指法記号、ペダル記号は省きました。
まず、第 3 小節の右手パートには 4 つのボイスが必要であることに注目します。それぞれのボイスは、連桁でつながれた 5 つの 8 分音符、タイで結ばれた C、半音符の D (これは 8 分音符の D とマージされています)、付点 4 分音符の F シャープ (これも同じピッチの 8 分音符とマージされています) です。他の部分はすべて単一のボイスなので、最も容易な方法は 4 つのボイスを必要になったときに一時的に導入する方法です。一時的に多声にする方法を忘れてしまったのならば、私はボイスを聴いている と ボイスを明示的にインスタンス化する を参照してください。 ここでは、多声パッセージに明示的にインスタンス化されたボイスを使うことにします。なぜなら、すべてのボイスが明示的にインスタンス化されている方が、LilyPond はうまく衝突を回避できるからです。
音符を 2 つの変数として入力し、譜構造を Score ブロックの中でセットアップすることから始めて、それで LilyPond がデフォルトでどのような出力を作り出すのか見てみましょう:
rhMusic = \relative { \new Voice { r2 c''4. g8 | bes1~ | \time 6/4 bes2. r8 % 4 つのボイスの多声セクションの開始 << { c,8 d fis bes a } % メイン ボイスの続き \new Voice { \voiceTwo c,8~ 2 } \new Voice { \voiceThree s8 d2 } \new Voice { \voiceFour s4 fis4. } >> | g2. % メイン ボイスの続き } } lhMusic = \relative { r2 <c' g ees>2 | <d g, d>1 | r2. d,,4 r4 r | r4 } \score { \new PianoStaff << \new Staff = "RH" << \key g \minor \rhMusic >> \new Staff = "LH" << \key g \minor \clef "bass" \lhMusic >> >> }
すべての音符は間違っていません。しかしながら、見た目は満足とは程遠いものです。タイは移調する拍子記号と衝突していて、第 3 小節の連桁の付け方は間違っていて、音符はマージされておらず、いくつかの記譜要素は欠けています。簡単なものから片付けていきましょう。連桁の付け方は手動で連桁を挿入することで修正でき、左手パートのスラーと右手パートのフレージング スラーは簡単に追加できます – なぜなら、これらはすべてチュートリアルでカバーされているからです。これらの修正を加えると、以下のようになります:
rhMusic = \relative { \new Voice { r2 c''4.\( g8 | bes1~ | \time 6/4 bes2. r8 % 4 つのボイスの多声セクションの開始 << { c,8 d fis bes a } % メイン ボイスの続き \new Voice { \voiceTwo c,8~ 2 } \new Voice { \voiceThree s8 d2 } \new Voice { \voiceFour s4 fis4. } >> | g2.\) % メイン ボイスの続き } } lhMusic = \relative { r2 <c' g ees>2( | <d g, d>1) | r2. d,,4 r4 r | r4 } \score { \new PianoStaff << \new Staff = "RH" << \key g \minor \rhMusic >> \new Staff = "LH" << \key g \minor \clef "bass" \lhMusic >> >> }
第 1 小節は正しくなりました。第 2 小節にはアルペジオが含まれていて、2 重の小節線で終わります。この学習マニュアルではこれらのことは言及されてこなかったのに、どうやってやればいいのでしょうか?ここで、記譜法リファレンスに移行する必要があります。索引で ‘arpeggio’ と ‘bar line’ を探せばすぐに、アルペジオは
\arpeggio を和音の後に付け加えることによって作り出され、2 重小節線は \bar "||" コマンドによって作り出されることがわかります。それは簡単にできます。次に、タイと拍子記号の衝突を修正する必要があります。これはタイを上に移動させる方法が最善です。オブジェクトの移動については以前に オブジェクトを移動させる でカバーしました。そこでは、譜との相対位置で配置されるオブジェクトは、そのオブジェクトの staff-position プロパティをオーバライドすることによって、移動させることができると述べられています。このプロパティは譜スペースの半分を単位として、譜の中央線からの距離で指定されます。ですから、以下の以下のオーバライドをタイで結ばれる最初の音符の前に置けば、タイは中央線から 3.5 半譜スペースだけ上の位置に移動させられます:
\once \override Tie.staff-position = #3.5
これで第 2 小節の修正も完了で、以下のようになります:
rhMusic = \relative { \new Voice { r2 c''4.\( g8 | \once \override Tie.staff-position = #3.5 bes1~ | \bar "||" \time 6/4 bes2. r8 % 4 つのボイスの多声セクションの開始 << { c,8 d fis bes a } % メイン ボイスの続き \new Voice { \voiceTwo c,8~ 2 } \new Voice { \voiceThree s8 d2 } \new Voice { \voiceFour s4 fis4. } >> | g2.\) % メイン ボイスの続き } } lhMusic = \relative { r2 <c' g ees>2( | <d g, d>1)\arpeggio | r2. d,,4 r4 r | r4 } \score { \new PianoStaff << \new Staff = "RH" << \key g \minor \rhMusic >> \new Staff = "LH" << \key g \minor \clef "bass" \lhMusic >> >> }
第 3 小節 – Moderato セクションの開始部分 – に取り掛かります。チュートリアルで \tempo コマンドを使ってテンポ表示を付け加える方法を示しましたので、‘Moderato’ を付け加えることは容易です。しかし、異なるボイスの中にある音符をマージするにはどうするのでしょうか?ここで、助けを求めて記譜法リファレンスに移行する必要があります。記譜法リファレンスで “merge” を探せばすぐに、
(notation)Collision resolution section ‘Collision resolution’ in Notation Reference で符頭や付点の付き方が異なる音符をマージするためのコマンドにたどり着きます。今回の例では、多声部セクションで両方のタイプの音符をマージする
(異なる符頭を持つ音符のマージと、付点の付き方が異なる音符のマージ)
必要があるので、記譜法リファレンスで見つけた情報を使って、以下のコマンド:
\mergeDifferentlyHeadedOn \mergeDifferentlyDottedOn |
を多声部セクションの開始点に置き、以下のコマンド:
\mergeDifferentlyHeadedOff \mergeDifferentlyDottedOff |
をセクションの終了点に置きます。これで、例は以下のようになります:
オーバライドは 2 つの F シャープの音符をマージしましたが、2 つの D をマージしませんでした。なぜマージしなかったのでしょうか?その答えは記譜法リファレンスの同じセクションにあります
– マージされる音符は反対向きの符幹を持っていなくてはならず、同じ音符列に 3 つ目の音符がある場合は 2 つの音符をマージさせることはできません。今回の例では、2 つの D は両方とも上向きの符幹を持っていて、3 つ目の音符 – C – が存在します。我々は \stemDown を用いて符幹の向きを変更する方法を知っていて、記譜法リファレンスも C を移動させる方法について述べています –
\shift コマンドの 1 つを用いてシフトを行います。しかし、どのシフトを行えばよいのでしょうか?C はシフト off のボイス 2 の中にあり、2 つの D はボイス 1 とボイス 3 –
それぞれ、シフト off とシフト on – の中にあります。ですから、C が 2 つの D と衝突するのを避けるために、\shiftOnn を用いて C を更にシフトさせる必要があります。これらの変更を加えると、以下のようになります:
rhMusic = \relative { \new Voice { r2 c''4.\( g8 | \once \override Tie.staff-position = #3.5 bes1~ | \bar "||" \time 6/4 bes2.\tempo "Moderato" r8 \mergeDifferentlyHeadedOn \mergeDifferentlyDottedOn % 4 つのボイスの多声セクションの開始 << { c,8 d fis bes a } % メイン ボイスの続き \new Voice { \voiceTwo % c2 をメインの音符列から外したため、 % マージが機能します c,8~ \shiftOnn c2 } \new Voice { \voiceThree % マージさせるために d2 の符幹を下向きにする必要があります s8 \stemDown d2 } \new Voice { \voiceFour s4 fis4. } >> | \mergeDifferentlyHeadedOff \mergeDifferentlyDottedOff g2.\) % メイン ボイスの続き } } lhMusic = \relative { r2 <c' g ees>2( | <d g, d>1)\arpeggio | r2. d,,4 r4 r | r4 } \score { \new PianoStaff << \new Staff = "RH" << \key g \minor \rhMusic >> \new Staff = "LH" << \key g \minor \clef "bass" \lhMusic >> >> }
もうちょっとです。残っている問題は 2 つだけです:
マージされた D の下向きの符幹はあるべきではなく、C は D の右側に配置した方が良いということです。以前に行った調整からこれらを行う方法を両方とも知っています:
符幹を透明にして、force-hshift プロパティを用いて C を移動させます。ここで、最終結果を示します:
rhMusic = \relative { \new Voice { r2 c''4.\( g8 | \once \override Tie.staff-position = #3.5 bes1~ | \bar "||" \time 6/4 bes2.\tempo "Moderato" r8 \mergeDifferentlyHeadedOn \mergeDifferentlyDottedOn % 4 つのボイスの多声セクションの開始 << { c,8 d fis bes a } % メイン ボイスの続き \new Voice { \voiceTwo c,8~ % マージされる音符の右にある c2 を再配置します \once \override NoteColumn.force-hshift = #1.0 % c2 をメインの音符列から外したため、マージが機能します \shiftOnn c2 } \new Voice { \voiceThree s8 % マージさせるために d2 の符幹を下向きにする必要があります \stemDown % d2 の符幹を不可視にします \tweak Stem.transparent ##t d2 } \new Voice { \voiceFour s4 fis4. } >> | \mergeDifferentlyHeadedOff \mergeDifferentlyDottedOff g2.\) % メイン ボイスの続き } } lhMusic = \relative { r2 <c' g ees>2( | <d g, d>1)\arpeggio | r2. d,,4 r4 r | r4 } \score { \new PianoStaff << \new Staff = "RH" << \key g \minor \rhMusic >> \new Staff = "LH" << \key g \minor \clef "bass" \lhMusic >> >> }
| [ < ] | [ > ] | [ << ] | [ 上へ ] | [ >> ] |
This document was generated by gub on 7 月 13, 2020 using texi2html 1.82.
他の言語: English, català, deutsch, español, français, italiano, nederlands
About automatic language selection.