Re: Bug: restarting staff destroys DynamicLineSpanner.staff-padding after line break
Am Mo., 11. März 2019 um 23:01 Uhr schrieb Trevor Bača : > > On Thu, Mar 7, 2019 at 2:14 AM David Kastrup wrote: > > It's probably not the only spanner > > unprepared to span pieces of interrupted staff symbols. > > > > Isn't this still a bug? In the sense David pointed out. > Or, rather a gap in system functionality for which > no workaround exists? Here an attempt for a workaround. It's not tested beyond the given example, up to you ;) \new Staff { \override DynamicLineSpanner.after-line-breaking = #(lambda (grob) (let* ((staffs (filter (lambda (e) (grob::has-interface e 'staff-symbol-interface)) (ly:grob-array->list (ly:grob-object (ly:grob-parent grob Y) 'elements) (for-each (lambda (staff) (set! (ly:grob-object grob 'staff-symbol) staff)) staffs) ;(format #t"\nstaff-padding: ~a\nY-offset: ~a\nstaff-symbol ~a\n" ; (ly:grob-property grob 'staff-padding) ; (ly:grob-property grob 'Y-offset) ; (ly:grob-object grob 'staff-symbol)) )) \override DynamicLineSpanner.staff-padding = 10 c'1\p\< c'1 c'1 \break c'1 \stopStaff \startStaff c'1 c'1 \break c'1 c'1 c'1 \break c'1 c'1 c'1\f } \paper { indent = 0 ragged-right = ##t } Cheers, Harm ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Bug: restarting staff destroys DynamicLineSpanner.staff-padding after line break
On Thu, Mar 7, 2019 at 2:14 AM David Kastrup wrote: > Trevor Bača writes: > > > Restarting the staff during the lifespan of a multisystem > > DynamicLineSpanner destroys the value of DynamicLineSpanner properties > > (like staff-padding) that were set when the DynamicLineSpanner was > > created. > > It doesn't. It's just that the DynamicLineSpanner has a relation with > the Staff it was started in. > > > In the MWE below, the hairpin should exhibit staff-padding equal to 10 > > staff spaces below all four systems; but the value of staff-padding is > lost > > at the point (in system 2) that the staff is restarted; we see evidence > of > > this after the next line break (in systems 3 and 4) where no staff > padding > > appears. > > > > %%% BEGIN %%% > > > > \version "2.19.82" > > > > \new Staff > > { > > > > \override DynamicLineSpanner.staff-padding = 10 > > c'1 > > \p > > \< > > c'1 > > c'1 > > \break > > > > c'1 > > \stopStaff > > \startStaff > > c'1 > > c'1 > > \break > > > > c'1 > > c'1 > > c'1 > > \break > > > > c'1 > > c'1 > > c'1 > > \f > > > > } > > > > \paper > > { > > indent = 0 > > ragged-right = ##t > > system-system-spacing.minimum-distance = 30 > > } > > > > %%% END %%% > > > > [image: restart-staff-dynamic-line-spanner-bug.png] > > If you start a new DynamicLineSpanner like > > c'1\! > \stopStaff > \startStaff > c'1\< > > it will be properly spaced. It's probably not the only spanner > unprepared to span pieces of interrupted staff symbols. > Isn't this still a bug? Or, rather a gap in system functionality for which no workaround exists? Starting a new DynamicLineSpanner creates two separate hairpins: %%% BEGIN %%% \version "2.19.82" \new Staff { \override DynamicLineSpanner.staff-padding = 10 c'1 \p \< c'1 c'1 \break c'1 \! \stopStaff \startStaff c'1 \< c'1 \break c'1 c'1 c'1 \break c'1 c'1 c'1 \f } \paper { indent = 0 ragged-right = ##t system-system-spacing.minimum-distance = 30 } %%% END %%% [image: two-hairpins-instead-of-one.png] ... when what's needed is one single hairpin that governs the music of all four systems. Or am I missing something, and there is a way to generate a single multisystem hairpin that governs all four systems? Trevor. -- Trevor Bača www.trevorbaca.com soundcloud.com/trevorbaca ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: Bug: restarting staff destroys DynamicLineSpanner.staff-padding after line break
Trevor Bača writes: > Restarting the staff during the lifespan of a multisystem > DynamicLineSpanner destroys the value of DynamicLineSpanner properties > (like staff-padding) that were set when the DynamicLineSpanner was > created. It doesn't. It's just that the DynamicLineSpanner has a relation with the Staff it was started in. > In the MWE below, the hairpin should exhibit staff-padding equal to 10 > staff spaces below all four systems; but the value of staff-padding is lost > at the point (in system 2) that the staff is restarted; we see evidence of > this after the next line break (in systems 3 and 4) where no staff padding > appears. > > %%% BEGIN %%% > > \version "2.19.82" > > \new Staff > { > > \override DynamicLineSpanner.staff-padding = 10 > c'1 > \p > \< > c'1 > c'1 > \break > > c'1 > \stopStaff > \startStaff > c'1 > c'1 > \break > > c'1 > c'1 > c'1 > \break > > c'1 > c'1 > c'1 > \f > > } > > \paper > { > indent = 0 > ragged-right = ##t > system-system-spacing.minimum-distance = 30 > } > > %%% END %%% > > [image: restart-staff-dynamic-line-spanner-bug.png] If you start a new DynamicLineSpanner like c'1\! \stopStaff \startStaff c'1\< it will be properly spaced. It's probably not the only spanner unprepared to span pieces of interrupted staff symbols. -- David Kastrup ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Bug: restarting staff destroys DynamicLineSpanner.staff-padding after line break
Hi, Restarting the staff during the lifespan of a multisystem DynamicLineSpanner destroys the value of DynamicLineSpanner properties (like staff-padding) that were set when the DynamicLineSpanner was created. In the MWE below, the hairpin should exhibit staff-padding equal to 10 staff spaces below all four systems; but the value of staff-padding is lost at the point (in system 2) that the staff is restarted; we see evidence of this after the next line break (in systems 3 and 4) where no staff padding appears. %%% BEGIN %%% \version "2.19.82" \new Staff { \override DynamicLineSpanner.staff-padding = 10 c'1 \p \< c'1 c'1 \break c'1 \stopStaff \startStaff c'1 c'1 \break c'1 c'1 c'1 \break c'1 c'1 c'1 \f } \paper { indent = 0 ragged-right = ##t system-system-spacing.minimum-distance = 30 } %%% END %%% [image: restart-staff-dynamic-line-spanner-bug.png] Thanks, Trevor. -- Trevor Bača www.trevorbaca.com soundcloud.com/trevorbaca ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user