lilypond-devel
[Top][All Lists]
Advanced

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

Re: [PATCH] includeGraceNotes: lyrics syllables of grace notes


From: Richard Gay
Subject: Re: [PATCH] includeGraceNotes: lyrics syllables of grace notes
Date: Tue, 13 Apr 2010 01:28:02 +0200

> You shouldn't worry too much about this; it's a technical limitation
> of the way lyrics are processed, which also affects the property
> associatedVoice
> (http://lilypond.org/doc/v2.13/Documentation/notation/stanzas#Stanzas-with-different-rhythms).
>  It's fine as long as you document it as a known issue.
> 
> A \with { } or \context { } block would be a suitable workaround in
> this case.
Thanks again for your help. I quickly added a @knownissues to the docs
of the feature and added your code from below as an example for a
solution (if this is overkill, it's easily removed again).

> Now that I've had chance to test the patch a bit more, there's one
> more serious issue which needs fixing: melismata on graces end
> prematurely when followed directly by another lyric.
> 
> <<
>   \new Voice = melody \relative c' {
>     \grace { c16[( d e f] }
>     g1) f
>   }
>   \new Lyrics \with { includeGraceNotes = ##t }
>   \lyricsto melody {
>     Ah __ fa
>   }
> >>
I slightly modified the regression test for the lyric extender towards
your example.

> The automatic melisma (from the slur) should continue to the note
> following the graces, but ends too early.
Even if I have to admit that I don't really understand it, this issue
seems to be fixed by changing the patch as follows:

--- a/lily/lyric-combine-music-iterator.cc
+++ b/lily/lyric-combine-music-iterator.cc
@@ -299,12 +299,11 @@ Lyric_combine_music_iterator::process (Moment /*
when */) && lyric_iter_->ok ())
     {
       Moment now = music_context_->now_mom ();
-      if (now.grace_part_)
+      if (now.grace_part_ && !to_boolean
(lyrics_context_->get_property ("includeGraceNotes"))) {
          pending_grace_moment_ = now;
          pending_grace_moment_.grace_part_ = Rational (0);
-         if (!to_boolean (lyrics_context_->get_property
("includeGraceNotes")))
-           return;
+         return;
        }
       else

Actually I even had it that way in the beginning but tried to
"optimize" ... but anyway: the attached patch contains all changes
described above.

Cheers,
Richard

Attachment: includeGraceNotes-lyrics-syllables-of-grace-notes.patch
Description: Text Data


reply via email to

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