]> git.donarmstrong.com Git - lilypond.git/blobdiff - mf/parmesan-noteheads.mf
Separate flags into their own sub-font.
[lilypond.git] / mf / parmesan-noteheads.mf
index ef762a2146fb802278117c465dcace92a12d58f6..130c3c50d4b5ed25a2748dc3770eaf420a0b7424 100644 (file)
@@ -1,7 +1,7 @@
 % Feta (not the Font-En-Tja) music font --  ancient note heads
 % This file is part of LilyPond, the GNU music typesetter.
 %
-% Copyright (C) 2001--2009 Juergen Reuter <reuter@ipd.uka.de>
+% Copyright (C) 2001--2011 Juergen Reuter <reuter@ipd.uka.de>
 %
 % Neo-mensural heads originally by
 % Christian Mondrup and Mats Bengtsson
@@ -46,6 +46,8 @@ fet_begingroup ("noteheads");
 %
 % TODO: should depth/height include appendages/stems?
 
+save overdone_heads, noteheight;
+
 overdone_heads = 0;
 noteheight# := staff_space# + (1 + overdone_heads) * stafflinethickness#;
 define_pixels (noteheight);
@@ -60,7 +62,7 @@ define_pixels (noteheight);
 %
 %
 
-def draw_neomensural_brevis (expr brevwid) =
+def draw_neomensural_brevis (expr brevwid, open, full) =
        save beamheight, head_width;
        save holeheight, stem_width;
        save serif_size, serif_protrude;
@@ -91,8 +93,8 @@ def draw_neomensural_brevis (expr brevwid) =
        penpos4 (beamheight, 90);
        penpos5 (stem_width, 180);
 
-       save pat_in, pat_out;
-       path pat_in, pat_out;
+       save pat_out;
+       path pat_out;
 
        pat_out := z4l
                   -- z3l{left}
@@ -108,18 +110,26 @@ def draw_neomensural_brevis (expr brevwid) =
                   -- cycle;
        fill pat_out;
 
-       pat_in := z4r
-                 -- z3r{left}
-                 .. z2r{up}
-                 -- z1r;
-       pat_in := pat_in
-                 -- reverse pat_in yscaled -1;
-       pat_in := pat_in
-                 -- reverse pat_in shifted (-x4r, 0)
-                                   xscaled -1
-                                   shifted (x4l, 0)
-                 -- cycle;
-       unfill pat_in;
+       if open:
+               save pat_in;
+               path pat_in;
+
+               pat_in := z4r
+                         -- z3r{left}
+                         .. z2r{up}
+                         -- z1r;
+               pat_in := pat_in
+                         -- reverse pat_in yscaled -1;
+               if full:
+                       pat_in := pat_in
+                                 -- reverse pat_in shifted (-x4r, 0)
+                                                   xscaled -1
+                                                   shifted (x4l, 0);
+               fi;
+               pat_in := pat_in
+                         -- cycle;
+               unfill pat_in;
+        fi;
 
        penlabels (1, 2, 3, 4, 5);
 enddef;
@@ -127,7 +137,7 @@ enddef;
 
 %%% This head does not seem to be used anywhere.  Junk me?  -- jr
 def draw_neomensural_left_stemmed_head (expr wid) =
-       draw_neomensural_brevis (wid);
+       draw_neomensural_brevis (wid, true, true);
 
        x6 = x7 = stem_width / 2;
        y6 = y5;
@@ -161,7 +171,7 @@ fet_endchar;
 % the left, some say right.  Right wins democratically.
 %
 def draw_neomensural_longa (expr wid) =
-       draw_neomensural_brevis (wid);
+       draw_neomensural_brevis (wid, true, true);
 
        save theta;
 
@@ -204,7 +214,7 @@ fet_endchar;
 
 
 fet_beginchar ("Neo-mensural brevis notehead", "sM1neomensural");
-       draw_neomensural_brevis (2 staff_space#);
+       draw_neomensural_brevis (2 staff_space#, true, true);
 fet_endchar;
 
 
@@ -314,15 +324,15 @@ fet_beginchar ("Neo-mensural semiminima head", "s2neomensural");
 fet_endchar;
 
 
-def draw_mensural_brevis (expr wid) =
+def draw_mensural_brevis (expr wid, open, full) =
        % TODO.  For the moment, fall back to draw_neomensural_brevis.
-       draw_neomensural_brevis (wid);
+       draw_neomensural_brevis (wid, open, full);
 enddef;
 
 
 %%% This head does not seem to be used anywhere.  Junk me?  -- jr
-def draw_mensural_left_stemmed_head (expr wid) =
-       draw_mensural_brevis (wid);
+def draw_mensural_left_stemmed_head (expr wid, open, full) =
+       draw_mensural_brevis (wid, open, full);
 
        x6 = x7 = stem_width / 2;
        y6 = y5;
@@ -345,8 +355,8 @@ def draw_mensural_left_stemmed_head (expr wid) =
 enddef;
 
 
-def draw_mensural_longa (expr wid) =
-       draw_mensural_brevis (wid);
+def draw_mensural_longa (expr wid, open, full) =
+       draw_mensural_brevis (wid, open, full);
 
        x6 = x7 = head_width - stem_width / 2;
        y6 = y5;
@@ -371,22 +381,67 @@ enddef;
 
 %%% This head does not seem to be used anywhere.  Junk me?  -- jr
 fet_beginchar ("Mensural left stemmed notehead", "slmensural");
-       draw_mensural_left_stemmed_head (staff_space#);
+       draw_mensural_left_stemmed_head (staff_space#, true, true);
 fet_endchar;
 
 
 fet_beginchar ("Mensural maxima notehead", "sM3mensural");
-       draw_mensural_longa (2.0 staff_space#);
+       draw_mensural_longa (2.0 staff_space#, true, true);
+fet_endchar;
+
+
+fet_beginchar ("Mensural maxima notehead in ligaturae", "sM3ligmensural");
+       draw_mensural_brevis (2.0 staff_space#, true, true);
 fet_endchar;
 
 
 fet_beginchar ("Mensural longa notehead", "sM2mensural");
-       draw_mensural_longa (staff_space#);
+       draw_mensural_longa (staff_space#, true, true);
 fet_endchar;
 
 
 fet_beginchar ("Mensural brevis notehead", "sM1mensural");
-       draw_mensural_brevis (staff_space#);
+       draw_mensural_brevis (staff_space#, true, true);
+fet_endchar;
+
+
+fet_beginchar ("Black mensural maxima notehead", "sM3blackmensural");
+       draw_mensural_longa (2.0 staff_space#, false, false);
+fet_endchar;
+
+
+fet_beginchar ("Black mensural maxima notehead in ligaturae", "sM3blackligmensural");
+       draw_mensural_brevis (2.0 staff_space#, false, false);
+fet_endchar;
+
+
+fet_beginchar ("Black mensural longa notehead", "sM2blackmensural");
+       draw_mensural_longa (staff_space#, false, false);
+fet_endchar;
+
+
+fet_beginchar ("Black mensural brevis notehead", "sM1blackmensural");
+       draw_mensural_brevis (staff_space#, false, false);
+fet_endchar;
+
+
+fet_beginchar ("Semi-colored mensural maxima notehead", "sM3semimensural");
+       draw_mensural_longa (2.0 staff_space#, true, false);
+fet_endchar;
+
+
+fet_beginchar ("Semi-colored mensural maxima notehead in ligaturae", "sM3semiligmensural");
+       draw_mensural_brevis (2.0 staff_space#, true, false);
+fet_endchar;
+
+
+fet_beginchar ("Semi-colored mensural longa notehead", "sM2semimensural");
+       draw_mensural_longa (staff_space#, true, false);
+fet_endchar;
+
+
+fet_beginchar ("Semi-colored mensural brevis notehead", "sM1semimensural");
+       draw_mensural_brevis (staff_space#, true, false);
 fet_endchar;
 
 
@@ -466,6 +521,11 @@ fet_beginchar ("Mensural semiminima head", "s2mensural");
 fet_endchar;
 
 
+fet_beginchar ("Black mensural semibrevis head", "s0blackmensural");
+       draw_diamond_head (staff_space#, 0.15, 0.30, 30, false);
+fet_endchar;
+
+
 fet_beginchar ("Petrucci semibrevis head", "s0petrucci");
 %      draw_diamond_head (1.8 staff_space#, 0.15, 0.40, 30, true);
        draw_neomensural_open_head (staff_space#, 1.8 staff_space#);
@@ -484,6 +544,24 @@ fet_beginchar ("Petrucci semiminima head", "s2petrucci");
 fet_endchar;
 
 
+fet_beginchar ("Petrucci colored semibrevis head", "s0blackpetrucci");
+%      draw_diamond_head (1.8 staff_space#, 0.15, 0.40, 30, true);
+       draw_neomensural_black_head (staff_space#, 1.8 staff_space#);
+fet_endchar;
+
+
+fet_beginchar ("Petrucci colored minima head", "s1blackpetrucci");
+%      draw_diamond_head (1.8 staff_space#, 0.15, 0.40, 30, true);
+       draw_neomensural_black_head (staff_space#, 1.8 staff_space#);
+fet_endchar;
+
+
+fet_beginchar ("Petrucci colored semiminima head", "s2blackpetrucci");
+%      draw_diamond_head (1.8 staff_space#, 0.15, 0.40, 30, true);
+       draw_neomensural_black_head (staff_space#, 1.8 staff_space#);
+fet_endchar;
+
+
 %%%%%%%%
 %
 %