]> git.donarmstrong.com Git - lilypond.git/blobdiff - input/test/reverse-music.ly
* input/test/vertical-extent.ly:
[lilypond.git] / input / test / reverse-music.ly
index 18d159b3318d60931748e300fcede80bda92a78e..985b471aefc688de13ba8b485a2476ef4f8d1fff 100644 (file)
@@ -1,39 +1,46 @@
-\version "1.7.6"
-
-\header {
-texidoc="
-Simple customised music apply.
+\version "2.9.7"
+\sourcefilename "reverse-music.ly"
+
+% possible rename to scheme-something.
+\header { texidoc="@cindex Scheme Reverse Music
+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 { linewidth = -1. }
+  \layout { ragged-right = ##t}
 }
 
-%% new-chords-done %%