+\version "2.10.0"
+\sourcefilename "reverse-music.ly"
-\version "2.1.7"
% possible rename to scheme-something.
\header { texidoc="@cindex Scheme Reverse Music
-Simple customised music apply. "
+Symmetric, or palindromical music can be produced, first, by printing
+some music, and second, by printing the same music applying a Scheme
+function to reverse the syntax.
+"
}
-music = \notes \relative c'' { c4 d4( e4 f4 }
-
#(define (reverse-music music)
- (let* ((elements (ly:get-mus-property music 'elements))
+ (let* ((elements (ly:music-property music 'elements))
(reversed (reverse elements))
- (e (ly:get-mus-property music 'element))
- (span-dir (ly:get-mus-property music 'span-direction)))
+ (e (ly:music-property music 'element))
+ (span-dir (ly:music-property music 'span-direction)))
- (ly:set-mus-property! music 'elements reversed)
+ (ly:music-set-property! music 'elements reversed)
(if (ly:music? e)
- (ly:set-mus-property!
+ (ly:music-set-property!
music 'element
(reverse-music e)))
(if (ly:dir? span-dir)
- (ly:set-mus-property! music 'span-direction (- span-dir)))
+ (ly:music-set-property! music 'span-direction (- span-dir)))
(map reverse-music reversed)
music))
+reverseMusic =
+#(define-music-function (parser location m) (ly:music?)
+ (reverse-music m)
+ )
+
+music = \relative c'' { c4 d4( e4 f4 }
+
\score {
- \context Voice {
+\context Voice {
\music
- \apply #reverse-music \music
+ \reverseMusic \music
}
- \paper { raggedright = ##t}
+ \layout { ragged-right = ##t}
}
-