Trevor Bača <trevorb...@gmail.com> writes: > Hi, > > I'd like the left text of red text spanners to be set to "foo", and to set > the left text of all other text spanners to "bar". > > But I misunderstand how to return markup: > > %%% BEGIN %%% > > \version "2.25.3" > > % no left text set > { > \once \override TextSpanner.bound-details.left.text = > #(lambda (grob) (if (equal? red (ly:grob-property grob 'color)) "foo" > "bar")) > c'1 > - \tweak color #red > \startTextSpan > c'1 > \stopTextSpan > } > > % no left text set > { > \once \override TextSpanner.bound-details.left.text = > #(lambda (grob) (if (equal? red (ly:grob-property grob 'color)) > (markup "foo") > (markup "bar"))) > c'1 > - \tweak color #red > \startTextSpan > c'1 > \stopTextSpan > } > > %%% END %%% > > What's the right way to return markup from a Scheme function?
You are doing fine in that regard, but subproperties don't have callback evaluation. -- David Kastrup