4.3.2 コンテキストを作成する

入力ファイルの中で、(\score コマンドによって導入される) score ブロックは単一の音楽表記を保持しますが、それに関連する出力定義 (\layout ブロックと \midi ブロックのいずれかあるいは両方) も保持することができます。通常、Score コンテキストは省略され、音楽表記の解釈が始まった時点で自動的に作成されます。

ボイスが 1 つだけで、譜も 1 つだけの楽譜では、VoiceStaff も省略して、自動的に作成させることができます。コンテキストは自動的に作成されるために放っておかれるかもしれません。しかしながら、より複雑な楽譜ではこれらを手ずから作成する必要があります。これらを作成する最も簡単なコマンドは \new です。これは音楽表記の前に置きます。例を挙げます:

\new type music-expression

ここで、type はコンテキスト名です (StaffVoice など)。このコマンドは新しいコンテキストを作成し、そのコンテキストの中にある music-expression の解釈を開始します。

Note: 必須の最上位 Score コンテキストとして \new Score を使わないでください。これは、\score ブロックの中にある音楽表記が解釈される時に自動的に作成されます。楽譜全体のコンテキスト プロパティのデフォルト値を変更するには、\layout ブロックの中で行います。コンテキスト プロパティを変更する を参照してください。

これまでに、新たに StaffVoice コンテキストを作成する多くの実際的な例を見てきましたが、これらのコマンドが実際にどのように使用されるのかを覚えてもらうために、実際の音楽に注釈を付けた例を挙げます:

\score {  % 複合音楽表記の開始点
  <<  % 同時進行する譜の開始点
    \time 2/4
    \new Staff {  % create RH staff
      \clef "treble"
      \key g \minor
      \new Voice {  % 右手の音符用のボイスを作成します
        \relative {  % 右手の音符の開始点
          d''4 ees16 c8. |
          d4 ees16 c8. |
        }  % 右手の音符の終了点
      }  % 右手のボイスの終了点
    }  % 右手の譜の終了点
    \new Staff <<  % 左手の譜を作成します。2 つの同時進行するボイスを必要とします
      \clef "bass"
      \key g \minor
      \new Voice {  % 左手のボイス 1 を作成します
        \voiceOne
        \relative {  % 左手のボイス 1 の音符の開始点
          g8 <bes d> ees, <g c> |
          g8 <bes d> ees, <g c> |
        }  % 左手のボイス 1 の音符の終了点
      }  % 左手のボイス 1 の終了点
      \new Voice {  % 左手のボイス 2 を作成します
        \voiceTwo
        \relative {  % 左手のボイス 2 の音符の開始点
          g4 ees |
          g4 ees |
        }  % 左手のボイス 2 の音符の終了点
      }  % 左手のボイス 2 の終了点
    >>  % 左手の譜の終了点
  >>  % 同時進行する譜セクションの終了点
}  % 複合音楽表記の終了点

[image of music]

(波括弧 { や 2 重山括弧 << の中でブロックになっているすべての記述には括弧よりもスペースが 2 つ多いインデントを付けられていて、閉じ括弧には括弧の開始行と同じインデントを付けられているということに注意してください。これは必須ではありませんが、こうしておくと ‘unmatched backet’ (「括弧が一致しない」) エラーを大幅に減らすことができますので、強く推奨します。これにより、音楽の構造を簡単に見て取ることができ、一致していない括弧が明瞭になります。さらに、右手の譜はボイスを 1 つだけしか必要としないために波括弧によって囲まれた単一の音楽表記として作成されているのに対して、左手の譜は 2 つのボイスを必要とするために 2 重山括弧を使って作成されていることにも注意してください。)

また、\new コマンドはコンテキストに識別名を与えて、そのコンテキストを同じタイプの他のコンテキストと区別することを可能にするかもしれません:

\new type = id music-expression

Staff, Voice などといったコンテキスト タイプの名前とそのようなコンテキスト タイプのインスタンスの名前 –これはユーザによって決定され、どのような文字の連なりにもなり得ます – の違いに注意してください。数字とスペースも識別名に使用することができますが、その場合クォートで囲まなければなりません – つまり、\new Staff = "MyStaff 1" music-expression のようになります。識別名はコンテキストのあるインスタンスを参照するために使用されます。このことを歌詞についてのセクションで見てきました。ボイスとボーカル を参照してください。

参照

記譜法リファレンス: Creating and referencing contexts


GNU LilyPond 学習マニュアル v2.25.22 (development-branch).