[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

5.4 役に立つコンセプトとプロパティ

@translationof Useful concepts and properties


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

5.4.1 入力モード

@translationof Input modes

入力ファイルの中に保持されている記譜を解釈する方法は、現在の入力モードによって決定されます。一般的には、入力モードを指定する方法は 2 種類あります: 長い形 (例えば \chordmode) と短い形 (例えば \chords) です。長い形は通常、入力を変数に格納する際や、明示的に作成されたコンテキストに直接音楽を入力する際に使用されます。短い形は、入力に対応したコンテキストを暗黙的に作成し、そのコンテキストに直接入力を渡します。入力を受け取るコンテキストを明示的に生成する必要がないような、シンプルな状況において有用です。

和音モード

このモードは \chordmode コマンドで有効になり、入力はコード記譜法の構文で解釈されるようになります。@ref{Chord notation} を参照してください。和音モードで入力された音楽は、Staff コンテキスト内では和音として、ChordNames コンテキスト内ではコード ネームとして、FretBoards コンテキスト内ではフレットボードとして表示されます。

和音モードは \chords コマンドでも有効になります。このコマンドを用いると、入力は暗黙的に作成された ChordNames コンテキストの中でコード記譜法の構文で解釈され、コード ネームとして表示されます。@ref{Printing chord names} を参照してください。

ドラム モード

このモードは \drummode コマンドで有効になり、入力はドラム記譜法の構文で解釈されるようになります。@ref{Basic percussion notation} を参照してください。ドラム モードで入力された音楽は、DrumStaff コンテキストの中で打楽器の音符として表示されます。

また、ドラム モードは \drums コマンドでも有効になります。このコマンドを用いると、入力は暗黙的に作成された DrumStaff コンテキストの中でドラム記譜法の構文で解釈され、打楽器の音符として表示されます。@ref{Basic percussion notation} を参照してください。

通奏低音モード

このモードは \figuremode コマンドで有効になり、入力は通奏低音の構文で解釈されるようになります。@ref{Entering figured bass} を参照してください。通奏低音モードで入力された音楽は、FiguredBass コンテキストか Staff コンテキストの中で通奏低音として表示されます。

また、通奏低音モードは \figures コマンドでも有効になります。このコマンドを用いると、入力は暗黙的に作成された FiguredBass コンテキストの中で通奏低音の構文で解釈され、通奏低音記号として表示されます。@ref{Introduction to figured bass} を参照してください。

フレットとタブ モード

フレット記号とタブ記号を入力するための特別な入力モードはありません。

タブ図を作成するには、音符モードで音符や和音を入力して、それらを TabStaff コンテキストの中に表示します。@ref{Default tablatures} を参照してください。

譜の上にフレット図を作成するには、音符モードか和音モードのどちらかで音符や和音を入力し、それらを FretBoards コンテキストの中に表示します。@ref{Automatic fret diagrams} を参照してください。または、フレット図は \fret-diagram コマンドを用いて、音符の上にマークアップとして入力することもできます。@ref{Fret diagram markups} を参照してください。

歌詞モード

このモードは \lyricmode コマンドで有効になり、入力はオプションで演奏時間を持つ歌詞音節や、歌詞の修飾子として解釈されます。@ref{Vocal music} を参照してください。歌詞モードでの入力は、Lyrics コンテキストの中で歌詞音節として表示されます。

また、歌詞モードは \lyrics コマンドでも有効になります。このコマンドを用いると、入力は暗黙的に作成された Lyrics コンテキストの中で歌詞音節の構文で解釈され、歌詞音節として表示されます。

また、歌詞モードは \addlyrics コマンドでも有効になります。このコマンドも同様に Lyrics コンテキストを暗黙的に作り出しますが、前にある音楽に紐づくように \lyricsto コマンドも暗黙的に作り出します。@ref{Automatic syllable durations} を参照してください。

マークアップ モード

このモードは \markup コマンドで有効になり、入力はマークアップの構文で解釈されるようになります。@ref{Text markup commands} を参照してください。

音符モード

このモードはデフォルトのモードであり、\notemode コマンドで有効にすることもできます。入力はピッチ、演奏時間、マークアップなどとして解釈され、譜面上に音楽記譜として写植されます。

通常、音符モードを明示的に指定する必要はありません。しかしながら、ある特定の状況 – 例えば、歌詞モード、和音モード、あるいは他のモードを使っていて、音符モードの構文でしか入力できないものを入力しようとしている場合 – では、音符モードを明示的に指定することが有用な場合があります。


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

5.4.2 向きと配置

@translationof Direction and placement

楽譜を写植しているとき、多くの要素の向きと配置には選択の余地があります。例えば、音符の符幹は上向きあるいは下向きにすることができ、歌詞、強弱記号、他の表現記号は譜の上あるいは下に配置することができ、テキストは左揃え、右揃え、あるいは中央揃えにすることができる、などです。これらの選択のほとんどは LilyPond によって自動的に決定されますが、強制的に向きや配置を指定することが望ましい場合もあります。


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

アーティキュレーションの方向指示子

@translationof Articulation direction indicators

デフォルトでは、アーティキュレーションのいくつかの向きは常に上または下になっています (例えば、強弱記号やフェルマータ)。一方、他のアーティキュレーションは、符幹の向きによって、向きが上下します (スラーやアクセントなど)。

アーティキュレーションの前に 方向指示子 を置くことで、デフォルトの向きをオーバライドすることができます。3 つの方向指示子があります: ^ (“上向き” を意味します)、_ (“下向き” を意味します)、それに - (“デフォルトの向き” を意味します) です。通常、方向指示子は省略することができ、その場合は - と見なされます。しかしながら、以下のものの前には 常に 方向指示子を置く必要があります:

方向指示子は、その後にくる音符だけに効果を持ちます:

 
\relative {
  c''2( c)
  c2_( c)
  c2( c)
  c2^( c)
}

[image of music]


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

方向プロパティ

@translationof The direction property

多くのレイアウト オブジェクトの位置や向きは、direction プロパティによって制御されます。

direction プロパティの値は、1 (“上向き” あるいは “上” を意味します)、-1 (“下向き” あるいは “下” を意味します) にセットすることができます。記号 UP と DOWN は、それぞれ 1 と -1 の代わりに用いることができます。デフォルトの向きを指定するには、direction を 0 あるいは CENTER にセットします。このような方法を用いる代わりに、多くの場合で、向きを指定するための前置コマンドが存在しています。それらはすべて以下のような形式をとります:

 
\xxxUp, \xxxDown, \xxxNeutral

ここで、\xxxNeutral は “デフォルトの向きを使用する” ことを意味します。 (learning)譜内部オブジェクト section ‘譜内部オブジェクト’ in Learning Manual を参照してください。

いくつかのケースでは – 一般的な例としてはアルペジオしかありません – direction プロパティの値は、オブジェクトが親オブジェクトの左右どちらに配置されるかを指定します。 この場合、-1 あるいは LEFT は “左側” を意味し、1 あるいは RIGHT は “右側” を意味します。0 あるいは CENTER は、前のケースと同様に、“デフォルトの向きを使用する” ことを意味します。

これらの指示子は、キャンセルされるまで効果を持ちます。

 
\relative {
  c''2( c)
  \slurDown
  c2( c)
  c2( c)
  \slurNeutral
  c2( c)
}

[image of music]

多声の音楽では、一般的にオブジェクトの向きを変えるよりも明示的に voice を指定した方が良いです。更なる情報は、@ref{Multiple voices} を参照してください。

参照

学習マニュアル: (learning)Within-staff objects section ‘Within-staff objects’ in Learning Manual

記譜法リファレンス: @ref{Multiple voices}


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

5.4.3 距離と距離の単位

@translationof Distances and measurements

LilyPond における距離には 2 つのタイプがあります: 絶対距離と相対距離です。

絶対距離は、マージン、インデント、それにその他の詳細なページ レイアウトを指定するために使用され、デフォルトではミリメートルで指定されます。 距離は以下の単位で指定することもできます: \mm, \cm, \inch (インチ), それに \pt (ポイント。1/73.27 インチ) です。また、ページ レイアウトにおける距離は、値の後ろに \staff-space を付けることにより、 比率で指定することもできます (次の段落を参照してください)。ページ レイアウトについての詳細は、@ref{Page layout} に記述されています。

相対距離は常に譜スペースを単位として指定されます – 稀に、半譜スペースが使用されます。譜スペースは隣り合う 2 本の譜線間の距離です。グローバル譜サイズを設定することにより、デフォルト値をグローバルに変更することができます。また、StaffSymbol の staff-space プロパティを変更することにより、譜スペースをローカルにオーバライドすることもできます。相対距離は、グローバル譜サイズや StaffSymbol の staff-space プロパティのいずれかが変更されると、自動的に変更されます。しかしながら、フォントの比率はグローバル譜サイズが変更された場合にのみ、自動的に変更されます。そのため、グローバル譜サイズは容易に描画される楽譜全体のサイズを変更することができます。グローバル譜サイズを設定するための手段については、譜サイズを設定する を参照してください。

楽譜のある部分だけの比率を変更したいのなら – 例えば、オッシア セクションや脚注で – 単純にグローバル譜サイズを変更するわけにはいきません。なぜなら、グローバル譜サイズを変更すると、楽譜全体が影響を受けるからです。そのような場合、StaffSymbol の staff-space プロパティとフォントのサイズをオーバライドすることにより、サイズを変更します。フォント サイズの変更を staff-space 単位の変更に変換するには、Scheme 関数 magstep を使用することができます。この関数の説明と使用例については、 (learning)オブジェクトの長さと太さ section ‘オブジェクトの長さと太さ’ in Learning Manual を参照してください。

参照

学習マニュアル: (learning)オブジェクトの長さと太さ section ‘オブジェクトの長さと太さ’ in Learning Manual

記譜法リファレンス: @ref{Page layout}, 譜サイズを設定する


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

5.4.4 寸法

@translationof Dimensions

グラフィカル オブジェクトの寸法 (大きさ) は、オブジェクトのバウンディング ボックスの左右端の位置、上下端の位置を指定します。これらはオブジェクトの参照ポイントからの距離で指定し、単位は譜スペースです。これらの位置は通常 2 つの Scheme ペアで表現します。例えば、テキスト マークアップ コマンド \with-dimensions は 3 つの引数を取り、最初の 2 つが左右端の位置と上下端の位置を示す Scheme ペアです:

 
\with-dimensions #'(-5 . 10) #'(-3 . 15) arg

これは arg のバウンディング ボックスの左端を -5, 右端を 10, 下端を -3, 上端を 15 に指定しています。全てオブジェクトの参照ポイントから、譜スペースの単位で計測されています。

参照

記譜法リファレンス: 距離と距離の単位


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

5.4.5 譜記号プロパティ

@translationof Staff symbol properties

譜線の垂直位置と譜線の本数を同時に定義することができます。以下の例が示すように、音符の位置は譜線の位置には影響されません。

Note: 'line-positions プロパティは 'line-count をオーバライドします。譜線の本数は、'line-positions の値リストの中にある要素数によって、暗黙的に定義されます。

 
\new Staff \with {
  \override StaffSymbol.line-positions = #'(7 3 0 -4 -6 -7)
}
\relative { a4 e' f b | d1 }

[image of music]

譜の幅を変更することができます。単位は譜スペースです。譜内部のオブジェクトのスペースは、この設定によって影響を受けません。

 
\new Staff \with {
  \override StaffSymbol.width = #23
}
\relative { a4 e' f b | d1 }

[image of music]


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

5.4.6 スパナ

@translationof Spanners

多くの音楽記譜オブジェクトは、複数の音符あるいは複数の小節にまたがって、広がりを持ちます。例としては、スラー、連桁、連譜の囲み、volta 繰り返しの囲み、クレッシェンド、トリル、それにグリッサンドがあります。そのようなオブジェクトは総称して “スパナ” と呼ばれ、それらの見た目と振る舞いを制御するための特殊なプロパティを持ちます。これらのプロパティのいくつかは、すべてのスパナに共通しています。他のプロパティはスパナの部分集合に限定されています。

すべてのスパナは spanner-interface をサポートします。いくつかのスパナ – 2 つのオブジェクトの間に直線を描くもの – は、さらに、line-spanner-interface をサポートします。


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

spanner-interface を使用する

@translationof Using the spanner-interface

このインターフェイスは、いくつかのスパナに適用される 2 つのプロパティを提供します。

The minimum-length プロパティ

スパナの最短の長さは、minimum-length プロパティによって指定されます。通常、このプロパティを増加させると、スパナの両端の間にある音符の間隔は増加します。しかしながら、このオーバライドは多くのスパナで効果を持ちません。なぜなら、それらの長さは他の要素によって決定されるからです。以下に効果を持つ例を 2, 3 示します。

 
a'~ a'
a'
% タイの長さを増加させます
-\tweak minimum-length #5
~ a'

[image of music]

 
\relative \compressMMRests {
  a'1
  R1*23
  % 休符バーの長さを増加させます
  \once \override MultiMeasureRest.minimum-length = #20
  R1*23
  a1
}

[image of music]

 
\relative {
  a' \< a a a \!
  % ヘアピンの長さを増加させます
  \override Hairpin.minimum-length = #20
  a \< a a a \!
}

[image of music]

さらに、このオーバライドはスラーとフレージング スラーの長さを増加させるためにも使用されます:

 
\relative {
  a'( g)
  a
  -\tweak minimum-length #5
  ( g)

  a\( g\)
  a
  -\tweak minimum-length #5
  \( g\)
}

[image of music]

いくつかのレイアウト オブジェクトでは、minimum-length プロパティは、set-spacing-rods プロシージャが明示的に呼び出された場合にのみ効果を持ちます。このプロシージャを呼び出すには、springs-and-rods プロパティにly:spanner::set-spacing-rods をセットしておく必要があります。例えば、グリッサンドの最短長は、springs-and-rods プロパティが設定されていない限り、効果を持ちません:

 
% デフォルト
e' \glissando c''

% 単独では効果を持ちません
\once \override Glissando.minimum-length = #20
e' \glissando c''

% 以下の両方のオーバライドが存在する場合にのみ、効果を持ちます
\once \override Glissando.minimum-length = #20
\once \override Glissando.springs-and-rods = #ly:spanner::set-spacing-rods
e' \glissando c''

[image of music]

Beam オブジェクトでも同じことが言えます:

 
% 単独では効果を持ちません
\once \override Beam.minimum-length = #20
e'8 e' e' e'

% 以下の両方のオーバライドが存在する場合にのみ、効果を持ちます
\once \override Beam.minimum-length = #20
\once \override Beam.springs-and-rods = #ly:spanner::set-spacing-rods
e'8 e' e' e'

[image of music]

The to-barline プロパティ

spanner-interface の 2 番目に有用なプロパティは to-barline です。デフォルトではこのプロパティは真であり、小節の最初の音符のところで終了するヘアピンや他のスパナは直前の小節線のところで終了させられます。偽に設定すると、スパナは小節線を越えて、音符のところで終了します:

 
\relative {
  a' \< a a a a \! a a a \break
  \override Hairpin.to-barline = ##f
  a \< a a a a \! a a a
}

[image of music]

このプロパティはすべてのスパナに対して効果を持つわけではありません。例えば、スラーやフレージング スラー、あるいは小節線で終了させることに意味が無い他のスパナに対して、このプロパティを #t に設定しても効果がありません。


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

line-spanner-interface を使用する

@translationof Using the line-spanner-interface

line-spanner-interface をサポートするオブジェクトには以下のものがあります:

これらのスパナのステンシルを描画する責任を持つルーチンは ly:line-spanner::print です。このルーチンはスパナの両端の位置を綿密に決定し、求めに応じたスタイルでそれらの間に線を描きますスパナの両端の位置はオンザフライ (その場、その時々) で算出されますが、それらの Y 座標をオーバライドすることができます。指定する必要のあるプロパティは、プロパティ階層内で 2 階層下にネストされていますが、この \override コマンドは非常にシンプルです:

 
e''2 \glissando b'
\once \override Glissando.bound-details.left.Y = #3
\once \override Glissando.bound-details.right.Y = #-2
e''2 \glissando b'

[image of music]

Y プロパティの単位は staff-space であり、譜の中央線が 0 位置です。グリッサンドでは、スパナの両端は各符頭の中心であり、Y はそれらの点を上下させます。

Y が設定されていない場合、値はスパナの両端の垂直位置から算出されます。

改行の場合、終点の Y の値は bound-details の部分リスト left-broken や right-broken のによって指定されます。例を示します:

 
\override Glissando.breakable = ##t
\override Glissando.bound-details.right-broken.Y = #-3
c''1 \glissando \break
f''1

[image of music]

bound-details プロパティの部分リスト left や right の下位プロパティのいくつかは、Y と同じ方法で変更することができます:

Y

終点の Y 座標を、譜の中央線からの staff-space オフセットで、設定します。デフォルトでは、終点オブジェクトの中心です。ですから、グリッサンドは符頭の中心に向かって進みます。

水平方向に広がるスパナ – テキスト スパナやトリル スパナなど – では、この値は 0 に固定されています。

attach-dir

スパナのラインがオブジェクトの左右どちらから始まり、終わるのかを決定します。-1 (あるいは LEFT) であれば、ラインは符頭の左側から開始あるいは終了します。

X

終点の絶対 X 座標です。通常、オンザフライ (その場、その時々) で算出され、これをオーバライドしてもあまり意味がありません。

stencil

ライン スパナは開始点や終了点で記号を持つ場合があり、その記号はこのサブ プロパティに保持されています。このサブ プロパティは内部で使用するためのものです。このサブ プロパティの代わりに text を使用することを推奨します。

text

ステンシルを作成するために評価されるマークアップです。水平スパナに cresc., tr それに他のテキストを配置するために使用されます。

 
\override TextSpanner.bound-details.left.text
   = \markup { \small \bold Slower }
\relative { c''2\startTextSpan b c a\stopTextSpan }

[image of music]

stencil-align-dir-y
stencil-offset

これらの 1 つを設定しなければ、ステンシルは、X と Y サブ プロパティで定義されたとおりに、ラインに中央揃えで、終点に配置されます。stencil-align-dir-y あるいは stencil-offset のどちらかを設定すると、記号が上下します:

 
\override TextSpanner.bound-details.left.stencil-align-dir-y = #-2
\override TextSpanner.bound-details.right.stencil-align-dir-y = #UP

\override TextSpanner.bound-details.left.text = "ggg"
\override TextSpanner.bound-details.right.text = "hhh"

\relative { c'4^\startTextSpan c c c \stopTextSpan }

[image of music]

予期される結果とは逆に、負の値はテキストを 上げる ということに注意してください。なぜなら、-1 あるいは DOWN はテキストの 下端 をスパナ ラインに揃え、 1 あるいは UP はテキストの 上端 をスパナ ラインに揃えるからです。

arrow

このサブ プロパティに #t をセットするとラインの終点に矢印が描かれます。

padding

このサブ プロパティはラインの終点と実際の終点の間のスペースを制御します。パディングがなければ、グリッサンドは両端の符頭の中心から描かれます。

音楽関数 \endSpanners は直後の音符から始まるスパナをすぐに終了させます。ちょうど 1 音符分でスパナを終了させますが、to-barline が真で、かつ、次の音符の前に小節線がある場合はその小節線のところでスパナを終了させます。

 
\relative c'' {
  \endSpanners
  c2 \startTextSpan c2 c2
  \endSpanners
  c2 \< c2 c2
}

[image of music]

\endSpanners を使用している場合、\startTextSpan を \endTextSpan で閉じる必要はなく、ヘアピンを \! で閉じる必要もありません。

参照

内部リファレンス: (internals)TextSpanner section ‘TextSpanner’ in Internals Reference, (internals)Glissando section ‘Glissando’ in Internals Reference, (internals)VoiceFollower section ‘VoiceFollower’ in Internals Reference, (internals)TrillSpanner section ‘TrillSpanner’ in Internals Reference, (internals)line-spanner-interface section ‘line-spanner-interface’ in Internals Reference


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

5.4.7 オブジェクトの可視性

@translationof Visibility of objects

レイアウト オブジェクトの可視性を制御する主な方法は 4 つあります: オブジェクトのステンシルを削除する方法、オブジェクトを透明にする方法、オブジェクトの色を白にする方法、あるいは、オブジェクトの break-visibility プロパティをオーバライドする方法です。 最初の 3 つの方法はすべてのレイアウト オブジェクトに適用されますが、最後の方法はいくつかの – 改行可能な オブジェクト – だけに適用されます。学習マニュアルでは、これら 4 つのテクニックについて紹介しています。 (learning)オブジェクトの可視性と色 section ‘オブジェクトの可視性と色’ in Learning Manual を参照してください。

さらに、特定のレイアウト オブジェクト特有のテクニックがいくつかあります。それらについては、特別な考慮でカバーされています。


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

ステンシルを削除する

@translationof Removing the stencil

レウアウト オブジェクトはそれぞれステンシル プロパティを持ちます。デフォルトでは、このプロパティはそのオブジェクトを描画する特殊な関数にセットされています。このプロパティが #f にオーバライドされた場合、関数は呼び出されず、そのオブジェクトは描画されません。\revert でデフォルトの動作に戻すことができます。

 
a1 a
\override Score.BarLine.stencil = ##f
a a
\revert Score.BarLine.stencil
a a a

[image of music]

これはよく使う操作であるため、\omit という短縮記法が存在します:

 
a1 a
\omit Score.BarLine
a a
\undo \omit Score.BarLine
a a a

[image of music]


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

オブジェクトを透明にする

@translationof Making objects transparent

レイアウト オブジェクトはそれぞれ transparent プロパティを持っていて、デフォルトでは #f にセットされています。#t にセットされると、そのオブジェクトはスペースを占めたままですが、不可視になります。

 
a'4 a'
\once \override NoteHead.transparent = ##t
a' a'

[image of music]

これにも \hide という短縮記法があります:

 
a'4 a'
\once \hide NoteHead
a' a'

[image of music]


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

オブジェクトを白で描く

@translationof Painting objects white

レイアウト オブジェクトはそれぞれ color プロパティを持っていて、デフォルトでは black にセットされています。このプロパティが white にセットされてると、そのオブジェクトは白い背景と区別が付かなくなります。しかしながら、そのオブジェクトが他のオブジェクトと交差している場合、交差している場所の色はオブジェクトの描画順序によって決定されます。これにより、以下に示すように、白いオブジェクトの画像が幽霊のように浮かび上がることがあります:

 
\override Staff.Clef.color = #white
a'1

[image of music]

オブジェクトの描画順序を変更することにより、これを回避することができます。すべてのレイアウト オブジェクトは layer プロパティを持っており、このプロパティには整数がセットされています。より小さな値の layer を持つオブジェクトが最初に描画され、より大きな値の layer を持つオブジェクトが後になってから描画されます。このため、より大きな値を持つオブジェクトがより小さな値を持つオブジェクトを上書きします。デフォルトでは、たいていのオブジェクトの layer には 1 が代入されています。しかしながら、いくつかのオブジェクト – StaffSymbol や BarLine など – には 0 が代入されています。同じ値の layer を持つオブジェクトを描画する順番は不確定です。

上記の例において、白い音部記号 (この layer のデフォルト値は 1 です) は譜線 (この layer のデフォルト値は 0 です) の後に描画されます。そのため、音部記号は譜線を上書きしています。これを変更するには、Clef オブジェクトの layer により小さな値 – 例えば、-1 – を与えて、音部記号を先に描画させる必要があります:

 
\override Staff.Clef.color = #white
\override Staff.Clef.layer = #-1
a'1

[image of music]


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

break-visibility を用いる

@translationof Using break-visibility

たいていのレイアウト オブジェクトは 1 回だけ描画されます。しかしながら、小節線、音部記号、拍子記号、それに調号などのオブジェクトは、改行が起こると 2 回描画する必要があります – 行の最後で 1 回、次の行の最初でもう 1 回。そのようなオブジェクトは 改行可能 と呼ばれ、それらのオブジェクトが描画される可能性がある 3 つの場所 – 行の先頭、行の途中 (それらが変更された場合)、それに、行の最後 (そこで変更が行われた場合) – における可視性を制御する break-visibility プロパティを持ちます。

例えば、デフォルトでは拍子記号は最初の行の先頭で描画されますが、変更されない限り他の場所には描画されません。変更された場合、拍子記号は変更が行われた場所に描画されます。この変更が行の最後で行われた場合、新しい拍子記号は次の行の先頭に描画され、その前の行の最後にも忠告の拍子記号が描画されます。

この振る舞いは break-visibility プロパティによって制御されます。このプロパティについての説明は (learning)オブジェクトの可視性と色 section ‘オブジェクトの可視性と色’ in Learning Manual を参照してください。このプロパティは 3 つのブール値からなるベクトルをとり、順に、そのオブジェクトが行の最後で描画されるかどうか、行の途中で描画されるかどうか、そして、行の先頭で描画されるかどうかを決定します。より正確には、改行の前、改行がない場合、改行の後です。

break-visibility プロパティによって制御する代わりに、これら 8 通りの組み合わせを ‘scm/output-lib.scm’ で定義されている定義済み関数によって指定することもできます。このファイルの中で、最後の 3 列がその列のヘッダで示される場所での可視性を表しています:

関数形式ベクトル形式改行前改行なし改行後
all-visible#(#t #t #t)yesyesyes
begin-of-line-visible#(#f #f #t)nonoyes
center-visible#(#f #t #f)noyesno
end-of-line-visible#(#t #f #f)yesnono
begin-of-line-invisible#(#t #t #f)yesyesno
center-invisible#(#t #f #t)yesnoyes
end-of-line-invisible#(#f #t #t)noyesyes
all-invisible#(#f #f #f)nonono

break-visibility のデフォルト設定はレイアウト オブジェクトによって異なります。以下の表は、break-visibility によって影響をうけるすべてのレイアウト オブジェクトと、そのプロパティのデフォルト設定を示しています:

レイアウト オブジェクト通常のコンテキストデフォルト設定
BarLineScorecalculated
BarNumberScorebegin-of-line-visible
BreathingSignVoicebegin-of-line-invisible
ClefStaffbegin-of-line-visible
CustosStaffend-of-line-visible
DoublePercentRepeatVoicebegin-of-line-invisible
KeyCancellationStaffbegin-of-line-invisible
KeySignatureStaffbegin-of-line-visible
ClefModifierStaffbegin-of-line-visible
RehearsalMarkScoreend-of-line-invisible
TimeSignatureStaffall-visible

以下の例は、小節線の可視性を制御するベクトルの使用方法を示しています:

 
\relative {
  f'4 g a b
  f4 g a b
  % カレント行の最後で小節線を削除します
  \once \override Score.BarLine.break-visibility = ##(#f #t #t)
  \break
  f4 g a b
  f4 g a b
}

[image of music]

break-visibility をオーバライドするために使用されるベクトルの要素 3 つをすべて記述する必要がありますが、それらすべてが各レイアウト オブジェクトに対して効果を持つわけではなく、組み合わせによってはエラーになる場合もあります。以下の制限があります:


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

特別な考慮を必要とするもの

@translationof Special considerations

明示的な変更の後の可視性

break-visibility プロパティが調号の可視性と音部記号の変更を制御するのは、行の先頭 – つまり、改行の後 – においてだけです。行の途中や終わりでの明示的な調の変更や音部記号の変更の後に出現する調号や音部記号の可視性には効果を持ちません。以下の例では、all-invisible がセットされていますが、B フラット メジャーへの明示的な変更の後に出現する調号は可視のままです。

 
\relative {
  \key g \major
  f'4 g a b
  % すべての調号を削除しようと試みます
  \override Staff.KeySignature.break-visibility = #all-invisible
  \key bes \major
  f4 g a b
  \break
  f4 g a b
  f4 g a b
}

[image of music]

そのような明示的な調号や音部記号の変更の可視性は explicitKeySignatureVisibility プロパティや explicitClefVisibility プロパティによって制御されます。これらは break-visibility プロパティと等価であり、どちらも break-visibility と同様に 3 つのブール値からなるベクトルか上でリストアップした定義済み関数をとります。どちらも Staff コンテキストのプロパティであり、レイアウト オブジェクト自体のプロパティではありません。ですから、これらは \set コマンドでセットします。どちらもデフォルトでは all-visible がセットされています。これらのプロパティは明示的な変更の結果として生じる調号と音部記号の可視性だけを制御し、行の先頭での調号や音部記号には効果を持ちませんので、オブジェクトを削除するには適切な break-visibility をオーバライドする必要があります。

 
\relative {
  \key g \major
  f'4 g a b
  \set Staff.explicitKeySignatureVisibility = #all-invisible
  \override Staff.KeySignature.break-visibility = #all-invisible
  \key bes \major
  f4 g a b \break
  f4 g a b
  f4 g a b
}

[image of music]

前の調をキャンセルする臨時記号の可視性

明示的な調の変更で描画される前の調をキャンセルする臨時記号を削除するには、Staff コンテキスト プロパティ printKeyCancellation に #f をセットします:

 
\relative {
  \key g \major
  f'4 g a b
  \set Staff.explicitKeySignatureVisibility = #all-invisible
  \set Staff.printKeyCancellation = ##f
  \override Staff.KeySignature.break-visibility = #all-invisible
  \key bes \major
  f4 g a b \break
  f4 g a b
  f4 g a b
}

[image of music]

このオーバライドによって、調の変更を示す臨時記号だけが残ります。

調を C メジャーや A マイナーに変更する時、前の調をキャンセルする臨時記号は前の調のキャンセルしている だけ であることに注意してください。そのようなケースでは、printKeyCancellation を #f に設定しても効果はありません:

 
\relative {
  \key g \major
  f'4 g a b
  \set Staff.explicitKeySignatureVisibility = #all-invisible
  \set Staff.printKeyCancellation = ##f
  \key c \major
  f4 g a b \break
  f4 g a b
  f4 g a b
}

[image of music]

調を C メジャーや A マイナーに変更する場合に、前の調をキャンセルする臨時記号を消すには、KeyCancellation グラフィカル オブジェクトの可視性をオーバライドします:

 
\relative {
  \key g \major
  f'4 g a b
  \set Staff.explicitKeySignatureVisibility = #all-invisible
  \override Staff.KeyCancellation.break-visibility = #all-invisible
  \key c \major
  f4 g a b \break
  f4 g a b
  f4 g a b
}

[image of music]

自動小節線

特殊なケースとして、Score コンテキストの automaticBars プロパティを設定することにより、小節線の描画を Off にすることもできます。#f をセットされた場合、小節線は自動的には描画されなくなり、\bar コマンドで明示的に作成しなければならなくなります。定義済みコマンド \cadenzaOn とは異なり、小節数はカウントされ続けます。後になってこのプロパティに #t がセットされると、このカウントに従って小節線の生成が再開されます。#f がセットされている場合、改行が起こりえるのは明示的な \bar コマンドがある場所でだけになります。

オクターブ移調付きの音部記号

オクターブ移調付きの音部記号上の小さな移調記号は ClefModifier レイアウト オブジェクトによって作り出されます。このオブジェクトの可視性は Clef オブジェクトの可視性とは独立して制御されます。そのため、各行の先頭においてそのような音部記号を完全に消そうとするなら、Clef オブジェクトと ClefModifier オブジェクトの両方に対して必要な break-visibility のオーバライドを行う必要があります。

明示的な音部記号の変更では、explicitClefVisibility プロパティが音部記号とそれに関連する移調記号の両方を制御します。

参照

学習マニュアル: (learning)オブジェクトの可視性と色 section ‘オブジェクトの可視性と色’ in Learning Manual


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

5.4.8 ライン スタイル

@translationof Line styles

いくつかの演奏指示子 – 例えば、rallentando, accelerando それに trills など – はテキストとして記述され、線で (点線や波線の場合もあります) でいくつもの小節にわたって広がります。

これらはすべてグリッサンドと同じルーチンを用いてテキストと線を描きます。そのため、それらの振る舞いの調整も同じように行います。これらはスパナによって実現され、スパナを描くルーチンは ly:line-spanner::print です。このルーチンは 2 つの スパン ポイント の位置を決定し、要求されたスタイルに応じてそれら 2 点の間に線を描きます。

利用可能なライン スタイルと、それらをどのように調整するかを示す例を挙げます。

 
\relative {
  d''2 \glissando d'2
  \once \override Glissando.style = #'dashed-line
  d,2 \glissando d'2
  \override Glissando.style = #'dotted-line
  d,2 \glissando d'2
  \override Glissando.style = #'zigzag
  d,2 \glissando d'2
  \override Glissando.style = #'trill
  d,2 \glissando d'2
}

[image of music]

スパナの終点の位置は各グラフィック オブジェクトごとにオンザフライ (その場、その時々) で計算されますが、それらをオーバライドすることもできます:

 
\relative {
  e''2 \glissando f
  \once \override Glissando.bound-details.right.Y = #-2
  e2 \glissando f
}

[image of music]

グリッサンドの終点の Y には -2 がセットされています。right の代わりに left を指定することにより、始点も同じように調整することができます。

Y がセットされていない場合、その値はスパナが取り付けられるポイントの垂直位置から算出されます。

スパナに他の調整を行うことも可能です。詳細は スパナ を参照してください。


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

5.4.9 オブジェクトを回転させる

@translationof Rotating objects

レイアウト オブジェクトとマークアップ テキストの要素はどちらも任意のポイントを中心にして任意の角度で回転させることができます。しかしながら、回転させる方法はまったく異なります。


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

レイアウト オブジェクトを回転させる

@translationof Rotating layout objects

grob-interface をサポートするすべてのレイアウト オブジェクトは、それらのオブジェクトの rotation プロパティを設定することにより、回転させることができます。これは 3 要素のリストをとります: 反時計回りの回転の角度、オブジェクトの参照ポイントからの相対座標 x と y (この座標が回転の中心になります) です。回転の角度は ‘°’で指定し、座標は譜スペースで指定します。

回転の角度と回転の中心座標は、トライ&エラーで決定する必要があります。

レイアウト オブジェクトを回転させることが有用な状況はあまりありません。以下の例は、有用であるかもしれないシチュエーションの 1 つを示しています:

 
g4\< e' d'' f''\!
\override Hairpin.rotation = #'(15 -1 0)
g4\< e' d'' f''\!

[image of music]


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]         [トップ] [目次] [インデックス] [ ? ]

マークアップを回転させる

@translationof Rotating markup

すべてのマークアップ テキストは、\rotate コマンドを前に置くことにより、任意の角度に回転させることができます。このコマンドは 2 つの引数をとります: 反時計回りの回転の角度 ‘°’ と、回転させられるテキストです。テキストの領域は回転しません: テキストの領域は回転させられるテキストの四隅になります。以下の例では、自動衝突回避を不可にするためにテキストの outside-staff-priority プロパティに #f をセットしています。そうしなければテキストのいくつかは高く押し上げられてしまいます。

 
\override TextScript.outside-staff-priority = ##f
g4^\markup { \rotate #30 "a G" }
b^\markup { \rotate #30 "a B" }
des'^\markup { \rotate #30 "a D-Flat" }
fis'^\markup { \rotate #30 "an F-Sharp" }

[image of music]


[ < ] [ > ]   [ << ] [ 上へ ] [ >> ]

This document was generated by gub on 7 月 13, 2020 using texi2html 1.82.

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