From: David Kastrup Date: Wed, 8 Feb 2012 09:53:38 +0000 (+0100) Subject: Let EventChord replay articulations X-Git-Tag: release/2.15.30-1~18 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=d22c6ec121fc0a5740fc7c6ca4277db56d0a4e7d;p=lilypond.git Let EventChord replay articulations --- diff --git a/lily/event-chord-iterator.cc b/lily/event-chord-iterator.cc index b71a0ff563..cab7b259b0 100644 --- a/lily/event-chord-iterator.cc +++ b/lily/event-chord-iterator.cc @@ -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); } diff --git a/scm/define-music-display-methods.scm b/scm/define-music-display-methods.scm index 3e87b4a8a8..5c7ec677de 100644 --- a/scm/define-music-display-methods.scm +++ b/scm/define-music-display-methods.scm @@ -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)) diff --git a/scm/song-util.scm b/scm/song-util.scm index 568b967ba6..5eec46fdd6 100644 --- a/scm/song-util.scm +++ b/scm/song-util.scm @@ -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}."