lilypond-devel
[Top][All Lists]
Advanced

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

Re: there are actually four commits: (issue 14640043)


From: dak
Subject: Re: there are actually four commits: (issue 14640043)
Date: Fri, 25 Oct 2013 07:35:31 +0000

On 2013/10/25 07:04:55, Keith wrote:
None of the examples show \set completionFactorUnit = n/m  actually
helping.  Is
there an example where this property is more useful than a boolean
switch?

No, because completionFactorUnit is only used for determining the
position of a boolean switch.  You can always throw this switch
yourself since the engraver only works with a single duration at a
single point of time.

By contrast, the earlier patch
<http://codereview.appspot.com/14633043> using
completionLongestScaled to divide long- versus short notes, made the
examples in
the bug-reports work by default, and included documentation.

completionLongestScaled does not work satisfactorily with
\scaleDurations, the main reason for having this patch in the first
place.  It's also incompatible to the previous behavior.

Either this patch or the earlier one could be augmented by allowing
users to set 'completionFactor' to specify the output scale-factor
that the engraver should use for 'long' notes, for the case Pál
brought up \scaleDurations 2/3 { a1.*9 }

Sure, but that's leaving the "binary switch" area and is an orthogonal
advancement.  You still need to decide how to throw the switch.


https://codereview.appspot.com/14640043/diff/3001/input/regression/completion-rest.ly#newcode25
input/regression/completion-rest.ly:25: r4 ^"r4" r8*4 ^"r8*4" r8*8
^"r8*8"
The un-split r8*4 makes the test hard to interpret.

The un-split r8*4 makes the whole behavior of Completion_*_engraver
hard to interpret.  That was my point for the very first patch
_always_ maintaining the current scale factor.  It is the only
behavior where the output of Completion_*_engraver is _consistent_
between notes crossing a completion boundary and those that don't.

The point of a regression test is to demonstrate that the behavior
works as designed.  I consider it a poor design decision to treat some
notes differently as others, but _that's_ _what_ _people_ _want_.
We'd have been finished a month ago if they didn't.  And so we should
document the consequences of what they want.


https://codereview.appspot.com/14640043/

reply via email to

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