]> git.donarmstrong.com Git - lilypond.git/blobdiff - input/test/reverse-music.ly
Fix some bugs in the dynamic engraver and PostScript backend
[lilypond.git] / input / test / reverse-music.ly
index 8f40c63a40bde2b8e68a4915e05359e002ec783e..828afcd59b3254b24dc657f44ad34c9627e7aac9 100644 (file)
@@ -1,22 +1,30 @@
-\version "1.3.146"
 
-\header {
-texidoc="
-Simple customised music apply.
+\version "2.7.39"
+% 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 { c'4 d'4( e'4 f'4 }
+music =  \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))
-         (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 (dir? span-dir)
-        (ly-set-mus-property music 'span-direction (- span-dir)))
+    (if (ly:music? e)
+        (ly:music-set-property!
+         music 'element
+         (reverse-music e)))
+
+    (if (ly:dir? span-dir)
+        (ly:music-set-property! music 'span-direction (- span-dir)))
 
     (map reverse-music reversed)
 
@@ -25,8 +33,9 @@ music = \notes { c'4 d'4( e'4 f'4 }
 \score {
   \context Voice {
     \music
-    \apply #reverse-music \music
+    \applyMusic #reverse-music \music
   }
-  \paper { linewidth = -1. }
+  \layout { ragged-right = ##t}
 }
 
+