lilypond-auto
[Top][All Lists]
Advanced

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

Re: [Lilypond-auto] Issue 3560 in lilypond: Completion_heads_engraver wi


From: lilypond
Subject: Re: [Lilypond-auto] Issue 3560 in lilypond: Completion_heads_engraver with \scaleDurations
Date: Fri, 04 Oct 2013 05:30:06 +0000


Comment #12 on issue 3560 by address@hidden: Completion_heads_engraver with \scaleDurations
http://code.google.com/p/lilypond/issues/detail?id=3560

Well, the problem is that you'll have a1*5 behave one way, and a1*9/8*5 another (for a five measure note in 9/8 time). I just don't see that we can draw a safe dividing line here, and tuplets _are_ being done using scaled time (see the new regtest). If you mix tuplets with other scalings, sometimes whole factors arise, sometimes not.

In addition, currently the completion_heads_engraver messes with a note's scale factor whenever it crosses a boundary but leaves it intact when it doesn't. So if you write
\new Voice \with {
  \remove "Note_heads_engraver"
  \consists "Completion_heads_engraver"
}
{ r16*2 \repeat unfold 15 c8*2 r16*2 }
The results are fabulously inconsistent.

Which of the two appended results would you rather have? Unscaled durations can't express arbitrary rational numbers. That's a limitation of musical notation. With scaled durations (like tuplets), the visual appearance no longer matches the actual musical duration. If the Completion_heads_engraver reverses this mismatch, but only sometimes, depending on whether a note crosses some boundary or not, does not really deliver useful value.

I certainly agree with Keith that the listed use cases would be "nice to have". But seeing the price tag makes me shelve them.

We would need an actual _switch_ for the completion engravers to flip between behaviors, and if you flipped that switch to the "lazy long durations" setting, syncopated tuplets are impossible. We might provide settings, but I don't think that a default setting that treats c1*3/2*3 differently from c1*3/2*4 is a reasonable idea for specifying this kind of duration, and never mind that c1*3/2*1, not crossing any boundary at all, will look different _again_.

Attachments:
        ddd.preview.png  6.3 KB
        eee.preview.png  6.6 KB

--
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



reply via email to

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