Hi Urs,
Am 02.05.2017 um 10:53 schrieb Urs Liska:
> ...
What I did *not* manage yet is at the end of the thing.
When I use
test =
#(define-music-function (mus)(ly:music?)
#{
<>\startGroup
#mus
<>\stopGroup
#})
{
\test { c' d' e' f' } g' a' b' c'
}
the bracket includes the g' - or rather the zero-length chord
immediately before it.
Do you have any suggestion how to do *this* in a convenient manner, i.e.
without splitting #mus into pieces and insert the \stopGroup before the
last element?
this *is* kind of splitting the music, but just to show, where the
closing articulation "NoteGroupingEvent" should be placed:
\version "2.19.57"
test =
#(define-music-function (mus)(ly:music?)
(let* ((elms (ly:music-property mus 'elements))
; first and last music-element ...
(frst (first elms)) ; TODO test for list? and ly:music?
(lst (last elms)) ; TODO test for list? and ly:music?
(fartic (ly:music-property frst 'articulations '())) ; look
for eventchords ...
(lartic (ly:music-property lst 'articulations '()))
)
(ly:music-set-property! frst 'articulations `(,@fartic
,(make-music 'NoteGroupingEvent 'span-direction -1)))
(ly:music-set-property! lst 'articulations `(,@lartic ,(make-music
'NoteGroupingEvent 'span-direction 1)))
#{
#mus
#}))
\new Staff \with {
\consists "Horizontal_bracket_engraver"
} {
\test { c' d' e' f' } g' a' b' c''
}
HTH
Jan-Peter
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user