[ << デフォルトを変更する ] | [トップ][目次][インデックス][ ? ] | [ Notation manual tables >> ] | ||
[ < 適用順序 ] | [ 上へ : コンテキストを理解する ] | [ コンテキストの配置順序 > ] |
5.1.6 新しいコンテキストを定義する
Staff
や Voice
のようなコンテキストは、簡単なブロックの組み合わせで構成されています。
エングラーバ プラグインの組み合わせを変えることで、新しいタイプのコンテキスを作成することができます。
次の例は、ゼロからタイプの異なる Voice
コンテキストを作り上げる方法を示しています。このコンテキストは Voice
コンテキストに似ていますが、音符の代わりにスラッシュを譜の中央に譜刻します。これはジャズで即興を表すのに使うことができます。
これらの設定は \layout
ブロック内部の \context
ブロックの中で定義します:
\layout { \context { … } }
以下では、上記の例の … に入るべき入力について議論します。
最初に、新しいコンテキストの名前を定義する必要があります:
\name ImproVoice
このコンテキストは Voice
に似せる必要があるため、(既存の) Voice
と同じ機能を実現するコマンドが必要です。これは、新しいコンテキストにエイリアス Voice
を与えることで実現できます。
\alias Voice
このコンテキストは音符と指示テキストを譜刻しますので、それらの機能を提供するエングラーバを付け加える必要があります:
\consists "Note_heads_engraver" \consists "Text_engraver"
しかしながら、音符の代わりにスラッシュを譜の中央線上に配置します:
\consists "Pitch_squash_engraver" squashedPosition = #0
Pitch_squash_engraver は
(
Note_heads_engraver によって作成される) 符頭を変更し、符頭の垂直位置を squashedPosition
にセットします
– 今回は 0
、つまり中央線上です。
音符はスラッシュで、符幹を持ちません:
\override NoteHead.style = #'slash \hide Stem
これらのプラグインすべてが共同する必要があり、それには特殊なプラグインが必要です。このプラグインは常に Engraver_group
であり、キーワード \type
を付ける必要があります。
\type "Engraver_group"
まとめると、以下のようになります:
\context { \name ImproVoice \type "Engraver_group" \consists "Note_heads_engraver" \consists "Text_engraver" \consists "Pitch_squash_engraver" squashedPosition = #0 \override NoteHead.style = #'slash \hide Stem \alias Voice }
コンテキストは階層を構成します。c
通常の Voice
と同様に、ImproVoice
を Staff
の下に置く必要があります。それゆえ、Staff
定義を \accepts
コマンドで変更します:
\context { \Staff \accepts ImproVoice }
\accepts
の反対は \denies
です。これは既存のコンテキスト定義を再利用する場合に必要となります。
以下のように、両方を \layout
ブロックの中に置きます:
\layout { \context { \name ImproVoice … } \context { \Staff \accepts "ImproVoice" } }
それから、このサブセクションの最初にあった出力を入力します:
\relative { a'4 d8 bes8 \new ImproVoice { c4^"ad lib" c c4 c^"undress" c c_"while playing :)" } a1 }
[ << デフォルトを変更する ] | [トップ][目次][インデックス][ ? ] | [ Notation manual tables >> ] | ||
[ < 適用順序 ] | [ 上へ : コンテキストを理解する ] | [ コンテキストの配置順序 > ] |
他の言語: English, català, deutsch, español, français, italiano
About automatic language selection.