| [ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
| [ < コンテキストを残しておく ] | [ 上へ : コンテキストを理解する ] | [ コンテキストのデフォルト設定を変更する > ] |
5.1.4 コンテキストのプラグインを変更する
記譜コンテキスト (Score や Staff のような) はプロパティを保存するだけなく、‘エングラーバ’ と呼ばれる記譜要素を作成するプラグインを保持します。例えば、Voice コンテキストは Note_head_engraver を保持し、Staff コンテキストは Key_engraver を保持します。
各プラグインについての説明は、 Engravers and Performers. を参照してください。 Contexts の中にある各コンテキストについての説明では、そのコンテキストで使用されるエングラーバがリストアップされています。
これらのプラグインを入れ換えると有用な場合があります。プラグインを入れ換えるには、新たに作成するコンテキストを
\new あるいは \context で開始し、そのコンテキストを以下のように変更します:
\new context \with {
\consists …
\consists …
\remove …
\remove …
etc.
}
{
…music…
}
ここで、… はエングラーバの名前になります。ここで、Staff コンテキストから Time_signature_engraver と
Clef_engraver を削除する簡単な例を示します:
<<
\new Staff \relative {
f'2 g
}
\new Staff \with {
\remove "Time_signature_engraver"
\remove "Clef_engraver"
} \relative {
f'2 g2
}
>>
2 番目の譜には、拍子記号と音部記号がありません。この方法は、オブジェクトを不可視にするよりも乱暴な方法です。なぜなら、譜全体に影響を与えるからです。さらに、望む望まないに係わらず、この方法はスペースにも影響を与えます。オブジェクトを消すもっと洗練された方法については、 オブジェクトの可視性と色 を参照してください。
次の例は、ある実用的な応用です。通常、小節線と拍子記号は楽譜全体で同期されます。これは Timing_translator と Default_bar_line_engraver
によって行われます。このプラグインは拍子記号の管理や、小節内の配置の管理などを行います。これらのエングラーバを Score コンテキストから
Staff コンテキストへ異動させることにより、楽譜の各譜に独自の拍子記号を持たせることが可能になります。
\score {
<<
\new Staff \with {
\consists "Timing_translator"
\consists "Default_bar_line_engraver"
}
\relative {
\time 3/4
c''4 c c c c c
}
\new Staff \with {
\consists "Timing_translator"
\consists "Default_bar_line_engraver"
}
\relative {
\time 2/4
c''4 c c c c c
}
>>
\layout {
\context {
\Score
\remove "Timing_translator"
\remove "Default_bar_line_engraver"
}
}
}
既知の問題と警告
エングラーバを指定する順序は、エングラーバが処理を行う順序です。通常、エングラーバが指定される順序は問題にはなりません。しかしながら、いくつかの特殊なケースでは、この順序が重要になります。例えば、あるエングラーバがプロパティを記述して、それを他のエングラーバが読む場合、あるいは、あるエングラーバがグラフィカル オブジェクトを作成し、それを他のエングラーバが処理しなければならない場合です。
以下の順序は重要です:
-
通常、
Bar_engraverを最初にする必要があります。 -
New_fingering_engraverをScript_column_engraverの前に配置する必要があります。 -
Timing_translatorをBar_number_engraverの前に配置する必要があります。
参照
インストールされているファイル: ‘ly/engraver-init.ly’
| [ << デフォルトを変更する ] | [トップ][目次][インデックス] | [ 付表 >> ] |
| [ < コンテキストを残しておく ] | [ 上へ : コンテキストを理解する ] | [ コンテキストのデフォルト設定を変更する > ] |