bug-lilypond
[Top][All Lists]
Advanced

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

Re: Issue 1110 in lilypond: Wrong octave of repetition chord with\relati


From: David Kastrup
Subject: Re: Issue 1110 in lilypond: Wrong octave of repetition chord with\relative and #{ #} syntax
Date: Thu, 26 Jan 2012 06:12:17 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.92 (gnu/linux)

"Trevor Daniels" <address@hidden> writes:

>> Comment #35 on issue 1110 by address@hidden: Wrong octave of
>> repetition chord  with \relative and #{ #} syntax
>
>> Ok, I have mulled this over and decided that introducing a third
>> "what was the last $x" concept is not going to make things better
>> understandable. So  I'll go for the duplicitous approach: the "last"
>> chord is the last chord  the parser has seen, unless \relative runs
>> over it, in which case the "last" chord is the last chord \relative
>> has seen.
>
> Sounds good to me.
>
>> Chances are that people will be using \relative either consistently,
>> or consistently not, and so they get to see consistent behavior for
>> q even though we have two different approaches.
>
> Exactly.  I've become familiar with the present idiosyncracies, and
> could easily do the same again.  But will the behaviour on old scores
> change?  Updating them could be a nuisance.

Which is quite a good incentive _not_ to implement half-thought-through
"features" which people later protest are no longer "supported" when
they never worked right.

In any case: the behavior on old scores will change.  q was strictly
"last chord the parser has seen".  In connection with \relative, a hack
was used for maintaining a reference to "the last chord the parser has
seen".  This hack was not robust against copying, like it happens when
passing material through a music variable or several other things.  So
for \relative, it will change to "last chord \relative has seen".  Few
people realize that \relative is not an input mode change, but rather a
transformation on a complete expression.  It helps that the reference is
given at the start which means that \relative is not suspected to
remember stuff before it.

If we used a syntax like

\chordRepeat <c e> { ...

meaning that the first q inside of the construct without preceding chord
will resolve to <c e>, this would work similarly with regard to user
expectations.  But that seems somewhat silly.

Basically the situations where the behavior will be _noticeably_
different are when you have a \relative with a q in it before any other
chord.  Or when you use music variables with a q in them before any
other chord, and employ those in \relative.

So I don't think that there is much cause for worry.

-- 
David Kastrup




reply via email to

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