lilypond-user
[Top][All Lists]
Advanced

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

Re: once again with a header, tie into polyphony question


From: Rune Zedeler
Subject: Re: once again with a header, tie into polyphony question
Date: Wed, 21 Nov 2007 13:58:36 +0100
User-agent: Thunderbird 2.0.0.6 (X11/20071022)

Ole Schmidt skrev:

I want to have both of the first two notes tied -the d and the f-sharp. How do I achieve that?

The problem is, that the Tie_engraver - that generates ties - lives at voice level. That means that the Tie_engraver can only "see" notes in the same voice - and therefore cannot tie notes from different voices together. The reason why the engraver does not live at Staff level is that this would make ties in polyphony impossible. If you for instance have

<<
  e4 ~ e8 e8
//
  c8 c8 ~ c4
>>

Then - if the Tie_engraver were living at Staff level - it would see e followed by c followed by e. Therefore the two e's that you try to tie together would not be seen as neighbours, and the engraver would be confused and produce bad results.

If you really REALLY really need to tie different voice together then you can add the tie-engraver to BOTH staff and voice. And manually make the ties that you are not interested in invisible.
It goes like this:

%%% BEGIN %%%
\version "2.10.25"

\layout {
  \context {
    \Staff
    \consists Tie_engraver
    \override Tie #'transparent = ##t
  }
  \context {
    \Voice
    \override Tie #'transparent = ##f
  }
}

tiesToVoice = {
  \revert Staff.Tie #'transparent \override Staff.Tie #'transparent = ##t
  \revert Voice.Tie #'transparent \override Voice.Tie #'transparent = ##f
}
tiesToStaff = {
  \revert Staff.Tie #'transparent \override Staff.Tie #'transparent = ##f
  \revert Voice.Tie #'transparent \override Voice.Tie #'transparent = ##t
}

{
  \transpose c c' {
    \tiesToStaff
    < e c >4 ~ < e c >8 < e c > ~
    << { e e e e |
         \tiesToVoice
         e4 ~ e8 e }
    \\ { c8 c c c |
         \tiesToVoice
         c8 c ~ c4 } >>
  }
}
%%% END %%%

I will add this to LSR as soon as I get the \revert \override -thing checked. I do not understand why it cannot be replaced with \set.

-Rune




reply via email to

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