]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/define-music-display-methods.scm
Add overflow size to the page overflow warning.
[lilypond.git] / scm / define-music-display-methods.scm
index 53bddaac9359616232bfa2943c4241bec3029b19..03df67ab82a71efc5697b41115870e0c6f22780b 100644 (file)
@@ -512,6 +512,9 @@ Otherwise, return #f."
 (define-display-method SkipMusic (skip parser)
   (format #f "\\skip ~a" (duration->lily-string (ly:music-property skip 'duration) #:force-duration #t)))
 
+(define-display-method OttavaMusic (ottava parser)
+  (format #f "\\ottava #~a" (ly:music-property ottava 'ottava-number)))
+
 ;;;
 ;;; Notes, rests, skips...
 ;;;
@@ -880,6 +883,20 @@ Otherwise, return #f."
                properties)
            (new-line->lily-string))))
 
+(define-display-method TimeSignatureMusic (expr parser)
+  (let* ((num (ly:music-property expr 'numerator))
+         (den (ly:music-property expr 'denominator))
+         (structure (ly:music-property expr 'beat-structure)))
+    (if (null? structure)
+        (format #f
+                "\\time ~a/~a~a"
+                num den
+                (new-line->lily-string))
+        (format #f
+                "#(set-time-signature ~a ~a '~a)~a"
+                num den structure
+                (new-line->lily-string)))))
+
 ;;; \melisma and \melismaEnd
 (define-extra-display-method ContextSpeccedMusic (expr parser)
   "If expr is a melisma, return \"\\melisma\", otherwise, return #f."
@@ -984,41 +1001,6 @@ Otherwise, return #f."
                  (new-line->lily-string))
          #f))))
 
-;;; \time
-(define-extra-display-method ContextSpeccedMusic (expr parser)
-  "If `expr' is a time signature set, return \"\\time ...\".
-Otherwise, return #f.  Note: default grouping is not available."
-  (with-music-match
-   (expr (music
-           'ContextSpeccedMusic
-          element (music
-                   'ContextSpeccedMusic
-                   context-type 'Timing
-                   element (music
-                            'SequentialMusic
-                            elements ?elts))))
-   (and
-    (> (length ?elts) 2)
-    (with-music-match ((cadr ?elts)
-                       (music 'PropertySet
-                              symbol 'beatLength))
-       #t)
-    (with-music-match ((caddr ?elts)
-                       (music 'PropertySet
-                              symbol 'measureLength))
-       #t)
-    (with-music-match ((car ?elts)
-                       (music 'PropertySet
-                              value ?num+den
-                              symbol 'timeSignatureFraction))
-       (if (eq? (length ?elts) 3)
-           (format
-             #f "\\time ~a/~a~a"
-             (car ?num+den) (cdr ?num+den) (new-line->lily-string))
-           (format
-             #f "#(set-time-signature ~a ~a '(<grouping-specifier>))~a"
-             (car ?num+den) (cdr ?num+den)  (new-line->lily-string)))))))
-
 ;;; \bar
 (define-extra-display-method ContextSpeccedMusic (expr parser)
   "If `expr' is a bar, return \"\\bar ...\".