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になった。