4 applymusic = #(def-music-function (location func music) (procedure? ly:music?)
7 oldaddlyrics = #(def-music-function (location music lyrics) (ly:music? ly:music?)
9 (make-music 'LyricCombineMusic
11 'elements (list music lyrics)))
13 grace = #(def-grace-function startGraceMusic stopGraceMusic)
14 acciaccatura = #(def-grace-function startAcciaccaturaMusic stopAcciaccaturaMusic)
15 appoggiatura = #(def-grace-function startAppoggiaturaMusic stopAppoggiaturaMusic)
17 partcombine = #(def-music-function (location part1 part2) (ly:music? ly:music?)
18 (make-part-combine-music (list part1 part2)))
20 autochange = #(def-music-function (location music) (ly:music?)
21 (make-autochange-music music))
23 applycontext = #(def-music-function (location proc) (procedure?)
24 (make-music 'ApplyContext
28 applyoutput = #(def-music-function (location proc) (procedure?)
29 (make-music 'ApplyOutputEvent
33 breathe = #(def-music-function (location) ()
34 (make-music 'EventChord
36 'elements (list (make-music 'BreathingSignEvent))))
39 unfoldrepeats = #(def-music-function (location music) (ly:music?)
40 (unfold-repeats music))
42 compressmusic = #(def-music-function
43 (location fraction music) (number-pair? ly:music?)
44 (ly:music-compress music (ly:make-moment (car fraction) (cdr fraction))))
47 %% \mytag #'foo { ... } ==> OK
48 %% c-\mytag #'foo ^4 ==> KO
50 #(use-modules (srfi srfi-1))
51 #(define-public (symbol-or-symbols? obj)
52 "Return #t iif obj is a symbol or a symbol list."
55 (null? (remove symbol? obj)))))
57 mytag = #(def-music-function (location tagname music) (symbol-or-symbols? ly:music?)
58 (set! (ly:music-property music 'tags)
59 ((if (list? tagname) append cons) tagname (ly:music-property music 'tags)))
67 remove these from the parser, and softcode here:
71 with small syntax changes, we could also do