[Top][All Lists]

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

Re: Edition Engraver bug?

From: David Kastrup
Subject: Re: Edition Engraver bug?
Date: Mon, 05 Mar 2018 10:42:11 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux)

Jan-Peter Voigt <address@hidden> writes:

> Hi Stefano,
> thanks again for bringing up this issue! Now I identified it an EE-bug
> and I was able to reproduce the failure with:
> ----------------------------------------------
> \version "2.19.80"
> \include "oll-core/package.ily"
> \loadPackage edition-engraver
> \consistToContexts #edition-engraver Voice
> \addEdition test
> \editionMod test 1 0/4 Voice.A \once \tieDown
> <<
>   \relative { a'4~ a~ a~ a } \\
>   \relative { e'~ e~ e~ e }
> ----------------------------------------------
> If \tieDown is is set to moment 1/4 it is applied as expected - so the
> affected \editionMod at moment 0/4 is scheduled to happen at the
> moment \voiceOne is applied. This issue produces some kind of a race
> condition where Tie.direction is modified by \voiceOne after
> \editionMod comes into action. The EE does a \revert for all
> \overrides when the timestep is finished, but the top of the override
> stack is the override introduced by \voiceOne, so that is reverted to
> the \tieDown state.
> (Btw. \tieDown is just an equivalent shortcut for \override
> Tie.direction = #DOWN)
> Using ly:grob-property is not affected here, because there are no
> overrides to Tie.after-linebreak inside the music expression and
> ly:grob-property is applied late.
> This is a failure that can happen whenever there are (implicit)
> overrides in the music. I'll try to track/fetch overrides generated
> outside the EE to avoid this issue.

Any chance to actually use the equivalent of "\once" here?  It's
protected against reverting the wrong override, but this functionality
is not exposed at the Scheme level.

David Kastrup

reply via email to

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