Thanks David, I'm going to look over your MWEs and maybe get back to you.
--- Knute Snortum (via Gmail) On Mon, Oct 12, 2020 at 7:57 PM David Wright <lily...@lionunicorn.co.uk> wrote: > > On Sun 04 Oct 2020 at 17:06:48 (-0700), Knute Snortum wrote: > > > > It seems that repeat volta and \barNumberCheck don't work well > > together when you use the \alternative function. If you put a > > \barNumberCheck inside of a repeat volta, the \braNumberCheck fails > > all the time. I think it's because when you go through the music a > > second time, the numbering is off. > > > > This may not be a bug, but it's pretty inconvenient. Here's my MWE: > > > > %%% Start > > \version "2.20.0" > > > > rightHand = \relative c' { > > \repeat volta 2 { > > \partial 4 f4 > > \barNumberCheck 2 > > c4 d e > > } > > > > \repeat volta 2 { > > f4 | > > \barNumberCheck 3 > > c4 d e f | > > } > > } > > > > \include "articulate.ly" > > > > \score { > > \articulate { > > \new Staff \rightHand > > } > > } > > %%%End > > I rewrote your MWE in three respects: I "corrected" the bar numbers > for conventional numbering (as already pointed out), I made the > pitches less ambiguous, and I replaced \articulate by \unfoldRepeats, > which shows more clearly where the problem lies. (AIUI \articulate > implicitly unfolds the repeats.¹) > > Now you can see where the barchecks and barnumberchecks come from > more clearly. The former is a "composition" error, the latter is > as you thought: the second pass of the source has a different > counting origin. > > My way of dealing with the snag is to generate the MIDI (and the > like) first. When the run is completed, the console log with be > left displaying the clean \layout run *after* the dirty run: > > […] > Interpreting music... > knute1.ly:4:5: warning: Barcheck failed got 2 expect 1 > > \barNumberCheck 1 % corrected > knute1.ly:10:5: warning: Barcheck failed got 3 expect 2 > > \barNumberCheck 2 % corrected > knute1.ly:9:8: warning: barcheck failed at: 1/4 > g4 > | > knute1.ly:10:5: warning: Barcheck failed got 4 expect 2 > > \barNumberCheck 2 % corrected > Preprocessing graphical objects... > Interpreting music... > Preprocessing graphical objects... > […] > > On Sun 04 Oct 2020 at 17:18:49 (-0700), Knute Snortum wrote: > > Here's another way that "articulate.ly" messes with bar line checks. > > If you put a \repeat volta in the middle of a measure, you cannot get > > reliable bar line checks (|) after that. Here's my MWE: > > > > %%%Start > > \version "2.20.0" > > > > rightHand = \relative c' { > > \repeat volta 2 { > > \partial 4 f4 > > c4 d e f | > > c4 d e > > } > > > > \repeat volta 2 { > > f4 | > > c4 d e f | > > } > > } > > > > \include "articulate.ly" > > > > \score { > > \articulate { % Remove articulate and all is well! > > \new Staff \rightHand > > } > > } > > %%%End > > Much the same "compositional" problem: it's not clear on which beat of > the bar the upper d lies, 4th or 1st. > > ¹ I haven't read articulate.ly in any detail, but there are hints: > > "% Totally unfold repeats, so that the non-obvious sequencing doesn't > % confuse us. This is necessary for time stealing to work, because > % that relies on the sequence in which we see events matching their > % audible sequence. Also unfold multi-measure rests to equivalent > % skips, with preceding and following bar checks, so that time stealing > % can change the length of the pause without falling foul of the > % implicit bar checks." > > Cheers, > David.