Menu

#1354 associatedVoice fails for second syllable

Accepted
nobody
None
Defect
2015-09-27
2010-10-21
Anonymous
No

Originally created by: *anonymous

Originally created by: lemzw...@googlemail.com

In the example below, the Italian syllable `la' is incorrectly positioned.  Reason is that `\set associatedVoice' fails if applied to the second syllable.

~~~~
:::TeX
\version "2.13.31"

<< \new Staff <<
\context Voice = "german" \relative c {
\autoBeamOff
\clef bass
r16 f \voiceOne f32 f \oneVoice g16 a8 a a a16 a bes8 c
}

 \context Voice = "italian" \relative c {
   \clef bass
   s8 f16
 }

\new Lyrics \lyricsto "german" {
die Toch -- ter ver -- füh -- ren und ih -- ren Va -- ter
}

\new Lyrics \lyricsto "german" {
\set associatedVoice = "italian"
Sfor --
\set associatedVoice = "german"
zar la fi -- glia, ed am -- maz -- zar il
}

~~~~~

1 Attachments

Discussion

  • Google Importer

    Google Importer - 2010-10-21

    Originally posted by: lemzw...@googlemail.com

    Reinhold comments:

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

     
  • Google Importer

    Google Importer - 2010-10-25

    Originally posted by: percival.music.ca@gmail.com

    (No comment was entered for this change.)

    Labels: Priority-Medium

     
  • Google Importer

    Google Importer - 2012-12-31

    Originally posted by: lemzw...@googlemail.com

    Walking over older bug reports issued by me, I wonder how a proper fix for this particular problem could look like.  That `\set associatedVoice' must be written one syllable earlier is a pain in the neck IMHO.  It would be great if this peculiarity could be replaced with a solution which better fits lilypond.

    My knowledge of lilypond's internals is far too restricted to say something useful, but it seems to me that this issue is a really deep problem...

     
  • Trevor Daniels

    Trevor Daniels - 2015-09-27
    • Description has changed:

    Diff:

    --- old
    +++ new
    @@ -4,29 +4,32 @@
    
     In the example below, the Italian syllable \`la' is incorrectly positioned.&nbsp; Reason is that \`\set associatedVoice' fails if applied to the second syllable.
    
    +~~~~
    +:::TeX
     \version "2.13.31"
    
    -&lt;&lt; \new Staff &lt;&lt;
    -&nbsp;&nbsp;&nbsp;&nbsp; \context Voice = "german" \relative c \{
    -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \autoBeamOff
    -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \clef bass
    -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [r16] f \voiceOne f32 f \oneVoice g16 a8 a a a16 a bes8 c
    -&nbsp;&nbsp;&nbsp;&nbsp; \}
    +<< \new Staff <<
    +     \context Voice = "german" \relative c {
    +       \autoBeamOff
    +       \clef bass
    +       r16 f \voiceOne f32 f \oneVoice g16 a8 a a a16 a bes8 c
    +     }
    
    -&nbsp;&nbsp;&nbsp;&nbsp; \context Voice = "italian" \relative c \{
    -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \clef bass
    -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s8 f16
    -&nbsp;&nbsp;&nbsp;&nbsp; \}
    -&nbsp;&nbsp; &gt;&gt;
    +     \context Voice = "italian" \relative c {
    +       \clef bass
    +       s8 f16
    +     }
    +   >>
    
    -&nbsp;&nbsp; \new Lyrics \lyricsto "german" \{
    -&nbsp;&nbsp;&nbsp;&nbsp; die Toch -- ter ver -- füh -- ren und ih -- ren Va -- ter
    -&nbsp;&nbsp; \}
    +   \new Lyrics \lyricsto "german" {
    +     die Toch -- ter ver -- füh -- ren und ih -- ren Va -- ter
    +   }
    
    -&nbsp;&nbsp; \new Lyrics \lyricsto "german" \{
    +   \new Lyrics \lyricsto "german" {
     \set associatedVoice = "italian"
    -&nbsp;&nbsp;&nbsp;&nbsp; Sfor --
    +     Sfor --
     \set associatedVoice = "german"
    -&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; zar la fi -- glia, ed am -- maz -- zar il
    -&nbsp;&nbsp; \}
    -&gt;&gt;
    +             zar la fi -- glia, ed am -- maz -- zar il
    +   }
    +>>
    +~~~~~
    
    • Needs: -->
    • Patch: -->
     
  • Trevor Daniels

    Trevor Daniels - 2015-09-27
     
MongoDB Logo MongoDB