X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=mf%2Fparmesan-accidentals.mf;h=0714e46b617e20a09c9c5c4d58289299ae0dbb7a;hb=4d405ef96a8a62771d7d9a283ff5369a772e89d8;hp=57f94a96fcec26b89a187841b85484235385eb3f;hpb=f7322110755e46623208fe6754805224c865d9ac;p=lilypond.git diff --git a/mf/parmesan-accidentals.mf b/mf/parmesan-accidentals.mf index 57f94a96fc..0714e46b61 100644 --- a/mf/parmesan-accidentals.mf +++ b/mf/parmesan-accidentals.mf @@ -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 +% 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 % +% 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 . 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");