]> git.donarmstrong.com Git - lilypond.git/blob - ly/music-functions-init.ly
*** empty log message ***
[lilypond.git] / ly / music-functions-init.ly
1 \version "2.3.8"
2
3
4 applymusic = #(def-music-function (location func music) (procedure? ly:music?)
5                (func music))
6
7 oldaddlyrics = #(def-music-function (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 (location part1 part2) (ly:music? ly:music?)
18                 (make-part-combine-music (list part1 part2)))
19
20 autochange = #(def-music-function (location music) (ly:music?)
21                (make-autochange-music music))
22
23 applycontext = #(def-music-function (location proc) (procedure?)
24                  (make-music 'ApplyContext 
25                    'origin location
26                    'procedure proc))
27
28 applyoutput = #(def-music-function (location proc) (procedure?)
29                 (make-music 'ApplyOutputEvent 
30                   'origin location
31                   'procedure proc))
32
33 breathe = #(def-music-function (location) ()
34             (make-music 'EventChord 
35               'origin location
36               'elements (list (make-music 'BreathingSignEvent))))
37
38
39 unfoldrepeats = #(def-music-function (location music) (ly:music?)
40                   (unfold-repeats music))
41
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))))
45
46
47 %% \mytag #'foo { ... } ==> OK
48 %% c-\mytag #'foo ^4    ==> KO
49 %{
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."
53   (or (symbol? obj)
54       (and (list? obj)
55            (null? (remove symbol? obj)))))
56
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)))
60         music)
61 %}
62
63 %{
64
65 TODO:
66
67 remove these from the parser, and softcode here:
68
69  * \tag
70
71 with small syntax changes, we could also do
72
73  * \bar
74  *  ?
75
76 %}