5.1.2 コンテキストを作成して参照する

LilyPond は、適切なコンテキストが存在しないうちに音楽表記に遭遇すると、自動的に下位コンテキストを作成します。しかしながら、通常これは、シンプルな楽譜やドキュメントの中の楽譜断片のような単純な場合にしかうまくいきません。もっと複雑な楽譜の場合、すべてのコンテキストを \new コマンドや \context コマンドを用いて明示的に指定することをお勧めします。これら 2 つのコマンドの構文はほとんど同じです:

[\new | \context] Context [ = name] [music-expression]

ここで、\new\context のどちらかを使用します。Context は作成するコンテキストのタイプであり、name は作成されるコンテキストにオプションで付けることができる名前であり、music-expression はこのコンテキストのエングラーバとパフォーマによって処理される単一の音楽表記です。

コンテキスト名を持たない \new コマンドは一般的に複数の譜を持つ score を作成するのに用いられます:

<<
  \new Staff \relative {
    % 暗黙的に Voice コンテキストが作成されます
    c''4 c
  }
  \new Staff \relative {
    d''4 d
  }
>>

[image of music]

そして、1 つの譜に複数のボイスが配置されます:

\new Staff <<
  \new Voice \relative {
    \voiceOne
    c''8 c c4 c c
  }
  \new Voice \relative {
    \voiceTwo
    g'4 g g g
  }
>>

[image of music]

無名のコンテキストは常に \new で指定する必要があります。

\new\context は動作が異なります:

後で参照するコンテキストには名前を付ける必要があります。例えば、歌詞を音楽に関連付けるような場合です:

\new Voice = "tenor" music
…
\new Lyrics \lyricsto "tenor" lyrics

歌詞を音楽に関連付ける方法についての詳細は 歌詞音節の自動演奏時間 を参照してください。

ある特定のタイプのすべてのコンテキストのプロパティを \layout ブロックで変更することができます (構文は異なります) – 同じタイプの全コンテキストを変更する を参照してください。この構造でもレイアウトを音楽コンテンツから分離させることができます。単一のコンテキストを変更するのであれば、\with ブロックを用いる必要があります – 指定したコンテキストだけを変更する を参照してください。

参照

学習マニュアル: Organizing pieces with variables

記譜法リファレンス: 指定したコンテキストだけを変更する, 歌詞音節の自動演奏時間


LilyPond — 記譜法リファレンス v2.23.82 (開発版).