Hi,

lsr-snippet "Variable bow thickness depending on length"
https://lsr.di.unimi.it/LSR/Item?u=1&id=1028 looks at 'control-points
to calculate a modified thickness.

For recent lily-versions this throws
programming error: cyclic dependency: calculation-in-progress
encountered for Slur.thickness
as soon as 'control-points are called in a thickness-override.

Stripped down example:

\version "2.23.9"

{
  \override Slur.thickness =
  #(lambda (grob)
    ;; all of below trigger the programming error
    (ly:slur::calc-control-points grob)
    ;(ly:grob-property grob 'control-points)
    ;((assoc-get 'control-points (ly:grob-basic-properties grob)) grob)
    2)

  b1( b')
}

I think I can make it work with an override for 'after-line-breaking
(calling 'control-points, set 'thickness to the result of calculations
based on the 'control-points and finally redo setting
'control-points).

Is there a better way?

Thanks,
  Harm

Reply via email to