]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/define-music-display-methods.scm
Run `make grand-replace'.
[lilypond.git] / scm / define-music-display-methods.scm
index 3212e5f0b8be0f7ade9cdce5c361bded2510773d..4e846a5a64cd4b9c38bcb75a69936fcba7d673a1 100644 (file)
@@ -1,7 +1,7 @@
 ;;; define-music-display-methods.scm -- data for displaying music
 ;;; expressions using LilyPond notation.
 ;;;
-;;; (c) 2005--2006 Nicolas Sceaux  <nicolas.sceaux@free.fr>
+;;; (c) 2005--2008 Nicolas Sceaux  <nicolas.sceaux@free.fr>
 ;;;
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -689,9 +689,6 @@ Otherwise, return #f."
 (define-display-method UnfoldedRepeatedMusic (expr parser)
   (repeat->lily-string expr "unfold" parser))
 
-(define-display-method FoldedRepeatedMusic (expr parser)
-  (repeat->lily-string expr "fold" parser))
-
 (define-display-method PercentRepeatedMusic (expr parser)
   (repeat->lily-string expr "percent" parser))
 
@@ -884,21 +881,48 @@ Otherwise, return #f."
     "\\melismaEnd"))
 
 ;;; \tempo
+;;; Check for all three different syntaxes of tempo:
+;;; \tempo string duration=note, \tempo duration=note and \tempo string
 (define-extra-display-method ContextSpeccedMusic (expr parser)
   "If expr is a tempo, return \"\\tempo x = nnn\", otherwise return #f."
-  (with-music-match (expr (music 'ContextSpeccedMusic
+  (or   (with-music-match (expr (music 'ContextSpeccedMusic
+               element (music 'SequentialMusic
+                             elements ((music 'PropertySet
+                                         value ?unit-text
+                                         symbol 'tempoText)
+                                       (music 'PropertySet
+                                         symbol 'tempoWholesPerMinute)
+                                       (music 'PropertySet
+                                         value ?unit-duration
+                                         symbol 'tempoUnitDuration)
+                                       (music 'PropertySet
+                                         value ?unit-count
+                                         symbol 'tempoUnitCount)))))
+               (format #f "\\tempo ~a ~a = ~a"
+                       (scheme-expr->lily-string ?unit-text)
+                       (duration->lily-string ?unit-duration #:force-duration #t)
+                       ?unit-count))
+       (with-music-match (expr (music 'ContextSpeccedMusic
+                   element (music 'SequentialMusic
+                             elements ((music 'PropertyUnset
+                                         symbol 'tempoText)
+                                       (music 'PropertySet
+                                         symbol 'tempoWholesPerMinute)
+                                       (music 'PropertySet
+                                         value ?unit-duration
+                                         symbol 'tempoUnitDuration)
+                                       (music 'PropertySet
+                                         value ?unit-count
+                                         symbol 'tempoUnitCount)))))
+                       (format #f "\\tempo ~a = ~a"
+                               (duration->lily-string ?unit-duration #:force-duration #t)
+                               ?unit-count))
+       (with-music-match (expr (music 'ContextSpeccedMusic
                            element (music 'SequentialMusic
                                      elements ((music 'PropertySet
-                                                 symbol 'tempoWholesPerMinute)
-                                               (music 'PropertySet
-                                                 value ?unit-duration
-                                                 symbol 'tempoUnitDuration)
-                                               (music 'PropertySet
-                                                 value ?unit-count
-                                                 symbol 'tempoUnitCount)))))
-    (format #f "\\tempo ~a = ~a"
-           (duration->lily-string ?unit-duration #:force-duration #t)
-           ?unit-count)))
+                                                 value ?tempo-text
+                                                symbol 'tempoText)))))
+                       (format #f "\\tempo ~a" (scheme-expr->lily-string ?tempo-text)))))
 
 ;;; \clef 
 (define clef-name-alist #f)
@@ -921,13 +945,15 @@ Otherwise, return #f."
                                                                 value ?clef-glyph
                                                                 symbol 'clefGlyph)
                                                          (music 'PropertySet
-                                                                symbol 'middleCPosition)
+                                                                symbol 'middleCClefPosition)
                                                          (music 'PropertySet
                                                                 value ?clef-position
                                                                 symbol 'clefPosition)
                                                          (music 'PropertySet
                                                                 value ?clef-octavation
-                                                                symbol 'clefOctavation)))))
+                                                                symbol 'clefOctavation)
+                                                         (music 'ApplyContext
+                                                                procedure ly:set-middle-C!)))))
     (let ((clef-prop+name (assoc (list ?clef-glyph ?clef-position 0)
                                 clef-name-alist)))
       (if clef-prop+name