7 #(use-modules (srfi srfi-1))
10 #(def-music-function (parser location func music) (procedure? ly:music?)
14 #(def-music-function (parser location music lyrics) (ly:music? ly:music?)
16 (make-music 'OldLyricCombineMusic
18 'elements (list music lyrics)))
21 #(def-grace-function startGraceMusic stopGraceMusic)
24 #(def-grace-function startAcciaccaturaMusic stopAcciaccaturaMusic)
26 #(def-grace-function startAppoggiaturaMusic stopAppoggiaturaMusic)
29 #(def-music-function (parser location part1 part2) (ly:music? ly:music?)
30 (make-part-combine-music (list part1 part2)))
33 #(def-music-function (parser location music) (ly:music?)
34 (make-autochange-music music))
37 #(def-music-function (parser location proc) (procedure?)
38 (make-music 'ApplyContext
43 #(def-music-function (parser location proc mus) (procedure? ly:music?)
47 #(def-music-function (parser location music) (ly:music?)
48 (display-scheme-music music)
51 %% FIXME: guile-1.7 required?
52 %#(use-modules (scm display-lily))invalid module name for use-syntax ((srfi srfi-39))
54 #(use-modules (scm display-lily))
55 #(display-lily-init parser)
57 #(def-music-function (parser location music) (ly:music?)
58 (display-lily-music music)
62 #(def-music-function (parser location proc) (procedure?)
63 (make-music 'ApplyOutputEvent
68 #(def-music-function (parser location name property value)
69 (string? symbol? scheme?)
72 "Set @var{property} to @var{value} in all grobs named @var{name}.
73 The @var{name} argument is a string of the form @code{\"Context.GrobName\"}
74 or @code{\"GrobName\"}"
77 ((name-components (string-split name #\.))
78 (context-name 'Bottom)
81 (if (> 2 (length name-components))
82 (set! grob-name (string->symbol (car name-components)))
84 (set! grob-name (string->symbol (list-ref name-components 1)))
85 (set! context-name (string->symbol (list-ref name-components 0)))))
88 (make-music 'ApplyOutputEvent
91 (lambda (grob orig-context context)
93 (cdr (assoc 'name (ly:grob-property grob 'meta)))
95 (set! (ly:grob-property grob property) value)
101 #(def-music-function (parser location) ()
102 (make-music 'EventChord
104 'elements (list (make-music 'BreathingSignEvent))))
108 #(def-music-function (parser location music) (ly:music?)
109 (unfold-repeats music))
113 (parser location fraction music) (number-pair? ly:music?)
114 (ly:music-compress music (ly:make-moment (car fraction) (cdr fraction))))
118 (parser location arg) (ly:music?)
119 (music-map note-to-cluster arg))
124 (parser location tag music) (symbol? ly:music?)
127 (let* ((tags (ly:music-property m 'tags))
128 (res (memq tag tags)))
134 (parser location tag music) (symbol? ly:music?)
137 (let* ((tags (ly:music-property m 'tags))
138 (res (memq tag tags)))
147 %% def-music-function in a .scm causes crash.
151 (parser location what dir main-music)
152 (string? ly:dir? ly:music?)
153 (make-music 'QuoteMusic
155 'quoted-context-type 'Voice
156 'quoted-context-id "cue"
157 'quoted-music-name what
158 'quoted-voice-direction dir
164 (parser location what main-music)
166 (make-music 'QuoteMusic
168 'quoted-music-name what
175 (parser location main-note secondary-note)
176 (ly:music? ly:music?)
178 ((get-notes (lambda (ev-chord)
180 (lambda (m) (eq? 'NoteEvent (ly:music-property m 'name)))
181 (ly:music-property ev-chord 'elements))))
182 (sec-note-events (get-notes secondary-note))
183 (trill-events (filter (lambda (m) (memq 'trill-span-event (ly:music-property m 'types)))
184 (ly:music-property main-note 'elements)))
187 (if (pair? sec-note-events)
188 (ly:music-property (car sec-note-events) 'pitch)
191 (if (ly:pitch? trill-pitch)
192 (for-each (lambda (m) (ly:music-set-property! m 'pitch trill-pitch))
195 (ly:warning (_ "Second argument of \\pitchedTrill should be single note: "))
196 (display sec-note-events)))
202 (parser location music)
206 (if (string? (ly:music-property mus 'quoted-music-name))
207 (ly:music-property mus 'element)
216 (parser location main grace)
217 (ly:music? ly:music?)
220 ((main-length (ly:music-length main))
221 (fraction (ly:parser-lookup parser 'afterGraceFraction)))
223 (make-simultaneous-music
226 (make-sequential-music
229 (make-music 'SkipMusic
230 'duration (ly:make-duration
232 (* (ly:moment-main-numerator main-length)
234 (* (ly:moment-main-denominator main-length)
236 (make-music 'GraceMusic
237 'element grace)))))))
241 #(def-music-function (parser location n) (integer?)
242 (make-music 'ApplyContext
247 ((cbn (ly:context-property c 'currentBarNumber)))
249 (ly:input-message location "Barcheck failed got ~a expect ~a"
257 remove these from the parser, and softcode here:
261 with small syntax changes, we could also do