gnu-music-discuss
[Top][All Lists]
Advanced

[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: Fri, 3 Aug 2001 10:48:17 +0200 (MEST)

Mark Hindley wrote:
> ...
> I think it is syntax, not implementation that we have approached
> differently. IMHO, I think we should try to make the neume syntax match
the
> existing as closely as possible. Viz the description of the note is
> **appended** to the pitch. So in my example it is `a\punctum' in the
same
> manner as a4 or a\breve rather than `\punctum b'. I feel that having 2
> different systems will prove clumsy to use. Although you can define a
> \punctum abbreviation command, in your scheme it will have to go
> **before** the note concerned.

Regarding this particular point, I am a little bit undecided.  On the
one hand, "\punctum c" already works by now (with just a single
additional line of macro definition code for \punctum).  "c\punctum"
requires patching (at least) note-heads.cc and (most probably) either
declarations-init.ly or (worse) parser.yy.  But I guess you have
already done this.  On the other hand, your idea that -- similar to
the duration -- the shape of the notehead should be annotated
analogous to e.g. "c\longa", which also selects the note heads's
shape, sounds sensible.  However, following this argumentation, the
note heads really should go into feta-bolletjes.mf rather than in a
file of its own.

> Following on the same vein. I felt that to do something as common in
> this type of music as a half-height bar needed more native support than
> having to set and reset the bar-size property every time. 

That's fine, but please do not call it '\bar "|/2"', but, according to
common standards, rather "\divisio minor" (which actually does not
look like a bar with 1/2 of full size, but rather like one with 2/3 of
full size).  By the way, according to your syntax, how would you call a
"\divisio maxima" (I guess '\bar "|"'), "\divisio minima" (which looks
pretty the same like a "\breathe"), and "\finalis" (I guess '\bar
"||")?  Please also note that, in musical sense, divisiones are rests
rather than bars.  So even if we internally (mis-)use the bar engraver
and breathing sign engraver to avoid duplicate code, in terms of
mudela input syntax, we really should name it differently.  And we
should not forget that, at some point in the future, we may want to
implement a divisio performer that inserts rests into midi files.

> My Plainsong context is just a renamed Staff context (like
> RhythmicStaff) with the various properties (like line-count) and
> engravers set.

Recently, there was a discussion about templates for different
notation styles.  Maybe this could be applied for vaticana style
typesetting rather than introducing a new context just for
initializing some properties and engravers.  However, I still think
that we need some ligature context to get the spacing and line
breaking right, which requires rules other than the standard ones that
lily currently uses for sequential music.

I just discovered that 1.5.3 introduces something new according spacing:

> * Experimental regular-spacing support: try to space regular runs of
> notes equidistantly.

Maybe this solves the spacing problems? (Han-Wen?)

> > 
> > My recent patches concentrate on the 'original' vaticana edition from
> > 1905.  MusixTeX introduces noteheads and ligatures that, as far as I
know,
> > are not part of the vaticana edition (unless I am told otherwise),
> > e.g. oriscus.  I did not include feta symbols for these for the simple
> > reason that I do not have any trustworthy references.
> > 
>
> I have never tried MusicTeX. I have a 1934 Liber Usualis here. Oriscus
> *is* described in the Vatican preface. It is just and extra punctum on
> a Clivis or Torculus.

MusixTeX (version T.86) introduces a special oriscus note head that
looks similar to a punctum, but still different (rather like a flag
that moves in the wind).  If you regard an oriscus just as an
additional punctum, then you agree with what my references tell me.
Maybe oriscus was a bad example.  But MusixTeX also has special
metafont symbols for so-called Apostropha, Punctum auctum, diamond
shaped Punctum auctum, Punctum deminutum, and Apostropha aucta.  I can
not find any other references than MusixTeX for these note head
shapes.  BTW., note that beyond Daniel Taupin's version MusixTeX there
is also Andreas Egler's version of MusixTeX that comes with a slightly
different editio vaticana implementation.

My main references are:

* MGG (Die Musik in Geschichte und Gegenwart);

in particular:

* MGG vol. 9, c. 1614, "Notation", fig. 10: table of neumes of the
  Graduale of the Editio Vaticana;

* MGG vol. 2, c. 1275, "Choral", fig. 2: excerpt (first page of
  "proprium de tempore") from Graduale of Editio Vaticana (1906);

* MGG vol. 5, c. 627, "Graduale", fig. 3: excerpt (first page of "in
  festo corpori christi") from Graduale of Editio Vaticana (1908);

further:

* "Alleluja", fig. 4, excerpt of Editio Vaticana, in: Alfons Kriessmann:
  Kleine Kirchenmusik Geschichte, 1947.

* Various short vaticana-style chants in the accompanying booklet to
  Foederatio Internationalis: 20th International Congress "Pueri
  Cantores", Rome, Dec. 1980 / Jan. 1981.

* Credo Mod. III.  In: Ente Rassegne Musicali, N.S. di Loreto.

* Various figures, tables and short excerpts in: U. Michels: dtv-Atlas
  zur Musik.  DTV / Baerenreiter, 1977.

* P. Urbanus Bomm: Lateinisch-Deutsches Volksmessbuch.  Maria Laach,
  1936.

> > 
> > > The note types are implemented as (nominal) durations with
> > > name<->duration lookups in an
> > > alist and a new Note_head::brew_neume_molecule callback.
> > 
> > I added the noteheads with a (dummy) duration of "0" (whole
notehead) in
> > the font.  Why do you need a special Note_head::brew_neume_molecule
> > function?  
>
> Because I have put the neumes in their own section in the font and
> look them up by name with no duration. 

Mmmh.  That does not sound really neat for me.

> The 'nominal' durations are used for user input and internal
> coding. So \punctum is defined as a duration and can be appended to a
> pitch. brew_neume_molecule takes the duration and does the reverse
> lookup of the duration to get the name used in the font. This way, as
> the same alist is used, even if you change the alist you still get the
> right symbols printed.

But generally, the different vaticana-style note heads do not
represent different durations, but rather the melody's context
(e.g. virga means "go up" or "stay up"); the liquescent ones refer to
interpretation (e.g. some people regard quilismae as a vibrato signs,
but there is still discussion about the original meaning of liquescent
neumes).  The interpretation also might have influence on the
duration.  For example, some people think that the note immediately
*before* each quilisma should be lengthened.  But in general, duration
is a secondary phenomena and not primarily bound to the form of the
note head.  In so far, I do not think that it is good to assign
different durations to different vaticana note heads, even if the
durations are not real, but pseudo values.

> > Sorry, seems I was quite unclear on this point.  I do not like the
> > approach of MusixTeX that tries to introduce a font symbol for each
> > possible ligature, since you always will find yet another ligature
that
> > is not supported.  My approach is to reduce all complex ligatures
> > (theoretically, their number is infinite) to a small set of only six
> > (!) ligatures: pes, flexa, porrectus, cephalicus, epiphonus and an
> > implicit invisible type.  All other ligatures can then (hopefully) be
> > composed from these.
> > 
>
> That certainly seems better but you will still have 5 single neumes plus
6
> ligatures. A lot to remember and get right by name! Just think of
> somebody new to this with a piece of plainsong they want to
> typeset. The will have to take the original, find a table of neume
> names and then work out how to describe each neume or group. When lily
> sets modern music we don't require that the user can describe the chord
> by name, we just say put the dots here.

But your approach seems to be incomplete.  How do you specify a
porrectus ligature?  

> Can I make my (final!) plea that the syntax operates in terms of
> single notes with no predefined ligatures. For example you could group
> each syllable (neumes and ligatures that are placed adjacent but not
> physically linked) with () and ligatures with []. (Or choose any other
> delimiters you like.)

> So you would write [g\punctum b] for a podatus. [g\punctum b\plica]
> for an Epiphonus and ([foo][bar]) for compound etc. To me this is much
> more intuitive.

Since the symbols "(", ")", "[", "]" are already used for beams and
slurs, I think it is not a good idea to give them a totally different
meaning in the context of ligatures.  This would require carefully
restructuring lily's parser.  Even though in vaticana style ligatures,
there are no beams or slurs, a modern composer and/or editor might
want to use slurs nevertheless in combination with vaticana-style
ligatures.  But you say you are also fine with any other delimiter;
ok.  For simplicity, in the below examples I stick to your () and [].
But you need an additional delimiter for liagtures like flexa and
torculus.  For simplicity, let's take {}, but in practice, that would
also have to be replaced by some other delimiter.  And you need
delimiters for a porrectus.  Let's take <>.

Based on the ligature table in MGG, lets have a look at your and mine.
For simplicity, I have dropped any enclosing () of your syntax,
respectively any enclosing \ligature {} of my syntax.

Name                    Mark's syntax               Juergen's syntax
----                    -------------               ----------------

Punctum                 c\punctum                   c

Virga                   c\virga                     \virga c

Bivirga                 c\virga c                   \virga c \virga c

Punctum inclinatum      c\subpunctum                \subpunctum c

Podatus vel Pes         [g\punctum b]               g \pes b

Clivis vel Flexa        {b\virga g}                 \virga b \flexa g

Epiphonus               [g\punctum b\plica]         g \epiphonus b

Cephalicus              [b\punctum g\plica]         b \cephalicus g
                        (or: [g\plica b\punctum]?)

Scandicus               [g\punctum {b] c}           g \pes b \flexa c
                        {g\punctum [a} c]           g \flexa a \pes c

Salicus                 g\punctum [b c]             g b \pes c

Climacus                c\virga b\subpunctum g      \virga c
                                                    \subpunctum b
                                                    \subpunctum g

Torculus                {c\punctum e c}             c \flexa e \flexa c

Porrectus               <e\virga [c> e]             \virga e
                                                    \porrectus c \pes e

Torculus resupinus      {c\punctum <d} [c> d]       c \flexa d
                                                    \porrectus c \pes d

Porrectus flexus        <e\virga {c> e c}           \virga e
                                                    \porrectus c
                                                    \flexa e \flexa c

Pes subpunctis          [c\punctum e]               c \pes e
                        \subpunctum d c             \subpunctum d
                                                    \subpunctum c

...

                        {e\punctum <f} {d> e c}     e \flexa f
                                                    \porrectus d
                                                    \flexa e \flexa c

etc.

Notes:

All ligatures:
--------------
Keep in mind that you have to replace all [], {}, <> with delimiters
that are not already used by lily.  This will blow up the syntax
heavily.  Your Epiphonus may then look like "\pes_start g\punctum
b\plica \pes_end", while mine still looks like "g \epiphonus b".

On the other hand, for flexa/torculus, I like your {}-approach, since
there are really syntactical analogies between this ligature type and
slurs.  In the case of your () and my "\ligature {}", I think our
approaches make syntactically no big difference.  In the case of your
[] and <>, I think this is not that adequate, since both, porrectus and
pes/podatus, maximally consist of two notes, i.e. there is nothing like
"[c d e]" or "<e d c>".  In so far, I really would prefer my
"\porrectus" and "\pes" notation, which syntactically copies the idea of
lily's "~" for ties.  So, to summarize, I like your idea of "{c d c}" for
flexa/torculus, but only if we find a pregnant replacement for the "{" and
"}" literals.  In the case of porrectus and pes, I prefer my approach.

Epiphonus, Cephalicus:
----------------------
Your syntax defines the main note head as punctum.  However, epiphonus
and cephalicus use different main note heads (and even different
plicas, which I did not yet add to the font).  Therefore, your
algorithm has to detect if the user wants to get a cephalicus or an
epiphonus.  One possibility is to check the pitches: In an epiphonus,
the main note is the lower one; in a cephalicus, it is the upper one.
But I think this is confusing for the user: you have to look very
careful to decide if you get a cephalicus or an epiphonus.

Note head selection:
--------------------
My approach is to use punctum noteheads unless a ligature tells it
otherwise (like in "\cephalicus" or "\epiphonus") or the user explicitly
requests something different (like in "\subpunctum").  This saves any
"\punctum" (which will occur quite often), but has the disadvantage of
repeating "\subpunctum" e.g. in climacus.  Your approach saves the
additional "\subpunctum" (and same with "\virga"), but the type of the
ligature then has to be computed from the type and order of note heads
request and their pitch (e.g. epiphonus for "c\punctum d\plica").  I am
not sure if this is easy to understand for a user.  Your idea is to use
the last note head as default (like "c4 d e" in ordinary lily being
equivalent to "c4 d4 e4").  But be careful: Though the user only sees very
few different note heads, lily internally has to handle a larger number of
note heads; and often it does not make sense to reuse the
last note head by default.  Therefore, you have to carefully specify what
the last note head's shape was and how it is applied to the current
note.  For example, in "[e\punctum d\plica] c" the "c" probably should be
a punctum rather than one of the different plica types (or would your
implementation do in this case?).  This was one of the reasons why I
chose \punctum to be the default note head.

What do all the others on this list think about these two flavours of
syntax for vaticana style ligatures?

> I don't see that this sets any specific bounds on the implementation.
>
> Am I in a minority of one on this?

With the above corrections and additions, I also do not see any
specific bounds.

> > > 
> > > What I thought I needed was a Ligature_engraver that will take all 
> > > the
> > > notes (of the 5 basic types) in a [] ligature/beam group and
> > > place them next to each other
> > > and draw relevant lines.
> > > 
> > 
> > Beams are spanning objects, ligatures are not.
> > 
>
> I was talking in terms of user syntax, not implementation. See above.

Ok, but I guess the implementation (rather than the syntax) is
the critical point here.

> > 
> > My quilisma does not yet look very authentic.  Maybe you have a better
> > one?
> > 
>
> I have not kept up with the later .1.5 series. I will have a look and
> compare.

Thanks!

Greetings,
            Juergen

P.S.: I will be away during the weekend, so I may be slow in replying
      to mail that arrives during the weekend.




reply via email to

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