Hi David,
2011/10/23 David Nalesnik <[email protected]>
> Hi Harm,
>
> I'm guessing that it's an issue with the markup command \beam. Looking at
> the definition in define-markup-commands.scm, it seems that 'blot-diameter
> isn't taken into account in the calculation of width and thickness. (Is
> this intentional or a defect?)
>
Surely you noticed that I'm not a native-english-speaker. This is one of the
cases where I've got a problem. I can't translate blot-diameter and so I
don't know what it is or how to use. (Of course I know how to translate
"blot" and "diameter", but I'm in the dark with the meaning of
"blot-diameter" of a polygon. There are some other files in .scm where it is
used, but these doesn't enlights me too)
> The following fixes the problem with the beam's length and thickness, and
> will work when you change the staff size:
>
> \version "2.14.2"
>
> #(set-global-staff-size 24)
>
> #(define (test-stencil grob)
> (let* ((beam (ly:beam::print grob))
> (b-d (ly:output-def-lookup (ly:grob-layout grob) 'blot-diameter))
> (beam-extent-x (ly:stencil-extent beam X))
> (beam-length-x (interval-length beam-extent-x))
> (single-beam-thickness (ly:grob-property grob 'beam-thickness))
> (beam-positions (ly:grob-property grob 'positions))
> (mrkp (markup #:beam (- beam-length-x b-d)
> 0 ;; level Beams only!
> (- single-beam-thickness b-d)))
> (new-Beam (ly:stencil-in-color
> (ly:stencil-translate-axis
> (ly:stencil-translate-axis
> (grob-interpret-markup grob mrkp)
> -0.024 X) ;; why??
> (car beam-positions)
> Y)
> 1 0 0)))
> new-Beam))
>
> \relative c' {
> \override Beam #'layer = #-4
> \once \override Beam #'stencil = #test-stencil
> e'8 [e]
> \once \override Beam #'color = #red
> e [e]
> \override Beam #'color = #green
> f8 [f]
> }
>
So I don't understand it totaly, but I can copy and paste. :)
Your suggestion works fine!
Thanks a lot!
Harm
_______________________________________________
lilypond-user mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-user