]> git.donarmstrong.com Git - lilypond.git/commitdiff
Merge branch 'master' of carldsorensen@git.sv.gnu.org:/srv/git/lilypond into fret...
authorCarl Sorensen <c_sorensen@byu.edu>
Fri, 9 Jan 2009 04:37:59 +0000 (21:37 -0700)
committerCarl Sorensen <c_sorensen@byu.edu>
Fri, 9 Jan 2009 04:37:59 +0000 (21:37 -0700)
1  2 
scm/define-grob-properties.scm
scm/fret-diagrams.scm
scm/stencil.scm

Simple merge
index ebd79049a1396971bc6d81359f29ecb147b8d201,3a0ffe53cef846688989b6c2575e27a0d8b44864..fab6868fd3d4f39712a703d6be8e4b328535c5ae
@@@ -2,40 -2,51 +2,40 @@@
  ;;;;
  ;;;;  source file of the GNU LilyPond music typesetter
  ;;;;
- ;;;; (c) 2004--2008 Carl D. Sorensen <c_sorensen@byu.edu>
+ ;;;; (c) 2004--2009 Carl D. Sorensen <c_sorensen@byu.edu>
  
 -(define (fret-parse-marking-list marking-list fret-count)
 -  (let* ((fret-range (list 1 fret-count))
 -         (capo-fret 0)
 -         (barre-list '())
 -         (dot-list '())
 -         (xo-list '())
 -         (output-alist '()))
 -    (let parse-item ((mylist marking-list))
 -      (if (not (null? mylist))
 -          (let* ((my-item (car mylist)) (my-code (car my-item)))
 -            (cond
 -             ((or (eq? my-code 'open)(eq? my-code 'mute))
 -              (set! xo-list (cons* my-item xo-list)))
 -             ((eq? my-code 'barre)
 -              (set! barre-list (cons* (cdr my-item) barre-list)))
 -             ((eq? my-code 'capo)
 -               (set! capo-fret (cadr my-item)))
 -             ((eq? my-code 'place-fret)
 -              (set! dot-list (cons* (cdr my-item) dot-list))))
 -            (parse-item (cdr mylist)))))
 -    ;; calculate fret-range
 -    (let ((maxfret 0) 
 -          (minfret (if (> capo-fret 0) capo-fret 99)))
 -      (let updatemax ((fret-list dot-list))
 -        (if (null? fret-list)
 -            '()
 -            (let ((fretval (second (car fret-list))))
 -              (if (> fretval maxfret) (set! maxfret fretval))
 -              (if (< fretval minfret) (set! minfret fretval))
 -              (updatemax (cdr fret-list)))))
 -      (if (> maxfret fret-count)
 -          (set! fret-range
 -                (list minfret
 -                      (let ((upfret (- (+ minfret fret-count) 1)))
 -                        (if (> maxfret upfret) maxfret upfret)))))
 -      (set! capo-fret (1+ (- capo-fret minfret)))
 -      ; subtract fret from dots
 -      (set! dot-list (subtract-base-fret (- (car fret-range) 1) dot-list)))
 -    (acons 'fret-range fret-range
 -           (acons 'barre-list barre-list
 -                  (acons 'dot-list dot-list
 -                         (acons 'xo-list xo-list 
 -                                (acons 'capo-fret capo-fret '())))))))
 +;
 +;  Utility functions
 +;
 +;
 +    
 +(define (cons-fret new-value old-list)
 +  "Put together a fret-list in the format desired by parse-string"
 +  (if (eq? old-list '())
 +      (list new-value)
 +      (cons* new-value old-list)))
 +
 +(define (get-numeric-from-key keystring)
 +  "Get the numeric value from a key of the form k:val"
 +  (string->number (substring keystring 2 (string-length keystring))))
 +
 +(define (numerify mylist)
 +  "Convert string values to numeric or character"
 +  (if (null? mylist)
 +      '()
 +      (let ((numeric-value (string->number (car mylist))))
 +        (if numeric-value
 +            (cons* numeric-value (numerify (cdr mylist)))
 +            (cons* (car (string->list (car mylist)))
 +                   (numerify (cdr mylist)))))))
 +
 +(define (stepmag mag)
 +  "Calculate the font step necessary to get a desired magnification"
 +  (* 6 (/ (log mag) (log 2))))
 +
 +(define (fret-count fret-range)
 + "Calculate the fret count for the diagram given the range of frets in the diagram."
 + (1+ (- (cdr fret-range) (car fret-range))))
  
  (define (subtract-base-fret base-fret dot-list)
    "Subtract @var{base-fret} from every fret in @var{dot-list}"
diff --cc scm/stencil.scm
index 9067e0974e56262af5ca09db4032e7e298a55d77,aeea39a28850714cdeeff722a7c092677c6a36bc..8513c6389a3bd95499315bf6ea54e743719e1485
@@@ -2,15 -2,8 +2,15 @@@
  ;;;;
  ;;;;  source file of the GNU LilyPond music typesetter
  ;;;; 
- ;;;; (c) 2003--2008 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ ;;;; (c) 2003--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
  
 +(define-public (translate-stencil stencil coordinate-pair)
 +  "Translate @code{stencil} by the distances specified in
 +@code{coordinate-pair}."
 +  (ly:stencil-translate-axis
 +    (ly:stencil-translate-axis stencil (cdr coordinate-pair) Y)
 +    (car coordinate-pair) X))
 +
  (define-public (stack-stencils axis dir padding stils)
    "Stack stencils STILS in direction AXIS, DIR, using PADDING."
    (cond