]> git.donarmstrong.com Git - lilypond.git/commitdiff
*** empty log message ***
authorCarl Sorensen <c_sorensen@byu.edu>
Mon, 9 Aug 2004 03:08:19 +0000 (03:08 +0000)
committerCarl Sorensen <c_sorensen@byu.edu>
Mon, 9 Aug 2004 03:08:19 +0000 (03:08 +0000)
ChangeLog
scm/define-grob-interfaces.scm
scm/define-grob-properties.scm
scm/fret-diagrams.scm

index 87dd8d61b6bfc2026fa7dca99daa7754f8003944..c560e888bdd345742fdd7e8fdf9af185d124e5ec 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2004-08-08  Carl Sorensen  <carldsorensen@comcast.net>
+
+       * scm/define-grob-interfaces.scm (fret-diagram-interface): add
+       number-type and label-dir
+
+       * scm/define-grob-properties.scm: add number-type and label-dir
+
+       * scm/fret-diagrams.scm (label-fret): allow fret label to be on either 
+       left or right.  Allow choice of upper-case roman, lower-case roman, or
+       arabic numerals in fret label
+
 2004-08-04  Werner Lemberg  <wl@gnu.org>
 
        * lily/slur-quanting.cc: Include libc-extension.hh.
index f181a74de65b9f0d3c367d867118fd052a2b3eb0..e04c1e6b9d799fd74fe20555c873f1c1b8a8e48e 100644 (file)
@@ -26,7 +26,7 @@
  'fret-diagram-interface
  "A fret diagram"
  '(align-dir barre-type dot-color dot-radius finger-code fret-count 
-  size string-count thickness)
+  label-dir number-type size string-count thickness)
 )
 
 (ly:add-interface
index e58f4b1c84a684deb33c42fb09673805bee03b7a..b45fc6b19bac8dc5d0ae94f9eda2db9cfd9da4db 100644 (file)
@@ -296,6 +296,7 @@ bar line, this is the amount of space after a thick line.")
      (knee-spacing-correction ,number? "Factor for the optical
 correction amount for kneed beams. Set between 0 for no correction and
 1 for full correction.")
+     (label-dir ,ly:dir? "Side to which label is attached. @code{-1} for left, @code{1} for right.")
      (layer ,number? "The output layer [0..2]: layers define the order
 of printing objects. Objects in lower layers are overprinted by
 objects in higher layers.")
@@ -351,7 +352,9 @@ easy-notation note heads.")
 spacing constraints.")
      (no-stem-extend ,boolean? "If set, notes with ledger lines do not
 get stems extending to the middle staff line.")
-
+     (number-type ,symbol? "Type of numbers to use in label.  Choices
+include @code{roman-lower}, @code{roman-upper}, and @code{arabic}."
+     
      (old-accidentals ,list? "List of @code{(@var{pitch} . @var{accidental})
 pairs.}")
 
index c2340c9c1d3c18d9828f15dbb185e5126d5bd12b..b577c98d2b235f33ed35d17e7a765944c5fdca72 100644 (file)
@@ -5,7 +5,7 @@
 ;;;; (c) 2004 Carl D. Sorensen <c_sorensen@byu.edu>
 
 (define ly:paper-lookup ly:output-def-lookup) ; compat for 2.3, remove  when using 2.2
-(define my-font-encoding 'TeX-text )
+(define my-font-encoding 'ec )
 
 (define (fret-parse-marking-list marking-list fret-count)
    (let* ((fret-range (list 1 fret-count))
          (extent (cons (- scale-dot-radius) scale-dot-radius))
          (finger (caddr mypair))
          (finger (if (number? finger) (number->string finger) finger))
-          (string-label-font (ly:paper-get-font paper `(((font-family . sans)(font-encoding . ,my-font-encoding)(font-series . medium) (font-shape . upright)
-                                        (font-size . ,(stepmag  string-label-font-mag))))))
-          (dot-label-font (ly:paper-get-font paper `(((font-family . sans)(font-encoding . ,my-font-encoding)(font-series . medium) (font-shape . upright)
-                                        (font-size . ,(stepmag  dot-label-font-mag))))))
+          (string-label-font 
+               (ly:paper-get-font paper `(((font-family . sans)
+                                           (font-encoding . ,my-font-encoding)
+                                           (font-series . medium) 
+                                           (font-shape . upright)
+                                           (font-size . ,(stepmag  string-label-font-mag))))))
+          (dot-label-font 
+               (ly:paper-get-font paper `(((font-family . sans)
+                                           (font-encoding . ,my-font-encoding)
+                                           (font-series . medium) 
+                                           (font-shape . upright)
+                                           (font-size . ,(stepmag  dot-label-font-mag))))))
          (dotstencil  (if (eq? dot-color 'white)
                           (begin
                           (ly:make-stencil (list 'white-dot 0 0 scale-dot-radius) extent extent))
           (label-font-mag 0.7)
 ;          (label-vertical-offset (chain-assoc-get 'fret-label-vertical-offset props -0.2))
           (label-vertical-offset -0.2)
+         (number-type (chain-assoc-get 'number-type props 'roman-lower))
           (fret-count (+ (- (cadr fret-range) (car fret-range)) 1))
-          (font (ly:paper-get-font paper `(((font-encoding . ,my-font-encoding)(font-family . sans)
-                                            (font-series . medium) (font-shape . upright)
-                                            (font-size . ,(stepmag (* size label-font-mag))))))))
-       (ly:stencil-translate-axis (fontify-text font (format #f "~(~:@r~)" base-fret)) 
+          (font (ly:paper-get-font paper `(((font-encoding . ,my-font-encoding)
+                                            (font-family . sans)
+                                            (font-series . medium) 
+                                            (font-shape . upright)
+                                            (font-size . ,(stepmag (* size label-font-mag)))))))
+           (label-text 
+              (case number-type 
+                  ('roman-lower (format #f "~(~:@r~)" base-fret))
+                  ('roman-upper (format #f "~:@r" base-fret))
+                  ('arabic  (format #f "~d" base-fret))
+                  (else (format #f  "~(~:@r~)" base-fret)))))
+       (ly:stencil-translate-axis 
+           (fontify-text font label-text) 
                        (* size (+ fret-count label-vertical-offset)) Y)))
  
 (def-markup-command (fret-diagram-verbose paper props marking-list)
@@ -332,8 +350,8 @@ part of the place-fret element is present, @var{finger-value} will be displayed
          (string-count (chain-assoc-get 'string-count props 6)) ; needed for everything
          (fret-count (chain-assoc-get 'fret-count props 4)) ; needed for everything
          (finger-code (chain-assoc-get 'finger-code props 'none))  ; needed for both draw-dots and draw-barre
-         (default-dot-radius (if (eq? finger-code 'in-dot) 0.45 0.25))  ; bigger dots if labeled
-         (default-dot-position (if (eq? finger-code 'in-dot) (- 1 default-dot-radius) 0.6))  ; move up to make room for bigger if labeled
+         (default-dot-radius (if (eq? finger-code 'in-dot) 0.425 0.25))  ; bigger dots if labeled
+         (default-dot-position (if (eq? finger-code 'in-dot) (- 0.95 default-dot-radius) 0.6))  ; move up to make room for bigger if labeled
          (dot-radius (chain-assoc-get 'dot-radius props default-dot-radius))  ; needed for both draw-dots and draw-barre
          (dot-position (chain-assoc-get 'dot-position props default-dot-position)) ; needed for both draw-dots and draw-barre
          (th (* (ly:paper-lookup paper 'linethickness)
@@ -341,8 +359,9 @@ part of the place-fret element is present, @var{finger-value} will be displayed
                 
          (alignment (chain-assoc-get 'align-dir props -0.4)) ; needed only here
 ;         (xo-padding (* th (chain-assoc-get 'padding props 2))) ; needed only here
+         (label-space 0.25)
          (xo-padding (* th 2))
-
+         (label-dir (chain-assoc-get 'label-dir props RIGHT))
          (parameters (fret-parse-marking-list marking-list fret-count))
          (dot-list (cdr (assoc 'dot-list parameters)))
          (xo-list (cdr (assoc 'xo-list parameters)))
@@ -367,8 +386,8 @@ part of the place-fret element is present, @var{finger-value} will be displayed
                                     (draw-xo paper props string-count fret-range size xo-list) xo-padding 0)))
          (if (> (car fret-range) 1) 
              (set! fret-diagram-stencil
-                   (ly:stencil-combine-at-edge fret-diagram-stencil X RIGHT
-                                              (label-fret paper props string-count fret-range size) 0 0)))
+                   (ly:stencil-combine-at-edge fret-diagram-stencil X label-dir
+                                              (label-fret paper props string-count fret-range size) label-space 0)))
          (ly:stencil-align-to! fret-diagram-stencil X alignment)
          fret-diagram-stencil))