;;;; This file is part of LilyPond, the GNU music typesetter.
;;;;
-;;;; Copyright (C) 1998--2010 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; Copyright (C) 1998--2012 Han-Wen Nienhuys <hanwen@xs4all.nl>
;;;; Jan Nieuwenhuizen <janneke@gnu.org>
;;;; Neil Puttock <n.puttock@gmail.com>
;;;; Carl Sorensen <c_sorensen@byu.edu>
(make-music 'BarCheck
'origin location))))
+(define (make-volta-set music)
+ (let* ((alts (ly:music-property music 'elements))
+ (lalts (length alts))
+ (times (ly:music-property music 'repeat-count)))
+ (map (lambda (x y)
+ (make-music
+ 'SequentialMusic
+ 'elements
+ ;; set properties for proper bar numbering
+ (append
+ (list (make-music 'AlternativeEvent
+ 'alternative-dir (if (= y 0)
+ -1
+ 0)
+ 'alternative-increment
+ (if (= 0 y)
+ (1+ (- times
+ lalts))
+ 1)))
+ (list x)
+ (if (= y (1- lalts))
+ (list (make-music 'AlternativeEvent
+ 'alternative-dir 1
+ 'alternative-increment 0))
+ '()))))
+ alts
+ (iota lalts))))
+
(define (make-ottava-set music)
"Set context properties for an ottava bracket."
(let ((octavation (ly:music-property music 'ottava-number)))
(define (make-time-signature-set music)
"Set context properties for a time signature."
- (let* ((arguments (ly:music-property music 'time-signature-arguments))
- (num (car arguments))
- (den (cadr arguments))
- (rest (caddr arguments))
+ (let* ((num (ly:music-property music 'numerator))
+ (den (ly:music-property music 'denominator))
+ (structure (ly:music-property music 'beat-structure))
(fraction (cons num den)))
(list (descend-to-context
(context-spec-music
(my-base-fraction
(base-fraction fraction time-signature-settings))
(my-beat-structure
- (if (null? rest)
+ (if (null? structure)
(beat-structure my-base-fraction
fraction
time-signature-settings)
- rest))
+ structure))
(beaming-exception
(beam-exceptions fraction time-signature-settings))
(new-measure-length (ly:make-moment num den)))