LilyPond
LilyPond(リリーポンド、「スイレンの池」の意)は、テキストで書いた楽譜をPDFやMIDIに変換するツールである。
本家の Download ページからダウンロードできるが、私はMacでHomebrewを使っているので、ターミナルに brew install lilypond と打ち込むだけでインストールできた。インストールすると abc2ly、convert-ly、etf2ly、lilymidi、lilypond、lilypond-book、lilypond-invoke-editor、lilysong、midi2ly、musicxml2ly というコマンドが入る。このうち lilypond は(arm64の)バイナリで、残りはPythonスクリプトである。ついでに Guile というScheme(Lispの一種)の処理系(コマンド guile、guild、guile-config、guile-snarf、guile-tools)も入る。
GUIツール Frescobaldi もあるが、以下ではコマンドラインツールだけを使うことにする。VS CodeにはLilyPond入力・プレビュー拡張機能がいろいろあるようだ。
LilyPondファイルは拡張子 ly のテキストファイルである。以下では LilyPond 2.24.4 を使うと仮定する。例えば
\version "2.24.4"
{ c' d' e' f' g' a' b' c'' }
というテキストファイル test.ly を用意し、ターミナルに lilypond test.ly と打ち込めば、
のように出力される。
先頭に \version "2.24.4" と書く意味は、将来バージョンが上がって記法が変わった場合に convert-ly -e test.ly と打ち込むことで最新バージョンの記法に変換できるようにするためである。変換内容は上書きされ、元ファイルは test.ly~ に改名される。
古くからあるABC記譜法をLilyPond記法に変換するには abc2ly test.ly と打ち込む。
LilyPondの記法をまとめておく。以下では \version 指定は省略する。
最初の例
{ c' d' e' f' g' a' b' c'' }
で、いちいち ' をたくさん書くのは面倒だ。そのときは相対指定を使う:
\relative { c' d e f g a b c }
出力は同じである。最初の音符の絶対的な高さだけ指定すれば、次からは直前の音符に一番近い音が選ばれる。あるいは
\relative c' { c d e f g a b c }
とすれば、c' に一番近い音から始まる。
オクターブ上げるには ' を付け、下げるには , を付ける。
音符の長さは四分音符がデフォルトだが、例えば 8 を付ければ八分音符になる。これは \relative 関係なく、省略すれば直前の音符と同じ長さになる。付点はピリオド . を付ける。
\relative c' { c d8 e f g a b c2 r2 }
このように、連桁(れんこう、beam、♪♪→🎵)がデフォルトで、\autoBeamOff と \autoBeamOn で自動連桁を制御する。
シャープ、フラットは、デフォルトではドイツ語流に is、es を付けるが、\language "english" と宣言しておけば s、f を付ける英語流になる。
ヘ音記号は \clef bass とする。bass 以外は treble、alt、tenor などがある。
次の例は、一挙にいろいろな記法を使っている。MIDI出力も指定しているので、lilypond test.ly とするとPDF以外に test.midi も生成される。\f はフォルテ記号である。^\f とすれば上に付く。スラーは ( )、タイは ~ である。
\language "english"
\score {
\relative {
\clef bass
\key d \major
\time 4/4
\tempo 2 = 80
\set Score.currentBarNumber = #257
e\f e fs d | e fs8( g) fs4 d | e fs8( g) fs4 e |
}
\layout { indent = 0 }
\midi {}
}
歌詞などを加える。<< >> はグルーピング。% 以下はコメント。
\version "2.24.4"
\header {
title = "Symphony No. 9 Bass Chorus 257–"
composer = "Ludwig van Beethoven"
tagline = ""
}
\language "english"
\score {
<<
\relative {
\clef bass
\key d \major
\time 4/4
\tempo "Allegro assai" 2 = 80
\set Score.currentBarNumber = #257
\mark "D"
e^\f e fs d | e fs8( g) fs4 d | e fs8( g) fs4 e |
d e a, fs'~ | fs fs g a | a g \autoBeamOff fs( g8) e \autoBeamOn |
d4 d e fs | e4. d8 d2 |
}
\addlyrics {
Dei -- ne Zau -- ber bin -- den wie -- der, Was die Mo -- de
streng ge -- teilt; Al -- le Men -- schen wer -- den Brü -- der,
Wo dein sanf -- ter Flü -- gel weilt.
}
>>
\layout { indent = 0 }
\midi {}
}
フォントはデフォルトでは URW++ Base 35 フォント の C59(New Century Schoolbook 互換)が使われるようだ。音譜は Emmentaler というフォントである。詩の部分に日本語を使うと、私の環境(Mac)ではヒラギノ丸ゴProN-W4になった。