Hi David,
thank you once again for your extremely valuable input!
Am 13.03.19 um 22:55 schrieb David Nalesnik:
On Wed, Mar 13, 2019 at 4:27 PM David Nalesnik <david.nales...@gmail.com> wrote:
On Wed, Mar 13, 2019 at 3:44 PM Urs Liska <li...@openlilylib.org> wrote:
..
You're not going to be able to do it simply, any more than you can
introduce overrides of individual pieces of a broken slur once it's
begun. The starting bars are all clones of the first object.
The only way I can suggest is to collect all the grobs on the system
in question using the 'all-elements property (you can do this through
a grob on the system in question), locate the target grob, and set its
'color property.
DN
Like this:
\version "2.19.82"
#(define drop-in-on-spanner
(lambda (grob)
(let* ((elts (ly:grob-array->list (ly:grob-object (ly:grob-system
grob) 'all-elements)))
(ssb (filter (lambda (e) (grob::has-interface e
'system-start-delimiter-interface))
elts)))
(set! (ly:grob-property (car ssb) 'color) red))))
\new StaffGroup <<
\new Staff {
c1 \break
\once \override NoteHead.after-line-breaking = #drop-in-on-spanner
c1 \break
c1 \break
}
\new Staff {
c1
c1
c1
}
Thank you, this gave me enough input to find my solution. Since I
actually needed to get to the SystemStartBar I modified the approach a
little bit but succeeded. Then I additionally created a wrapper function
that can now be used like this:
\version "2.19.82"
#(define color-system-start-bar
(lambda (grob)
(let*
((staff-elements
(ly:grob-array->list
(ly:grob-object (ly:grob-system grob) 'all-elements)))
(ssb
(filter
(lambda (e)
(eq? 'SystemStartBar (assq-ref (ly:grob-property e 'meta) 'name)))
staff-elements)))
(ly:grob-set-property! (car ssb) 'color red))))
annotateSystemStartBar =
#(define-music-function (comment)(string?)
; the string? argument is discarded and only used for the input file
#{
\once \override NoteHead.after-line-breaking = #color-system-start-bar
#})
\score {
\new PianoStaff <<
\new Staff {
c'1
\break
\annotateSystemStartBar "This is a comment that is now documented in the
input"
c'
}
\new Staff { c'1 c' }
>>
}
Urs
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user