From: Jürgen Reuter Date: Sat, 24 May 2003 20:45:21 +0000 (+0000) Subject: * Documentation/user/refman.itely: bugfix: "Chord namess" -> X-Git-Tag: release/1.7.20~11 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=d6e3999c729586616d61b97556f3844413697b51;p=lilypond.git * Documentation/user/refman.itely: bugfix: "Chord namess" -> "Chord names"; added table with input syntax for solesmes neumes table; added some words about rationale on input syntax design * lily/gregorian-ligature-engraver.cc, lily/vaticana-ligature-engraver.cc, lily/vaticana-ligature.cc, lily/include/gregorian-ligature.hh: bugfix: horizontal head alignment of Pes Initio Debilis --- diff --git a/ChangeLog b/ChangeLog index 8e8c83add3..2c0c32ece2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,14 @@ 2003-05-24 Juergen Reuter + * Documentation/user/refman.itely: bugfix: "Chord namess" -> + "Chord names"; added table with input syntax for solesmes neumes + table; added some words about rationale on input syntax design + + * lily/gregorian-ligature-engraver.cc, + lily/vaticana-ligature-engraver.cc, lily/vaticana-ligature.cc, + lily/include/gregorian-ligature.hh: bugfix: horizontal head + alignment of Pes Initio Debilis + * Documentation/user/refman.itely, lily/vaticana-ligature-engraver.cc, lily/vaticana-ligature.cc, mf/parmesan-heads.mf: fixed most of the head selection/alignment diff --git a/Documentation/user/refman.itely b/Documentation/user/refman.itely index 6859691e9a..80b21c7886 100644 --- a/Documentation/user/refman.itely +++ b/Documentation/user/refman.itely @@ -3315,7 +3315,7 @@ such as bend are not yet supported. @node Chord names -@section Chord namess +@section Chord names @cindex Chords LilyPond has support for both entering and printing named chords. @@ -4603,11 +4603,18 @@ to the following: Gregorian square neumes notation (following the style of the Editio Vaticana) is under heavy development, but not yet really usable for -production purposes. The following table contains the extended neumes -table of the 2nd volume of the Antiphonale Romanum (@emph{Liber -Hymnarius}), published 1983 by the monks of Solesmes. +production purposes. Core ligatures can already be typeset, but +essentials issues for serious typesetting are still under development, +such as (among others) horizontal alignment of multiple ligatures, +lyrics alignment and proper accidentals handling. Still, this section +gives a sneak preview of what Gregorian chant may look like once it +will work. -@multitable @columnfractions .4 .2 .2 .2 +The following table contains the extended neumes table of the 2nd +volume of the Antiphonale Romanum (@emph{Liber Hymnarius}), published +1983 by the monks of Solesmes. + +@multitable @columnfractions .4 .2 .2 .2 @item @b{Neuma aut@*Neumarum Elementa} @tab @@ -4620,16 +4627,19 @@ Hymnarius}), published 1983 by the monks of Solesmes. @c the time. @item -@code{1. Punctum} @tab +@code{1. Punctum} +@tab @lilypond[noindent, 26pt, nofragment, linewidth=1.5cm] \include "gregorian-init.ly" \score { \notes \transpose c c' { % Puctum \[ b \] + \noBreak s^\markup {"a"} \noBreak % Punctum Inclinatum \[ \inclinatum b \] + \noBreak s^\markup {"b"} } \paper { interscoreline = 1 @@ -4655,19 +4665,23 @@ Hymnarius}), published 1983 by the monks of Solesmes. } } } -@end lilypond @tab -@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm] +@end lilypond +@tab +@lilypond[noindent, 26pt, nofragment, linewidth=2.5cm] \include "gregorian-init.ly" \score { \notes \transpose c c' { % Punctum Auctum Ascendens \[ \auctum \ascendens b \] + \noBreak s^\markup {"c"} \noBreak % Punctum Auctum Descendens \[ \auctum \descendens b \] + \noBreak s^\markup {"d"} \noBreak - % Punctum Inclinatum Auctum - \[ \inclinatum \auctum b \] + % Punctum Auctum Ascendens + \[ \auctum \ascendens b \] + \noBreak s^\markup {"e"} } \paper { interscoreline = 1 @@ -4693,13 +4707,15 @@ Hymnarius}), published 1983 by the monks of Solesmes. } } } -@end lilypond @tab -@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm] +@end lilypond +@tab +@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm] \include "gregorian-init.ly" \score { \notes \transpose c c' { % Punctum Inclinatum Parvum \[ \inclinatum \deminutum b \] + \noBreak s^\markup {"f"} } \paper { interscoreline = 1 @@ -4728,13 +4744,15 @@ Hymnarius}), published 1983 by the monks of Solesmes. @end lilypond @item -@code{2. Virga} @tab -@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm] +@code{2. Virga} +@tab +@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm] \include "gregorian-init.ly" \score { \notes \transpose c c' { % Virga \[ \virga b \] + \noBreak s^\markup {"g"} } \paper { interscoreline = 1 @@ -4760,16 +4778,20 @@ Hymnarius}), published 1983 by the monks of Solesmes. } } } -@end lilypond @tab @tab +@end lilypond +@tab +@tab @item -@code{3. Apostropha vel Stropha} @tab -@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm] +@code{3. Apostropha vel Stropha} +@tab +@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm] \include "gregorian-init.ly" \score { \notes \transpose c c' { % Stropha \[ \stropha b \] + \noBreak s^\markup {"h"} } \paper { interscoreline = 1 @@ -4795,13 +4817,15 @@ Hymnarius}), published 1983 by the monks of Solesmes. } } } -@end lilypond @tab -@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm] +@end lilypond +@tab +@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm] \include "gregorian-init.ly" \score { \notes \transpose c c' { % Stropha Aucta \[ \stropha \auctum b \] + \noBreak s^\markup {"i"} } \paper { interscoreline = 1 @@ -4827,16 +4851,19 @@ Hymnarius}), published 1983 by the monks of Solesmes. } } } -@end lilypond @tab +@end lilypond +@tab @item -@code{4. Oriscus} @tab -@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm] +@code{4. Oriscus} +@tab +@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm] \include "gregorian-init.ly" \score { \notes \transpose c c' { % Oriscus \[ \oriscus b \] + \noBreak s^\markup {"j"} } \paper { interscoreline = 1 @@ -4862,16 +4889,20 @@ Hymnarius}), published 1983 by the monks of Solesmes. } } } -@end lilypond @tab @tab +@end lilypond +@tab +@tab @item -@code{5. Clivis vel Flexa} @tab -@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm] +@code{5. Clivis vel Flexa} +@tab +@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm] \include "gregorian-init.ly" \score { \notes \transpose c c' { % Clivis vel Flexa \[ b \flexa g \] + s^\markup {"k"} } \paper { interscoreline = 1 @@ -4897,16 +4928,19 @@ Hymnarius}), published 1983 by the monks of Solesmes. } } } -@end lilypond @tab -@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm] +@end lilypond +@tab +@lilypond[noindent, 26pt, nofragment, linewidth=2.0cm] \include "gregorian-init.ly" \score { \notes \transpose c c' { % Clivis Aucta Descendens \[ b \flexa \auctum \descendens g \] + \noBreak s^\markup {"l"} \noBreak % Clivis Aucta Ascendens \[ b \flexa \auctum \ascendens g \] + \noBreak s^\markup {"m"} } \paper { interscoreline = 1 @@ -4932,13 +4966,15 @@ Hymnarius}), published 1983 by the monks of Solesmes. } } } -@end lilypond @tab -@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm] +@end lilypond +@tab +@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm] \include "gregorian-init.ly" \score { \notes \transpose c c' { % Cephalicus \[ b \flexa \deminutum g \] + s^\markup {"n"} } \paper { interscoreline = 1 @@ -4967,13 +5003,15 @@ Hymnarius}), published 1983 by the monks of Solesmes. @end lilypond @item -@code{6. Podatus vel Pes} @tab -@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm] +@code{6. Podatus vel Pes} +@tab +@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm] \include "gregorian-init.ly" \score { \notes \transpose c c' { % Podatus vel Pes \[ g \pes b \] + s^\markup {"o"} } \paper { interscoreline = 1 @@ -4999,16 +5037,19 @@ Hymnarius}), published 1983 by the monks of Solesmes. } } } -@end lilypond @tab -@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm] +@end lilypond +@tab +@lilypond[noindent, 26pt, nofragment, linewidth=2.0cm] \include "gregorian-init.ly" \score { \notes \transpose c c' { % Pes Auctus Descendens \[ g \pes \auctum \descendens b \] + \noBreak s^\markup {"p"} \noBreak % Pes Auctus Ascendens \[ g \pes \auctum \ascendens b \] + \noBreak s^\markup {"q"} } \paper { interscoreline = 1 @@ -5034,13 +5075,15 @@ Hymnarius}), published 1983 by the monks of Solesmes. } } } -@end lilypond @tab -@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm] +@end lilypond +@tab +@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm] \include "gregorian-init.ly" \score { \notes \transpose c c' { % Epiphonus \[ g \pes \deminutum b \] + s^\markup {"r"} } \paper { interscoreline = 1 @@ -5069,13 +5112,15 @@ Hymnarius}), published 1983 by the monks of Solesmes. @end lilypond @item -@code{7. Pes Quassus} @tab -@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm] +@code{7. Pes Quassus} +@tab +@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm] \include "gregorian-init.ly" \score { \notes \transpose c c' { % Pes Quassus \[ \oriscus g \pes \virga b \] + s^\markup {"s"} } \paper { interscoreline = 1 @@ -5101,13 +5146,15 @@ Hymnarius}), published 1983 by the monks of Solesmes. } } } -@end lilypond @tab -@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm] +@end lilypond +@tab +@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm] \include "gregorian-init.ly" \score { \notes \transpose c c' { % Pes Quassus Auctus Descendens \[ \oriscus g \pes \auctum \descendens b \] + s^\markup {"t"} } \paper { interscoreline = 1 @@ -5133,16 +5180,19 @@ Hymnarius}), published 1983 by the monks of Solesmes. } } } -@end lilypond @tab +@end lilypond +@tab @item -@code{8. Quilisma Pes} @tab -@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm] +@code{8. Quilisma Pes} +@tab +@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm] \include "gregorian-init.ly" \score { \notes \transpose c c' { % Quilisma Pes \[ \quilisma g \pes b \] + s^\markup {"u"} } \paper { interscoreline = 1 @@ -5168,13 +5218,15 @@ Hymnarius}), published 1983 by the monks of Solesmes. } } } -@end lilypond @tab -@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm] +@end lilypond +@tab +@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm] \include "gregorian-init.ly" \score { \notes \transpose c c' { % Quilisma Pes Auctus Descendens \[ \quilisma g \pes \auctum \descendens b \] + s^\markup {"v"} } \paper { interscoreline = 1 @@ -5200,16 +5252,19 @@ Hymnarius}), published 1983 by the monks of Solesmes. } } } -@end lilypond @tab +@end lilypond +@tab @item -@code{9. Podatus Initio Debilis} @tab -@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm] +@code{9. Podatus Initio Debilis} +@tab +@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm] \include "gregorian-init.ly" \score { \notes \transpose c c' { % Pes Initio Debilis \[ \deminutum g \pes b \] + s^\markup {"w"} } \paper { interscoreline = 1 @@ -5235,13 +5290,15 @@ Hymnarius}), published 1983 by the monks of Solesmes. } } } -@end lilypond @tab -@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm] +@end lilypond +@tab +@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm] \include "gregorian-init.ly" \score { \notes \transpose c c' { % Pes Auctus Descendens Initio Debilis \[ \deminutum g \pes \auctum \descendens b \] + s^\markup {"x"} } \paper { interscoreline = 1 @@ -5267,16 +5324,19 @@ Hymnarius}), published 1983 by the monks of Solesmes. } } } -@end lilypond @tab +@end lilypond +@tab @item -@code{10. Torculus} @tab -@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm] +@code{10. Torculus} +@tab +@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm] \include "gregorian-init.ly" \score { \notes \transpose c c' { % Torculus \[ a \pes b \flexa g \] + s^\markup {"y"} } \paper { interscoreline = 1 @@ -5302,13 +5362,15 @@ Hymnarius}), published 1983 by the monks of Solesmes. } } } -@end lilypond @tab -@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm] +@end lilypond +@tab +@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm] \include "gregorian-init.ly" \score { \notes \transpose c c' { % Torculus Auctus Descendens \[ a \pes b \flexa \auctum \descendens g \] + s^\markup {"z"} } \paper { interscoreline = 1 @@ -5334,13 +5396,15 @@ Hymnarius}), published 1983 by the monks of Solesmes. } } } -@end lilypond @tab -@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm] +@end lilypond +@tab +@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm] \include "gregorian-init.ly" \score { \notes \transpose c c' { % Torculus Deminutus \[ a \pes b \flexa \deminutum g \] + s^\markup {"A"} } \paper { interscoreline = 1 @@ -5369,13 +5433,15 @@ Hymnarius}), published 1983 by the monks of Solesmes. @end lilypond @item -@code{11. Torculus Initio Debilis} @tab -@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm] +@code{11. Torculus Initio Debilis} +@tab +@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm] \include "gregorian-init.ly" \score { \notes \transpose c c' { % Torculus Initio Debilis \[ \deminutum a \pes b \flexa g \] + s^\markup {"B"} } \paper { interscoreline = 1 @@ -5401,13 +5467,15 @@ Hymnarius}), published 1983 by the monks of Solesmes. } } } -@end lilypond @tab -@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm] +@end lilypond +@tab +@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm] \include "gregorian-init.ly" \score { \notes \transpose c c' { % Torculus Auctus Descendens Initio Debilis \[ \deminutum a \pes b \flexa \auctum \descendens g \] + s^\markup {"C"} } \paper { interscoreline = 1 @@ -5433,13 +5501,15 @@ Hymnarius}), published 1983 by the monks of Solesmes. } } } -@end lilypond @tab -@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm] +@end lilypond +@tab +@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm] \include "gregorian-init.ly" \score { \notes \transpose c c' { % Torculus Deminutus Initio Debilis \[ \deminutum a \pes b \flexa \deminutum g \] + s^\markup {"D"} } \paper { interscoreline = 1 @@ -5468,13 +5538,15 @@ Hymnarius}), published 1983 by the monks of Solesmes. @end lilypond @item -@code{12. Porrectus} @tab -@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm] +@code{12. Porrectus} +@tab +@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm] \include "gregorian-init.ly" \score { \notes \transpose c c' { % Porrectus \[ a \flexa g \pes b \] + s^\markup {"E"} } \paper { interscoreline = 1 @@ -5500,13 +5572,15 @@ Hymnarius}), published 1983 by the monks of Solesmes. } } } -@end lilypond @tab -@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm] +@end lilypond +@tab +@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm] \include "gregorian-init.ly" \score { \notes \transpose c c' { % Porrectus Auctus Descendens \[ a \flexa g \pes \auctum \descendens b \] + s^\markup {"F"} } \paper { interscoreline = 1 @@ -5532,13 +5606,15 @@ Hymnarius}), published 1983 by the monks of Solesmes. } } } -@end lilypond @tab -@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm] +@end lilypond +@tab +@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm] \include "gregorian-init.ly" \score { \notes \transpose c c' { % Porrectus Deminutus \[ a \flexa g \pes \deminutum b \] + s^\markup {"G"} } \paper { interscoreline = 1 @@ -5567,13 +5643,15 @@ Hymnarius}), published 1983 by the monks of Solesmes. @end lilypond @item -@code{13. Climacus} @tab -@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm] +@code{13. Climacus} +@tab +@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm] \include "gregorian-init.ly" \score { \notes \transpose c c' { % Climacus \[ \virga b \inclinatum a \inclinatum g \] + s^\markup {"H"} } \paper { interscoreline = 1 @@ -5599,13 +5677,15 @@ Hymnarius}), published 1983 by the monks of Solesmes. } } } -@end lilypond @tab -@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm] +@end lilypond +@tab +@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm] \include "gregorian-init.ly" \score { \notes \transpose c c' { % Climacus Auctus \[ \virga b \inclinatum a \inclinatum \auctum g \] + s^\markup {"I"} } \paper { interscoreline = 1 @@ -5631,13 +5711,15 @@ Hymnarius}), published 1983 by the monks of Solesmes. } } } -@end lilypond @tab -@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm] +@end lilypond +@tab +@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm] \include "gregorian-init.ly" \score { \notes \transpose c c' { % Climacus Deminutus \[ \virga b \inclinatum a \inclinatum \deminutum g \] + s^\markup {"J"} } \paper { interscoreline = 1 @@ -5666,13 +5748,15 @@ Hymnarius}), published 1983 by the monks of Solesmes. @end lilypond @item -@code{14. Scandicus} @tab -@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm] +@code{14. Scandicus} +@tab +@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm] \include "gregorian-init.ly" \score { \notes \transpose c c' { % Scandicus \[ g \pes a \virga b \] + s^\markup {"K"} } \paper { interscoreline = 1 @@ -5698,13 +5782,15 @@ Hymnarius}), published 1983 by the monks of Solesmes. } } } -@end lilypond @tab -@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm] +@end lilypond +@tab +@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm] \include "gregorian-init.ly" \score { \notes \transpose c c' { % Scandicus Auctus Descendens \[ g \pes a \pes \auctum \descendens b \] + s^\markup {"L"} } \paper { interscoreline = 1 @@ -5730,13 +5816,15 @@ Hymnarius}), published 1983 by the monks of Solesmes. } } } -@end lilypond @tab -@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm] +@end lilypond +@tab +@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm] \include "gregorian-init.ly" \score { \notes \transpose c c' { % Scandicus Deminutus \[ g \pes a \pes \deminutum b \] + s^\markup {"M"} } \paper { interscoreline = 1 @@ -5765,13 +5853,15 @@ Hymnarius}), published 1983 by the monks of Solesmes. @end lilypond @item -@code{15. Salicus} @tab -@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm] +@code{15. Salicus} +@tab +@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm] \include "gregorian-init.ly" \score { \notes \transpose c c' { % Salicus \[ g \oriscus a \pes \virga b \] + s^\markup {"N"} } \paper { interscoreline = 1 @@ -5797,13 +5887,15 @@ Hymnarius}), published 1983 by the monks of Solesmes. } } } -@end lilypond @tab -@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm] +@end lilypond +@tab +@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm] \include "gregorian-init.ly" \score { \notes \transpose c c' { % Salicus Auctus Descendens \[ g \oriscus a \pes \auctum \descendens b \] + s^\markup {"O"} } \paper { interscoreline = 1 @@ -5829,16 +5921,19 @@ Hymnarius}), published 1983 by the monks of Solesmes. } } } -@end lilypond @tab +@end lilypond +@tab @item -@code{16. Trigomus} @tab -@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm] +@code{16. Trigomus} +@tab +@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm] \include "gregorian-init.ly" \score { \notes \transpose c c' { % Trigonus \[ \stropha b \stropha b \stropha a \] + s^\markup {"P"} } \paper { interscoreline = 1 @@ -5864,17 +5959,267 @@ Hymnarius}), published 1983 by the monks of Solesmes. } } } -@end lilypond @tab @tab +@end lilypond +@tab +@tab @end multitable -@refbugs -Horizontal head alignment is broken in Pes Initio Debilis. +Unlike most other neumes notation systems, the input language for +neumes does not necessarily reflect directly the typographical +appearance, but is designed to solely focuse on musical meaning. For +example, @code{\[ a \pes b \flexa g \]} produces a Torculus consisting +of three Punctum heads, while @code{\[ a \flexa g \pes b \]} produces +a torculus with a curved flexa shape and only a single Punctum head. +There is no command to explicitly typeset the curved flexa shape; the +decision of when to typeset a curved flexa shape is purely taken from +the musical input. The idea of this approach is to separate the +musical aspects of the input from the notation style of the output. +This way, the same input can be reused to typeset the same music in a +different style of Gregorian chant notation such as Hufnagel (also +known as German gothic neumes) or Medicaea (kind of a very simple +forerunner of the Editio Vaticana). As soon as Hufnagel ligature +engraver and Medicaea ligature engraver will have been implemented, it +will be as simple as replacing the ligature engraver in the +VoiceContext to get the desired notation style from the same input. + +The following table shows the code fragments that produce the +ligatures in the above neumes table. The letter in the first column +in each line of the below table indicates to which ligature in the +above table it refers. The second column gives the name of the +ligature. The third column shows the code fragment that produces this +ligature, using @code{g}, @code{a} and @code{b} as example pitches. + +@multitable @columnfractions .1 .4 .5 + +@item +@b{#} @tab +@b{Name} @tab +@b{Input Language} @tab + +@item +a @tab +Puctum @tab +@samp{@code{\[ b \]}} + +@item +b @tab +Punctum Inclinatum @tab +@samp{@code{\[ \inclinatum b \]}} + +@item +c @tab +Punctum Auctum Ascendens @tab +@samp{@code{\[ \auctum \ascendens b \]}} + +@item +d @tab +Punctum Auctum Descendens @tab +@samp{@code{\[ \auctum \descendens b \]}} + +@item +e @tab +Punctum Inclinatum Auctum @tab +@samp{@code{\[ \inclinatum \auctum b \]}} + +@item +f @tab +Punctum Inclinatum Parvum @tab +@samp{@code{\[ \inclinatum \deminutum b \]}} + +@item +g @tab +Virga @tab +@samp{@code{\[ \virga b \]}} + +@item +h @tab +Stropha @tab +@samp{@code{\[ \stropha b \]}} + +@item +i @tab +Stropha Aucta @tab +@samp{@code{\[ \stropha \auctum b \]}} + +@item +j @tab +Oriscus @tab +@samp{@code{\[ \oriscus b \]}} + +@item +k @tab +Clivis vel Flexa @tab +@samp{@code{\[ b \flexa g \]}} + +@item +l @tab +Clivis Aucta Descendens @tab +@samp{@code{\[ b \flexa \auctum \descendens g \]}} + +@item +m @tab +Clivis Aucta Ascendens @tab +@samp{@code{\[ b \flexa \auctum \ascendens g \]}} + +@item +n @tab +Cephalicus @tab +@samp{@code{\[ b \flexa \deminutum g \]}} + +@item +o @tab +Podatus vel Pes @tab +@samp{@code{\[ g \pes b \]}} + +@item +p @tab +Pes Auctus Descendens @tab +@samp{@code{\[ g \pes \auctum \descendens b \]}} + +@item +q @tab +Pes Auctus Ascendens @tab +@samp{@code{\[ g \pes \auctum \ascendens b \]}} + +@item +r @tab +Epiphonus @tab +@samp{@code{\[ g \pes \deminutum b \]}} + +@item +s @tab +Pes Quassus @tab +@samp{@code{\[ \oriscus g \pes \virga b \]}} + +@item +t @tab +Pes Quassus Auctus Descendens @tab +@samp{@code{\[ \oriscus g \pes \auctum \descendens b \]}} + +@item +u @tab +Quilisma Pes @tab +@samp{@code{\[ \quilisma g \pes b \]}} + +@item +v @tab +Quilisma Pes Auctus Descendens @tab +@samp{@code{\[ \quilisma g \pes \auctum \descendens b \]}} + +@item +w @tab +Pes Initio Debilis @tab +@samp{@code{\[ \deminutum g \pes b \]}} + +@item +x @tab +Pes Auctus Descendens Initio Debilis @tab +@samp{@code{\[ \deminutum g \pes \auctum \descendens b \]}} + +@item +y @tab +Torculus @tab +@samp{@code{\[ a \pes b \flexa g \]}} + +@item +z @tab +Torculus Auctus Descendens @tab +@samp{@code{\[ a \pes b \flexa \auctum \descendens g \]}} + +@item +A @tab +Torculus Deminutus @tab +@samp{@code{\[ a \pes b \flexa \deminutum g \]}} + +@item +B @tab +Torculus Initio Debilis @tab +@samp{@code{\[ \deminutum a \pes b \flexa g \]}} + +@item +C @tab +Torculus Auctus Descendens Initio Debilis @tab +@samp{@code{\[ \deminutum a \pes b \flexa \auctum \descendens g \]}} + +@item +D @tab +Torculus Deminutus Initio Debilis @tab +@samp{@code{\[ \deminutum a \pes b \flexa \deminutum g \]}} + +@item +E @tab +Porrectus @tab +@samp{@code{\[ a \flexa g \pes b \]}} + +@item +F @tab +Porrectus Auctus Descendens @tab +@samp{@code{\[ a \flexa g \pes \auctum \descendens b \]}} + +@item +G @tab +Porrectus Deminutus @tab +@samp{@code{\[ a \flexa g \pes \deminutum b \]}} + +@item +H @tab +Climacus @tab +@samp{@code{\[ \virga b \inclinatum a \inclinatum g \]}} + +@item +I @tab +Climacus Auctus @tab +@samp{@code{\[ \virga b \inclinatum a \inclinatum \auctum g \]}} + +@item +J @tab +Climacus Deminutus @tab +@samp{@code{\[ \virga b \inclinatum a \inclinatum \deminutum g \]}} + +@item +K @tab +Scandicus @tab +@samp{@code{\[ g \pes a \virga b \]}} + +@item +L @tab +Scandicus Auctus Descendens @tab +@samp{@code{\[ g \pes a \pes \auctum \descendens b \]}} + +@item +M @tab +Scandicus Deminutus @tab +@samp{@code{\[ g \pes a \pes \deminutum b \]}} + +@item +N @tab +Salicus @tab +@samp{@code{\[ g \oriscus a \pes \virga b \]}} + +@item +O @tab +Salicus Auctus Descendens @tab +@samp{@code{\[ g \oriscus a \pes \auctum \descendens b \]}} + +@item +P @tab +Trigonus @tab +@samp{@code{\[ \stropha b \stropha b \stropha a \]}} + +@end multitable + +@refbugs Use special heads for lower/upper head of Pes only when heads are stacked. +Scandicus Deminutus: Punctum Auctum Ascendens overlaps with +Semivocalis head; this looks awful. + +Trigonus: apply equal spacing, regardless of pitch. + @node Figured bass @subsection Figured bass diff --git a/lily/gregorian-ligature-engraver.cc b/lily/gregorian-ligature-engraver.cc index 68cc9ceb7c..7b79ac258f 100644 --- a/lily/gregorian-ligature-engraver.cc +++ b/lily/gregorian-ligature-engraver.cc @@ -227,6 +227,10 @@ provide_context_info (Array primitives) { context_info |= AFTER_VIRGA; } + if (prev_prefix_set & DEMINUTUM) + { + context_info |= AFTER_DEMINUTUM; + } if (prev_primitive) prev_primitive->set_grob_property ("context-info", diff --git a/lily/include/gregorian-ligature.hh b/lily/include/gregorian-ligature.hh index 801b34dbf0..d1811e4d96 100644 --- a/lily/include/gregorian-ligature.hh +++ b/lily/include/gregorian-ligature.hh @@ -35,10 +35,15 @@ * Ligature context info: these attributes are derived from the head * prefixes by considering the current and the following head. */ -#define PES_LOWER 0x0001 // this is a head before "\~" in an ascending melody -#define PES_UPPER 0x0002 // this is a head after "\~" in an ascending melody -#define FLEXA_LEFT 0x0004 // this is a head before "\~" in a descending melody -#define FLEXA_RIGHT 0x0008 // this is a head after "\~" in a descending melody -#define AFTER_VIRGA 0x0010 // previous head was a virga +#define PES_LOWER 0x0001 // this is a head before "\~" in an + // ascending melody +#define PES_UPPER 0x0002 // this is a head after "\~" in an + // ascending melody +#define FLEXA_LEFT 0x0004 // this is a head before "\~" in a + // descending melody +#define FLEXA_RIGHT 0x0008 // this is a head after "\~" in a + // descending melody +#define AFTER_VIRGA 0x0010 // previous head was a virga +#define AFTER_DEMINUTUM 0x0020 // previous head was a deminutum #endif /* GREGORIAN_LIGATURE_HH */ diff --git a/lily/vaticana-ligature-engraver.cc b/lily/vaticana-ligature-engraver.cc index 3a86732ca9..2486acaf8b 100644 --- a/lily/vaticana-ligature-engraver.cc +++ b/lily/vaticana-ligature-engraver.cc @@ -84,10 +84,8 @@ Vaticana_ligature_engraver::finish_primitive (Item *first_primitive, is_stacked = false; // ... or the previous note is a semivocalis or inclinatum - /* TODO: - if (prev_prefix_set & DEMINUTUM) - is_stacked = false; - */ + if (context_info & AFTER_DEMINUTUM) + is_stacked = false; // auctum head is never stacked upon preceding note if (prefix_set & AUCTUM) diff --git a/lily/vaticana-ligature.cc b/lily/vaticana-ligature.cc index 6371a78d60..2f0cd7bc09 100644 --- a/lily/vaticana-ligature.cc +++ b/lily/vaticana-ligature.cc @@ -255,8 +255,7 @@ vaticana_brew_primitive (Grob *me, bool ledger_take_space) if (!join_left) programming_error (_f ("Vaticana_ligature: (join_left == 0)")); Real blotdiameter = (me->get_paper ()->get_var ("blotdiameter")); - Interval x_extent = - Interval (0, thickness); + Interval x_extent = Interval (0, thickness); Interval y_extent = (join_left > 0) ? Interval (-join_left * 0.5 * staff_space, 0) : // ascending join Interval (0, -join_left * 0.5 * staff_space); // descending join