+% -*-Fundamental-*-
+% parmesan-accidentals.mf -- implement ancient accidentals
+%
+% source file of LilyPond's pretty-but-neat music font
+%
+% (c) 2001--2006 Juergen Reuter <reuter@ipd.uka.de>
+%
+
+fet_begingroup ("accidentals")
+
+
+%%%%%%%%
+%
+%
+%
+% EDITIO MEDICAEA
+%
+%
+%
+fet_beginchar("Ed. Med. Flat" , "medicaea-1");
+ set_char_box(0.1 staff_space#, 0.6 staff_space#,
+ 0.6 staff_space#, 1.0 staff_space#);
+
+ pickup pencircle
+ xscaled 0.50 linethickness
+ yscaled 0.22 staff_space;
+
+ save za, zb;
+ pair za, zb;
+
+ za = (0.00 staff_space, +0.90 staff_space);
+ zb = (0.00 staff_space, -0.50 staff_space);
+ draw za -- zb;
+
+ pickup pencircle
+ xscaled 0.50 linethickness
+ yscaled 0.22 staff_space
+ rotated -63;
+
+ save zc, zd, ze;
+ pair zc, zd, ze;
+
+ zc = (0.10 staff_space, -0.50 staff_space);
+ zd = (0.40 staff_space, +0.40 staff_space);
+ ze = (0.10 staff_space, +0.40 staff_space);
+
+ draw zc{(1,2)} .. zd .. ze{(-1,-1)};
+
+ fet_endchar;
+
+%%%%%%%%
+%
+%
+%
+% EDITIO VATICANA
+%
+%
+%
+fet_beginchar("Ed. Vat. Flat" , "vaticana-1");
+ save za, zb, zc, zd, ze, zf, zg;
+ pair za, zb, zc, zd, ze, zf, zg;
+ za = (0.00 staff_space, +0.80 staff_space);
+ zb = (0.00 staff_space, -0.03 staff_space);
+ zc = (0.25 staff_space, -0.23 staff_space);
+ zd = (0.50 staff_space, -0.23 staff_space);
+ ze = (0.50 staff_space, +0.00 staff_space);
+ zf = (0.25 staff_space, +0.20 staff_space);
+ zg = (0.15 staff_space, +0.26 staff_space);
+
+ pickup pencircle
+ xscaled 0.50 linethickness
+ yscaled 0.22 staff_space;
+ draw za{down} .. {down}zb .. zc .. zd{up} .. {up}ze .. zf .. zg;
+
+ set_char_box(0.00 staff_space# + 0.25 linethickness#,
+ 0.50 staff_space# + 0.25 linethickness#,
+ 0.23 staff_space# + 0.11 staff_space#,
+ 0.80 staff_space# + 0.11 staff_space#);
+ fet_endchar;
+
+fet_beginchar("Ed. Vat. Natural" , "vaticana0");
+ save za, zb, zc, zd;
+ pair za, zb, zc, zd;
+ pickup pencircle
+ xscaled 0.80 linethickness
+ yscaled 0.22 staff_space;
+ za = (0.00 staff_space, +0.65 staff_space);
+ zb = (0.00 staff_space, -0.35 staff_space);
+ zc = (0.00 staff_space, -0.30 staff_space);
+ zd = (0.40 staff_space, -0.08 staff_space);
+ draw za -- zb;
+ draw zc -- zd;
+
+ addto currentpicture also currentpicture
+ xscaled -1
+ yscaled -1
+ shifted (0.40 staff_space, 0.0 staff_space);
+
+ set_char_box(0.00 staff_space# + 0.40 linethickness#,
+ 0.40 staff_space# + 0.40 linethickness#,
+ 0.65 staff_space# + 0.11 staff_space#,
+ 0.65 staff_space# + 0.11 staff_space#);
+
+ fet_endchar;
+
+%%%%%%%%
+%
+%
+%
+% MENSURAL NOTATION
+%
+%
+%
+fet_beginchar("Mensural Sharp" , "mensural1");
+ save stemthick;
+ define_pixels (stemthick);
+ stemthick# = linethickness#;
+
+ save za, zb;
+ pair za, zb;
+ pickup pencircle scaled 0.8 stemthick;
+ za = 0.4 * staff_space * (0.8, 1);
+ za = -zb;
+ draw za .. zb;
+
+ addto currentpicture also currentpicture xscaled -1;
+ addto currentpicture also currentpicture shifted (0.20 staff_space, 0);
+
+ set_char_box(0.8 * 0.4 staff_space# + 0.4 stemthick#,
+ (0.8 * 0.4 + 0.2) * staff_space# + 0.4 stemthick#,
+ 0.4 staff_space# + 0.4 stemthick#,
+ 0.4 staff_space# + 0.4 stemthick#);
+
+ fet_endchar;
+
+fet_beginchar("Mensural Flat" , "mensural-1");
+ save stemthick;
+ define_pixels (stemthick);
+ stemthick# = linethickness#;
+
+ save za, zb, zc, zd, ze;
+ pair za, zb, zc, zd, ze;
+ pickup pencircle
+ xscaled 1.4 stemthick
+ yscaled 0.6 stemthick
+ rotated 45;
+
+ za = (0.00 staff_space, +1.80 staff_space);
+ zb = (0.00 staff_space, -0.25 staff_space);
+ zc = (0.35 staff_space, -0.25 staff_space);
+ zd = (0.35 staff_space, +0.25 staff_space);
+ ze = (0.00 staff_space, +0.25 staff_space);
+ draw za -- zb .. zc .. zd .. ze;
+
+ set_char_box(0.00 staff_space# + 0.75 stemthick#,
+ 0.40 staff_space# + 0.75 stemthick#,
+ 0.25 staff_space# + 0.75 stemthick#,
+ 1.80 staff_space# + 0.75 stemthick#);
+
+ fet_endchar;
+
+fet_beginchar("Hufnagel Flat" , "hufnagel-1");
+ save stemthick;
+ define_pixels (stemthick);
+ stemthick# = linethickness#;
+
+ save za, zb, zc, zd, ze, zf;
+ pair za, zb, zc, zd, ze, zf;
+ pickup pencircle
+ xscaled 2.4 stemthick
+ yscaled 0.4 stemthick
+ rotated 45;
+
+ za = (0.00 staff_space, +1.80 staff_space);
+ zb = (0.00 staff_space, -0.15 staff_space);
+ zc = (0.25 staff_space, -0.30 staff_space);
+ zd = (0.50 staff_space, +0.00 staff_space);
+ ze = (0.30 staff_space, +0.30 staff_space);
+ zf = (0.00 staff_space, +0.15 staff_space);
+ draw za -- zb -- zc .. zd .. ze -- zf;
+
+ set_char_box(0.00 staff_space# + 1.0 stemthick#,
+ 0.50 staff_space# + 1.0 stemthick#,
+ 0.30 staff_space# + 0.5 stemthick#,
+ 1.80 staff_space# + 0.5 stemthick#);
+
+ fet_endchar;
+
+fet_endgroup ("accidentals")