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

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

padding プロパティ

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

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

[image of music]

% This will not work, see below:
\override MetronomeMark #'padding = #3
\tempo 4=120
c1
% This works:
\override Score.MetronomeMark #'padding = #3
\tempo 4=80
d1

[image of music]

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

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

left-padding と right-padding

right-padding プロパティは臨時記号とそれが適用される音符との間のスペースに影響を与えます。このプロパティを変更することは必ずしも必要ではありませんが、以下の例は変更を必要とする状況の 1 つを示しています。B ナチュラルと B フラットの両方を保持する和音を譜刻したいとします。あいまいさ (あるいは多義: ここでは B が B ナチュラルと B フラットの両方に解釈できるということ) を避けるために、音符の前にナチュラル記号とフラット記号の両方を置くことにします。以下に、それを達成するための試みをいくつか挙げます:

<b bes>
<b! bes>
<b? bes>

[image of music]

どれもうまくいっていません。2 番目と 3 番目の (和) 音符では 2 つの記号が衝突しています。

これを達成するための方法の 1 つは、臨時記号のステンシルを、ナチュラル記号とフラット記号を望んでいる並びで保持しているマークアップでオーバライドすることです。以下のように:

naturalplusflat = \markup { \natural \flat }
\relative c'' {
  \once \override Accidental
    #'stencil = #ly:text-interface::print
  \once \override Accidental #'text = #naturalplusflat
  \once \override Score.AccidentalPlacement #'right-padding = #1.5
  <b bes>
}

[image of music]

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

staff-padding プロパティ

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

\dynamicUp
% Extend width by 1 unit
\override DynamicText #'extra-spacing-width = #'(-0.5 . 0.5)
% Align dynamics to a base line 2 units above staff
\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 がそれと衝突するかもしれない音符を突き止めるのは非常に困難です。なぜなら、現在の音符間それに音符-休符間の衝突対応は、同時に起こる音符と休符に対してのみ行われるからです。以下に、このタイプの衝突の例を挙げます:

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

[image of music]

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

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

[image of music]

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

extra-offset プロパティ

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

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

\stemUp
f-5
\once \override Fingering
    #'extra-offset = #'(-0.3 . -1.8)
f-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]

さらに、Chopin の 前奏曲 Op 28 No. 2 の左手の譜の開始部分から取った例を挙げます。連桁が上部にある音符と衝突しています:

{
\clef "bass"
<< {b,8 ais, b, g,} \\ {e, g e, g} >>
<< {b,8 ais, b, g,} \\ {e, g e, g} >>
}

[image of music]

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

{
  \clef "bass"
  <<
    \override Beam #'positions = #'(3 . 3)
    {b,8 ais, b, g,}
  \\
    {e, g e, g}
  >>
  << {b,8 ais, b, g,} \\ {e, g e, g} >>
}

[image of music]

オーバライドの効果は継続して 2 番目のブロックのボイス 1 にも適用されていますが、ボイス 2 の連桁にはまったく適用されていないということに注意してください。

force-hshift プロパティ

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

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

[image of music]

最初の和音の下の方にある 2 つの音符 (つまり、3 番目のボイス (ボイス 4) の音符) を上の方にある 2 つの音符の音符列からずらすべきではありません。これを修正するには、下の音符の force-hshift – これは NoteColumn のプロパティです – を 0 にセットします。2 番目の和音の下の方の音符は、上の方の音符のすぐ右に置くのが最良です。そうするには、この音符の force-hshift を 0.5 にセットします – つまり、上の方の音符の音符列から符頭の幅の半分だけ右にずらします。

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

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

[image of music]


他の言語: English, deutsch, español, français, nederlands

LilyPond — 学習マニュアル

inserted by FC2 system