]> git.donarmstrong.com Git - lilypond.git/blob - input/test/reverse-music.ly
Add texidoc index and a few comments.
[lilypond.git] / input / test / reverse-music.ly
1 \version "1.7.18"
2 % possible rename to scheme-something.
3 \header { texidoc="@cindex Scheme Reverse Music
4 Simple customised music apply. "
5 }
6
7 music = \notes \relative c'' { c4 d4( e4 f4 }
8
9 #(define (reverse-music music)
10   (let* ((elements (ly:get-mus-property music 'elements))
11          (reversed (reverse elements))
12          (e (ly:get-mus-property music 'element))
13          (span-dir (ly:get-mus-property music 'span-direction)))
14
15     (ly:set-mus-property! music 'elements reversed)
16
17     (if (ly:music? e)
18         (ly:set-mus-property!
19          music 'element
20          (reverse-music e)))
21
22     (if (ly:dir? span-dir)
23         (ly:set-mus-property! music 'span-direction (- span-dir)))
24
25     (map reverse-music reversed)
26
27     music))
28
29 \score {
30   \context Voice {
31     \music
32     \apply #reverse-music \music
33   }
34   \paper { raggedright = ##t}
35 }
36
37 %% new-chords-done %%