lilypond-auto
[Top][All Lists]
Advanced

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

Re: [Lilypond-auto] Issue 630 in lilypond: non-synchronized grace note m


From: lilypond
Subject: Re: [Lilypond-auto] Issue 630 in lilypond: non-synchronized grace note makes voiceOne go stems down
Date: Wed, 01 Oct 2014 18:48:22 +0000


Comment #28 on issue 630 by address@hidden: non-synchronized grace note makes voiceOne go stems down
https://code.google.com/p/lilypond/issues/detail?id=630

Ok, this is a nuisance. graceSettings is read and obeyed (setting other context/grob properties) in the Grace_engraver, but the usual property handling happens in iterators.

Now the main loop in global-context.cc is
      send_stream_event (this, "Prepare", 0,
                         ly_symbol2scm ("moment"), w.smobbed_copy ());

      if (iter->ok ())
        iter->process (w);

      send_stream_event (this, "OneTimeStep", 0, 0);
      apply_finalizations ();

Prepare calls start_translation_timestep of all engravers, OneTimeStep calls process_music of all engravers followed by stop_translation_timestep. If Grace_engraver works at start_translation_timestep (like it does now), its actions precede that of any iterator setting properties. If it works at process_music time, its action may come too late for some grobs being created.

So there are two ways out:
a) let the Grace_iterator do the work instead.
b) let the Grace_engraver do its work in process_music but move it very early in the list of engravers so that its effects may occur in time for other engravers.

If the work is done in the engraver, there is no way whatsoever to distinguish
\oneVoice \grace { ... from \grace { \oneVoice ...
but the latter supposedly is \stemNeutral while the former is \stemUp. So the Grace_iterator at least has to grab graceSettings and stuff them into currentGraceSettings or something.

Which may not be visible to some Grace_engraver depending on what context in relation to the Grace_iterator it may be situated.

This is a nuisance.

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