]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/define-music-callbacks.scm
Doc: Issue 4323: Ensure all contexts in satb.ly template stay alive
[lilypond.git] / scm / define-music-callbacks.scm
index 667a7c631505aa85556721845a122b6dd2aa37a1..34fa7b1a173ac29c93ab6e22240065bd5ecba58b 100644 (file)
@@ -1,6 +1,6 @@
 ;;;; This file is part of LilyPond, the GNU music typesetter.
 ;;;;
-;;;; Copyright (C) 1998--2014 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; Copyright (C) 1998--2015 Han-Wen Nienhuys <hanwen@xs4all.nl>
 ;;;;                 Jan Nieuwenhuizen <janneke@gnu.org>
 ;;;;                 Neil Puttock <n.puttock@gmail.com>
 ;;;;                 Carl Sorensen <c_sorensen@byu.edu>
 (define (mm-rest-child-list music)
   "Generate events for multimeasure rests,
 to be used by the sequential-iterator"
-  (let ((location (ly:music-property music 'origin))
-        (duration (ly:music-property music 'duration)))
+  (let ((location (ly:music-property music 'location)))
     (list (make-music 'BarCheck
                       'origin location)
-          (make-event-chord (cons (make-music 'MultiMeasureRestEvent
-                                              'origin location
-                                              'duration duration)
-                                  (ly:music-property music 'articulations)))
+          (make-music 'MultiMeasureRestEvent
+                      (ly:music-deep-copy music))
           (make-music 'BarCheck
                       'origin location))))
 
+(define (make-unfolded-set music)
+  (let ((n (ly:music-property music 'repeat-count))
+        (alts (ly:music-property music 'elements))
+        (body (ly:music-property music 'element)))
+    (cond ((<= n 0) '())
+          ((null? alts) (make-list n body))
+          (else
+           (concatenate
+            (zip (make-list n body)
+                 (append! (make-list (max 0 (- n (length alts)))
+                                     (car alts))
+                          alts)))))))
+
 (define (make-volta-set music)
   (let* ((alts (ly:music-property music 'elements))
          (lalts (length alts))