[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: problem with associatedVoice
From: |
Reinhold Kainhofer |
Subject: |
Re: problem with associatedVoice |
Date: |
Thu, 21 Oct 2010 15:31:57 +0200 |
User-agent: |
KMail/1.13.5 (Linux/2.6.35-22-generic; KDE/4.5.2; i686; ; ) |
Am Donnerstag, 21. Oktober 2010, um 14:14:03 schrieb Trevor Daniels:
> Yes, and one syllable earlier than "zar" is "Sfor", so the
> \set assoicatedVoice should go before "Sfor", which is the
> first syllable, and there is the problem. The setting of
> associatedVoice does not affect the immediately following
> syllable but the one after that. (It is not sensible, I
> agree, but that's what it does and that's what the
> documentation says it does.)
Yes, the reason for this is not a design decision, but a bug in the code
(which is unfortunately hard to fix):
The \set is evaluated by the context Engraver_group (see lily/engraver-
group.cc), while the distribution of lyrics syllables to voices is done in an
iterator, which comes way before contexts do their job. So the \set commands
that appear in any given moment (note that a \set right before a syllable
belongs to the same moment as the syllable!) do not yet have any effect on
that timestep, as they have not been processed at that time...
I ran into the same problem with the part combiner a few weeks ago, and the
only solution was not to use context properties, but a dedicated music event
that is available in the iterator already.
Cheers,
Reinhold
--
------------------------------------------------------------------
Reinhold Kainhofer, address@hidden, http://reinhold.kainhofer.com/
* Financial & Actuarial Math., Vienna Univ. of Technology, Austria
* http://www.fam.tuwien.ac.at/, DVR: 0005886
* LilyPond, Music typesetting, http://www.lilypond.org