Thank you. This certainly works for simple scenarios.
Here is my incomplete take. I just need to find out how to automatically
change the number that repeats the stencil based on the spanner length.
Sorry if this doesn't make sense. I just started learning bit by bit how to
make things work in Scheme.
trillsymb = \markup {
\concat
{
\scale #'(1.5 . 1)
\musicglyph #"scripts.trillelement"
\musicglyph #"scripts.turn"
}
}
#(define (alterspan grob)
(if (ly:stencil? (ly:line-spanner::print grob))
(let* ((stencil (ly:line-spanner::print grob))
(dot (ly:font-get-glyph (ly:grob-default-font grob)
"scripts.turn"))
(X-ext (ly:stencil-extent stencil X))
(Y-ext (ly:stencil-extent stencil Y))
(width 0.1)
(len (interval-length X-ext)))
(ly:stencil-translate
(grob-interpret-markup grob
(markup
; really crude method but I think it can work just fine
; spanner length / stencil extend ??
(#:pattern (inexact->exact (round (* len
;need a way to automatically change this number based on the stencil
dimensions
0.3 ))) X 0
(markup #:scale (cons 1 1) trillsymb)
)
)
)
(cons (interval-start X-ext) (interval-start Y-ext))))
#f))
{
\override Score.TextSpanner.stencil = #alterspan
<c' g'>4\startTextSpan
<c' g'>4
<c' g'>4
c'4
d'
e'
f'
g'\stopTextSpan
}
On Thu, Feb 4, 2021 at 9:35 AM Pierre Perol-Schneider <
[email protected]> wrote:
> Hi Dimitris,
> Here's a trial (every adjsutment are manual):
>
> %%
> \version "2.22.0"
>
> curl =
> \markup
> \stencil
> #(make-path-stencil
> '(M 0 0 C 4 0 4 5 2.5 5 C 1 5 1 0 5 0)
> .15 .6 .6 #f)
>
> mors =
> \markup
> \stencil
> #(make-path-stencil
> '(M 0 0 L .5 0 M 1.5 0 L 3 0)
> .15 .6 .6 #f)
>
> \layout { ragged-right = ##f }
>
> {
> a4 -\tweak extra-offset #'(.5 . 3)
> -\markup {
> \with-dimensions-from\null
> \rotate #25
> \pattern #7 #X #0 \curl
> }
> a'''
> a -\tweak extra-offset #'(1 . 3.5)
> -\markup {
> \with-dimensions-from\null
> \rotate #25
> \pattern #9 #X #.5 \mors
> }
> a'''
> }
> %%
>
> Cheers,
> Pierre
>
> Le jeu. 4 févr. 2021 à 02:43, Dimitris Marinakis <[email protected]> a
> écrit :
>
>> Does anyone have any code that allows us to "spannerize" repeated or
>> alternating paths and musicglyphs ?
>> e.g. - • - • - • - or even asymmetric patterns like - - • - > - •
>> I think an effort for such a code would also be really useful for
>> evolving spanners. (trills with various speeds etc.)
>>
>> If I'm not mistaken, the trill spanner is made from concatenated
>> individual glyphs so at least the basic repeated symbol seems easier to
>> achieve.
>>
>> It would be really cool having a flexible solution that works like this:
>> \evolvingspanner
>> arg1 left text (trill symbol etc.)
>> arg2 how many of the 1st symbol
>> arg3 how many of the 2nd symbol
>> .... ? manually enter how many glyphs are needed or perhaps a more
>> automatic way to divide the spanner into segments and then just specify how
>> many segments and glyphs will be used
>> arg4 right text (end cap)
>>
>> -------
>> \repeatspanner
>> arguments that specify the type of pattern and how many symbols are used
>>
>> I understand this could get really complicated so I tried to keep it
>> fairly modest.
>>
>