[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Lilypond-auto] Issue 4098 in lilypond: Create a Syllable_translator
From: |
lilypond |
Subject: |
Re: [Lilypond-auto] Issue 4098 in lilypond: Create a Syllable_translator |
Date: |
Fri, 12 Sep 2014 15:37:55 +0000 |
Comment #2 on issue 4098 by address@hidden: Create a Syllable_translator
https://code.google.com/p/lilypond/issues/detail?id=4098
Yes. There are basically two possible approaches: send a SyllableEvent
with a span-direction of START for syllable starts, of CENTER for
melismata, and of STOP when a syllable ends (the latter is probably not
needed currently). The advantage of using events would be that associating
with some non-bottom context will still deliver suitable information. The
disadvantage is that if you connect to such a context mid-syllable or if
you do not actually want to connect at all, the information is not there.
Now the melisma information itself is stored in
melismaBusy slurMelismaBusy tieMelismaBusy beamMelismaBusy completionBusy
already which is an awful lot of properties to check for quite a few Lyric
and which also take some time writing. It would be possible to add
a "noteBusy" to it easily. However, it does not buy all that much since
the lyric engravers still need access to the actual note grobs of an
associated context for graphical alignment.
So for Lyric synchronization I'll need to use the same voice association
mechanism used in Lyric_combine_music_iterator also in Lyric_engraver.
Which is somewhat sketchy since, say, in Lyric_engraver, there is an
undocumented context property searchForVoice which will, when set, cause a
Lyric context named "soprano-I-lyrics" to attach to a voice
named "soprano-I" if associatedVoice is not set.
Who knows who relies on which historic interaction. It would also appear
that the voice searching mechanism in the Lyric_engraver is in competition
with the Lyric_combine_iterator since the Lyric_combine_iterator will use
the Lyric_engraver for engraving its lyrics.
So at any rate figuring out which information should be where at which
point of time is turning out to be a bit messy. Because the mess is
already there.
--
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