]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/music-functions.scm
*** empty log message ***
[lilypond.git] / scm / music-functions.scm
index f078e40da4c80233f7e66edfe0ce3411635f59bc..95b83cb1d6a2f5595756b67ef818f3490a254667 100644 (file)
@@ -67,7 +67,7 @@ written by Rune Zedeler. "
          (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)
@@ -236,6 +236,44 @@ this is not an override
       ))
     ))
 
+
+(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)))
@@ -250,6 +288,13 @@ this is not an override
       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." 
@@ -349,7 +394,7 @@ this is not an override
      ))
 
 (define-public (empty-music)
-  (ly:id (make-music-by-name 'Music))
+  (ly:export (make-music-by-name 'Music))
   )
 ;;;
 
@@ -361,6 +406,7 @@ this is not an override
     (not (eq? #f (memq symbol (ly:get-grob-property elt 'interfaces))))))
 
 
+
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; warn for bare chords at start.