Thanks Thomas and Kieran, That work-around works perfectly, without uncommenting the " %\override Dynamics.PianoPedalBracket #'shorten-pair = #'(0 . -1) " line (then, there's no need of the trial-and-error method mentioned by Kieran). I tested it on 2.21.0 I don't understand yet if the default behaviour should be reported as bug in the ml, though...
2018-03-24 22:38 GMT+01:00 Thomas Morley <thomasmorle...@gmail.com>: > 2018-03-24 17:19 GMT+01:00 paolo prete <paoloprete...@gmail.com>: > > Hello, > > > > as you can see from the below snippet, the bracket of the sustain pedal > is > > not properly extended when the last note is shifted. > > Is this a bug? Is there a way to fix it or a work-around ? > > Iiuc, the PianoPedalBracket is left/right bound by PaperColumns. > If you move NoteColumn, then you move it relative to it's PaperColumn, > but PaperColumn is _not_ changed. > Thus the PianoPedalBracket doesn't move along. > Not a bug but a consequencee of the current implementation. > > Btw, this was changed between 2.14 and 2.16. > Most likely with > https://sourceforge.net/p/testlilyissues/issues/2153/ > > I did some more research/comparison with Hairpins, which may be > bounded by PaperColumns as well. > Obviously there is some more fine-grained hierarchy coded how to bound > Hairpins. > Something like: DynamicText present? -> NoteColumn? ->PaperColumn > Nevertheless this does not explain the behaviour of the Hairpin in the > last Dynamics-context below. > Or probably I don't fully understand what's going. > > Make that a 'likely' lol > > > The code prints a lot of info, visible in pdf/readable in terminal. > You may try to uncomment the commands in the first Dynamics-context, > might be a work-around. > How to do final adjustments Kieren already demonstrated by using > 'shorten-pair. > > Old syntax is used and some definitions added to make it work even with > 2.14. > > #(use-modules (ice-9 pretty-print)) > > #(define-public (grob::name grob) > "Return the name of the grob @var{grob} as a symbol." > (assq-ref (ly:grob-property grob 'meta) 'name)) > > #(define print-info > (lambda (grob) > (format #t "\ncurrent default-bounds:\n~y" > (list > (grob::name grob) > (ly:spanner-bound grob LEFT) > (ly:spanner-bound grob RIGHT))))) > > #(define nc-bounds! > (lambda (grob) > (let* ((left-b (ly:spanner-bound grob LEFT)) > (left-elts (ly:grob-object left-b 'elements)) > (left-elts-ls > (if (ly:grob-array? left-elts) > (ly:grob-array->list left-elts) > '())) > (left-nc > (filter > (lambda (g) > (grob::has-interface g 'note-column-interface)) > left-elts-ls)) > (right-b (ly:spanner-bound grob RIGHT)) > (right-elts (ly:grob-object right-b 'elements)) > (right-elts-ls > (if (ly:grob-array? right-elts) > (ly:grob-array->list right-elts) > '())) > (right-nc > (filter > (lambda (g) > (grob::has-interface g 'note-column-interface)) > right-elts-ls))) > ;(print-info grob) > (if (pair? left-nc) (ly:spanner-set-bound! grob LEFT (car > left-nc))) > (if (pair? right-nc) (ly:spanner-set-bound! grob RIGHT (car > right-nc)))))) > > \score { > << > \new Staff \with { instrumentName = "Staff 1 " } { > > c'2\sustainOn > f' > \once \override Score.NoteColumn #'X-offset = 10 > c''\sustainOff > } > \new Staff \with { instrumentName = "Staff 2 " } { > c'\< > f' > c''\mf > } > \new Staff \with { instrumentName = "Staff 3 " } { > c'\< > f' > c''\! > } > \new Dynamics \with { instrumentName = "Dyn 1 " } { > %\override Dynamics.PianoPedalBracket #'after-line-breaking = > #nc-bounds! > %\override Dynamics.PianoPedalBracket #'shorten-pair = #'(0 . -1) > s\sustainOn > s > s\sustainOff > } > \new Dynamics \with { instrumentName = "Dyn 2 " } { > s\< > s > s\mf > } > \new Dynamics \with { instrumentName = "Dyn 3 " } { > s\< > s > s\! > } > >> > > \layout { > \context { > \Dynamics > \consists "Instrument_name_engraver" > \override VerticalAxisGroup #'nonstaff-nonstaff-spacing = > #'((padding . 2)) > \override VerticalAxisGroup #'nonstaff-relatedstaff-spacing = > #'((padding . 4)) > \override Hairpin #'after-line-breaking = #print-info > \override PianoPedalBracket #'after-line-breaking = #print-info > } > \context { > \Voice > \override Hairpin #'after-line-breaking = #print-info > } > \context { > \Staff > \override PianoPedalBracket #'after-line-breaking = #print-info > } > \context { > \Score > timing = ##f > pedalSustainStyle = #'mixed > \override PaperColumn #'stencil = #ly:paper-column::print > } > } > } > > Cheers, > Harm >
_______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user