[ << デフォルトを変更する ] | [Top][Contents][Index] | [ 付表 >> ] |
[ < コンテキストを残しておく ] | [ Up : コンテキストを理解する ] | [ コンテキストのデフォルト設定を変更する > ] |
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 } \relative { \time 3/4 c''4 c c c c c } \new Staff \with { \consists Timing_translator } \relative { \time 2/4 c''4 c c c c c } >> \layout { \context { \Score \remove Timing_translator } } }
既知の問題と警告
エングラーバを指定する順序は、エングラーバが処理を行う順序です。通常、エングラーバが指定される順序は問題にはなりません。しかしながら、いくつかの特殊なケースでは、この順序が重要になります。例えば、あるエングラーバがプロパティを記述して、それを他のエングラーバが読む場合、あるいは、あるエングラーバがグラフィカル オブジェクトを作成し、それを他のエングラーバが処理しなければならない場合です。
以下の順序は重要です:
- 通常、
Bar_engraver
を最初にする必要があります。 -
New_fingering_engraver
をScript_column_engraver
の前に配置する必要があります。 -
Timing_translator
をBar_number_engraver
の前に配置する必要があります。
参照
インストールされているファイル: ly/engraver-init.ly
[ << デフォルトを変更する ] | [Top][Contents][Index] | [ 付表 >> ] |
[ < コンテキストを残しておく ] | [ Up : コンテキストを理解する ] | [ コンテキストのデフォルト設定を変更する > ] |