-% -*-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;
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;
%
% 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;
define_pixels(ht, wd, pen_size, stem_ht);
pickup pencircle
- xscaled stafflinethickness
+ xscaled linethickness
yscaled pen_size
rotated -dalpha#;
(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:
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);
%%%%%%%%
%
%
-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#;
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;
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);
%%%%%%%%
%
%
-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#;
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);
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);
%%%%%%%%
%
%
-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;
define_pixels(ht, wd, stem_ht);
pickup pencircle
- xscaled stafflinethickness
+ xscaled linethickness
yscaled 0.4ht
rotated -dalpha#;
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:
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")