lilypond-devel
[Top][All Lists]
Advanced

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

Re: surviving-staff.ly


From: Han-Wen Nienhuys
Subject: Re: surviving-staff.ly
Date: Mon, 31 May 2004 15:18:15 +0200

address@hidden writes:
> On Monday 31 May 2004 12.55, Han-Wen Nienhuys wrote:
> >     \header { texidoc =
> >     "The upper staff is extended with an empty bar.
> >
> >     The score is weird in the sense that the Lyrics context is
> >     created within a Staff context. But if this is not allowed, then
> >     it should give either a warning or an error."
> >     }
> >
> > I don't consider this a bug. It's allowed, and the result is what you
> > see here.
> 
> OK, but I don't understand then why this extra bar should be added. Should it 
> really be?

The problem is that the lyrics aren't really finished yet: the end of
a syllable/note is also counted as a moment to be processed. This only
happens when the sequential iterator (of \lyrics { }) progresses one
step further.

We could change the former, counting only note starts, but that is a
major change in the functionality, which I fear will change a lot of
existing behavior. It's not justified by this "bug".

> And if it should be added, why isn't it added if you remove the 
> second staff?

Because of the way \lyricsto works. The iterator for \lyricsto never
determines when interpreting should stop. This is always done by the
Contexts accompanying it:

* New_lyric_combine_music_iterator::ok () always returns true when
  there are still lyrics (as in this case)

* New_lyric_combine_music_iterator::pending_moment() is not
  considered, for determining the next step to do. Without the 2nd
  staff, the next step to be processed is +inf, and hence interpreting
  stops.

I agree that this is rather hairy, but then again, putting lyrics to
melodies is a strange concept within the music-expression formalism
anyway.




-- 

 Han-Wen Nienhuys   |   address@hidden   |   http://www.xs4all.nl/~hanwen 





reply via email to

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