bug-lilypond
[Top][All Lists]
Advanced

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

Re: Possible regression with changing time-signatures and order of input


From: David Kastrup
Subject: Re: Possible regression with changing time-signatures and order of input
Date: Wed, 05 Aug 2020 12:54:10 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux)

Thomas Morley <thomasmorley65@gmail.com> writes:

> Am Mi., 29. Juli 2020 um 23:39 Uhr schrieb Thomas Morley
> <thomasmorley65@gmail.com>:
>>
>> Am Mi., 29. Juli 2020 um 23:37 Uhr schrieb Thomas Morley
>> <thomasmorley65@gmail.com>:
>> >
>> > Hi,
>> >
>> > this just popped up in the german forum:
>> >
>> > The two scores below return different output since 2.20.0. (see
>> > attached) and warnings/errors are emitted for the first score:
>> > warning: barcheck failed at: 1/4
>> >   R1
>> >
>> > programming error: Multi_measure_rest::get_rods (): I am not spanned!
>> >
>> > With 2.18.2 it's the same.
>> >
>> > \version "2.20.0"
>> >
>> > takte = { \time 3/4 s2.*2 \time 4/4 s1*2 }
>> >
>> > noten = {
>> >   \repeat volta 2 { R2. }
>> >   \alternative { { r2. } { r1  }
>> >   }
>> >   R1
>> > }
>> >
>> > \score { \new Staff << \takte \noten >> }
>> > \score { \new Staff << \noten \takte >> }
>> >
>> > Cheers,
>> >   Harm
>>
>> And the image:
>
> Here some more research on it, with extended test-cases:
>
> control = {
>   \time 3/4
>   \repeat volta 2 { s2. }
>   \alternative { { s2. } { \time 4/4 s1 } }
>   s1
> }
>
> notes = {
>   \repeat volta 2 { R2.  }
>   \alternative { { R2. } { R1 }
>   }
>   R1
> }
>
> %% Order matters
> \score { \new Staff \with { instrumentName = "1" } << \control \notes >> }
> \score { \new Staff \with { instrumentName = "2" } << \notes \control >> }
>
>
> %% From commit-message of f372c695a52cf83ea00ff3be40acc542b4d46cbd
> \new Staff \with { instrumentName = "3" }
> \relative {
>   \partial 4
>   \repeat volta 4 { e'4 | c2 d2 | e2 f2 | }
>   \alternative { { g4 g g } { a a a a } }
>   a b2.
> }
>
> %% Accidental missing
> \new Staff \with { instrumentName = "4" }
> \relative {
>   \partial 4
>   \repeat volta 2 { d'4 | g1 | }
>   \alternative { { fis2. } { fis1 } }
>   g1
> }
>
> (1)
> With released 2.18.2
> Scores 1+2 look good, 3+4 not, score-4 misses the accidental in 2nd repeat.
> No error/warning
>
> (2)
> With a build out of
> commit f372c695a52cf83ea00ff3be40acc542b4d46cbd
> Author: David Kastrup <dak@gnu.org>
> Date:   Sun Nov 3 15:01:10 2013 +0100
>
>     Issue 355: \repeat bar lines get messed up
>
>     % the second repeat should start at the beginning of a bar, not
>     % continue from the incomplete bar in the first ending.
>
>     \version "2.17.30"
>     \new Staff \relative {
>       \partial 4
>       \repeat volta 4 { e' | c2 d2 | e2 f2 | }
>       \alternative { { g4 g g } { a a a a } }
>       a b2.
>     }
>
> (first commit changing the previous behaviour)
>
> Scores 1+2 look bad and emit barcheck-warnings and errors about not
> spanned MultiMeasureRest
> Score 3 looks good
> Score 4 looks good as well, apart from the missing Accidental
>
> (3)
> With a build out of
>
> commit b79db5deaf2159b569b1f9dab9c0fd59c3ff0533 (HEAD)
> Author: David Kastrup <dak@gnu.org>
> Date:   Mon Jan 13 12:45:33 2014 +0100
>
>     Issue 3792: \time change under last \alternative does not persist
>
> (first commit changing the previous behaviour)
>
> Score 1 looks bad and emits barcheck-warnings and errors about not
> spanned MultiMeasureRest
> Score 2, 3, 4 look good (no warning or error)
> Score 4 still misses the Accidental
>
> This is still the behavior for current master.
>
>
> I don't understand why score-1 is still bad and of course the
> Accidental shouldn't be suppressed.
>
> David I cc you, because you're the author of the mentioned patches,
> any idea to improve?

This is broken behavior because the code for repeat volta does not
collect/restore all information/settings from subordinate contexts that
may be relevant.

Issue 3792 does not do the full job it purports to do, unfortunately.
This was at one time the blocker for 2.20 but I made no headway on
figuring out something better.

-- 
David Kastrup



reply via email to

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