(make-procedure-with-setter ly:music-property
ly:music-set-property!))
-(define-safe-public (music-is-of-type? mus type)
- "Does @code{mus} belong to the music class @code{type}?"
- (memq type (ly:music-property mus 'types)))
;; TODO move this
(define-public ly:grob-property
(set! (ly:music-property music 'duration) nd)))
music))
+
+
(define-public (shift-duration-log music shift dot)
(music-map (lambda (x) (shift-one-duration-log x shift dot))
music))
(define-public (make-time-signature-set num den . rest)
"Set properties for time signature NUM/DEN. Rest can contain a list
of beat groupings "
-
- (define (standard-beat-grouping num den)
-
- "Some standard subdivisions for time signatures."
- (let*
- ((key (cons num den))
- (entry (assoc key '(((6 . 8) . (3 3))
- ((5 . 8) . (3 2))
- ((9 . 8) . (3 3 3))
- ((12 . 8) . (3 3 3 3))
- ((8 . 8) . (3 3 2))
- ))))
-
- (if entry
- (cdr entry)
- '())))
-
(let* ((set1 (make-property-set 'timeSignatureFraction (cons num den)))
(beat (ly:make-moment 1 den))
(len (ly:make-moment num den))
(set3 (make-property-set 'measureLength len))
(set4 (make-property-set 'beatGrouping (if (pair? rest)
(car rest)
- (standard-beat-grouping num den))))
+ '())))
(basic (list set1 set2 set3 set4)))
(descend-to-context
(context-spec-music (make-sequential-music basic) 'Timing) 'Score)))