*** empty log message ***
[lilypond.git] / ly / music-functions-init.ly
blobf42bdd50d6542d7a8e58dc2b25cf2713827059b9
1 \version "2.4.0"
4 applymusic = #(def-music-function (parser location func music) (procedure? ly:music?)
5 (func music))
7 oldaddlyrics = #(def-music-function (parser location music lyrics) (ly:music? ly:music?)
9 (make-music 'OldLyricCombineMusic
10 'origin location
11 'elements (list music lyrics)))
13 grace = #(def-grace-function startGraceMusic stopGraceMusic)
15 acciaccatura = #(def-grace-function startAcciaccaturaMusic stopAcciaccaturaMusic)
16 appoggiatura = #(def-grace-function startAppoggiaturaMusic stopAppoggiaturaMusic)
18 partcombine = #(def-music-function (parser location part1 part2) (ly:music? ly:music?)
19 (make-part-combine-music (list part1 part2)))
21 autochange = #(def-music-function (parser location music) (ly:music?)
22 (make-autochange-music music))
24 applycontext = #(def-music-function (parser location proc) (procedure?)
25 (make-music 'ApplyContext
26 'origin location
27 'procedure proc))
29 musicMap = #(def-music-function (parser location proc mus) (procedure? ly:music?)
30 (music-map proc mus))
32 displayMusic = #(def-music-function (parser location music) (ly:music?)
33 (display-scheme-music music)
34 music)
35 applyoutput = #(def-music-function (parser location proc) (procedure?)
36 (make-music 'ApplyOutputEvent
37 'origin location
38 'procedure proc))
40 breathe = #(def-music-function (parser location) ()
41 (make-music 'EventChord
42 'origin location
43 'elements (list (make-music 'BreathingSignEvent))))
46 unfoldRepeats = #(def-music-function (parser location music) (ly:music?)
47 (unfold-repeats music))
49 compressMusic = #(def-music-function
50 (parser location fraction music) (number-pair? ly:music?)
51 (ly:music-compress music (ly:make-moment (car fraction) (cdr fraction))))
53 makeClusters = #(def-music-function
54 (parser location arg) (ly:music?)
55 (music-map note-to-cluster arg))
58 removeWithTag =
59 #(def-music-function
60 (parser location tag music) (symbol? ly:music?)
61 (music-filter
62 (lambda (m)
63 (let* ((tags (ly:music-property m 'tags))
64 (res (memq tag tags)))
65 (not res)))
66 music))
68 keepWithTag =
69 #(def-music-function
70 (parser location tag music) (symbol? ly:music?)
71 (music-filter
72 (lambda (m)
73 (let* ((tags (ly:music-property m 'tags))
74 (res (memq tag tags)))
75 (or
76 (eq? tags '())
77 res)))
78 music))
81 %% Todo:
82 %% doing
83 %% def-music-function in a .scm causes crash.
85 cueDuring =
86 #(def-music-function
87 (parser location what dir main-music)
88 (string? ly:dir? ly:music?)
89 (make-music 'QuoteMusic
90 'element main-music
91 'quoted-context-type 'Voice
92 'quoted-context-id "cue"
93 'quoted-music-name what
94 'quoted-voice-direction dir
95 'origin location))
98 quoteDuring = #
99 (def-music-function
100 (parser location what main-music)
101 (string? ly:music?)
102 (make-music 'QuoteMusic
103 'element main-music
104 'quoted-music-name what
105 'origin location))
110 killCues =
111 #(def-music-function
112 (parser location music)
113 (ly:music?)
114 (music-map
115 (lambda (mus)
116 (if (string? (ly:music-property mus 'quoted-music-name))
117 (ly:music-property mus 'element)
118 mus)) music))
121 afterGraceFraction = #(cons 6 8)
123 afterGrace =
124 #(def-music-function
125 (parser location main grace)
126 (ly:music? ly:music?)
128 (let*
129 ((main-length (ly:music-length main))
130 (fraction (ly:parser-lookup parser 'afterGraceFraction)))
132 (make-simultaneous-music
133 (list
134 main
135 (make-sequential-music
136 (list
138 (make-music 'SkipMusic
139 'duration (ly:make-duration
141 (* (ly:moment-main-numerator main-length)
142 (car fraction))
143 (* (ly:moment-main-denominator main-length)
144 (cdr fraction)) ))
145 (make-music 'GraceMusic
146 'element grace)))))))
150 TODO:
152 remove these from the parser, and softcode here:
154 * \tag
156 with small syntax changes, we could also do
158 * \bar