7 #(use-modules (srfi srfi-1))
10 tweak = #(def-music-function (parser location sym val arg)
11 (symbol? scheme? ly:music?)
13 "Add @code{sym . val} to the @code{tweaks} property of @var{arg}."
17 (ly:music-property arg 'tweaks)
19 (ly:music-property arg 'tweaks)))
24 tag = #(def-music-function (parser location tag arg)
27 "Add @var{tag} to the @code{tags} property of @var{arg}."
30 (ly:music-property arg 'tags)
32 (ly:music-property arg 'tags)))
35 tag = #(def-music-function (parser location tag arg)
38 "Add @var{tag} to the @code{tags} property of @var{arg}."
41 (ly:music-property arg 'tags)
43 (ly:music-property arg 'tags)))
47 #(def-music-function (parser location type)
50 "Set the current clef."
55 #(def-music-function (parser location type)
58 (make-property-set 'whichBar type)
62 #(def-music-function (parser location func music) (procedure? ly:music?)
66 #(def-music-function (parser location music lyrics) (ly:music? ly:music?)
68 (make-music 'OldLyricCombineMusic
70 'elements (list music lyrics)))
73 #(def-grace-function startGraceMusic stopGraceMusic)
76 #(def-grace-function startAcciaccaturaMusic stopAcciaccaturaMusic)
78 #(def-grace-function startAppoggiaturaMusic stopAppoggiaturaMusic)
81 #(def-music-function (parser location part1 part2) (ly:music? ly:music?)
82 (make-part-combine-music (list part1 part2)))
85 #(def-music-function (parser location music) (ly:music?)
86 (make-autochange-music music))
89 #(def-music-function (parser location proc) (procedure?)
90 (make-music 'ApplyContext
95 #(def-music-function (parser location proc mus) (procedure? ly:music?)
99 #(def-music-function (parser location music) (ly:music?)
100 (display-scheme-music music)
103 %% FIXME: guile-1.7 required?
104 %#(use-modules (scm display-lily))invalid module name for use-syntax ((srfi srfi-39))
106 #(use-modules (scm display-lily))
107 #(display-lily-init parser)
109 #(def-music-function (parser location music) (ly:music?)
110 (display-lily-music music)
114 #(def-music-function (parser location proc) (procedure?)
115 (make-music 'ApplyOutputEvent
120 #(def-music-function (parser location name property value)
121 (string? symbol? scheme?)
124 "Set @var{property} to @var{value} in all grobs named @var{name}.
125 The @var{name} argument is a string of the form @code{\"Context.GrobName\"}
126 or @code{\"GrobName\"}"
129 ((name-components (string-split name #\.))
130 (context-name 'Bottom)
133 (if (> 2 (length name-components))
134 (set! grob-name (string->symbol (car name-components)))
136 (set! grob-name (string->symbol (list-ref name-components 1)))
137 (set! context-name (string->symbol (list-ref name-components 0)))))
140 (make-music 'ApplyOutputEvent
143 (lambda (grob orig-context context)
145 (cdr (assoc 'name (ly:grob-property grob 'meta)))
147 (set! (ly:grob-property grob property) value)
153 #(def-music-function (parser location) ()
154 (make-music 'EventChord
156 'elements (list (make-music 'BreathingSignEvent))))
160 #(def-music-function (parser location music) (ly:music?)
161 (unfold-repeats music))
165 (parser location fraction music) (number-pair? ly:music?)
166 (ly:music-compress music (ly:make-moment (car fraction) (cdr fraction))))
170 (parser location arg) (ly:music?)
171 (music-map note-to-cluster arg))
176 (parser location tag music) (symbol? ly:music?)
179 (let* ((tags (ly:music-property m 'tags))
180 (res (memq tag tags)))
186 (parser location tag music) (symbol? ly:music?)
189 (let* ((tags (ly:music-property m 'tags))
190 (res (memq tag tags)))
199 %% def-music-function in a .scm causes crash.
203 (parser location what dir main-music)
204 (string? ly:dir? ly:music?)
205 (make-music 'QuoteMusic
207 'quoted-context-type 'Voice
208 'quoted-context-id "cue"
209 'quoted-music-name what
210 'quoted-voice-direction dir
216 (parser location what main-music)
218 (make-music 'QuoteMusic
220 'quoted-music-name what
227 (parser location main-note secondary-note)
228 (ly:music? ly:music?)
230 ((get-notes (lambda (ev-chord)
232 (lambda (m) (eq? 'NoteEvent (ly:music-property m 'name)))
233 (ly:music-property ev-chord 'elements))))
234 (sec-note-events (get-notes secondary-note))
235 (trill-events (filter (lambda (m) (memq 'trill-span-event (ly:music-property m 'types)))
236 (ly:music-property main-note 'elements)))
239 (if (pair? sec-note-events)
240 (ly:music-property (car sec-note-events) 'pitch)
243 (if (ly:pitch? trill-pitch)
244 (for-each (lambda (m) (ly:music-set-property! m 'pitch trill-pitch))
247 (ly:warning (_ "Second argument of \\pitchedTrill should be single note: "))
248 (display sec-note-events)))
254 (parser location music)
258 (if (string? (ly:music-property mus 'quoted-music-name))
259 (ly:music-property mus 'element)
268 (parser location main grace)
269 (ly:music? ly:music?)
272 ((main-length (ly:music-length main))
273 (fraction (ly:parser-lookup parser 'afterGraceFraction)))
275 (make-simultaneous-music
278 (make-sequential-music
281 (make-music 'SkipMusic
282 'duration (ly:make-duration
284 (* (ly:moment-main-numerator main-length)
286 (* (ly:moment-main-denominator main-length)
288 (make-music 'GraceMusic
289 'element grace)))))))
293 #(def-music-function (parser location n) (integer?)
294 (make-music 'ApplyContext
299 ((cbn (ly:context-property c 'currentBarNumber)))
301 (ly:input-message location "Barcheck failed got ~a expect ~a"
306 % for regression testing purposes.
308 #(def-music-function (parser location l r) (pair? pair?)
309 (make-grob-property-override 'Beam 'positions
310 (ly:make-simple-closure
311 (ly:make-simple-closure
313 (list chain-grob-member-functions `(,cons 0 0))
314 (check-quant-callbacks l r))))))
316 % for regression testing purposes.
318 #(def-music-function (parser location comp) (procedure?)
319 (make-grob-property-override 'Beam 'positions
320 (ly:make-simple-closure
321 (ly:make-simple-closure
323 (list chain-grob-member-functions `(,cons 0 0))
324 (check-slope-callbacks comp))))))