On Mon 12 Oct 2020 at 14:46:43 (-0700), Knute Snortum wrote:
> On Mon, Oct 12, 2020 at 10:03 AM Aaron Hill <lilyp...@hillvisions.com> wrote:
> > On 2020-10-12 9:56 am, Knute Snortum wrote:
> > >
> > > I think I've run into a bug.  It's hard to explain so I will post the
> > > MWE (it's as minimal as I could make it):
> > >
> > > %%% Start
> > > \version "2.20.0"
> > >
> > > rightHand = \relative c' {
> > >   \partial 4 c4
> > >   c4 c c
> > >
> > >   \repeat volta 2 {
> > >     c4 |
> > >     c4 c c c |
> > >   }
> > >   \alternative {
> > >     { c4 c c }
> > >     { c4 c c c }
> > >   }
> > >
> > >   c1 |
> > > }
> > >
> > > \score {
> > >   \new Staff \rightHand
> > >   \midi {
> > >   }
> > > }
> > > %%% End
> > >
> > > The c1 at the end of the music produces a bar line check warning.  It
> > > only happens when creating a MIDI file. It only happens when the volta
> > > is in the middle of the measure.  It only happens when an alternate
> > > ending doesn't contain a full measure of notes.
> > >
> > > Any thoughts?  I really appreciate you guys.
> >
> > Don't you need to \unfoldRepeats when doing MIDI output?
> >
> > %%%%
> > \score {
> >    \new Staff \unfoldRepeats \rightHand
> >    \midi { }
> > }
> > %%%%
> 
> Thanks, Aaron Hill.  The only problem is this messes up my \barNumberChecks
> 
> %%% Start
> \version "2.20.0"
> 
> rightHand = \relative c' {
>   \partial 4 c4
>   c4 c c
> 
>   \repeat volta 2 {
>     c4 |
>     c4 c c c |
>   }
>   \alternative {
>     { c4 c c }
>     { c4 c c c }
>   }
> 
>   \barNumberCheck 5
>   c1 |
> }
> 
> \score {
>   \new Staff \rightHand
> }
> 
> \score {
>   \new Staff \unfoldRepeats \rightHand
>   \midi {
>   }
> }
> %%% End

Your \barNumberCheck, as you placed it, should be expecting 4 or 6,
as in the attached, but not 5. A \barNumberCheck placed at the
barline should be set to the number of the next measure, not the
previous one.

However, I agree that LP's a bit messy when you generate MIDI with
folded repeats, which is something I regularly do in order to
proof-read by ear. In this case, you get the barcheck shown by
your version at the top of the quote above.

My workaround is the same as previously: generate the MIDI first,
then the score. My \barNumberChecks are naturally set to agree with
the printed/folded bar numbers, so all the noise goes into the
MIDI part of the console log, and the \layout part should be clean.

Cheers,
David.
rightHand = \relative c' {
  \partial 4 a4
  b4 c d

  \repeat volta 2 {
    e4 |
    f4 g a b |
  }
  \alternative {
    { c4 d e }
    { f4 g a b }
  }
  \barNumberCheck #4 \barNumberCheck #6
  c1 |
}

\layout {
  \context {
    \Score
    \override BarNumber.break-visibility = #end-of-line-invisible
    barNumberVisibility = #(every-nth-bar-number-visible 1)
  }
}

\score {
  \new Staff \unfoldRepeats \rightHand
  \layout { }
}

\score {
  \new Staff \rightHand
  \layout { }
}

\score {
  \new Staff \rightHand
  \midi { }
}

\score {
  \new Staff \unfoldRepeats \rightHand
  \midi { }
}

Reply via email to