]> git.donarmstrong.com Git - lilypond.git/blobdiff - mf/parmesan-custodes.mf
Merge branch 'jneeman' of git+ssh://jneem@git.sv.gnu.org/srv/git/lilypond into jneeman
[lilypond.git] / mf / parmesan-custodes.mf
index eac3509eeee5a798390354de560fa7dbc3381d7f..f554eef04730053a215232d96e906974902f5ab7 100644 (file)
@@ -1,9 +1,9 @@
-% -*-Fundamental-*-
+% -%-Fundamental-%- -*-Metafont-*-
 % parmesan-custodes.mf -- implement ancient custodes
 % 
 % source file of LilyPond's pretty-but-neat music font
 % 
-% (c)  2000--2003 Juergen Reuter <reuter@ipd.uka.de>
+% (c) 2000--2006 Juergen Reuter <reuter@ipd.uka.de>
 % 
 
 save black_notehead_width;
@@ -11,8 +11,28 @@ numeric black_notehead_width;
 
 fet_begingroup ("custodes")
 
-noteheight#:=staff_space#+ (1 + overdone_heads) *stafflinethickness#;
-define_pixels(noteheight);
+%
+% character aligment:
+%
+%   The custos is assumed to be vertically centered around (0, 0).
+%   The left-most edge of the custos should touch the vertical line
+%   that goes though the point (0, 0).
+%
+% set_char_box() conventions:
+%
+% * breapth: Ignored (as far as I know).  Should be set to 0.
+%
+% * width: Should cover the horizontal range of the custos that is to
+%   be printed in the staff.  If the custos has an appendage that is
+%   supposed to reach beyond the right end of the staff, the width
+%   should be set such that the appendage is outside of the char box.
+%
+% * depth: Should match the bottom edge of the custos.  Affects
+%   vertical collision handling.
+%
+% * height: Should match the top edge of the custos.  Affects vertical
+%   collision handling.
+%
 
 save between_staff_lines, on_staff_line, anywhere;
 between_staff_lines = 0;
@@ -32,10 +52,10 @@ dir_down = -1;
 %
 
 % parameterized hufnagel custos
-def custos_hufnagel(expr verbose_name, internal_name, ly_name,
+def custos_hufnagel(expr verbose_name, internal_name, 
                    direction, staffline_adjustment) =
 
-       fet_beginchar(verbose_name, internal_name, ly_name)
+       fet_beginchar(verbose_name, internal_name)
                save alpha, dalpha, ht, wd, stem_ht, pen_size;
                ht# = noteheight#;
                wd#/ht# = 0.6;
@@ -53,7 +73,7 @@ def custos_hufnagel(expr verbose_name, internal_name, ly_name,
 
                define_pixels(ht, wd, pen_size, stem_ht);
                pickup pencircle
-                 xscaled stafflinethickness
+                 xscaled linethickness
                  yscaled pen_size
                  rotated -dalpha#;
 
@@ -70,6 +90,7 @@ def custos_hufnagel(expr verbose_name, internal_name, ly_name,
                (y3 - y2) = (x3 - x2) * tand(90-dalpha#);
                draw z1 -- z2 -- z3;
 
+               % The stem is intentionally outside of the char box.
                if direction > 0:
                        set_char_box(0, wd#, ht#/2, stem_ht#);
                else:
@@ -79,27 +100,27 @@ def custos_hufnagel(expr verbose_name, internal_name, ly_name,
 enddef;
 
 % custos hufnagel, stem up, between staff lines
-custos_hufnagel("Custos Hufnagel", "hufnagel-u0", "hufnagelu0",
+custos_hufnagel("Custos Hufnagel", "hufnagel.u0", 
                dir_up, between_staff_lines);
 
 % custos hufnagel, stem up, on staff line
-custos_hufnagel("Custos Hufnagel", "hufnagel-u1", "hufnagelu1",
+custos_hufnagel("Custos Hufnagel", "hufnagel.u1", 
                dir_up, on_staff_line);
 
 % custos hufnagel, stem up, anywhere
-custos_hufnagel("Custos Hufnagel", "hufnagel-u2", "hufnagelu2",
+custos_hufnagel("Custos Hufnagel", "hufnagel.u2", 
                dir_up, anywhere);
 
 % custos hufnagel, stem down, between staff lines
-custos_hufnagel("Reverse Custos Hufnagel", "hufnagel-d0", "hufnageld0",
+custos_hufnagel("Reverse Custos Hufnagel", "hufnagel.d0",
                dir_down, between_staff_lines);
 
 % custos hufnagel, stem down, on staff line
-custos_hufnagel("Reverse Custos Hufnagel", "hufnagel-d1", "hufnageld1",
+custos_hufnagel("Reverse Custos Hufnagel", "hufnagel.d1",
                dir_down, on_staff_line);
 
 % custos hufnagel, stem down, anywhere
-custos_hufnagel("Reverse Custos Hufnagel", "hufnagel-d2", "hufnageld2",
+custos_hufnagel("Reverse Custos Hufnagel", "hufnagel.d2",
                dir_down, anywhere);
 
 %%%%%%%%
@@ -109,10 +130,10 @@ custos_hufnagel("Reverse Custos Hufnagel", "hufnagel-d2", "hufnageld2",
 %
 %
 
-def custos_medicaea(expr verbose_name, internal_name, ly_name,
+def custos_medicaea(expr verbose_name, internal_name, 
                    direction, staffline_adjustment) =
 
-       fet_beginchar(verbose_name, internal_name, ly_name)
+       fet_beginchar(verbose_name, internal_name)
 
                save ht, wd, stem_ht;
                ht# = noteheight#;
@@ -128,14 +149,14 @@ def custos_medicaea(expr verbose_name, internal_name, ly_name,
 
                define_pixels(ht, wd, stem_ht);
 
-               pickup pencircle xscaled 0.6stafflinethickness yscaled ht;
+               pickup pencircle xscaled 0.6linethickness yscaled ht;
                lft x1 = 0;
                y1 = 0;
                rt x2 = wd;
                y2 = y1;
                draw z1 -- z2;
 
-               pickup pencircle scaled 0.6stafflinethickness;
+               pickup pencircle scaled 0.6linethickness;
                rt x3 = wd;
                y3 = 0;
                x4 = x3;
@@ -151,27 +172,27 @@ def custos_medicaea(expr verbose_name, internal_name, ly_name,
 enddef;
 
 % custos medicaea, stem up, between staff lines
-custos_medicaea("Custos Med.", "medicaea-u0", "medicaeau0",
+custos_medicaea("Custos Med.", "medicaea.u0", 
                dir_up, between_staff_lines);
 
 % custos medicaea, stem up, on staff line
-custos_medicaea("Custos Med.", "medicaea-u1", "medicaeau1",
+custos_medicaea("Custos Med.", "medicaea.u1", 
                dir_up, on_staff_line);
 
 % custos medicaea, stem up, anywhere
-custos_medicaea("Custos Med.", "medicaea-u2", "medicaeau2",
+custos_medicaea("Custos Med.", "medicaea.u2", 
                dir_up, anywhere);
 
 % custos medicaea, stem down, between staff lines
-custos_medicaea("Reverse Custos Med.", "medicaea-d0", "medicaead0",
+custos_medicaea("Reverse Custos Med.", "medicaea.d0", 
                dir_down, between_staff_lines);
 
 % custos medicaea, stem down, on staff line
-custos_medicaea("Reverse Custos Med.", "medicaea-d1", "medicaead1",
+custos_medicaea("Reverse Custos Med.", "medicaea.d1", 
                dir_down, on_staff_line);
 
 % custos medicaea, stem down, anywhere
-custos_medicaea("Reverse Custos Med.", "medicaea-d2", "medicaead2",
+custos_medicaea("Reverse Custos Med.", "medicaea.d2", 
                dir_down, anywhere);
 
 %%%%%%%%
@@ -181,10 +202,10 @@ custos_medicaea("Reverse Custos Med.", "medicaea-d2", "medicaead2",
 %
 %
 
-def custos_vaticana(expr verbose_name, internal_name, ly_name,
+def custos_vaticana(expr verbose_name, internal_name, 
                    direction, staffline_adjustment) =
 
-       fet_beginchar(verbose_name, internal_name, ly_name)
+       fet_beginchar(verbose_name, internal_name)
                save ht, wd, u_offs, l_offs, stem_size, stem_end;
                save pen_ht, l_shift, curve_ht, bend_ht;
                ht# = noteheight#;
@@ -207,7 +228,7 @@ def custos_vaticana(expr verbose_name, internal_name, ly_name,
 
                define_pixels(u_offs, l_offs, stem_end, ht, wd, pen_ht);
 
-               pickup pencircle scaled 0.6stafflinethickness;
+               pickup pencircle scaled 0.6linethickness;
                z1 = (0, u_offs);
                z2 = (0.7wd, l_offs);
                z3 = (wd, l_offs);
@@ -232,27 +253,27 @@ def custos_vaticana(expr verbose_name, internal_name, ly_name,
 enddef;
 
 % custos vaticana, stem up, between staff lines
-custos_vaticana("Custos Ed. Vat.", "vaticana-u0", "vaticanau0",
+custos_vaticana("Custos Ed. Vat.", "vaticana.u0", 
                dir_up, between_staff_lines);
 
 % custos vaticana, stem up, on staff line
-custos_vaticana("Custos Ed. Vat.", "vaticana-u1", "vaticanau1",
+custos_vaticana("Custos Ed. Vat.", "vaticana.u1", 
                dir_up, on_staff_line);
 
 % custos vaticana, stem up, anywhere
-custos_vaticana("Custos Ed. Vat.", "vaticana-u2", "vaticanau2",
+custos_vaticana("Custos Ed. Vat.", "vaticana.u2", 
                dir_up, anywhere);
 
 % custos vaticana, stem down, between staff lines
-custos_vaticana("Reverse Custos Ed. Vat.", "vaticana-d0", "vaticanad0",
+custos_vaticana("Reverse Custos Ed. Vat.", "vaticana.d0", 
                dir_down, between_staff_lines);
 
 % custos vaticana, stem down, on_staff_line
-custos_vaticana("Reverse Custos Ed. Vat.", "vaticana-d1", "vaticanad1",
+custos_vaticana("Reverse Custos Ed. Vat.", "vaticana.d1", 
                dir_down, on_staff_line);
 
 % custos vaticana, stem down, anywhere
-custos_vaticana("Reverse Custos Ed. Vat.", "vaticana-d2", "vaticanad2",
+custos_vaticana("Reverse Custos Ed. Vat.", "vaticana.d2", 
                dir_down, anywhere);
 
 %%%%%%%%
@@ -262,10 +283,10 @@ custos_vaticana("Reverse Custos Ed. Vat.", "vaticana-d2", "vaticanad2",
 %
 %
 
-def custos_mensural(expr verbose_name, internal_name, ly_name,
+def custos_mensural(expr verbose_name, internal_name, 
                    direction, staffline_adjustment) =
 
-       fet_beginchar(verbose_name, internal_name, ly_name)
+       fet_beginchar(verbose_name, internal_name)
                save alpha, dalpha, ht, wd, stem_ht;
                ht# = noteheight#;
                wd#/ht# = 1.2;
@@ -282,7 +303,7 @@ def custos_mensural(expr verbose_name, internal_name, ly_name,
 
                define_pixels(ht, wd, stem_ht);
                pickup pencircle
-                 xscaled stafflinethickness
+                 xscaled linethickness
                  yscaled 0.4ht
                  rotated -dalpha#;
 
@@ -300,6 +321,7 @@ def custos_mensural(expr verbose_name, internal_name, ly_name,
 
                draw z1 -- z2 -- z3 -- z4 -- z5 -- z6;
 
+               % The stem is intentionally outside of the char box.
                if direction > 0:
                        set_char_box(0, wd#, +direction*0.33ht#, stem_ht#);
                else:
@@ -309,27 +331,27 @@ def custos_mensural(expr verbose_name, internal_name, ly_name,
 enddef;
 
 % custos mensural, stem up, between staff lines
-custos_mensural("Custos Mensural", "mensural-u0", "mensuralu0",
+custos_mensural("Custos Mensural", "mensural.u0", 
                dir_up, between_staff_lines);
 
 % custos mensural, stem up, on staff line
-custos_mensural("Custos Mensural", "mensural-u1", "mensuralu1",
+custos_mensural("Custos Mensural", "mensural.u1", 
                dir_up, on_staff_line);
 
 % custos mensural, stem up, anywhere
-custos_mensural("Custos Mensural", "mensural-u2", "mensuralu2",
+custos_mensural("Custos Mensural", "mensural.u2", 
                dir_up, anywhere);
 
 % custos mensural, stem down, between staff lines
-custos_mensural("Reverse Custos Mensural", "mensural-d0", "mensurald0",
+custos_mensural("Reverse Custos Mensural", "mensural.d0", 
                dir_down, between_staff_lines);
 
 % custos mensural, stem down, on staff line
-custos_mensural("Reverse Custos Mensural", "mensural-d1", "mensurald1",
+custos_mensural("Reverse Custos Mensural", "mensural.d1", 
                dir_down, on_staff_line);
 
 % custos mensural, stem down, anywhere
-custos_mensural("Reverse Custos Mensural", "mensural-d2", "mensurald2",
+custos_mensural("Reverse Custos Mensural", "mensural.d2", 
                dir_down, anywhere);
 
 fet_endgroup ("custodes")