[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Lily and Plainsong
From: |
Juergen Reuter |
Subject: |
Re: Lily and Plainsong |
Date: |
Tue, 31 Jul 2001 10:58:30 +0200 (MEST) |
On Tue, 31 Jul 2001, Mark Hindley wrote:
> I can produce usable output of simple lines. I still have to sort out
> ligatures etc.
What sort of ligatures are you thinking about? Neo-mensural style
(i.e. usually with square brackets above the notes), mensural style
(i.e. (e.g.) two or more mensural noteheads horizontally attached at each
other, optionally with a vertical line drawn between them), editio
vaticana style (similar to mensural, but with different noteheads), or
...?
I am going to start work on vaticana style ligatures as soon as the
ancient font is (more or less) complete. Maybe my approach can be
generalized to cover other styles as well, but I do not know yet.
> I have got stuck with trying to group the notes of a single melisma so
> that they are adjacent. I have stared at spacing-engraver.cc for a
> long time. It is now late. Am I looking in the wrong place? Any suggestions?
>
The approach that I thought of for vaticana style ligatures is to write a
ligature context. The grace context might be a good starting point. The
rationale results from the following requirements for vaticana style
ligatures:
* A ligature consists of a number of noteheads, possibly with additional
graphical objects (mostly lines; in neo-mensural style: brackets) that
are drawn to connect individual noteheads.
* A ligature has a fixed horizontal size that only depends on the number
of noteheads and the type of the ligature. In particular, lily's
spacing engine (gourlay breaking or whatever) may add space between
ligatures, but never within a ligature. This means that a ligature must
be somehow encapsulated into a single object that can be shifted, but
that can not (horizontally) span.
* However, it is not a good idea to implement a ligature as a single
horizontally fixed-size grob with multiple noteheads, because it should
still be possible to address single noteheads in the usual way,
e.g. when putting staccato dots onto single noteheads.
* Similar to spacing, line breaks never may occur within ligatures, but
only between ligatures. Similar to a \bar request, lily may encounter
the end of a ligature as a good point for breaking a line. A user's
\bar request or \breathe mark or something else inside a ligature that
breaks the unity of the ligature is to be seen as a programmer's
fault; in such a case, a proper warning should be issued, and the
user's request should be ignored.
* Vaticana style ligatures do (as far as I know) not allow alteration
within the same ligatures. Consequently, accidentals are put before the
ligature as a whole rather than before the individual notehead(s) they
apply to. Alternating accidentals within a single ligature should be
viewed as a programmer's fault.
In terms of input syntax, a vaticana style ligature may look like
\ligature { d \pes e d \flexa f g \porrectus a bes g \cephalicus f d },
where requests like \pes, \flexa, \porrectus, \cephalicus etc. define the
particular style of ligature and/or the notehead style to use.
>From these requirements, I guess a reasonable implementation should be
based on a context implementation. Any comments are appreciated!
Greetings,
Juergen