lilypond-devel
[Top][All Lists]

## Re: Mensural notation - some questions and a patch

 From: Juergen Reuter Subject: Re: Mensural notation - some questions and a patch Date: Thu, 17 Feb 2005 15:10:43 +0100 (CET)


On Tue, 15 Feb 2005, BenkÃµ PÃ¡l wrote:

> ChangeLog:
>
>       * lily/mensural-ligature-engraver.cc:
>       * lily/mensural-ligature.cc:
>       * lily/include/mensural-ligature.hh: new algorithm implemented
>
>       * scm/define-grob-properties.scm: join-left killed
>       (add-join may be used); join-left-amount changed to join-right-amount
>
> ----------------------------------------------------------------------------------
> Hello,
>
> I'm singing renaissance music from mensural notation;
> if I can't have a facsimile of an old print/manuscript,
> I make the notes for myself.
> So long I used pen and paper, but now I thought using lilypond.

Hi PÃ¡l,

nice to hear that someone else is interested in pushing lily's mensural
notation implementation!

> I have some problems, some of them critical,
> but perhaps thay can be overcome easily (the patch is for pr 3)
>
>
> Critical (I can't choose an alternative notation):
>
> 1. punctus divisionis
> I need a dot (just like an augmentation dot)
> without a notehead or rest, which I can place at any pitch I want.
> Is there something like an invisible (zero-duration) notehead with visible
> dot?
>

introduce a new type of breath mark; my main source[1] says, that punctus
divisionis can be thought of something similar like a bar glyph.  Of
course, we have to think about the vertical aligning of this glyph (is it
always aligned with the previous pitch or centered between the enclosing
pitches or ...?).

> 2. coloratio
> filled noteheads are needed (longae, breves, semibreves also).
> Can I request somehow either "fill the head of this note"
> or "from now on fill each notehead" and "from now on don't fill noteheads"?
>

Currently, the Metafont code is being restructured (due to the new
TeX-less backend, pango, fontforge, ...).  We probably should finish the
conversion of the parmesan font before adding new glyphs.  After that, it

Once the note heads would have been added, it would be possible to switch
between filled and unfilled heads by tweaking the style property of the

The style property tweaking approach may be acceptable as a temporary
workaround.  However, for the long term, I would prefer a solution that
respects the musical meaning of colored notes.  Ideally, I would not have
at all to touch the style property, but just say something like "\times
2/3 { ... }" within a specially prepared \context MensuralVoiceContext to
mark colored sections, and let lily do the rest.  Then you would get a
would be ok (with pure style tweaking, MIDI output would be wrong).

>
> Noncritical problems:
>
> 2a. a half-note in a coloratio section looks like a quarter-note.
> To avoid this, sometimes quarter-notes are written as half-notes with a flag.
> Is there a command (bunch of commands)
> so that such quarter-notes are used throughout?
>

Not yet, but given that we can find a reliable way to detect this case, it
should not be too hard to implement.

> 3. Current ligature handling doesn't conform to medieval-renaissance usage;
> I implemented a new algorithm within the old framework.
> This is in the attached patch (some comments later).
>

Yes, I know: the current implementation is quite buggy.  I implemented
ligature handling based on a finite state automata maybe two or three
years ago.  The crucial thing is that it is rather simple to handle the
ordinary cases, but hard to catch the unordinary cases of more
complicated rythmical patterns.  The idea of the automata was to catch
unordinary cases in a table-like approach, thus making it easier to add
new exceptions by just altering some entries in the tables (i.e.
minimizing side effects when fixing an uncaught case).

If your appraoch fixes the problems of my implementation, I will be glad
to throw away my buggy implementation.  I will have a look at your
implementation on the weekend (I am still busy co-directing a stage play
until this saturday morning).

> 4. How can I achieve a text-like output, i.e.
> - smallest possible spacing (as between letters)

item with Han-Wen and Jan.  Probably, a completely new spacing engine has
to be written to fix this.  The current approach of sticking ligature
primitives together already overstresses the capabilities of the current
spacing engine, resulting in various "programming error" messages about
number infinity problems (which, however, usually can be ignored).

> - last line (before a \break) not streching the whole page-width?
>

Try "raggedright = ##t".

>
> Unimportant, but would be pleasant:
>
> 5. Can I request all custodes facing up?
>

Try setting the grob property "neutral-position" on the custos grob to a
higher value.

> 6. Automatic placement of rests (near to previous/next noteheads)
>

This is also on the TODO list.

> 7. Bigger note heads (in 15th century manuscripts a semibrevis head
> is almost two staff-space wide)
>

We could introduce yet another set (i.e. style) of note head glyphs, but
before doing so, I would like to see some kind of standard or reference
(such as Petrucci's Odhecaton can be considered as a notational standard).
Otherwise, there is the danger of producing inflationary and maybe
incomplete sets of unrelated glyphs.

>
> The Great Dream, i.e. I have no idea where to look, may need
> lots of work, including redefining the input language:
>
> 8. Have a system where from the same sources I can print mensural parts
> and a modern score (and listen to MIDI).
>

Not only your dream; see my above comments on the "\times 2/3" input
language.

>
>
> Some notes about the patch:
> this is my first submission to free software,
> there must be a lot of issues with it.
> E.g. I've written a description of the algorithm and a test file
> (also attached), but don't know where to place them and how;

That's perfectly fine.  What has been really missing since my first
ligature implementation, is a comprehensive test file with many ligatures
for regression purposes.  Your test file looks like a good starting point
for such a regression test.  Thanks!

> Known problems:
> I get a warning for all flexae in some Stem function, but I don't
> really know how to prevent them
> spacing after a brevis or flexa as last note is different from those
> with maxima or longa as last note
>

I will have a closer look at it on the weekend.

Many thanks,
JÃ¼rgen

>
> Pal Benko
> (sorry for the .signature; it's from my mail provider.
> I don't know how I can remove it, but I doubt I can at all.)
> ____________________________________________________________________
> Miert fizetsz az internetert? Korlatlan, ingyenes internet hozzaferes a
> FreeStarttol.
> Probald ki most! http://www.freestart.hu
>

Sources:

[1] W. Apel: The Notation of Polyphonic Music.  900-1600.