lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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:
> 2005-02-15  Pal Benko  <address@hidden>
> 
>       * 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?
> 

Hmmh, I haven't thought about this much by now.  Maybe, we want to 
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 
should be trivial to add black mensural note heads.

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 
NoteHead grob.  I think that is what you are asking for.

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 
transcription into contemporary notation for free, and MIDI output still 
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)

That's on the TODO list.  In the past I had various discussions about this 
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.




reply via email to

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