]> git.donarmstrong.com Git - lilypond.git/blobdiff - scm/tablature.scm
Tablature: simplify custom fret label callback
[lilypond.git] / scm / tablature.scm
index 8d15fceeb406b6fcf38b65344b28cecc8ca55fbc..7845f2192761e930b122fb178ee4c5e78ae0290c 100644 (file)
@@ -1,6 +1,6 @@
 ;;;; This file is part of LilyPond, the GNU music typesetter.
 ;;;;
-;;;; Copyright (C) 2009 Marc Hohl <marc@hohlart.de>
+;;;; Copyright (C) 2009--2010 Marc Hohl <marc@hohlart.de>
 ;;;;
 ;;;; LilyPond is free software: you can redistribute it and/or modify
 ;;;; it under the terms of the GNU General Public License as published by
@@ -22,7 +22,7 @@
 (define-public guitar-drop-d-tuning '(4 -1 -5 -10 -15 -22))
 (define-public guitar-open-g-tuning '(2 -1 -5 -10 -17 -22))
 (define-public guitar-open-d-tuning '(2 -3 -6 -10 -15 -22))
-(define-public guitar-dadgad-tuning '(2 -3 -7 -10 -15 -22))
+(define-public guitar-dadgad-tuning '(2 -3 -5 -10 -15 -22))
 (define-public guitar-lute-tuning '(4 -1 -6 -10 -15 -20))
 (define-public guitar-asus4-tuning '(4 -3 -8 -10 -15 -20))
 ;; bass tunings
          (tab-note-head-parenthesized (assoc-get 'parenthesize repeat-tied-properties #t)))
 
     (if tab-note-head-visible
-       ;; tab note head is visible
-       (if tab-note-head-parenthesized
+        ;; tab note head is visible
+        (if tab-note-head-parenthesized
            (ly:grob-set-property! tied-tab-note-head 'stencil
                                   (lambda (grob)
                                     (parenthesize-tab-note-head grob))))
        ;; tab note head is invisible
-       (ly:grob-set-property! tied-tab-note-head 'transparent #t))))
+       (begin
+          (ly:grob-set-property! tied-tab-note-head 'transparent #t)
+          (ly:grob-set-property! tied-tab-note-head 'whiteout #f)))))
 
 ;; the slurs should not be too far apart from the corresponding fret number, so
 ;; we move the slur towards the TabNoteHeads:
 
     (ly:grob-set-property! grob 'control-points new-control-points)
     (ly:slur::print grob)))
+
+;; for \tabFullNotation, the stem tremolo beams are too big in comparison to
+;; normal staves; this wrapper function scales accordingly:
+(define-public (stem-tremolo::calc-tab-width grob)
+  (let ((width (ly:stem-tremolo::calc-width grob))
+       (staff-space (ly:staff-symbol-staff-space grob)))
+    (/ width staff-space)))
+
+
+;; a callback for custom fret labels
+(define-public ((tab-note-head::print-custom-fret-label fret) grob)
+  (grob-interpret-markup grob (markup #:vcenter fret)))