GNU LilyPond 学習マニュアル: 3.3.1 コンテキストの説明

### 3.3.1 コンテキストの説明

音楽が譜刻されるとき、入力ファイルでははっきりとは現れてこない多くの記譜要素を出力に追加しなければなりません。例えば、以下の例で入力と出力を比較してください:

>     \relative { cis''4 cis2. | a4 a2. | }

この入力は内容がやや乏しいですが、出力では小節線、臨時記号、音部記号、拍子記号が追加されています。LilyPond が入力を解釈するとき、音楽情報は時系列に調べられます。これは楽譜を左から右へ読むのと似ています。入力を読み込んでいる間、プログラムは小節の境目となる場所と明示的な臨時記号を必要とするピッチを覚えています。この情報はいくつかのレベルで持続されなければなりません。例えば、臨時記号の効果は単一の譜表に制限されますが、小節線は楽譜全体に亘って同調されなければなりません。

LilyPond 内部では、これらの規則と情報ビットはコンテキストにグループ化されます。すでに `Voice` コンテキストを見てきました。他にも、`Staff` コンテキストと `Score` コンテキストがあります。コンテキストは、楽譜の階層構造を反映するために、階層構造になっています。例えば: `Staff` コンテキストは多くの `Voice` コンテキストを保持することができ、`Score` コンテキストは多くの `Staff` コンテキストを保持することができます。

各コンテキストは、いくつかの記譜オブジェクトを作成し、関連プロパティを維持しながら、いくつかの記譜規則を施行する責任があります。例えば、`Voice` コンテキストは臨時記号を作り出すかもしれず、そうした場合 `Staff` コンテキストはその小節の残りの部分で臨時記号を表示したり隠したりするための規則を維持します。

他の例としては、小節線の同調はデフォルトでは `Score` コンテキストが扱います。しかしながら、いくつかの音楽では小節線を同調させたくない場合もあります – 4/4 拍子と 3/4 拍子の多声の楽譜といった場合です。そのようなケースでは、`Score` と `Staff` コンテキストのデフォルト設定を変更しなければなりません。

非常にシンプルな楽譜では、コンテキストは暗黙的に作成され、あなたはそれらに気づく必要もありません。複数の譜表を持つようなより大きな楽曲では、あなたが必要としているだけの譜を手に入れられるよう、さらに、それらの譜が正しい順序で並ぶことを保証するために、コンテキストを明示的に作成する必要があります。特殊な記譜法を持つ楽曲を譜刻するには、通常は既存のコンテキストを変更します。あるいは完全に新しいコンテキストを定義することさえあります。

`Score`, `Staff`, `Voice` コンテキストに加えて、`PianoStaff` や `ChoirStaff` コンテキストといった譜表グループを制御するための、楽譜レベルと譜表レベルの間にあるコンテキストがあります。さらに、代替の譜表コンテキストとボイスコンテキストがあり、歌詞、打楽器、フレットボード (訳者: 弦楽器の一種。フレットでウィキぺディアを参照)、通奏低音 (数字付き低音、原文: figured bass) などのためのコンテキストがあります。

すべてのコンテキスト タイプの名前は 1 つ、あるいは複数の単語からなります。各単語の最初の文字は大文字であり、前の単語のすぐあとに次の単語が続きます。ハイフンやアンダスコアは使いません。つまり `GregorianTranscriptionStaff` といった具合です。

#### 参照

記譜法リファレンス: Contexts explained

#### LilyPond — 学習マニュアル v2.22.2 (安定版).