[ << Changing defaults ] | [Top][Contents][Index][ ? ] | [ Notation manual tables >> ] | ||
[ < Using music functions ] | [ Up : Using music functions ] | [ Substitution function examples > ] |
5.6.1 Substitution function syntax
Making a function that substitutes a variable into LilyPond code is easy. The general form of these functions is
function = #(define-music-function (arg1 arg2 …) (type1? type2? …) #{ …music… #})
where
argN | nth argument |
typeN? | a scheme type predicate for which argN
must return #t . |
…music… | normal LilyPond input, using $ (in places where only
LilyPond constructs are allowed) or # (to use it as a Scheme
value or music function argument or music inside of music lists) to
reference arguments
(eg. ‘#arg1’). |
The list of type predicates is required. Some of the most common type predicates used in music functions are:
boolean? cheap-list? (use instead of ‘list?’ for faster processing) ly:duration? ly:music? ly:pitch? markup? number? pair? string? symbol?
For a list of available type predicates, see Predefined type predicates. User-defined type predicates are also allowed.
See also
Notation Reference: Predefined type predicates.
Extending LilyPond: Music functions.
Installed Files: ‘lily/music-scheme.cc’, ‘scm/c++.scm’, ‘scm/lily.scm’.
[ << Changing defaults ] | [Top][Contents][Index][ ? ] | [ Notation manual tables >> ] | ||
[ < Using music functions ] | [ Up : Using music functions ] | [ Substitution function examples > ] |
Jiné jazyky: català, deutsch, español, français, italiano, 日本語.
About automatic language selection.