On Sun, Apr 29, 2012 at 5:55 PM, Thomas Morley
<address@hidden> wrote:
Hi,
in 2.14.2 I used a function to manipulate the BarNumber-stencil. It
calls the value of the BarNumber as a string, via (ly:grob-property
grob 'text).
This doesn't work no longer with the latest devel-versions. (Due to
the changes in Issue 2059 ?)
(ly:grob-property grob 'text) now returns, e.g. (#<procedure
line-markup (layout props args)> ("2"))
How to do with 2.15.36?
Below a simplified example.
\version "2.14.2"
\relative c'' {
\override Score.BarNumber #'break-visibility = #'#(#f #t #t)
\override Score.BarNumber #'stencil =
#(lambda (grob)
(let* ((stil (ly:text-interface::print grob))
(text (ly:grob-property grob 'text))
(nmbr (string->number text)))
(if (= (remainder nmbr 5) 0)
(ly:grob-set-property! grob 'color red)
(ly:grob-set-property! grob 'color black))
stil))
\repeat unfold 41 { c1 }
}
Lucky guess, but replacing text in your definition of nmbr with the following gets me a red number every five bars with 2.15.37:
(markup->string text)
-David