Lilypond : 雑多な話題

作成日 : 2007-09-23
最終更新日:

Lilypond の基本は他のページを参照していただくとして、 今回は自分が迷ってしまったところを打ち明けます。

オクターブ記号

1オクターブ上げるときには、8va...... と書かれる、あれである。 Ver 2.12 から次のようになった。
%% 1オクターブ上げる \ottava #1
(ここに記述)
%% もとに戻す \ottava #0
%% ... %% 1オクターブ下げる (ここに記述)
\ottava #-1
%% もとに戻す \ottava #1

つのふえ さんのご教授に感謝する。

実音よりオクターブ高い記法、低い記法

コントラバスのように、実音より1オクターブ高く記譜される楽器がある。 言い換えれば、記譜より実音は1オクターブ低い。 普通に記譜すると、生成される MIDI がオクターブ高くなってしまう。 これを防ぐためには、音部記号(クレフ)で調整するのがよい。
\clef "bass_8"
これは、ヘ音記号で実音は記譜より1オクターブ低いことを表す。 逆に、実音が記譜より1オクターブ高い楽器、たとえばピッコロなどは、 次のように書くとよい。
\clef "treble^8"

小節番号の変更

通常小節番号は変更する必要はない。しかし、1カッコ、2カッコなどを書くと、 ずれることがある。このときは小節番号を強制的に変更する。ある小節を 50小節としたいときは、次の文を挿入する。
\set Score.currentBarNumber = #50

強制臨時記号

通常、臨時記号はよきに計らって Lilypond が付けてくれる。 しかし、本来臨時記号が必要でない個所でも、 注意の意味(または親切の意味)で臨時記号を付ける場合がある。 たとえば、前の小節で付けていたcシャープが、現在の小節では必要ない場合、 記法としては現在のcにナチュラルを記す必要はない。 しかし、通常見る楽譜は、最初の音だけシャープがありませんよ、 という親切心を出すために、ナチュラルを記す場合がほとんどだ。 この場合は、c! という、びっくりマークを入れる。

なお、控えめにカッコに入れた臨時記号を書きたい場合は、c?とする。

水平方向間隔の調整

水平方向間隔を調整したい場合は、 base-shortest-duration プロパティを用いる。

lilypond 2.12 マニュアル (lilypond.org/)

全休符

全休符は、r ではなく、R を用いる。4/4拍子の全休符はR1、 3/4拍子の全休符は R2. である。 全休符にしないと、休符記号が左によってしまう。

三連符

三連符は次のように表記する。
\times 2/3 {c d e}
三連符の数字を消すには次のように表記する。
\override TupletNumber #'transparent = ##t
これを行うと三連符の枠(括弧)も消えるのだが、 休符を挟む三連符だと枠が消えない。これを強制的に消すには、次のようにする。
\override TupletBracket #'transparent = ##t

小節をまたがるスラー

|を使って小節をチェックする方法を用いると、 小節をまたがるスラーのコンパイルでエラーが出ることがある。

C:/home/maruyama/hogehoge.ly:26:8: error: syntax error, unexpected '('

(d4 f bes) |

これが出る理由は、左閉カッコと | の位置がずれているからである。 つまり、
bes4 c d | (d4 f bes)
のように書くと、エラーが出る。次のように書けばよい。
bes4 c d (| d4 f bes)

複数小節の休み

複数小節の休み (multi measure rests) を表示するには、
\set Score.skipBars = ##t
を指定して、
R1*17 R1*4
などとする。

フッター

最後に著作権表示をしたいときには、 「copyright」という要素がある。 copyright は、最初のページの下段に表示される。 いくつか楽譜を見てみると、確かに著作権表示は曲の最初にある。

一方、tagline という要素がある。こちらは最後のページの下段に表示される。 デフォルト状態では、 「この楽譜はlilypondでかかれました」のような文章が自動で挿入される。
'Music engraving by LilyPond 2.12.2.www.lilypond.org' そのため、この表記を消すために、taglineは##fにしておくとよい。
\set Score.tagline = ##f
もし、積極的に書きたければ、 \header {} の {} の中に、
tagline = "hogehoge"
と書く。

なお、曲の最後のみにつける表記は、あまり例がない。 フランスのデュラン版などでは楽譜の最後のページに情報が書かれていることがある。

copyright と tagline については、 つのふえ さんからのご教授を受けた。 感謝します。

MIDI

MIDI ファイルを作る

MIDI ファイルを作るときは、\midi 手続きを使う。

\score {
  ...楽譜記述...
  \layout { }
  \midi { 
     \context {
       \Score
       tempoWholesPerMinute = #(ly:make-moment 120 4)
       }
     }
}

tempoWholesPerMinute の右辺にある 120 4 は、4分音符でメトロノームの速さが120であることを表す。

MIDIファイルの作成 (lilypond.org、英語) 参照。

MIDI の音の種類を指定する

現在、Lilypond ではこれだけの楽器が指定できるようだ。 翻訳は、 GM 規格の音色番号と楽器名 (www.synapse.ne.jp)などから参照できる。 楽器名の前にある番号は、abcjs で %%MIDI ディレクティブで楽器を指定するときに使う数字である。

楽器名と abcjs による MIDI 数字

  0. acoustic grand            43. contrabass           lead 7 (fifths)
  1. bright acoustic           44. tremolo strings      lead 8 (bass+lead)
  2. electric grand            45. pizzicato strings    pad 1 (new age)
  3. honky-tonk                46. orchestral harp      pad 2 (warm)
  4. electric piano 1          47. timpani              pad 3 (polysynth)
  5. electric piano 2          48. string ensemble 1    pad 4 (choir)
  6. harpsichord               49. string ensemble 2    pad 5 (bowed)
  7. clav                      50. synthstrings 1       pad 6 (metallic)
  8. celesta                   51. synthstrings 2       pad 7 (halo)
  9. glockenspiel              52. choir aahs           pad 8 (sweep)
 10. music box                 53. voice oohs           fx 1 (rain)
 11. vibraphone                54. synth voice          fx 2 (soundtrack)
 12. marimba                   55. orchestra hit        fx 3 (crystal)
 13. xylophone                 56. trumpet              fx 4 (atmosphere)
 14. tubular bells             57. trombone             fx 5 (brightness)
 15. dulcimer                  58. tuba                 fx 6 (goblins)
 16. drawbar organ             59. muted trumpet        fx 7 (echoes)
 17. percussive organ          60. french horn          fx 8 (sci-fi)
 18. rock organ                61. brass section        sitar
 19. church organ              62. synthbrass 1         banjo
 20. reed organ                63. synthbrass 2         shamisen
 21. accordion                 64. soprano sax          koto
 22. harmonica                 65. alto sax             kalimba
 23. concertina                66. tenor sax            bagpipe
 24. acoustic guitar (nylon)   67. baritone sax         fiddle
 25. acoustic guitar (steel)   68. oboe                 shanai
 26. electric guitar (jazz)    69. english horn         tinkle bell
 27. electric guitar (clean)   70. bassoon              agogo
 28. electric guitar (muted)   71. clarinet             steel drums
 29. overdriven guitar         72. piccolo              woodblock
 30. distorted guitar          73. flute                taiko drum
 31. guitar harmonics          74. recorder             melodic tom
 32. acoustic bass             75. pan flute            synth drum
 33. electric bass (finger)    76. blown bottle         reverse cymbal
 34. electric bass (pick)      77. shakuhachi           guitar fret noise
 35. fretless bass             78. whistle              breath noise
 36. slap bass 1               79. ocarina              seashore
 37. slap bass 2               80. lead 1 (square)      bird tweet
 38. synth bass 1              81. lead 2 (sawtooth)    telephone ring
 39. synth bass 2              82. lead 3 (calliope)    helicopter
 40. violin                    83. lead 4 (chiff)       applause
 41. viola                     84. lead 5 (charang)     gunshot
 42. cello                     85. lead 6 (voice)

mfp

強弱記号に、fp というものがある。これは、フォルテ(f)を出してすぐにピアノ(p)にすることを表す。 シベリウスの作品に、mfp がある。これはメゾフォルテを出して、すぐにピアノにすることである。 ところが、Lilypond では fp は \fp という記法で出せるが mfp は \mfp という記号では出せない。 mfp を出すためには、自分で定義する。

mfp = #(make-dynamic-script "mfp")
c\mfp

二重のスラー

スラー記号が二重に書かれていることがある。 このときは、単にかっこを入れ子にしてもうまくいかない。 Lilypond では、小さなスラーをレガートスラー、 大きなスラーをフレージングスラーとして区別している。 フレージングスラーは、\( で始め、\) で終わる。 こうすれば、二重のスラーが書ける。

makefile

ly ファイルから pdf ファイルを作るには、make コマンドを使うとよい。 このとき、makefile で拡張子を指定する。

.ly.pdf :
	lilypond $<

.SUFFIXES : .pdf .png .ly

以上の準備をして、make bach-concerto5-vn1.pdf とすれば、 lilypond bach-concerto5-vn1.ly が起動する。

記述時間

記述時間の見当をつけるとよい。私の場合、 バッハのチェンバロ協奏曲第5番の第1楽章で、 第1ヴァイオリンのパート譜作成に、2小節で10秒要することがわかった。

練習記号とフェルマータの共存

練習記号(リハーサルマーク)と小節線上のフェルマータを同時に出すにはどうすればよいか。 練習記号は次の通り。
\mark \default
小節線上のフェルマータは次の通り。
\mark \markup { \musicglyph #"scripts.ufermata" }
これを続けてかくことはできない。
\mark \markup { \musicglyph #"scripts.ufermata" } \mark \default
こう書くと、次のウォーニングが出てあとのほうが無視される
warning: Two simultaneous mark events, junking this one

\mark をまとめて書いてもやはりできない。
\mark \default \markup { \musicglyph #"scripts.ufermata" }

C:/home/maruyama/scores/lilypond_test.ly:9:15: error: syntax error, unexpected \markup
\mark \default 
               \markup { \musicglyph #"scripts.ufermata" }

そこで、hogehoge さんから教授いただいた方法で解決した。hogehoge さんに感謝する。 方法を下に示す。

\time 4/4
c1 \mark \default
c1 \mark \markup { \center-align { \bold B \musicglyph #"scripts.ufermata" } }
c1 \mark #3
c1

この方法は、フェルマータはmusicglyph により設定するが、練習記号は直接字を太字で表記する、 ということである。これにより、mark の順番を調整する必要があるので、c1 \mark #3 が必要となる。

段の間隔の調整

\paper {
        between-system-space = 10.5\cm
}

\score {
        ・・・
}

とする。上記方法を指摘してくださった hogehoge さんに感謝する。

未解決の問題

いまのところありません。

まりんきょ学問所コンピュータの部屋マーク付け言語手習い > Lilypond : 雑多な話題


MARUYAMA Satosi