Hi Mike, 2011/11/7 m...@apollinemike.com <m...@apollinemike.com>
> (...) > > The function will be consistent if you hijack a different property. To > wit, quantized-positions. By the time you call ly:beam::print, the stencil > values for the stem may have already been cached, in which case they will > not be recalculated for length. > > Cheers, > MS > > \version "2.15.16" > > #(set-global-staff-size 20) > > #(define ((stem-change y) grob) > (let ((pos (ly:beam::set-stem-lengths grob))) > (begin > (ly:grob-set-property! grob 'color red) > (map > (lambda (n) > (ly:grob-set-property! n 'length y)) > (ly:grob-array->list (ly:grob-object grob 'stems)))) > pos)) > > %---- Test > > top = \change Staff = "1" > bottom = \change Staff = "2" > > music = \relative c { > > \override Beam #'auto-knee-gap = #0 > > \override Beam #'quantized-positions = #(stem-change 20) > > \bottom c32[ g' \top eis''] > c[ b \bottom g,] > \top e''[ \bottom c,, \top g''] > \bottom c,,64[ \top g'' e' \bottom c,, \top c''] > f,,32 [f''' f,,, f'''] > } > > \score { > \new PianoStaff << > \new Staff = "1" { > s4 s8 s16 > } > \new Staff = "2" { > \clef bass > \music > } > >> > } > > many thanks. Now it works fine. But using the 'quantized-positions-property, I've no success with integrating a new stencil. Trying the following, I retrieve always the new stem-length, though, the "dummy-stencil" isn't printed every time. How to do? \version "2.15.13" #(define (dummy-stencil grob) (grob-interpret-markup grob (markup #:with-color red #:rotate 10 "test-dummy"))) #(define ((stem-change y) grob) (let ((pos (ly:beam::set-stem-lengths grob))) (begin (map (lambda (n) (ly:grob-set-property! n 'length y)) (ly:grob-array->list (ly:grob-object grob 'stems))) (ly:grob-set-property! grob 'stencil dummy-stencil) ) pos)) %---- Test \relative c' { \override Beam #'quantized-positions = #(stem-change 20) c32[ d e f g a b c] s128 c,32[ d e f g a b c] s128 } top = \change Staff = "1" bottom = \change Staff = "2" music = \relative c { \override Beam #'auto-knee-gap = #0 \override Beam #'quantized-positions = #(stem-change 20) \bottom c32[ g' \top eis''] c[ b \bottom g,] \top e''[ \bottom c,, \top g''] \bottom c,,64[ \top g'' e' \bottom c,, \top c''] f,,32 [f''' f,,, f'''] c,,32[ d e f g a b c] } \score { \new PianoStaff << \new Staff = "1" { s4 s8 s16 s4 } \new Staff = "2" { \clef bass \music } >> } Best, Harm
_______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user