]> git.donarmstrong.com Git - lilypond.git/blobdiff - mf/parmesan-accidentals.mf
Doc-es: various updates.
[lilypond.git] / mf / parmesan-accidentals.mf
index 57f94a96fcec26b89a187841b85484235385eb3f..0714e46b617e20a09c9c5c4d58289299ae0dbb7a 100644 (file)
@@ -1,10 +1,20 @@
-% -%-Fundamental-%- -*-Metafont-*-
-% 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>
+% Feta (not the Font-En-Tja) music font --  ancient accidentals
+% This file is part of LilyPond, the GNU music typesetter.
+%
+% Copyright (C) 2001--2015 Juergen Reuter <reuter@ipd.uka.de>
 % 
+% The LilyPond font is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% (at your option) any later version, or under the SIL Open Font License.
+%
+% LilyPond is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
 
 fet_begingroup ("accidentals");
 
@@ -17,18 +27,18 @@ fet_begingroup ("accidentals");
 %
 %
 %
-fet_beginchar ("Ed. Med. Flat" , "medicaea-1");
+fet_beginchar ("Ed. Med. Flat" , "medicaeaM1");
        set_char_box (0.1 staff_space#, 0.6 staff_space#,
                      0.6 staff_space#, 1.0 staff_space#);
 
-       save ellipse, pat, outline;
+       save ellipse, pat, outline, T;
        path ellipse, pat, outline;
+       transform T;
 
-       pickup pencircle xscaled 0.50 linethickness
-                        yscaled 0.22 staff_space;
-
-       ellipse := fullcircle xscaled 0.5 linethickness
-                                     yscaled 0.22 staff_space;
+       T := identity xscaled 0.50 linethickness
+                     yscaled 0.22 staff_space;
+       pickup pencircle transformed T;
+       ellipse := fullcircle transformed T;
 
        x1 = x2 = 0;
        top y1 = h;
@@ -38,13 +48,11 @@ fet_beginchar ("Ed. Med. Flat" , "medicaea-1");
             -- get_subpath (ellipse, down, up, z2)
             -- cycle;
 
-       pickup pencircle xscaled 0.50 linethickness
-                        yscaled 0.22 staff_space
-                        rotated -63;
-
-       ellipse := fullcircle xscaled 0.50 linethickness
-                             yscaled 0.22 staff_space
-                             rotated -63;
+       T := identity xscaled 0.50 linethickness
+                     yscaled 0.22 staff_space
+                     rotated -63;
+       pickup pencircle transformed T;
+       ellipse := fullcircle transformed T;
 
        z3 = (0.10 staff_space, -0.50 staff_space);
        z4 = (0.40 staff_space, +0.40 staff_space);
@@ -87,7 +95,7 @@ fet_endchar;
 %
 %
 %
-fet_beginchar ("Ed. Vat. Flat" , "vaticana-1");
+fet_beginchar ("Ed. Vat. Flat" , "vaticanaM1");
        z1 = (0.00 staff_space, +0.80 staff_space);
        z2 = (0.00 staff_space, -0.08 staff_space);
        z3 = (0.25 staff_space, -0.23 staff_space);
@@ -96,14 +104,14 @@ fet_beginchar ("Ed. Vat. Flat" , "vaticana-1");
        z6 = (0.25 staff_space, +0.20 staff_space);
        z7 = (0.15 staff_space, +0.26 staff_space);
 
-       save pat, ellipse;
+       save pat, ellipse, T;
        path pat, ellipse;
+       transform T;
 
-       pickup pencircle xscaled 0.50 linethickness
-                        yscaled 0.22 staff_space;
-
-       ellipse := fullcircle xscaled 0.50 linethickness
-                             yscaled 0.22 staff_space;
+       T := identity xscaled 0.50 linethickness
+                     yscaled 0.22 staff_space;
+       pickup pencircle transformed T;
+       ellipse := fullcircle transformed T;
 
        pat := z1
               -- z2{down}
@@ -140,14 +148,14 @@ fet_endchar;
 
 
 fet_beginchar ("Ed. Vat. Natural" , "vaticana0");
-       save ellipse;
+       save ellipse, T;
        path ellipse;
+       transform T;
 
-       pickup pencircle xscaled 0.80 linethickness
-                        yscaled 0.22 staff_space;
-
-       ellipse := fullcircle xscaled 0.8 linethickness
-                             yscaled 0.22 staff_space;
+       T := identity xscaled 0.80 linethickness
+                     yscaled 0.22 staff_space;
+       pickup pencircle transformed T;
+       ellipse := fullcircle transformed T;
 
        z1 = (0.00 staff_space, +0.65 staff_space);
        z2 = (0.00 staff_space, -0.35 staff_space);
@@ -194,12 +202,13 @@ fet_beginchar ("Mensural Sharp" , "mensural1");
 
        stemthick# = linethickness#;
 
-       save circle, pat;
+       save circle, pat, T;
        path circle, pat;
+       transform T;
 
-       pickup pencircle scaled 0.8 stemthick;
-
-       circle := fullcircle scaled 0.8 stemthick;
+       T := identity scaled 0.8 stemthick;
+       pickup pencircle transformed T;
+       circle := fullcircle transformed T;
 
        z1 = 0.4 staff_space * (0.8, 1);
        z1 = -z2;
@@ -222,23 +231,22 @@ fet_beginchar ("Mensural Sharp" , "mensural1");
 fet_endchar;
 
 
-fet_beginchar ("Mensural Flat" , "mensural-1");
+fet_beginchar ("Mensural Flat" , "mensuralM1");
        save stemthick;
 
        define_pixels (stemthick);
 
        stemthick# = linethickness#;
 
-       save ellipse, pat, outline;
+       save ellipse, pat, outline, T;
        path ellipse, pat, outline;
+       transform T;
 
-       pickup pencircle xscaled 1.4 stemthick
-                        yscaled 0.6 stemthick
-                        rotated 45;
-
-       ellipse := fullcircle xscaled 1.4 stemthick
-                             yscaled 0.6 stemthick
-                             rotated 45;
+       T := identity xscaled 1.4 stemthick
+                     yscaled 0.6 stemthick
+                     rotated 45;
+       pickup pencircle transformed T;
+       ellipse := fullcircle transformed T;
 
        z1 = (0.00 staff_space, +1.80 staff_space);
        z2 = (0.00 staff_space, -0.25 staff_space);
@@ -287,23 +295,22 @@ fet_beginchar ("Mensural Flat" , "mensural-1");
 fet_endchar;
 
 
-fet_beginchar ("Hufnagel Flat" , "hufnagel-1");
+fet_beginchar ("Hufnagel Flat" , "hufnagelM1");
        save stemthick;
 
        define_pixels (stemthick);
 
        stemthick# = linethickness#;
 
-       save ellipse, pat;
+       save ellipse, pat, T;
        path ellipse, pat;
+       transform T;
 
-       pickup pencircle xscaled 2.4 stemthick
-                        yscaled 0.4 stemthick
-                        rotated 45;
-
-       ellipse := fullcircle xscaled 2.4 stemthick
-                             yscaled 0.4 stemthick
-                             rotated 45;
+       T := identity xscaled 2.4 stemthick
+                     yscaled 0.4 stemthick
+                     rotated 45;
+       pickup pencircle transformed T;
+       ellipse := fullcircle transformed T;
 
        z1 = (0.00 staff_space, +1.80 staff_space);
        z2 = (0.00 staff_space, -0.15 staff_space);
@@ -385,4 +392,95 @@ fet_beginchar ("Hufnagel Flat" , "hufnagel-1");
 fet_endchar;
 
 
+%%%%%%%%%%%%%%%
+%%%
+%%% Glyphs for Kievan Music Notation
+%%%
+%%%%%%%%%%%%%%%
+
+
+fet_beginchar ("Kievan sharp", "kievan1");
+       % This draws the sharp.
+       % It never occurs in Synodal music and
+       % can only be found in some early manuscripts.
+
+       z1 = (0.579 staff_space, 1.459 staff_space);
+       z2 = (1.414 staff_space, -0.904 staff_space);
+       z3 = (0.187 staff_space, 0.904 staff_space);
+
+       x2 - x1 = x4 - x3;
+       y1 - y2 = y3 - y4;
+
+       z5 = (1.296 staff_space, 1.613 staff_space);
+       z6 = (0.090 staff_space, -0.864 staff_space);
+       z7 = (1.532 staff_space, 0.892 staff_space);
+
+       x5 - x6 = x7 - x8;
+       y5 - y6 = y7 - y8;
+
+       pickup pensquare xscaled 0.167staff_space
+                        yscaled 0.167staff_space
+                        rotated -69.2;
+       draw z1{dir -69.2}
+            .. {dir -74.1}z2;
+       draw z3{dir -69.2}
+            .. {dir -74.1}z4;
+
+       pickup pensquare xscaled 0.167staff_space
+                        yscaled 0.167staff_space
+                        rotated -114.6;
+       draw z5{dir -114.6}
+            ... {dir -125.0}z6;
+       draw z7{dir -114.6}
+            ... {dir -125.0}z8;
+
+       set_char_box (0, 1.6 staff_space#,
+                     1.6 staff_space#, 1.6 staff_space#);
+fet_endchar;
+
+
+fet_beginchar ("Kievan flat", "kievanM1");
+       % This draws the flat sign.
+       % In Synodal music, the flat only occurs on the high B
+       % but it may be used elsewhere in early manuscripts.
+
+       z1 = (0.452 staff_space, 1.772 staff_space);
+       z2 = (0.481 staff_space, 1.735 staff_space);
+       z3 = (0.464 staff_space, 1.626 staff_space);
+       z4 = (0.249 staff_space, 0.322 staff_space);
+       z5 = (0.432 staff_space, -0.762 staff_space);
+       z6 = (0.611 staff_space, -0.583 staff_space);
+       z7 = (0.611 staff_space, 0.224 staff_space);
+       z8 = (0.652 staff_space, 0.513 staff_space);
+       z9 = (0.900 staff_space, 0.684 staff_space);
+       z10 = (0.872 staff_space, 0.640 staff_space);
+       z11 = (0.811 staff_space, 0.359 staff_space);
+       z12 = (0.811 staff_space, -0.587 staff_space);
+       z13 = (0.338 staff_space, -1.063 staff_space);
+       z14 = (0.016 staff_space, 0.196 staff_space);
+       z15 = (0.204 staff_space, 1.316 staff_space);
+
+       fill z13
+            .. z14{up}
+            .. z15{dir 70.8}
+            .. z1{dir 4.9}
+            .. z2
+            .. z3
+            .. z4{down}
+            .. z5
+            -- z6
+            -- z7{up}
+            .. z8
+            .. {dir 23}z9
+            & z9
+            .. z10{dir -135}
+            .. {down}z11
+            -- z12
+            -- z13
+            & cycle;
+
+       set_char_box (0, 1.0 staff_space#,
+                     1.0 staff_space#, 1.8 staff_space#);
+fet_endchar;
+
 fet_endgroup ("accidentals");