]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/translation-functions.scm
Merge branch 'master' into dev/texi2html
[lilypond.git] / scm / translation-functions.scm
index eab413f5ce8a1cd7ba220b5025dcb073889b58c6..0367a007ae5d512bcf3dc11a41d34f6ed1e91b83 100644 (file)
@@ -2,20 +2,44 @@
 ;;;;
 ;;;;  source file of the GNU LilyPond music typesetter
 ;;;; 
-;;;; (c) 1998--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
+;;;; (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
 ;;;;                Jan Nieuwenhuizen <janneke@gnu.org>
 
 ;; metronome marks
-(define-public (format-metronome-markup dur count context)
-  (let* ((note-mark (make-smaller-markup
-                    (make-note-by-number-markup (ly:duration-log dur)
-                                                (ly:duration-dot-count dur)
-                                                1))))  
-    (make-line-markup
-     (list
-      (make-general-align-markup Y DOWN note-mark)
-      (make-simple-markup  "=")
-      (make-simple-markup (number->string count))))))
+(define-public (format-metronome-markup text dur count context)
+  (let* ((hide_note (eq? #t (ly:context-property context 'tempoHideNote)))
+        (note-mark (if (and (not hide_note) (ly:duration? dur))
+                      (make-smaller-markup
+                      (make-note-by-number-markup (ly:duration-log dur)
+                                                  (ly:duration-dot-count dur)
+                                                  1))
+                     #f))
+         (note-markup (if (and note-mark (number? count) (> count 0) )
+                        (make-concat-markup (list
+                          (make-general-align-markup Y DOWN note-mark)
+                          (make-simple-markup " ")
+                          (make-simple-markup  "=")
+                          (make-simple-markup " ")
+                          (make-simple-markup (number->string count))))
+                        #f))
+         (text-markup (if (not (null? text))
+                        (make-bold-markup text)
+                        #f)))
+    (if text-markup
+      (if note-markup
+        (make-line-markup (list text-markup
+          (make-concat-markup (list (make-simple-markup "(")
+                                    note-markup
+                                    (make-simple-markup ")")))))
+        (make-line-markup (list text-markup))
+      )
+      (if note-markup
+        (make-line-markup (list note-markup))
+        #f
+      )
+    )
+  )
+)
 
 (define-public (format-mark-alphabet mark context)
   (make-bold-markup (make-markalphabet-markup (1- mark))))
                              (lambda (y) (make-translate-scaled-markup (cons -0.7 0) y))
                              identity)
 
-                         (if (eq? #t (ly:event-property event 'diminished))
-                             (markup #:slashed-digit figure)
-                             (markup #:number (number->string figure 10))))
+                         (cond
+                               ((eq? #t (ly:event-property event 'diminished))
+                                        (markup #:slashed-digit figure))
+                               ((eq? #t (ly:event-property event 'augmented-slash))
+                                        (markup #:backslashed-digit figure))
+                               (else (markup #:number (number->string figure 10)))))
                         #f
                         ))
         (alt (ly:event-property event 'alteration))
        b))
 (let*
       ((tunings (ly:context-property context 'stringTunings))
+       (details (ly:grob-property grob 'fret-diagram-details))
        (minimum-fret (ensure-number
                      (ly:context-property context 'minimumFret) 0))
        (max-stretch (ensure-number
                                         minimum-fret max-stretch
                                         tunings)))
 
-                     
-  (set! (ly:grob-property grob 'string-count) (length tunings))
-  (set! (ly:grob-property grob 'string-fret-finger-combinations) string-frets)
-
-  ))
+  (set! (ly:grob-property grob 'fret-diagram-details)
+          (if (null? details)
+              (acons 'string-count (length tunings) '())
+              (acons 'string-count (length tunings) details)))
+  (set! (ly:grob-property grob 'string-fret-finger-combinations) string-frets)))
 
 (define-public (determine-frets-mf notes string-numbers
                                   minimum-fret max-stretch