[Top][All Lists]
[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
- Re: Issue 34 in lilypond: Grace synchronization,
lilypond <=