5.4.2 譜内部オブジェクト

これまでにコマンド \voiceXXX がスラー、タイ、運指法記号、符幹の向きに依存する他のすべてに対してどのように影響を与えるかを見てきました – ボイスを明示的にインスタンス化する を参照してください。 これらのコマンドは、多声部音楽を記述しているときに上下する旋律を見分けられるようにすることを可能にするために不可欠なものです。しかしながら、この自動機能をオーバライドする必要がある場合もあります。このオーバライドは音楽全体に対しても、個々の音符に対してもできます。この自動機能を制御しているプロパティは各レイアウト オブジェクトの direction プロパティです。まず、これは何をするのかを説明し、それから、作成済みのコマンドをいくつか紹介します。それらのコマンドを使うと、一般的な変更のための明示的なオーバライドをコードしなくて済みます。

スラーやタイのようなレイアウト オブジェクトはカーブを描き、曲がり、上下します。符幹やフラグのような他のオブジェクトも上下の向きによって位置が左右します。direction がセットされているときは、これは自動的に制御されます。


direction プロパティ

以下の例は、最初の小節でスラーのデフォルトの振る舞いを示しています。高い位置にある音符のスラーは音符の上にあり、低い位置にある音符のスターは音符の下にあります。次の小節では両方のスラーをすべて強制的に下向きにし、 さらに次の小節では両方のスラーをすべて強制的に上向きにし、 最後の小節ではスラーの向きをデフォルトに戻します。

a'4( g') c''( a') |
\override Slur.direction = #DOWN
a'4( g') c''( a') |
\override Slur.direction = #UP
a'4( g') c''( a') |
\revert Slur.direction
a'4( g') c''( a') |

[image of music]

ここで定数 DOWNUP を使っています。これらはそれぞれ値 -1+1 を持ち、定数の代わりにそれらの数値を使うこともできまはす。さらに値 0 を使う場合もあります。この値はスラーでは UP を意味するものとして扱われますが、いくつかのオブジェクトでは ‘center’ という意味になります。値 0 を持つ定数に CENTER があります。

しかしながら、これらの明示的なオーバライドは普通は使われません。もっと簡単で定義済みのコマンドが利用可能だからです。ここに一般的なコマンドの表を挙げます。それぞれのコマンドの意味が明白でない場合は、そのコマンドの意味を述べています。

下/左上/右元に戻す効果
\arpeggioArrowDown\arpeggioArrowUp\arpeggioNormal矢印が下に付く、上に付く、付かない
\dotsDown\dotsUp\dotsNeutral譜線を避けるための移動方向
\dynamicDown\dynamicUp\dynamicNeutral
\phrasingSlurDown\phrasingSlurUp\phrasingSlurNeutralNote: スラー コマンドとは別になります
\slurDown\slurUp\slurNeutral
\stemDown\stemUp\stemNeutral
\textSpannerDown\textSpannerUp\textSpannerNeutralスパナとして挿入されるテキストが譜の下/上にくる
\tieDown\tieUp\tieNeutral
\tupletDown\tupletUp\tupletNeutral連符記号が音符の下/上にくる

これらのコマンドで中立/通常の位置に戻すコマンドは \revert を用いることで実装されていて、これらは前に \once が付いて いない かもしれません。\override を用いて実装されているコマンドの効果を単一のタイミングに限定したいのであれば、明示的なオーバライドの場合と同様に、コマンドの前に \once を配置します。

あるいは、単に 1 つのレイアウト オブジェクトを上向きか下向きにしたいなら、方向指示子の ^_ を使うことができます:

a'4( g') c''( a') |
a'4^( g') c''_( a') |

[image of music]


運指

単一の音符に対する運指法記号の配置も direction プロパティによって制御できますが、direction を変更しても和音の運指法記号は影響を受けません。これから見ていくように、和音の中の個々の音符の運指法記号を制御するための特別なコマンドがあります。このコマンドを使うことで運指法記号を各音符の上、下、左、右に配置することができます。

まず、単一の音符の運指法記号に対する direction を効果を示します。最初の小節はデフォルト状態で、その後で DOWNUP を指定したときの効果を示します:

\relative {
  c''4-5 a-3 f-1 c'-5 |
  \override Fingering.direction = #DOWN
  c4-5 a-3 f-1 c'-5 |
  \override Fingering.direction = #UP
  c4-5 a-3 f-1 c'-5 |
}

[image of music]

しかしながら、direction プロパティをオーバライドすることは、手動で運指法記号を音符の上または下に配置するもっとも簡単な方法ではありません。運指法番号の前に - の代わりに _ または ^ を使う方が普通は適切です。ここで、上記の例にこの方法を用いた例を挙げます:

\relative {
  c''4-5 a-3 f-1 c'-5 |
  c4_5 a_3 f_1 c'_5 |
  c4^5 a^3 f^1 c'^5 |
}

[image of music]

direction プロパティは和音では無視されますが、方向を示す接頭辞 _^ は機能します。以下で示すように、デフォルトでは、運指法記号は和音の音符の上と下の両方に自動的に配置されます:

\relative {
  <c''-5 g-3>4
  <c-5 g-3 e-2>4
  <c-5 g-3 e-2 c-1>4
}

[image of music]

しかし、以下で示すように、運指法番号のすべてまたはいずれかを手動で強制的に和音の上または下に配置するために、これはオーバライドされるかもしれません:

\relative {
  <c''-5 g-3 e-2 c-1>4
  <c^5 g_3 e_2 c_1>4
  <c^5 g^3 e^2 c_1>4
}

[image of music]

\set fingeringOrientations コマンドを使うことによって和音の中にある個々の音符の運指法記号の配置をより細かく制御することさえできます。このコマンドのフォーマットは以下のようなものです:

\set fingeringOrientations = #'([up] [left/right] [down])

fingeringOrientationsVoice コンテキストのプロパティであり、New_fingering_engraver によって作成、使用されるため、\set が使用されます。

このプロパティには 1 つから 3 つまでの値のリストがセットされるかもしれません。このプロパティは運指法記号を上 (リストに up がある場合)、下 (リストに down がある場合)、左 (リストに left がある場合。リストに right がある場合は右) に配置します。逆に配置位置がリストされていない場合、その位置に運指法記号は配置されません。LilyPond はこれらの制約を受け取り、 後に続く和音の音符への運指法記号をうまく配置します。leftright は相互排他的であるということに注意してください – 運指法記号は左右のどちらかにしか配置されないか、どちらにも配置されません。

Note: このコマンドを使って単一の音符への運指法記号の配置をコントロールするには、その音符を山括弧で囲んで単一音符の和音として記述する必要があります。

いくつか例を挙げます:

\relative {
  \set fingeringOrientations = #'(left)
  <f'-2>4
  <c-1 e-2 g-3 b-5>4
  \set fingeringOrientations = #'(left)
  <f-2>4
  <c-1 e-2 g-3 b-5>4 |
  \set fingeringOrientations = #'(up left down)
  <f-2>4
  <c-1 e-2 g-3 b-5>4
  \set fingeringOrientations = #'(up left)
  <f-2>4
  <c-1 e-2 g-3 b-5>4 |
  \set fingeringOrientations = #'(right)
  <f-2>4
  <c-1 e-2 g-3 b-5>4
}

[image of music]

運指法記号が少し込み合っているように見える場合は、font-size でサイズを下げることができます。デフォルト値は内部リファレンスの Fingering オブジェクトのページから -5 であることがわかるので、-7 にセットしてみましょう:

\relative {
  \override Fingering.font-size = #-7
  \set fingeringOrientations = #'(left)
  <f'-2>4
  <c-1 e-2 g-3 b-5>4
  \set fingeringOrientations = #'(left)
  <f-2>4
  <c-1 e-2 g-3 b-5>4 |
  \set fingeringOrientations = #'(up left down)
  <f-2>4
  <c-1 e-2 g-3 b-5>4
  \set fingeringOrientations = #'(up left)
  <f-2>4
  <c-1 e-2 g-3 b-5>4 |
  \set fingeringOrientations = #'(right)
  <f-2>4
  <c-1 e-2 g-3 b-5>4
}

[image of music]


LilyPond — 学習マニュアル v2.23.82 (開発版).