5.6.1 置換関数の構文

変数を LilyPond コードに置換する関数を作成することは簡単にできます。置換関数の一般的な形式は以下のようなものです:

function =
#(define-music-function
     (arg1 arg2 …)
     (type1? type2? …)
   #{
     …music…
   #})

ここで

argNn 番目の引数
typeN?argN#t を返す Scheme の 型述語 (type predicate)。
…music…通常の LilyPond 入力。引数を参照するには $ (LilyPond 構造が許可されている場合のみ) や # (引数を Scheme 値、音楽関数の引数、あるいは音楽リスト内部の音楽として使う場合) を用います (例: ‘#arg1’)。

です。

引数として、型述語のリストが必須です。音楽関数で用いられる一般的な型述語には下記のものがあります:

boolean?
cheap-list?  (‘list?’ の代わりに用いることで、処理を高速にします)
ly:duration?
ly:music?
ly:pitch?
markup?
number?
pair?
string?
symbol?

利用可能な型述語のリストは、定義された型述語 を参照してください。ユーザが型述語を定義することもできます。

参照

記譜法リファレンス: 定義された型述語

拡張: Music functions

インストールされているファイル: lily/music-scheme.cc, scm/c++.scm, scm/lily.scm

LilyPond 記譜法リファレンス v2.25.22 (development-branch).