[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Is a cross-staff chord with ties possible in lilypond?
From: |
address@hidden |
Subject: |
Re: Is a cross-staff chord with ties possible in lilypond? |
Date: |
Wed, 27 Apr 2011 07:40:19 -0400 |
On Apr 26, 2011, at 5:18 AM, David Kastrup wrote:
> Francisco Vila <address@hidden> writes:
>
>> 2011/4/26 Helge Hafting <address@hidden>:
>>> 2. Cross-staff chords could get simpler too. Switch staff inside
>>> a chord, and lilypond would know to connect the stems.
>>
>> Cross-staff chords is one of the very first features I tried in
>> lilypond and could not achieve. I used to teach Finale and gave a
>> Satie example as an exercise to my students; when I switched to
>> lilypond I could not use the piece (first Gnossienne) any more, you
>> can not ask for such a complicated exercise at the initial stages of
>> learning, but it was fairly easy with the afore mentioned visual
>> package. The idea was: you select a special tool, choose a measure
>> and a number of handles appear on noteheads. Then just drag and drop
>> notes onto the desired staff. In lilypond we have not a syntax for
>> this but we do have one for simple cross staff voices, so I guess we
>> have a small step done towards this. Remember, however, that a syntax
>> is not by far all you need to have for a feature to work.
>>
>> I'd be delighted to sponsor the feature. ¿A price?
>
> Staff changes are currently done by music events IIRC, meaning that they
> occur at a certain point of time.
>
> With the current architecture of Lilypond, the most straightforward
> approach at the moment would appear to specify cross-staff notes via
> tweaks instead.
>
>
To get cross-staff ties, you have to change how/where the tie engraver is doing
its work. Check out:
\score {
<<
\new Staff = up \with { tieWaitForNote = ##t } \relative c' {
s2 <c d>2
}
\new Staff = down \with { tieWaitForNote = ##t } \relative c' {
a8 ~ [ b ~ \change Staff = up c ~ d ~ ] \change Staff = down
\override Stem #'cross-staff = ##t
\override Stem #'length = #20
<a b>2
}
>>
\layout {
\context { \Staff \consists "Tie_engraver" }
\context { \Voice \remove "Tie_engraver" }
}}
Cheers,
Mike