4.5.2 表記の重なりを修正する

今度は、前のセクションで扱ったプロパティが記譜の重なりを解決する手助けをどのようにできるかを見ていきましょう。

padding プロパティ

padding プロパティに値をセットすることによって、音符とその上または下に譜刻される記号との間の距離を増減することができます。

c2\fermata
\override Script #'padding = #3
b2\fermata

[image of music]

% これは機能しません。この下を見てください
\override MetronomeMark #'padding = #3
\tempo 4 = 120
c1 |
% これは機能します
\override Score.MetronomeMark #'padding = #3
\tempo 4 = 80
d1 |

[image of music]

2 番目の例では、ある特定のオブジェクトを扱うのはどのコンテキストなのかを突き止めることが重要であるということに注意してください。MetronomeMark オブジェクトは Score コンテキストの中で処理されるため、Voice コンテキストの中でのプロパティの変更は無視されます。更に詳細を知りたければ、 Modifying properties を参照してください。

outside-staff-priority に従って配置されているオブジェクトの並びの中のあるオブジェクトの padding プロパティが増やされた場合、そのオブジェクトとそれよりも外側にあるすべてオブジェクトが移動させられます。

right-padding

right-padding プロパティは臨時記号とそれが適用される音符との間のスペースに影響を与えます。このプロパティを変更することは必ずしも必要ではありませんが、微分音の音楽で使われる特殊な臨時記号の図柄や図柄の組み合わせに対してデフォルトのスペースが適切ではない場合に必要となるかもしれません。臨時記号のステンシルを望みのシンボルを保持するマークアップにオーバライドする必要があります:

sesquisharp = \markup { \sesquisharp }
\relative c'' {
  c4
  % これは 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 |
}

[image of music]

これは必然的に臨時記号のステンシルをオーバライドすることになります。このオーバライドについては後々までカバーされません。ステンシル タイプは手続きでなければならず、ここでは Accidentaltext プロパティの内容 – 内容には 1.5 倍シャープがセットされています – を譜刻するように変更されています。それらの記号は right-padding のオーバライドによって符頭からさらに遠くへ移動させられています。

staff-padding プロパティ

staff-padding を使うことで、強弱記号などのオブジェクトを、それらが取り付けられる音符の位置に依存した高さではなく、譜上のある固定した高さのベースラインに揃えることができます。このプロパティは DynamicText のプロパティではなく、DynamicSpanner のプロパティです。この理由は、このベースラインは延長スパナを含む すべて の強弱記号に等しく適用されるべきだからです。そのため、これは以前のセクションでの例の中にある強弱記号を揃えるための方法になります:

\dynamicUp
% 幅を 1 単位広げます
\override DynamicText #'extra-spacing-width = #'(-0.5 . 0.5)
% 強弱記号を譜から 2 単位上のベース ラインに揃えます
\override DynamicLineSpanner #'staff-padding = #2
a4\f b\mf c\mp b\p

[image of music]

self-alignment-X プロパティ

以下の例はこのプロパティが、運指法記号オブジェクトの右端を親の音符の参照ポイントに揃えることによって、弦楽器の運指法記号オブジェクトと音符の符幹とのこのプロパティが衝突を解決している様子を示しています:

\voiceOne
<a\2>
\once \override StringNumber #'self-alignment-X = #RIGHT
<a\2>

[image of music]

staff-position プロパティ

あるボイスの中にある複数小節に亘る休符は他のボイスの中にある音符と衝突する可能性があります。このような休符は小節線と小節線の間の中央に譜刻されるため、LilyPond がそれと衝突するかもしれない音符を突き止めるのは非常に困難です。なぜなら、現在の音符間それに音符-休符間の衝突対応は、同時に起こる音符と休符に対してのみ行われるからです。以下に、このタイプの衝突の例を挙げます:

<< { c4 c c c } \\ { R1 } >>

[image of music]

ここでの最良の解決策は、複数小節に亘る休符を下へ移動させることです。なぜなら、その休符はボイス 2 の中にあるからです。\voiceTwo (すなわち、<<{...} \\ {...}>> 構造の 2 番目のボイス) のデフォルト状態では、MultiMeasureReststaff-position-4 にセットされています。そのため、そのプロパティを、例えば半譜スペース 4 つ分押し下げるには、-8 に変更する必要があります。

<<
  { c4 c c c }
  \\
  \override MultiMeasureRest #'staff-position = #-8
  { R1 }
>>

[image of music]

これは、例えば extra-offset を使うよりも良い解決方法です。なぜなら、その休符の上に加線が自動的に挿入されるからです。

extra-offset プロパティ

extra-offset プロパティは、あるオブジェクトの水平方向と垂直方向の配置を完全に制御します。

以下の例では、2 番目の運指法記号が少し左に、そして 1.8 譜スペース下に移動させられています:

\stemUp
f4-5
\once \override Fingering #'extra-offset = #'(-0.3 . -1.8)
f4-5

[image of music]

positions プロパティ

positions プロパティは連符、スラー、フレージング スラー、連桁の位置と傾きを手動で制御することを可能にします。ここで、装飾音符に付いたスラーを避けようとしているために醜いフレージング スラーを持つ例を挙げます。

r4 \acciaccatura e8\( d8 c~ c d c d\)

[image of music]

フレージング スラーを音符の上へ移動させることで、より良い結果が得られます:

r4
\phrasingSlurUp
\acciaccatura e8\( d8 c~ c d c d\)

[image of music]

しかし、何らかの理由でそうすることができない場合、それに代わる解決策は、positions プロパティを使ってフレージング スラーの左端を少し下げることです。この方法でも見栄えの悪さを解決できます。

r4
\once \override PhrasingSlur #'positions = #'(-4 . -3)
\acciaccatura e8\( d8 c~ c d c d\)

[image of music]

{
  \time 4/2
  <<
    { c'1 ~ c'2. e'8 f' }
    \\
    { e''8 e'' e'' e''  e'' e'' e'' e''  f''2 g'' }
  >>
  <<
    { c'1 ~ c'2. e'8 f' }
    \\
    { e''8 e'' e'' e''  e'' e'' e'' e''  f''2 g'' }
 >>
}

[image of music]

これは、譜の中央線から 1.81 譜スペース上の位置にある連桁の両端を、例えば、1 に手動で上げることによって解決することができます:

{
  \time 4/2
  <<
    { c'1 ~ c'2. e'8 f' }
    \\
    {
      \override Beam #'positions = #'(-1 . -1)
      e''8 e'' e'' e''  e'' e'' e'' e''  f''2 g''
    }
  >>
  <<
    { c'1 ~ c'2. e'8 f' }
    \\
    { e''8 e'' e'' e''  e'' e'' e'' e''  f''2 g'' }
  >>
}

[image of music]

オーバライドの効果は継続して第 2 小節のボイス 1 の 8 分音符にも適用されていますが、ボイス 2 の連桁にはまったく適用されていないということに注意してください。

force-hshift プロパティ

今や、私はボイスを聴いている の最後で挙げた Chopin の例にどのように修正を加えるべきかを知っています。この例は以下のような状態でした:

\new Staff \relative c'' {
  \key aes \major
  <<
    { c2 aes4. bes8 }
    \\
    { <ees, c>2 des }
    \\
    \\
    { aes'2 f4 fes }
  >> |
  <c ees aes c>1 |
}

[image of music]

最初の和音の内側の音符 (つまり、第 4 ボイスの A フラット) を上の音符の音符列からずらすべきではありません。これを修正するには、この音符の force-hshift – これは NoteColumn のプロパティです – を 0 にセットします。

2 番目の和音では、F を A に揃えて、符幹の衝突を避けるために最の下にある音符を少しだけ右にずらした方が好ましいです。そうするには、下にある D フラットの NoteColumn の中にある force-hshift を設定して、譜スペースの半分だけ右にずらします。

ここで、最終結果を挙げます:

\new Staff \relative c'' {
  \key aes \major
  <<
    { c2 aes4. bes8 }
    \\
    {
      <ees, c>2
      \once \override NoteColumn #'force-hshift = #0.5
      des2
    }
    \\
    \\
    {
      \override NoteColumn #'force-hshift = #0
      aes'2 f4 fes
    }
  >> |
  <c ees aes c>1 |
}

[image of music]


他の言語: English, česky, deutsch, español, français, italiano, nederlands
About automatic language selection.

LilyPond — 学習マニュアル

inserted by FC2 system