[ << 出力を調整する ] | [トップ][目次][インデックス] | [ テンプレート >> ] |
[ < オブジェクトを移動させる ] | [ 上へ : オブジェクトの衝突 ] | [ padding プロパティ > ] |
5.6.2 表記の重なりを修正する
今度は、前のセクションで扱ったプロパティが記譜の重なりを解決する手助けをどのようにできるかを見ていきましょう。
padding プロパティ | ||
right-padding プロパティ | ||
staff-padding プロパティ | ||
self-alignment-X プロパティ | ||
staff-position プロパティ | ||
extra-offset プロパティ | ||
positions プロパティ | ||
force-hshift プロパティ |
[ << 出力を調整する ] | [トップ][目次][インデックス] | [ テンプレート >> ] |
[ < 表記の重なりを修正する ] | [ 上へ : 表記の重なりを修正する ] | [ right-padding プロパティ > ] |
padding
プロパティ
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
コンテキストの中でのプロパティの変更は無視されます。更に詳細を知りたければ、
Modifying properties を参照してください。
outside-staff-priority
に従って配置されているオブジェクトの並びの中のあるオブジェクトの padding
プロパティが増やされた場合、そのオブジェクトとそれよりも外側にあるすべてオブジェクトが移動させられます。
[ << 出力を調整する ] | [トップ][目次][インデックス] | [ テンプレート >> ] |
[ < padding プロパティ ] | [ 上へ : 表記の重なりを修正する ] | [ staff-padding プロパティ > ] |
right-padding
プロパティ
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
のオーバライドによって符頭からさらに遠くへ移動させられています。
[ << 出力を調整する ] | [トップ][目次][インデックス] | [ テンプレート >> ] |
[ < right-padding プロパティ ] | [ 上へ : 表記の重なりを修正する ] | [ self-alignment-X プロパティ > ] |
staff-padding
プロパティ
staff-padding
を使うことで、強弱記号などのオブジェクトを、他のオブジェクトが譜から離すよう強制しない限り、譜から一定の距離にあるベースラインに揃えることができます。このプロパティは DynamicText
のプロパティではなく、DynamicSpanner
のプロパティです。この理由は、このベースラインは延長スパナを含む すべて の強弱記号に等しく適用されるべきだからです。そのため、これは以前のセクションでの例の中にある強弱記号を揃えるための方法になります:
\override DynamicLineSpanner.staff-padding = #3 \relative { a'4\f b\mf a\p b\mp }
[ << 出力を調整する ] | [トップ][目次][インデックス] | [ テンプレート >> ] |
[ < staff-padding プロパティ ] | [ 上へ : 表記の重なりを修正する ] | [ staff-position プロパティ > ] |
self-alignment-X
プロパティ
以下の例はこのプロパティが、運指法記号オブジェクトの右端を親の音符の参照ポイントに揃えることによって、弦楽器の運指法記号オブジェクトと音符の符幹との相対位置を調整している様子を示しています:
\voiceOne <a''\2> \once \override StringNumber.self-alignment-X = #RIGHT <a''\2>
[ << 出力を調整する ] | [トップ][目次][インデックス] | [ テンプレート >> ] |
[ < self-alignment-X プロパティ ] | [ 上へ : 表記の重なりを修正する ] | [ extra-offset プロパティ > ] |
staff-position
プロパティ
あるボイスの中にある複数小節に亘る休符は他のボイスの中にある音符と衝突する可能性があります。このような休符は小節線と小節線の間の中央に譜刻されるため、LilyPond がそれと衝突するかもしれない音符を突き止めるのは非常に困難です。なぜなら、現在の音符間それに音符-休符間の衝突対応は、同時に起こる音符と休符に対してのみ行われるからです。以下に、このタイプの衝突の例を挙げます:
<< \relative { c'4 c c c } \\ { R1 } >>
ここでの最良の解決策は、複数小節に亘る休符を下へ移動させることです。なぜなら、その休符はボイス 2 の中にあるからです。\voiceTwo
(すなわち、<<{…} \\ {…}>>
構造の
2 番目のボイス) のデフォルト状態では、MultiMeasureRest
の staff-position
は -6
にセットされています。そのため、そのプロパティを、例えば半譜スペース 4 つ分押し下げるには、-10
に変更する必要があります。
<< \relative { c'4 c c c } \\ \override MultiMeasureRest.staff-position = #-10 { R1 } >>
これは、例えば extra-offset
を使うよりも良い解決方法です。なぜなら、その休符の上に加線が自動的に挿入されるからです。
正確な値と不正確な値の違いについては、 タイを手動で譜刻する を参照してください。
[ << 出力を調整する ] | [トップ][目次][インデックス] | [ テンプレート >> ] |
[ < staff-position プロパティ ] | [ 上へ : 表記の重なりを修正する ] | [ positions プロパティ > ] |
extra-offset
プロパティ
extra-offset
プロパティは、あるオブジェクトの水平方向と垂直方向の配置を完全に制御します。
以下の例では、2 番目の運指法記号が少し左に、そして 1.8 譜スペース下に移動させられています:
f'4-5 \once \override Fingering.extra-offset = #'(-0.3 . -1.8) f'4-5
[ << 出力を調整する ] | [トップ][目次][インデックス] | [ テンプレート >> ] |
[ < extra-offset プロパティ ] | [ 上へ : 表記の重なりを修正する ] | [ force-hshift プロパティ > ] |
positions
プロパティ
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
は効果を持たないからです。しかしながら、必要があればタイ、スラー、それにフレージング スラーの位置と形状を非常に正確に設定することが できます。正確な設定を行う方法は
Modifying ties and slurs で学習してください。
もう 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 小節においてもまったく適用されていないということに注意してください。例に示したように、オーバライドがもう適用されるべきでないところではオーバライドをリバートするべきです。
[ << 出力を調整する ] | [トップ][目次][インデックス] | [ テンプレート >> ] |
[ < positions プロパティ ] | [ 上へ : 表記の重なりを修正する ] | [ 実際の音楽からの例 > ] |
force-hshift
プロパティ
今や、私はボイスを聴いている の最後で挙げた 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 | }
[ << 出力を調整する ] | [トップ][目次][インデックス] | [ テンプレート >> ] |
[ < positions プロパティ ] | [ 上へ : 表記の重なりを修正する ] | [ 実際の音楽からの例 > ] |