bug-lilypond
[Top][All Lists]
Advanced

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

Re: Issue 34 in lilypond: Grace synchronization


From: lilypond
Subject: Re: Issue 34 in lilypond: Grace synchronization
Date: Wed, 20 Jul 2011 13:14:17 +0000


Comment #14 on issue 34 by address@hidden: Grace synchronization
http://code.google.com/p/lilypond/issues/detail?id=34

I did a little digging and the issue is that all \set commands (like the clef) and all other events (like KeyEvent) are treated as if they occurred together with the first note (and that problem lies deeper than the Sequential_iterator's handling of grace notes!). I.e. if you have:
Voice 1: \clef "bass" \grace c8 d4
Voice 2: \clef "bass" d4

Then in Voice 1, the clef properties (clefGlyph and the like) will be set at moment 0G-1/8, while in Voice 2, they will be set only at moment 0G.
Similarly, all key events will be assigned the moment of the first note...
Now, the iterators and then the engravers go through the music one moment at a time, so the order of things is:
-) moment 0G-1/8 : only voice 1 creates a clef and the grace note
-) moment 0 : voice 1 creates the d4, while voice 2 changes the clef and creates a d4.

However, in my eyes we need to distinguish the events at each moment. Basically, we have three different types of events:

1) events that should be processed at the very beginning of each moment (before grace notes are handled) 2) grace notes (i.e. notes that appear before the real content of the moment), possibly also including some \set command, which should not mess up things
3) normal notes

In other words, we need to find a way to process key/clef/barlines (in particular all SetEvents) etc. before all grace notes. One approach might be to assign a moment like 0G-inf to them, so they will be processed before all grace notes.

Or does anyone have a better idea where to start?

Cheers,
Reinhold




reply via email to

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