🎼

LilyPondでTacetをつくる

2018/07/25に公開

それっぽい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 – みんなの楽譜作成

コード

tacet.ly
\version "2.18.2"

tacet = {
  \compressFullBarRests 
  \override MultiMeasureRest.expand-limit = #1 
  \omit MultiMeasureRestNumber
  \omit Staff.TimeSignature
  R1*2 ^\markup { \center-align \bold "TACET" }
  \bar "|."
}

\score {
  \tacet
  \layout { ragged-right = ##f }
}

方針

  • 長休符を作って
  • その数字を消し
  • "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ライフを!!

GitHubで編集を提案

Discussion