Am Fr., 15. Jan. 2021 um 02:36 Uhr schrieb Dan Eble <[email protected]>:
>
> On Jan 14, 2021, at 19:13, Dan Eble <[email protected]> wrote:
> >
> > On Jan 14, 2021, at 18:33, Dan Eble <[email protected]> wrote:
> >>
> >> Alas, all is not well with earlier versions. Consider the confusing bar
> >> numbers in the following elaboration of your example. How would you
> >> resolve it?
> >
> > My thoughts:
> >
> > Measure 1 is complete, so the first "2" is not incorrect, though it might
> > not be what a user expects.
> >
> > No measure can start twice.
> >
> > The second "2" should either be "(2)", or it should be "3" and the "3"
> > should be "4".
>
> Add issue #3640 to this discussion. Accidentals, bar numbers, and (now)
> multi-measure rests are all impacted by the fact that \bar "|" does not
> create a new measure.
>
> \new Score \with {
> barNumberVisibility = #(every-nth-bar-number-visible 1)
> \override BarNumber.break-visibility = #all-visible
> } {
> f'1
> \cadenzaOn
> bes2
> \cadenzaOff
> %\partial 1024 s1024 %<<< try this
> \bar "|"
> << R1 bes1 >>
> }
>
> I don't think that merely restoring the previous behavior of
> Multi_measure_rest_engraver would be the right thing to do, because acting as
> if a measure begins at \bar "|" is inconsistent with other engravers.
> —
> Dan
>
For now I'll ignore #3640, especially the accidentals...
Though, I think
(1) a manual \bar "whatever" should just print the specified bar-line,
but not start or end a measure.
(2) if the BarNumber of the starting cadenza is x, the following newly
started measure should have BarNumber (1+ x) and a BarLine should be
printed at the end of the cadenza.
(3) if the cadenza has inner bar-lines, we should provide a simple
method to increase BarNumbers. Not sure, if we could implement this as
an automtism...
(4) obviously a MMR after a cadenza should be spanned between
appropriate BarLines, at least as default.
Thus, why not implement some new commands at the lines of:
increaseBarNumber =
\context Timing
\applyContext
#(lambda (ctx)
(ly:context-set-property! ctx 'currentBarNumber
(1+ (ly:context-property ctx 'currentBarNumber))))
endCadenza = {
\set Timing.timing = ##t
\context Timing
\applyContext
#(lambda (ctx)
(ly:context-set-property! ctx 'measureStartNow #t)
(ly:context-set-property! ctx 'currentBarNumber
(1+ (ly:context-property ctx 'currentBarNumber))))
\bar "|"
}
\new Score
\with { \override BarNumber #'break-visibility = ##(#t #t #t) }
{
R1
\cadenzaOn
\set fontSize = #-3
b4b b
\increaseBarNumber
\bar "|"
b b b
\unset fontSize
\endCadenza
\bar "||" %% BarLine of endCadenza can be tweaked
R1
}
Cheers,
Harm