lilypond-devel
[Top][All Lists]
Advanced

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

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:
> address@hidden writes:
> > 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




reply via email to

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