lilypond-devel
[Top][All Lists]

## grace timing

 From: Erik Sandberg Subject: grace timing Date: Mon, 11 Oct 2004 14:42:47 +0200 User-agent: KMail/1.6.2

On Monday 11 October 2004 00.37, Han-Wen Nienhuys wrote:
> > be an appoggiatura, where 3 notes take 1/8 time from the main note, could
> > also be the very theoretical case
> > { \grace {\times 2/3 {b16[ b b]} b16[ b]} b8 }
> > which would mean that the first 3 notes are a bit faster.
> >
> > I don't think I have never seen grace note tuplets in reality, & don't
> > know if they really exist. I just assumed that they do.
>
> The code involving logical placement of grace notes is the most
> hairiest part of LilyPond, and although I did write it, I don't fully
> understand it myself.  I'm glad it works at all, so I don't feel much
> like solving problems like

Ah, so this is a future bug. This hairyness thing leads to another issue that
has been in my head for quite a while now:

Lately, there has been a drastic reduction of the # of lily bugs that are not
just related to layout (such as spacing, collision etc), but rather do more
discrete logical mistakes when placing the music. Like setting incorrect bar
numbers, hiding things that should be visible, etc.

Anyway, among the remaining bugs of the logical/discrete kind, the set of bugs
related to grace notes is now quite outstanding, both in number of bugs and
in number of annoyances on the mailing lists. I would therefore suggest that
we raise the priority for fixing (rewriting?) the system of grace note
timing. Given, of course, that the lilypond codebase now is mature enough
handle a new grace system nicely.

From a users point of view, I think it would feel more logical if grace notes
would be placed at (infinitesimally) positive time relative the beginning of
the beat; it feels strange that the beginning of a beat in some sense is
negative sometimes (though it's just infinitesimally). I have an idea of
another timing system that would feel more logical: We could use a metric
similar to the following (in terms of non-standard analysis).

time:  0       0+w-w*w*3/8 0+w-w*w*2/8 0+w-w*w*1/8  0+w  1/4+w  1/2      1/2+w
{    | \clef G \grace {c8[ d           e]}          e4   d      \clef F  c }

, where w is a fix, positive, infinitesimal number. Does this make any sense?

Basically, each moment in time would be on the form (Q + w - w*w*P), where Q
is a nonnegative rational and P is either a nonnegative rational or 1/w.

(I think I suggested something similar earlier, but didn't get any feedback..
does it sound sensible to use this kind of system? I think it would solve a
whole bunch of problems, the main one being the need to insert dummy skip
grace notes sometimes in orchestral music. Also I have a feeling that the
grace code could become a bit less hairy, but that's just a guess).

I am very aware that this is a post-2.4 thing :), my suggestion is that it
could be placed on the todo for 3.0.

Erik