7 #(use-modules (srfi srfi-1))
9 applymusic = #(def-music-function (parser location func music) (procedure? ly:music?)
12 oldaddlyrics = #(def-music-function (parser location music lyrics) (ly:music? ly:music?)
14 (make-music 'OldLyricCombineMusic
16 'elements (list music lyrics)))
18 grace = #(def-grace-function startGraceMusic stopGraceMusic)
20 acciaccatura = #(def-grace-function startAcciaccaturaMusic stopAcciaccaturaMusic)
21 appoggiatura = #(def-grace-function startAppoggiaturaMusic stopAppoggiaturaMusic)
23 partcombine = #(def-music-function (parser location part1 part2) (ly:music? ly:music?)
24 (make-part-combine-music (list part1 part2)))
26 autochange = #(def-music-function (parser location music) (ly:music?)
27 (make-autochange-music music))
29 applycontext = #(def-music-function (parser location proc) (procedure?)
30 (make-music 'ApplyContext
34 musicMap = #(def-music-function (parser location proc mus) (procedure? ly:music?)
37 displayMusic = #(def-music-function (parser location music) (ly:music?)
38 (display-scheme-music music)
40 applyoutput = #(def-music-function (parser location proc) (procedure?)
41 (make-music 'ApplyOutputEvent
45 breathe = #(def-music-function (parser location) ()
46 (make-music 'EventChord
48 'elements (list (make-music 'BreathingSignEvent))))
51 unfoldRepeats = #(def-music-function (parser location music) (ly:music?)
52 (unfold-repeats music))
54 compressMusic = #(def-music-function
55 (parser location fraction music) (number-pair? ly:music?)
56 (ly:music-compress music (ly:make-moment (car fraction) (cdr fraction))))
58 makeClusters = #(def-music-function
59 (parser location arg) (ly:music?)
60 (music-map note-to-cluster arg))
65 (parser location tag music) (symbol? ly:music?)
68 (let* ((tags (ly:music-property m 'tags))
69 (res (memq tag tags)))
75 (parser location tag music) (symbol? ly:music?)
78 (let* ((tags (ly:music-property m 'tags))
79 (res (memq tag tags)))
88 %% def-music-function in a .scm causes crash.
92 (parser location what dir main-music)
93 (string? ly:dir? ly:music?)
94 (make-music 'QuoteMusic
96 'quoted-context-type 'Voice
97 'quoted-context-id "cue"
98 'quoted-music-name what
99 'quoted-voice-direction dir
105 (parser location what main-music)
107 (make-music 'QuoteMusic
109 'quoted-music-name what
116 (parser location main-note secondary-note)
117 (ly:music? ly:music?)
119 ((get-notes (lambda (ev-chord)
121 (lambda (m) (eq? 'NoteEvent (ly:music-property m 'name)))
122 (ly:music-property ev-chord 'elements))))
123 (sec-note-events (get-notes secondary-note))
124 (trill-events (filter (lambda (m) (memq 'trill-span-event (ly:music-property m 'types)))
125 (ly:music-property main-note 'elements)))
128 (if (pair? sec-note-events)
129 (ly:music-property (car sec-note-events) 'pitch)
132 (if (ly:pitch? trill-pitch)
133 (for-each (lambda (m) (ly:music-set-property! m 'trill-pitch trill-pitch))
135 (ly:warning (_ "Second argument of \\pitchedTrill should be single note.")))
141 (parser location music)
145 (if (string? (ly:music-property mus 'quoted-music-name))
146 (ly:music-property mus 'element)
150 afterGraceFraction = #(cons 6 8)
154 (parser location main grace)
155 (ly:music? ly:music?)
158 ((main-length (ly:music-length main))
159 (fraction (ly:parser-lookup parser 'afterGraceFraction)))
161 (make-simultaneous-music
164 (make-sequential-music
167 (make-music 'SkipMusic
168 'duration (ly:make-duration
170 (* (ly:moment-main-numerator main-length)
172 (* (ly:moment-main-denominator main-length)
174 (make-music 'GraceMusic
175 'element grace)))))))
181 remove these from the parser, and softcode here:
185 with small syntax changes, we could also do