LilyPondでTacetをつくる
それっぽいTacetを作ります。
<img width="925" alt="2018-07-25_01-08-24.png" src="https://qiita-image-store.s3.amazonaws.com/0/260566/a8329a82-f1ad-803d-e9e3-ed8ce5818f7e.png">
LilyPond is 何
コードを書くと楽譜が書ける素敵なソフトです。
分かる人には「TeXの楽譜版」と言えばよいでしょうか。
FinaleやSibeliusにも引けを取らない表現力を持っています。にもかかわらず、なんと無料です!
やるっきゃないですね。
LilyPond – みんなの楽譜作成
コード
\version "2.18.2"
tacet = {
\compressFullBarRests
\override MultiMeasureRest.expand-limit =
\omit MultiMeasureRestNumber
\omit Staff.TimeSignature
R1*2 ^\markup { \center-align \bold "TACET" }
\bar "|."
}
\score {
\tacet
\layout { ragged-right = }
}
方針
- 長休符を作って
- その数字を消し
- "TACET"の文字を中央に置き
- 小節を幅いっぱい引き伸ばす
解説
\compressFullBarRests
全休符(R
)をまとめて長休符を作ります。
\override MultiMeasureRest.expand-limit = #1
LilyPondのデフォルトの長休符は10小節分まで"church rests"(教会休符?)と呼ばれるタイプのもので、11小節目から通常の長休符です。
この切り替わりのポイントを変えることができます。
MultiMeasureRest.expand-limit
を1に設定することで、すべての長さで通常の長休符を扱えます。
\omit MultiMeasureRestNumber
長休符の数字を消します。
\omit Staff.TimeSignature
拍子記号を消します。趣味です。表示したい場合は記述しないでください。
R1*2 ^\markup { \center-align \bold "TACET" }
長休符を作り、その中央に"TACET"の文字をboldで表示します。
長休符を11以上にすれば、上記の\override MultiMeasureRest.expand-limit = #1
は不要です。
\bar "|."
終止線を付与します。
\layout { ragged-right = ##f }
ragged-right
は、システムを本来の長さにするかどうかを制御します。
#f
にすることで、(長休符でまとまった)1小節を幅いっぱいに引き伸ばします。
LilyPond 記譜法リファレンス: 4.5.4 行の長さ
\layout ブロックの中で ragged-right が真にセットされている場合、システムは行全体を埋めるように水平方向に引き伸ばされず、本来の長さで終了します。これは、小さな楽譜の場合や、本来のスペースがどれくらいの密度なのかをチェックする場合に有用です。通常のデフォルト設定は偽ですが、1 つしかシステムを持たない楽譜の場合のデフォルト値は真です。
参考
- 小節単位の休符
- LilyPond Internals Reference: 3.1.73 MultiMeasureRest
- LilyPond Internals Reference: 3.1.74 MultiMeasureRestNumber
- LilyPond Internals Reference: 3.1.125 TimeSignature
おわり
組曲を書かない限り使うことはないでしょう!
楽しいLilyPondライフを!!
Discussion