On Tue, 21 Mar 2006, Elie Roux wrote:
Hello,
I'm working on gregorian chant reprensentation for a project student in
a graduate ingeneering school in France, and I have had a lot of
discussion with a monk on it. My aim is to improve gregorian chant
representation in free softwares for monk to use it.
Hi,
that sounds good. You are very welcome to help improving Lily's Gregorian
chant implementation!
I read the latest version of the documentation and I saw a lot of
changes since the previous one, this makes me hope that people are
working on gregorian chant and it is I think a very good thing, because
there is still a lot to do.
Lily's implementation of Gregorian chant unfortunately has been somewhat
stagnating for the last three years. In particular, I have currently
effectively no time to contribute (I hope this will change in a year or
two).
The first thing I would like to say is that taking the table of neumes
of Solesmes is good... for Solesmes books, but there are a lot of neumes
used in a lot of books that do not appear in this table. I do not think
it is a good idea to list them : I have a swiss book where 188 different
neumes are listed (without figurae). So it seems very hard to count all
neumes.
Exactly. The graphical Solesmes table in the documentation mainly serves
as an example for a limited number, but still representative set of
Gregorian ligatures. The textual table below the graphical table explains
how to construct these examples by mapping the Gregorian ligatures to
Lily's low-level Gregorian syntax.
A higher-level syntax (very similar to that one in OpusTeX, but with a
variable number of arguments) was planned, but never implemented (except
for the (undocumented) \ligature command), mostly due to my lack of time
to dive into the details on writing Scheme-based Lilypond macros. For a
Lily/Scheme expert, it should be rather trivial to implement, just
following the mapping of the textual table (but extending it to support
variable number of arguments).
But in my work with the monk we discovered that the most simple was to
decompose neumes in simpler elements.
This is exactly, what Lily's Gregorian chant implementation is based on.
We are able to list all the simple
elements, and so we can make all possible neumes.
Lily does this already (unless there are bugs in the implementation). For
the Solesmes neumes, the textual table in Sect. 7.7.10.2 shows how this is
done.
It would be much
simpler I think, than listing all possible neumes.
As just said, the table just lists examples, rather than all possible
neumes. Maybe, this should be stated more clearly in the documentation.
It would also permit
to put quilismas everywhere, not only in pes (they can be at any place
in most of neumes).
This can already be done with the current implementation.
If you want more details about these simple
elements tell me, I will translate a document I made about a XML schema
for gregorian chant (in french on http://omega.enstb.org/eroux/doc_fr.pdf).
I just had a look at the neumes that appear in your document. Most of
these neumes appear in the Solesmes table in Sect. 7.7.10.2 of Lily's
manual. For those that do not appear there, here are some comments:
"punctum-cavum" (page 5): this is done with Lily as follows:
\[ \cavum g \]
"linea-punctum" (page 5): this is done with Lily as follows:
\[ \linea g \]
"linea-punctum-cavum" (page 5): this is done with Lily as follows:
\[ \linea \cavum g \]
(Ok, looks like \linea and \cavum are not mentioned in the current
documentation.)
"left-virga" (page 5): there is no real left virga in Gregorian chant; it
is a pure typographical result from connecting adjacent notes e.g. in a
pes or flexa, which accidentally looks like a reverse virga. It has no
musical meaning and therefore should not appear in the input syntax. In
Lily, such connections are drawn automatically where appropriate, such
there is no need for special input syntax.
"pes-quadratum" (page 8): this is done with Lily as follows:
\[ f \pes \virga b \]
"torculus-resupinus" (page 8): this is done with Lily as follows:
\[ f \pes a \flexa f \pes g \]
"porrectus-flexus" (page 8): this is done with Lily as follows:
\[ b \flexa a \pes b \flexa g \]
"torculus-resupinus-flexus" (page 8): this is done with Lily as follow:
\[ g \pes b \flexa g \pes a \flexa f \]
"right-pes" (page 8): ok, this is currently not supported in Lily.
Personally, I have not yet seen such a ligature. Can you please cite a
source where this ligature appears? Thanks! Implementing it would be
rather simple; the alignment looks identical to that of a virga, so the
virga alignment code could be just reused for punctum heads that are
marked with a special head prefix (e.g. "\right"). However, I wonder if
this construct is really needed/useful/meaningful.
"right-porrectus" (page 8): same as "right-pes"
"torculus-et-pes" (page 8): this is done with Lily