Hi

[this morning, 11:30]

there, I put up .74 that has the embarassing transposition bug fixed,
and work by Glen.  A great big Thanks go out to him for writing this
patch, and for being one of the few persons that managed to understand
Lily good enough to churn out an engraver.

* Small bugfix: also do a deep copy on  submusices

* Glen Prideaux lyric phrasing engraver. See
input/test/lyric-phrasing.ly

[this evening 22:10]

A quick look at Glen's code just after I put up the .tar.gz revealed
some errors in the way he handled some memory issues.  After some
further investigation I decided that the interfaces for smobs (to the
uninitiated: objects that can be handled from both C++ and GUILE) was
a big mess, and set out to clean it.

After I did this, it crashed in unpredictable ways.  After lots of
dumbbugging, it turned my build wasn't completely updated. Then
something else went wrong (programming error: SMOB marking went awry),
which after chasing it for more than an hour turned out to be bug in
my head (ie. not a bug , but a spurious programming_error() ).
Hackers need not fear: I documented smobs now, and they shouldn't
cause any problems anymore. And my employer need not fear, I also did
Real Work (tm) in the intervening hours.

As a finishing note, I'll be leaving for holidays this weekend, so
don't expect any Official LilyPond Releases for the next two
weeks. But don't worry, Jan will be after the weekend to help you out
with cool features, gross hacks and usage hints.

Without further ado,  I now present to you LilyPond 1.3.74

* Small bugfix: also do a deep copy on  submusices

* Fixed:  \autochange doesn't crash anymore.

* Cleanup, documentation and enforcement of smob interfaces in
LilyPond.  We distinguish between SIMPLE_SMOBS and SMOBS (objects that
have self_scm_)

* Glen Prideaux lyric phrasing engraver. See
input/test/lyric-phrasing.ly




********
[snipped from  a mail by Glen]

I've left automaticPhrasing defaulting to #f because the management of lyrics 
without matching notes (i.e. when the names of contexts don't match) still 
doesn't result in correct alignment. I could just make that case fall back to 
the default alignment, but I feel it could be better than that. For the 
moment, it's up to the typesetter to explicitly set \property 
Score.automaticPhrasing = #t when the engraver is to be used.

[snip]

The main points to know to use the 
phrasing engraver are:

        1. set \property Score.automaticPhrasing = #t 
        2. Set appropriate Voice and LyricVoice context names (e.g. \context Voice = 
Soprano ... \context LyricVoice = "Soprano-1", etc)
        3. End of phrase words end with punctuation.
        4. Adding a trailing space reverses the sense of punctuation. "somelyric " 
will be treated as punctuated and "somelyric, " will be treated as 
unpunctuated. This allows some manual control over where the phrase breaks 
will fall as not all words ending a phrase are punctuated.
        5. The characters that constitute punctuation can be set with the LyricVoice 
property phrasingPunctuation (see engraver.ly)

Glen.
********
-- 

Han-Wen Nienhuys   |   [EMAIL PROTECTED]    | http://www.cs.uu.nl/~hanwen/

Reply via email to