On Mon, 6 Nov 2006, Juergen Reuter wrote:
On Mon, 6 Nov 2006, Han-Wen Nienhuys wrote:
Without knowing the details, I think it is easiest to define a
LigatureNoteHead or XxxxxLigatureNoteHead, and a XxxxLigature in
define-grobs.scm. (Xxxxx = Gregorian, Vaticana, Coherent, Mensural)
By copying some definitions of the NoteHead grob, some C++ of Note_head can
be shared.
A special XXX_Ligature engraver will create those heads, and arrange them
correctly within the appropriate XxxxLigature. If the XxxxxLigature is an
Item, then it will be on a single PaperColumn. By putting the
XxxxNoteHeads on the XxxxxLigature Item, the notes will also be on the same
PaperColumn. The XxxxLigature knows all of the ligature contents, and
hence, it can determine the final desired shape.
Ok, this may work provided that there is no code elsewhere in lily that
receives grobs, looks into them and does some things if and only if this grob
is a NoteHead. Otherwise, this code would not apply to ligature heads, thus
failing special treatment of note heads that should also apply on ligature
heads. I actually tried this approach a couple of years ago, and it did not
work for this reason. Of course, lily has changed dramatically since then;
probably I should try again.
Actually, the above approach will not work without further modification:
Currently, note-heads-engraver.cc listens for note events and creates
NoteHead grobs; the ligature engraver "takes over" these note heads and
manipulates them. To follow the above approach, I would have to make the
note heads engraver stop producing note head grobs (and instead let the
ligature engraver produce LigatureHead grobs). But how can I achieve
this? Removing the note heads engraver completetly from its context is no
option, since both usual note heads as well as ligatures have to appear in
the same context.
So, how can I signal the note heads engraver that a ligature is in process
and that it should stop producing note heads?
Greetings,
Juergen
_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel