(if (equal?
(ly:get-mus-property music 'iterator-ctor)
Chord_tremolo_iterator::constructor)
- (shift-ly:duration-log music (ly:intlog2 (ly:get-mus-property music 'repeat-count)) 0)
+ (shift-duration-log music (ly:intlog2 (ly:get-mus-property music 'repeat-count)) 0)
)
(ly:set-mus-property!
music 'length Repeated_music::unfolded_music_length)
))
))
+
+(define-public (make-property-set sym val)
+ (let*
+ (
+ (m (make-music-by-name 'PropertySet))
+ )
+ (ly:set-mus-property! m 'symbol sym)
+ (ly:set-mus-property! m 'value val)
+ m
+ ))
+
+(define-public (make-time-signature-set num den . rest)
+ " Set properties for time signature NUM/DEN.
+Rest can contain a list of beat groupings
+
+"
+
+ (let*
+ (
+ (set1 (make-property-set 'timeSignatureFraction (cons num den) ))
+ (beat (ly:make-moment 1 den))
+ (len (ly:make-moment num den))
+ (set2 (make-property-set 'beatLength beat))
+ (set3 (make-property-set 'measureLength len))
+ (set4 (make-property-set 'beatGrouping (if (pair? rest)
+ (car rest)
+ '())))
+ (basic (list set1 set2 set3 set4))
+
+ )
+
+ (context-spec-music
+ (make-sequential-music basic) "Timing")))
+
+(define-public (set-time-signature num den . rest)
+ (ly:export (apply make-time-signature-set `(,num ,den . ,rest)))
+ )
+
(define-public (make-penalty-music pen)
(let
((m (make-music-by-name 'BreakEvent)))
m
))
+(define-public (make-span-event type spandir)
+ (let* (
+ (m (make-music-by-name type))
+ )
+ (ly:set-mus-property! m 'span-direction spandir)
+ m
+ ))
(define-public (set-mus-properties! m alist)
"Set all of ALIST as properties of M."
))
(define-public (empty-music)
- (ly:id (make-music-by-name 'Music))
+ (ly:export (make-music-by-name 'Music))
)
;;;
(not (eq? #f (memq symbol (ly:get-grob-property elt 'interfaces))))))
+
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; warn for bare chords at start.