"Phil Holmes" <address@hidden> writes:
"David Kastrup" <address@hidden> wrote:
"Phil Holmes" <address@hidden> writes:
I've got a piece of music that has a dotted bar and a (hidden) time
signature change at a place where the bar number is not incremented.
I know I could explicitly set the bar number to the new correct number
(calculated number minus one) but is there a way of subtracting one
from the existing bar number?
Probably less than pretty, but here you go:
{ \repeat unfold 40 c4
\applyContext #(lambda (c)
(set! (ly:context-property
(ly:context-find c 'Timing)
'currentBarNumber)
(1- (ly:context-property c 'currentBarNumber))))
\repeat unfold 40 c4
}
Thanks David. Took me a while to work out why it was taking 4 off my
measure numbers, but then I realised it must be done once per score,
not once per staff. (I'm autogenerating the lilypond code and so it
was putting the decrement code into each staff's output - I've fixed
this, as you can see).
Well, judging from your picture, you have the magic of changing the
meter silently pat. So instead of making a real mess in order to get
two bars of \time 4/4 count as one, why don't you just make a single bar
of \compoundTime #'((4 4) (4 4)) instead and manually place the \bar ";"
(or what it was) in the middle? Because frankly: having two bar numbers
"4" right after another is not looking good to me, either. You might
need to look at the beaming exceptions to use, but that looks saner to
me than rewinding the bar counter.
--
David Kastrup