ファイルの構造
LilyPond の解説ページの多くは,まず音符の書き方から説明していますが,ここではファイルの枠組みの方から説明します。先程のLilyPondデータ,{波カッコ}で囲われていますが,実はその外側に二重の入れ子が隠されています。実際には次のように書かれているとLilyPondは解釈しています。
book {
score {
new Staff { c'4 d' e' f' e' d' c' r }
}
}
bookで囲まれた部分がPDFとして出力されますが,当面これは無視して構いません。以後 bookは省略しますが,LilyPond は自動的に補ってくれます。
scoreで囲まれたブロックが,いわば一つの曲に対応します。もしbookの中に複数の scoreブロックがあれば,数曲まとまったPDFが出力されるでしょう。でもこれもしばらくは必要ありませんね。
new の後の名前 (Staff) でどんな楽譜を生成するかをLilyPondに教えます。Staffなら普通の五線譜,Voice なら歌,TabStaff ならギター用,DrumStaff ならドラム用などなど。上の例だと,普通の五線譜にドレミファミレドを書いた楽譜をPDFとして出力する,となります。
五線譜を重ねる
1段だけの五線譜じゃ利用も伴奏無しの楽器か歌に限られます。まず欲しいのは左右2段になったピアノ用みたいな楽譜。scoreの中に new Staff が2つあればよさそうです。それらを上下に並べるには <<二重山括弧 >> で囲います。
score {
new PianoStaff
<<
new Staff { e'4 f' g' a' g' f' e' r }
new Staff { c'4 d' e' f' e' d' c' r }
>>
}

PianoStaff ではなくただの Staff にすると,頭のブレースが消えます。このように Staff の種類によって楽譜の書かれ方が変わります。
この上に楽器パートも乗せてみましょう。 << >> の入れ子が一つ増えるだけです。
score {
<<
new Staff { c''2 c'' c'' c'' }
new PianoStaff
<<
new Staff { e'4 f' g' a' g' f' e' r }
new Staff { c'4 d' e' f' e' d' c' r }
>>
>>
}

new Staff を並べて行けば,その段数分の同時進行する五線譜ができあがります。つまりオーケストラ譜だって書けます。
変数を使う
楽譜が長く複雑になってくると,全体の構造が見づらくなってきます。そんなときは音符部分を別の変数に置き換えて,scoreの外に出すことができます。
まず変数を定義しておきます。名前はなんでも構いませんが,数字を含めることはできません。
pianoright = { e'4 f' g' a' g' f' e' r }
pianoleft = { c4 d e f e d c r }
これを参照するには,変数名にバックスラッシュを付けます。上の例の \new Staff に続けて \pianoright, \pianoleft を書けば同じ楽譜が得られます。
パーツを揃えてテンプレートに
楽譜完成まであと少し追加するものがあります。LiLyPond はファイルの先頭にいま使っているLilyPondのヴァージョンを書いておくことを推奨しています。それがヴァージョン2.24.4なら
version "2.24.4"
曲のタイトルや作曲家などは header ブロックに書いておきます。一応 score の外側に書いておきましょう。
header {
title = "Frog Chorus"
subtitle = ""
composer = "unknown"
}
ト音記号,へ音記号,拍子も追加します。パラメータに追加してもよいのですが,ずっと変わるものでもないので score の方に追加しておきます。ト音記号は clef treble, へ音記号は clef bass です。拍子は time で指定します。4分の4拍子なので,time 4/4。調号は key で指定します。ハ長調なので key c major。
new Staff{
clef treble
time 4/4
key c major
pianoright
}

これで普通のピアノ譜っぽい形になってきました。ここまで書いた分をテンプレートとして保存しておき,変数部分さえ書き換えれば色々な楽譜を作ることができますので,以後は変数部分の実際の音符の書き方について紹介していきます。
version "2.24.4"
header {
title = "Frog Chorus"
subtitle = ""
composer = "unknown"
}
pianoright = { e'4 f' g' a' g' f' e' r }
pianoleft = { c4 d e f e d c r }
\score {
new PianoStaff
<<
new Staff{
clef treble
time 4/4
key c major
pianoright
}
new Staff{
clef bass
time 4/4
key c major
pianoleft
}
>>
}
弦楽四重奏版を作ってみましょう。\score の中に 4つの Staff が並びますが,それらをまとめた楽譜にするには StaffGroup を指定します。調性と拍子は全楽器で同じなので,これもパラメータとして定義しておきます。
\version "2.24.4"
\header {
title = "Frog Chorus"
subtitle = "for String Quartet"
composer = "unknown"
}
melodyViolinFirst = { c''4 d'' e'' f'' e'' d'' c''2 }
melodyViolinSecond = { e'4 f' g' a' g' f' e'2 }
melodyViola = { c'8 c' d' d' e' e' f' f' e'4 d' c'2 }
melodyCello = { c2 c c c }
global= {
\time 4/4
\key c \major
}
\score {
\new StaffGroup
<<
\new Staff{
\clef treble \global \melodyViolinFirst
}
\new Staff{
\clef treble \global \melodyViolinSecond
}
\new Staff{
\clef alto \global \melodyViola
}
\new Staff{
\clef bass \global \melodyCello
}
>>
}

