X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scm%2Fharp-pedals.scm;h=58576a31481e8493aa661143e4f206f184ef9b02;hb=HEAD;hp=c245c82477f92fa001c04c46f43c2582ec268b2a;hpb=cf137655b7aee9988ef536d6fa5e38d279ee73cf;p=lilypond.git diff --git a/scm/harp-pedals.scm b/scm/harp-pedals.scm index c245c82477..58576a3148 100644 --- a/scm/harp-pedals.scm +++ b/scm/harp-pedals.scm @@ -1,6 +1,6 @@ ;;;; This file is part of LilyPond, the GNU music typesetter. ;;;; -;;;; Copyright (C) 2008--2012 Reinhold Kainhofer +;;;; Copyright (C) 2008--2015 Reinhold Kainhofer ;;;; ;;;; LilyPond is free software: you can redistribute it and/or modify ;;;; it under the terms of the GNU General Public License as published by @@ -68,7 +68,7 @@ spacing after the divider). (details (begin (harp-pedal-check pedal-list) harp-pedal-details)) (dy (* size (assoc-get 'box-offset details 0.8))) ; offset of the box center from the line (line-width (* (ly:output-def-lookup layout 'line-thickness) - (chain-assoc-get 'thickness props 0.5))) + thickness)) (box-width (* size (assoc-get 'box-width details 0.4))) (box-hheight (* size (/ (assoc-get 'box-height details 1.0) 2))) ; half the box-height, saves some divisions by 2 (spacebeforedivider (* size (assoc-get 'space-before-divider details 0.8))) ; full space between boxes before the first divider @@ -124,15 +124,15 @@ spacing after the divider). (final-x (car result)) (stencils (cdr result))) ;; Add the horizontal line and combine all stencils: - (box-stencil - (apply ly:stencil-add - (cons - (make-line-stencil line-width 0 0 final-x 0) - stencils)) - 0.0 - 0.0))) + (apply ly:stencil-add + (make-line-stencil line-width 0 0 final-x 0) ; the horizontal line + (make-transparent-box-stencil ; space for absent boxes + (cons 0 final-x) + (interval-widen '(0 . 0) (+ box-hheight dy))) + stencils))) ;; Parse the harp pedal definition string into list of directions (-1/0/1), #\o and #\| +;; Whitespace is removed from definition string before the procedure applies. (define (harp-pedals-parse-string definition-string) "Parse a harp pedals diagram string and return a list containing 1, 0, -1, #\\o or #\\|" (map (lambda (c) @@ -142,7 +142,7 @@ spacing after the divider). ((#\-) 0) ((#\| #\o) c) (else c))) - (string->list definition-string))) + (string->list (remove-whitespace definition-string)))) ;; Analyze the pedal-list: Return (pedalcount . (divider positions))