3.4.1 変数を用いて楽曲を編成する

これまで議論してきたすべての要素を組み合わせてより大きなファイルを作成すると、音楽表記はずっと大きくなります。多くの譜を持つ多声音楽では、入力ファイルはとても混乱しやすくなります。変数 を使って混乱を避けることができます。

変数 (これは識別子やマクロとも言えます) を使うことによって、音楽表記の複雑さを打破することができます。変数は以下のように割り当てられます:

namedMusic = { … }

音楽表記 namedMusic の内容は名前の前にバックスラッシュを置くことによって (\namedMusic、これはまさに LilyPond の標準コマンドと同様です) 後で使用することができます。

violin = \new Staff {
  \relative {
    a'4 b c b
  }
}

cello = \new Staff {
  \relative {
    \clef "bass"
    e2 d
  }
}

{
  <<
    \violin
    \cello
  >>
}

[image of music]

慣習的に、変数の名前にはアルファベットのみを用います。詳細な情報は、ファイル構造 を参照してください。

変数はメインの音楽表記の に定義されていなければなりません。しかしながら定義後は必要とされる場所で何度でも使用できます。変数の定義後は、その変数を他の変数定義の中で使うことも可能であり、 楽曲のある部分が何度もリピートしている場合に入力の手間を省くことができます。

tripletA = \relative { \tuplet 3/2 { c'8 e g } }
barA = { \tripletA \tripletA \tripletA \tripletA }

{ \barA \barA }

[image of music]

変数を入力ファイルの中にある他の多くのオブジェクト タイプに対しても使用できます。 例えば以下のようにです:

myWidth = 60      % \paper 変数に渡す数字 (単位は mm)
myName = "Wendy"  % マークアップに渡す文字列
aFivePaper = \paper { #(set-paper-size "a5") }

変数の内容次第では、変数は他の場所で使用することができます。以下の例は上の例の変数を使用しています:

\paper {
  \aFivePaper
  line-width = \myWidth
}

{
  c4^\myName
}

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