(define (number-or-grob? x)
(or (ly-grob? x) (number? x))
)
-
+
+(define (grob-list? x)
+ (list? x))
+
(define (moment-pair? x)
(and (pair? x)
(moment? (car x)) (moment? (cdr x))))
(define (boolean-or-symbol? x)
(or (boolean? x) (symbol? x)))
-(define (number-or-boolean? x)
- (or (number? x) (boolean? x)))
-
(define (number-or-string? x)
(or (number? x) (string? x)))
(,number-pair? . "pair of numbers")
(,ly-input-location? . "input location")
(,ly-grob? . "grob (GRaphical OBject)")
+ (,grob-list? . "list of grobs")
(,duration? . "duration")
(,pair? . "pair")
(,integer? . "integer")
(,procedure? . "procedure")
(,boolean-or-symbol? . "boolean or symbol")
(,number-or-string? . "number or string")
- (,number-or-boolean? . "number or boolean")
(,markup? . "markup (list or string)")
(,number-or-grob? . "number or grob")
))
(let*
((supported-reps
`(("volta" . ((iterator-ctor . ,Volta_repeat_iterator::constructor)
+ (start-moment-function . ,Repeated_music::first_start)
(length . ,Repeated_music::volta_music_length)))
+
("unfold" . ((iterator-ctor . ,Unfolded_repeat_iterator::constructor)
- (length . ,Repeated_music::unfolded_music_length)))
+ (start-moment-function . ,Repeated_music::first_start)
+ (length . ,Repeated_music::unfolded_music_length)))
("fold" . ((iterator-ctor . ,Folded_repeat_iterator::constructor)
+ (start-moment-function . ,Repeated_music::minimum_start)
(length . ,Repeated_music::folded_music_length)))
("percent" . ((iterator-ctor . ,Percent_repeat_iterator::constructor)
+ (start-moment-function . ,Repeated_music::first_start)
(length . ,Repeated_music::unfolded_music_length)))
("tremolo" . ((iterator-ctor . ,Chord_tremolo_iterator::constructor)
- (length . ,Repeated_music::unfolded_music_length)))))
+ (start-moment-function . ,Repeated_music::first_start)
+
+ ;; the length of the repeat is handled by shifting the note logs
+ (length . ,Repeated_music::folded_music_length)))))
(handle (assoc name supported-reps)))