]> git.donarmstrong.com Git - lilypond.git/blob - ly/music-functions-init.ly
c38e5a771c5dc2428ec9546454276cab3a178360
[lilypond.git] / ly / music-functions-init.ly
1 \version "2.4.0"
2
3
4 applymusic = #(def-music-function (parser location func music) (procedure? ly:music?)
5                (func music))
6
7 oldaddlyrics = #(def-music-function (parser location music lyrics) (ly:music? ly:music?)
8
9               (make-music 'LyricCombineMusic 
10                           'origin location
11                           'elements (list music lyrics)))
12
13 grace = #(def-grace-function startGraceMusic stopGraceMusic)
14 acciaccatura = #(def-grace-function startAcciaccaturaMusic stopAcciaccaturaMusic)
15 appoggiatura = #(def-grace-function startAppoggiaturaMusic stopAppoggiaturaMusic)
16
17 partcombine = #(def-music-function (parser location part1 part2) (ly:music? ly:music?)
18                 (make-part-combine-music (list part1 part2)))
19
20 autochange = #(def-music-function (parser location music) (ly:music?)
21                (make-autochange-music music))
22
23 applycontext = #(def-music-function (parser location proc) (procedure?)
24                  (make-music 'ApplyContext 
25                    'origin location
26                    'procedure proc))
27
28 displayMusic = #(def-music-function (parser location music) (ly:music?)
29                  (display-music music)
30                  music)
31 applyoutput = #(def-music-function (parser location proc) (procedure?)
32                 (make-music 'ApplyOutputEvent 
33                   'origin location
34                   'procedure proc))
35
36 breathe = #(def-music-function (parser location) ()
37             (make-music 'EventChord 
38               'origin location
39               'elements (list (make-music 'BreathingSignEvent))))
40
41
42 unfoldrepeats = #(def-music-function (parser location music) (ly:music?)
43                   (unfold-repeats music))
44
45 compressmusic = #(def-music-function
46                   (parser location fraction music) (number-pair? ly:music?)
47                   (ly:music-compress music (ly:make-moment (car fraction) (cdr fraction))))
48
49 makeClusters = #(def-music-function
50                 (parser location arg) (ly:music?)
51                 (music-map note-to-cluster arg))
52
53
54 removeWithTag = 
55 #(def-music-function
56   (parser location tag music) (symbol? ly:music?)
57   (music-filter
58    (lambda (m)
59     (let* ((tags (ly:music-property m 'tags))
60             (res (memq tag tags)))
61        (not res)))))
62               
63 keepWithTag =
64 #(def-music-function
65   (parser location tag music) (symbol? ly:music?)
66   (music-filter
67    (lambda (m)
68     (let* ((tags (ly:music-property m 'tags))
69            (res (memq tag tags)))
70        (or
71         (eq? tags '())
72         (memq tag tags))))
73    music))
74
75
76 %% Todo:
77 %% doing
78 %% def-music-function in a .scm causes crash.
79
80 cueDuring = 
81 #(def-music-function
82   (parser location what dir main-music)
83   (string? ly:dir? ly:music?)
84   (make-music 'QuoteMusic
85               'element main-music 
86               'quoted-context-type 'Voice
87               'quoted-context-id "cue"
88               'quoted-music-name what
89               'quoted-voice-direction dir
90               'origin location))
91
92
93 quoteDuring = #
94 (def-music-function
95   (parser location what main-music)
96   (string? ly:music?)
97   (make-music 'QuoteMusic
98               'element main-music
99               'quoted-music-name what
100               'origin location))
101
102
103
104
105 killCues =
106 #(def-music-function
107    (parser location music)
108    (ly:music?)
109    (music-map
110     (lambda (mus)
111       (if (string? (ly:music-property mus 'quoted-music-name))
112           (ly:music-property mus 'element)
113           mus)) music))
114    
115
116
117 %{
118
119 TODO:
120
121 remove these from the parser, and softcode here:
122
123  * \tag
124
125 with small syntax changes, we could also do
126
127  * \bar
128  *  ?
129
130 %}