% -*-Fundamental-*-
% parmesan-accidentals.mf -- implement ancient accidentals
% 
% source file of LilyPond's pretty-but-neat music font
% 
% (c) 2001--2005 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")
