Hi again, On Wed, Feb 17, 2021 at 11:16 AM Pierre Perol-Schneider <pierre.schneider.pa...@gmail.com> wrote: > > Hi Artur, > This is not exactly what you ask for but you could do something like: > > \version "2.22.0" > { > c'1 > -\tweak X-extent #'(0 . 0) > ^\markup\pattern #25 #X #0 \musicglyph #"scripts.turn" > 1 1 1 1 1 1 1 1 1 > } > > Cheers, > Pierre >
I'm a little out of practice, but here's my attempt at automating: \version "2.21.5" #(define (patterned-markup glyph) (lambda (grob) (let* ((stil (ly:line-spanner::print grob)) (spanner-extent-X (ly:stencil-extent stil X)) (spanner-extent-Y (ly:stencil-extent stil Y)) (spanner-length-X (interval-length spanner-extent-X)) (spanner-angle (atan (/ (interval-length spanner-extent-Y) spanner-length-X))) (spanner-angle (degrees->radians spanner-angle)) (glyph-stil (ly:font-get-glyph (ly:grob-default-font grob) glyph)) (glyph-stil (ly:stencil-rotate glyph-stil spanner-angle 0 0)) (glyph-extent-X (ly:stencil-extent glyph-stil X)) (glyph-length-X (interval-length glyph-extent-X)) (reps (round (/ spanner-length-X glyph-length-X)))) (let loop ((x 0) (new-stil empty-stencil)) (if (> x reps) (ly:grob-set-property! grob 'stencil new-stil) (loop (1+ x) (ly:stencil-combine-at-edge new-stil X RIGHT glyph-stil 0.0))))))) { \override TextSpanner.after-line-breaking = #(patterned-markup "scripts.turn") c'1\startTextSpan e'1 g'1 c''1\stopTextSpan \override TextSpanner.rotation = #'(5 -1 0) c'1\startTextSpan e'1 g'1 c''1\stopTextSpan }