Comment #19 on issue 3560 by [email protected]: Completion_heads_engraver with
\scaleDurations
http://code.google.com/p/lilypond/issues/detail?id=3560
What about this one? The actual implementation is missing and I got a
headache so if anybody else wants to actually implement it go ahead, but it
seems to make it reasonably possible to cover all discussed either/or use
cases (of course failing the last "a little of both" use case Pál
presented) while retaining the existing behavior by default.
--- a/scm/define-context-properties.scm
+++ b/scm/define-context-properties.scm
@@ -215,6 +215,36 @@ and @samp{bracketed}.")
symbol go, measured in half staff spaces from the center of the
staff.")
(completionBusy ,boolean? "Whether a completion-note head is
playing.")
+ (completionFactorUnit ,exact-rational?
+"When @code{Completion_heads_engraver} and
+@code{Completion_rest_engraver} have to split a note or rest with a
+scaled duration, the scaled duration is interpreted as a long
+note (like @code{R1*8} would) whenever the scale factor is an integer
+multiple of @code{completionFactorUnit} rather than as a scaled
+note (like @code{\scaleDurations 2/3 @{ c8 c c @}} would).
+
+For long notes, the resulting scale factor of the produced notes
+is@tie{}@code{1} and the notes visually take up the full duration, in
+the latter case it is the original scale factor and the notes take up
+the same total visual duration as before the splitting.
+
+The default value of @code{1} will interpret integral scale factors as
+long notes, and non-integral scale factors (like produced by most
+tuplets) as scaled notes.
+
+When using @code{\scaleDurations} with an integer factor, setting
+@code{completionFactorUnit} to this factor may be needed to avoid
+having the completion engravers interpret some durations as long
+rather than scaled notes.
+
+In contrast, when using durations like @code{c1*9/8*3} in odd meters,
+setting a value of @code{9/8} will consider most tuplets scaled notes
+and keep the scale factor even when splitting them while correctly
+interpreting whole measure multiples as long notes.
+
+Setting @code{completionFactorUnit} to @code{0} will interpret all
+durations as scaled notes, setting it to @code{#f} will interpret all
+as long notes.")
(completionUnit ,ly:moment? "Sub-bar unit of completion.")
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings