[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Strange Change Staff behavior
From: |
Neil Puttock |
Subject: |
Re: Strange Change Staff behavior |
Date: |
Sun, 29 Mar 2009 00:37:05 +0000 |
2009/3/28 Neil Puttock <address@hidden>:
> 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