lilypond-devel
[Top][All Lists]
Advanced

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

Re: Vaticana ligatures / spacing / other...


From: Han-Wen Nienhuys
Subject: Re: Vaticana ligatures / spacing / other...
Date: Thu, 17 Nov 2005 01:18:25 +0100
User-agent: Mozilla Thunderbird 1.0.7-1.1.fc4 (X11/20050929)

Michael Welsh Duggan wrote:
I am coming up to a point where I am going to be needing to use
LilyPond to typeset a great deal of Editio Vaticana-style chant
notation.  I have been reading the associated code in preperation for
delving in and making some fixes, but I wanted to see what work
Juergen might already have on this outside of CVS before I started
reinventing the wheel.  Some of these may already be working; I have
not tested all of them in the current version.  Also note: my interest
in typesetting chant notation is in the nature of a hobby -- I should
not be considered an expert.  As a result, any suggestions below may
be the result of my misunderstanding of "the way things are really
supposed to be".  I certainly do not mind being corrected.

The current ligature code has not been reviewed by Jan and me at all, and it's ancient. It's not a good guide for implementing more functionality. I think it will be quicker to restart from scratch, and simply borrow the code bits that you might need.

Ligature spacing: as has been mentioned before, coherent ligatures (at
least of the vaticana variety) should act like a single un-breakable
paper column, but should not receive extra spacing based on the number
of notes within the ligature.  I am interested in getting this
working.  I can start with the TODO notes in
coherent-ligature-engraver.cc.

You should create a new ligature engraver. It should acknowledge all the relevant notes/neume item grobs. The engraver creates an Item at the start of the ligature. The Item is an X axis-group, and all neumes/notes are added to the Item as children. The item determines the positioning of its X-children (see eg. Dot_column::calc_positioning_done). In a first version, it can put the children in a row.

For engravers, code reuse through shared super classes has always had bad results. So, derive the engraver directly from the Engraver class.

I think this is the major task that you should focus on. The rest of your items are comparatively simple. If you want, I can also implement the above as a sponsored feature, or lay-out a framework for you to put complex positioning rules in.

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




reply via email to

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