]> git.donarmstrong.com Git - lilypond.git/commitdiff
Let EventChord replay articulations
authorDavid Kastrup <dak@gnu.org>
Wed, 8 Feb 2012 09:53:38 +0000 (10:53 +0100)
committerDavid Kastrup <dak@gnu.org>
Wed, 15 Feb 2012 05:45:29 +0000 (06:45 +0100)
lily/event-chord-iterator.cc
scm/define-music-display-methods.scm
scm/song-util.scm

index b71a0ff563f0b80ebfc8869d21b4cb631d157e91..cab7b259b07223b2b49f430029744ebd6fd741e7 100644 (file)
@@ -49,6 +49,12 @@ Event_chord_iterator::process (Moment m)
           Music *mus = unsmob_music (scm_car (s));
           report_event (mus);
         }
+      for (SCM s = get_music ()->get_property ("articulations");
+           scm_is_pair (s); s = scm_cdr (s))
+        {
+          Music *mus = unsmob_music (scm_car (s));
+          report_event (mus);
+        }
     }
   Simple_music_iterator::process (m);
 }
index 3e87b4a8a8bab722ac34ac4846fccbaacd3c27ed..5c7ec677de70850bc7f33e1e18a8dcf4d4edec41 100644 (file)
@@ -426,7 +426,8 @@ Otherwise, return #f."
   ;; post_events : ( post_event | tagged_post_event )*
   ;; tagged_post_event: '-' \tag embedded_scm post_event
 
-  (let* ((elements (ly:music-property chord 'elements))
+  (let* ((elements (append (ly:music-property chord 'elements)
+                          (ly:music-property chord 'articulations)))
         (chord-elements (filter (lambda (m)
                                    (music-is-of-type? m 'rhythmic-event))
                                 elements))
index 568b967ba6d16ef891b691c87774c81d2e6268a7..5eec46fdd69a34db7b00ce24f8aac3f6a95f2059 100644 (file)
@@ -159,12 +159,13 @@ If it unsets the property, return @code{#f}."
 (define-public (music-elements music)
   "Return list of all @var{music}'s top-level children."
   (let ((elt (ly:music-property music 'element))
-        (elts (append
-              (ly:music-property music 'articulations)
-              (ly:music-property music 'elements))))
-    (if (not (null? elt))
-        (cons elt elts)
-        elts)))
+        (elts (ly:music-property music 'elements))
+       (arts (ly:music-property music 'articulations)))
+    (if (pair? arts)
+       (set! elts (append elts arts)))
+    (if (null? elt)
+       elts
+        (cons elt elts))))
 
 (define-public (find-child music predicate)
   "Find the first node in @var{music} that satisfies @var{predicate}."