]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/output-lib.scm
* lily/break-substitution.cc (fast_fubstitute_grob_list): use
[lilypond.git] / scm / output-lib.scm
index 9902e3f94069d32d3490d7b47dbcdbebc4a4d035..58ec903adc5d970595058ae04b92fb4b599116df 100644 (file)
    )
   )
 
+(define (hammer-molecule-callback grob)
+  (let* ((note-collums (ly-get-grob-property grob 'note-columns))
+         (note-column1 (cadr note-collums))
+         (note-column2 (car  note-collums))
+         (note1        (car (ly-get-grob-property note-column1 'note-heads)))
+         (note2        (car (ly-get-grob-property note-column2 'note-heads)))
+         (fret1        (string->number (ly-get-grob-property note1 'text)))
+         (fret2        (string->number (ly-get-grob-property note2 'text)))
+         (letter       (if (< fret1 fret2) "H"
+                       (if (> fret1 fret2) "P"
+                                           "")))
+         )
+    (let ((slur (Slur::brew_molecule grob))
+          (text (fontify-text (ly-get-default-font grob) letter)))
+    
+      (let ((x (/ (- (cdr (ly-get-molecule-extent slur 0)) 
+                     (/ (cdr (ly-get-molecule-extent text 0)) 2.0)
+                     )
+                  -2.0)))
+      
+        (ly-set-molecule-extent! text 0 (cons x x))
+        (ly-align-to! text 0 1)
+        )
+      
+      (ly-combine-molecule-at-edge slur 1 1 text -0.6)
+      )
+    )
+  )
+
+
+
+
 ; end of tablature functions
 
 
@@ -155,7 +187,44 @@ centered, X==1 is at the right, X == -1 is at the left."
      ;; this also works for easy notation.
      '(1.0 . 0.0)
      )))
-                    
+
+(define (find-timesig-symbol nom denom style)
+  (case style
+   ((mensural)
+    (cons (string-append
+            "mensural"
+            (number->string nom)
+            "/"
+            (number->string denom))
+         "ancient"))
+   ((neo_mensural)
+    (cons (string-append
+            "neo_mensural"
+            (number->string nom)
+            "/"
+            (number->string denom))
+         "ancient"))
+   ((numbered)
+    (cons (string-append
+          (number->string nom)
+          "/"
+          (number->string denom))
+         "music"))
+   (else
+    ;; default: use "C" style when possible, otherwise return ""
+    (cons
+     (case nom
+       ((2)
+       (case denom
+         ((2) "C2/2")
+         (else "")))
+       ((4)
+       (case denom
+         ((4) "C4/4")
+         (else "")))
+       (else ""))
+     "music"))))
+
 (define (string-encode-integer i)
   (cond
    ((= i  0) "o")