lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: repeat volta and \barNumberCheck


From: David Wright
Subject: Re: repeat volta and \barNumberCheck
Date: Mon, 12 Oct 2020 21:56:05 -0500
User-agent: Mutt/1.10.1 (2018-07-13)

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.

Attachment: knute1.ly
Description: Text document

Attachment: knute1.png
Description: PNG image

Attachment: knute2.ly
Description: Text document

Attachment: knute2.png
Description: PNG image


reply via email to

[Prev in Thread] Current Thread [Next in Thread]