2009/3/28 Neil Puttock <n.putt...@gmail.com>: > I think you've uncovered a bug related to \change Staff here; if you > remove the \change Staff = "lower", the file compiles fine. Until > it's fixed you'll have to place the cross-staff notes in one of the > lower voices. > > Here's a snippet which may be a manifestation of the same bug, but > with slightly different results (taken from the regtest > spacing-knee-compressed.ly):
Having looked at the source code, they're definitely the same bug. You can scrub the advice I gave above if you explicitly instantiate your voices, since this tricks the iterator into thinking it's already changed contexts when the first \change Staff comes along (it compares it to Voice rather than Staff). \version "2.12.2" \header { title = "Cristo Ressuscitou" composer = "J. dos Santos" poet = "P. Minhava" tagline = "Transcrita por Alberto Simões" ocasioes = "entrada" seccao = "entrada" } global = { \key ees \major \time 2/4 } melody = \relative c' { \clef treble \global \autoBeamOff r4\f ees8^\markup{Coro} g \bar "|:" bes bes g bes ees4( c) bes2 c4 f,( \break f8) g aes f bes4 ees8 c aes aes c aes f2 ees2 ~ ees8 \fermata d^\p d d g4 f8 f g g d d g g a a g2 ~ g8 a bes c d4 ees8 c d8 g, a bes c d ees c d4 bes8 bes g g f f g2 ~ g8 r ees g \bar ":|" } text = \lyricmode { A- le- lu- ia! A- le- lu- ia! Cris- to res- sus- ci- tou. A- le- lu- ia! A- le- lu- ia! Não pro- cu- reis en- tre_as som- bras a pes- so- a de Je- sus. Res- sus- ci- tou: e- ra_a Vi- da. Bri- lhe_en- tre vós: é a Luz. Bri- lhe_en- tre vós: é a Luz. A- le- } upperA = \new Voice \relative c' { r4 \voiceOne ees8[( g]\bar "|:" <g bes>4) g8[( bes] <bes ees>4) c8[( ees] <c g'>4) ees8[( g] c[ bes aes g] f[ ees d c] bes4 ees8[( c] aes4) c8([ aes] f2 ees2 ~ ees8) \fermata d8([ d d] g4 f g d g a g2 ~ g8) a[( bes c] <f, a d>4) <ees g c>( <f a d>) <ees g c>( <f a d>) <ees g c>( <f a d>) <ges bes ees>( <g bes e>) <aes d f>( <g d' g>2) ~ <g d' g>8 r ees[ g] \bar ":|" } upperB = \new Voice \relative c { \voiceTwo \change Staff = "lower" ees4(-- \change Staff = "upper" ees'4) <d f>4 g <c, g> c' <g bes> ees' <f, c' d>-- r4 <bes, f' g>-- r4 <ees f>-- r <c ees>-- r d2 bes ~ bes8 r c4( bes) c( b) c( bes) c( b) c( bes8) r8 r4 s2 s2 s2 s2 s2 s2 s4 ees } upper = { \global \clef treble << \upperA \\ \upperB >> } lowerA = \relative c' { s2 \bar "|:" s2 s2 s2 s2 s2 s2 s2 bes4 c8[( aes] g2) ~ g8 r r4 r8 d8[ d d] g4 f8[ f] g[ g] d[ d] g[ g] a[ a] g r8 r4 } lowerB = \relative c' { s2 \bar "|:" s2 s2 s2 s2 s2 bes2 ~ bes ~ bes4 bes,( ees) bes8[( g] ees)_\fermata s8 s4 g2 ~ g2 ~ g2 ~ g2 ~ g8 s8 s4 c'2 ~ c ~ c ~ c ~ c ~ c ~ c8 r8 s4 } lower = { \global \clef bass << \lowerA \\ \lowerB >> } \score { << \new Voice = "mel" { \autoBeamOff \melody } \new Lyrics \lyricsto mel \text \new PianoStaff << \new Staff = "upper" \upper \new Staff = "lower" \lower >> >> \layout { \context { \RemoveEmptyStaffContext } } \midi { \context { \Score tempoWholesPerMinute = #(ly:make-moment 63 4) } } } Regards, Neil _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user