Help us understand the problem. What is going on with this article?

LilyPondでTacetをつくる

More than 1 year has passed since last update.

それっぽいTacetを作ります。
2018-07-25_01-08-24.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ライフを!!

rikegami
JavaScriptとかをやっている
solutionware
WEBサービスの開発・運営を通じてお客様の生産性向上を実現します
https://solutionware.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away