Or even:
#(define (new-centered-mmr-stencil grob)
(let* ((sys (ly:grob-system grob))
(X-extent (lambda (q) (ly:grob-extent q sys X)))
(left-bound (ly:spanner-bound grob LEFT))
(left-bound-X-length (interval-length (X-extent left-bound)))
(left-bound-coord (ly:grob-relative-coordinate left-bound sys
X))
(right-bound (ly:spanner-bound grob RIGHT))
(right-bound-X-length (interval-length (X-extent right-bound)))
(right-bound-coord (ly:grob-relative-coordinate right-bound sys
X))
(new-stil
(grob-interpret-markup grob
#{
\markup
\concat {
\override #'(line-cap-style . square)
\path #0.2
#'((moveto 0 -0.9)
(lineto 0 0.9))
\hspace #-.2
\pattern #7 #X #-.2
\path #0.2
#'((moveto 0 0)
(lineto 0.5 -0.9)
(lineto 1.5 0.9)
(lineto 2 0))
\hspace #-.2
\override #'(line-cap-style . square)
\path #0.2
#'((moveto 0 -0.9)
(lineto 0 0.9))
}
#}
))
(new-stil-X-length (interval-length (ly:stencil-extent new-stil
X)))
(translate-value (- (+ (/ (- right-bound-coord
left-bound-coord) 2)
(/ left-bound-X-length 2))
(/ new-stil-X-length 2)
(/ right-bound-X-length 2)))
)
(ly:grob-set-property! grob 'stencil
(ly:stencil-translate-axis
new-stil
translate-value
X))))
{
\compressFullBarRests
R1*32
\override MultiMeasureRest.after-line-breaking = #new-centered-mmr-stencil
R1*71
}
Pierre
2016-09-06 16:03 GMT+02:00 Pierre Perol-Schneider <
[email protected]>:
> Hi Marc,
>
> See: http://lilypond.1069038.n5.nabble.com/How-to-align-a-new-
> MultiMeasureRest-stencil-td142767.html
> How about:
>
> \version "2.19.47"
>
> #(define (new-centered-mmr-stencil grob)
> (let* ((sys (ly:grob-system grob))
> (X-extent (lambda (q) (ly:grob-extent q sys X)))
> (left-bound (ly:spanner-bound grob LEFT))
> (left-bound-X-length (interval-length (X-extent left-bound)))
> (left-bound-coord (ly:grob-relative-coordinate left-bound sys
> X))
> (right-bound (ly:spanner-bound grob RIGHT))
> (right-bound-X-length (interval-length (X-extent right-bound)))
> (right-bound-coord (ly:grob-relative-coordinate right-bound
> sys X))
> (new-stil
> (grob-interpret-markup grob
> #{
> \markup
> \concat {
> \general-align #Y #0
> \override #'(thickness . 2)
> \draw-line #'(0 . 2)
> \hspace #-.2
> \pattern #7 #X #-.2
> \path #0.2
> #'((moveto 0 0)
> (lineto 0.5 -1)
> (lineto 1.5 1)
> (lineto 2 0))
> \hspace #-.2
> \general-align #Y #0
> \override #'(thickness . 2)
> \draw-line #'(0 . 2)
> }
> #}
> ))
> (new-stil-X-length (interval-length (ly:stencil-extent
> new-stil X)))
>
> (translate-value (- (+ (/ (- right-bound-coord
> left-bound-coord) 2)
> (/ left-bound-X-length 2))
> (/ new-stil-X-length 2)
> (/ right-bound-X-length 2)))
> )
>
> (ly:grob-set-property! grob 'stencil
> (ly:stencil-translate-axis
> new-stil
> translate-value
> X))))
>
> {
> \compressFullBarRests
> R1*32
> \override MultiMeasureRest.after-line-breaking =
> #new-centered-mmr-stencil
> R1*71
> }
>
>
> HTH,
> Cheers,
> Pierre
>
> 2016-09-06 14:28 GMT+02:00 Marc Hohl <[email protected]>:
>
>> Hi list,
>>
>> I want to change the MultiMeasureRest.stencil to a squiggle as shown in
>> the appendices (quite roughly pasted together in GIMP).
>> Searching the LSR and the web does not give any informations about this
>> topic (the only thing I found was using the percent stencil, which is also
>> hardcoded in the C++ sources).
>>
>> I tried to override the stencil by
>>
>> \override MultiMeasureRest.stencil = #ly:line-spanner::print
>>
>> but this causes errors like
>>
>> "MultiMeasureRest has empty extent and non-empty stencil."
>>
>> Any ideas?
>>
>> Thanks,
>>
>> Marc
>>
>> _______________________________________________
>> lilypond-user mailing list
>> [email protected]
>> https://lists.gnu.org/mailman/listinfo/lilypond-user
>>
>>
>
_______________________________________________
lilypond-user mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-user