[ << デフォルトを変更する ] | [トップ][目次][インデックス][ ? ] | [ Notation manual tables >> ] | ||
[ < コンテキストを残しておく ] | [ 上へ : コンテキストを理解する ] | [ コンテキストのデフォルト設定を変更する > ] |
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 { f2 g } \new Staff \with { \remove "Time_signature_engraver" \remove "Clef_engraver" } { f2 g2 } >>
2 番目の譜には、拍子記号と音部記号がありません。この方法は、オブジェクトを不可視にするよりも乱暴な方法です。なぜなら、譜全体に影響を与えるからです。さらに、望む望まないに係わらず、この方法はスペースにも影響を与えます。オブジェクトを消すもっと洗練された方法については、
オブジェクトの可視性と色
を参照してください。
次の例は、ある実用的な応用です。通常、小節線と拍子記号は楽譜全体で同期されます。これは
Timing_translator
と Default_bar_line_engraver
によって行われます。このプラグインは拍子記号の管理や、小節内の配置の管理などを行います。これらのエングラーバを Score
コンテキストから
Staff
コンテキストへ異動させることにより、楽譜の各譜に独自の拍子記号を持たせることが可能になります。
\new Score \with { \remove "Timing_translator" \remove "Default_bar_line_engraver" } << \new Staff \with { \consists "Timing_translator" \consists "Default_bar_line_engraver" } { \time 3/4 c4 c c c c c } \new Staff \with { \consists "Timing_translator" \consists "Default_bar_line_engraver" } { \time 2/4 c4 c c c c c } >>
既知の問題と警告
通常、エングラーバが指定される順序は問題にはなりません。しかしながら、いくつかの特殊なケースでは、この順序が重要になります。例えば、あるエングラーバがプロパティを記述して、それを他のエングラーバが読む場合、あるいは、あるエングラーバがグラフィカル オブジェクトを作成し、それを他のエングラーバが処理しなければならない場合です。エングラーバは指定された順序に従って呼び出され、処理を実行します。
以下の順序は重要です:
通常、
Bar_engraver
を最初に指定し、New_fingering_engraver
を Script_column_engraver
の前で指定する必要があります。他にも指定順序が問題になるケースがあるかもしれません。
[ << デフォルトを変更する ] | [トップ][目次][インデックス][ ? ] | [ Notation manual tables >> ] | ||
[ < コンテキストを残しておく ] | [ 上へ : コンテキストを理解する ] | [ コンテキストのデフォルト設定を変更する > ] |
他の言語: English, deutsch, español, français, italiano
About automatic language selection.