On May 30, 2011, at 12:20 AM, k-ohara5...@oco.net wrote:

> This fails the "sniff test" because it removes some careful-looking code
> no explanation as to how the job of the old code is being done.
> 
> What happens if the line on the next page is does not, in fact, have the
> same vertical reference point?
> 
> \relative c''' { \override Staff . Glissando #'breakable = ##t
>  { s3 a2 \glissando \break s1 \break s1 \break s1 \pageBreak \break s2
> c,2\trill\fermata^\ff }
> }
> 
> I suppose a misaligned glissando is better than no glissando, but the
> old code made my the voice-change lines point to the right places:
> \paper {ragged-right = ##t }
> \new PianoStaff <<
>  \new Staff = "one" {
>    \showStaffSwitch
>    c'1 \break
>    \change Staff = "two"
>    b2 a
>  }
>  \new Staff = "two" {
>    \clef bass
>    g'1^\trill^\f s1
>  }
> 

The problem doesn't come from the page break but from alignment with common Ys.

Line 242ish of line-spanner.cc is:

  do
    span_points[d][Y_AXIS] += common_y[d]->relative_coordinate (my_common_y, 
Y_AXIS);
  while (flip (&d) != LEFT);

The value added on will be different depending on what's on the staves.  Try:

\relative c''' { \override Staff . Glissando #'breakable = ##t
 s2 a2 \glissando \break s1 \break s1 \break s1 \break s2
c,2
}

versus

\relative c''' { \override Staff . Glissando #'breakable = ##t
 s2 a2 \glissando \break s1 \break s1 \break s1 \break s2
c,2 \trill\fermata^\ff
}

I'm flying to Ireland today & will attempt to crunch this during the flight.

Cheers,
MS

_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to