X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=mf%2Fparmesan-clefs.mf;h=34a09cf20bc40d7b0def688c2af66fc54731362f;hb=d06ebc90ec926e435ec00f5fb18dec838928df20;hp=92355b452118ff596a13f9d8a832ccd4ca0aca23;hpb=c855966cc2dcc458c5aba0873072db552eeaf02a;p=lilypond.git diff --git a/mf/parmesan-clefs.mf b/mf/parmesan-clefs.mf index 92355b4521..34a09cf20b 100644 --- a/mf/parmesan-clefs.mf +++ b/mf/parmesan-clefs.mf @@ -1,10 +1,21 @@ -% -%-Fundamental-%- -*-Metafont-*- -% parmesan-clefs.mf -- implement ancient clefs -% -% source file of LilyPond's pretty-but-neat music font +% Feta (not the Font-En-Tja) music font -- ancient clefs +% This file is part of LilyPond, the GNU music typesetter. % -% (c) 2001--2006 Juergen Reuter +% Copyright (C) 2001--2012 Juergen Reuter % +% +% LilyPond 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. +% +% 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 ("clefs"); @@ -304,12 +315,12 @@ def draw_medicaea_fa_clef (expr exact_center, reduction) = define_pixels (xoffs, yoffs); % stem - pickup pencircle scaled linethickness; + pickup pencircle scaled reduced_slt; x11 = x12 = xoffs + 0.4 reduced_il; y11 = yoffs = bot y12 + 1.5 reduced_il; - draw_rounded_block (bot lft z12, top rt z11, linethickness); + draw_rounded_block (bot lft z12, top rt z11, reduced_slt); % left-handed punctum save ellipse, T; @@ -322,7 +333,7 @@ def draw_medicaea_fa_clef (expr exact_center, reduction) = ellipse := reverse fullcircle transformed T; lft z13 = (xoffs, yoffs); - rt z14 = z11 + (linethickness / 2, 0); + rt z14 = z11 + (reduced_slt / 2, 0); fill get_subpath (ellipse, left, right, z13) -- get_subpath (ellipse, right, left, z14) @@ -1040,7 +1051,8 @@ def draw_petrucci_f_clef (expr exact_center, reduction) = pickup pencircle transformed T; ellipse := fullcircle transformed T; - rt z8 = (xoffs + reduced_il, yoffs - 4 reduced_slt); + rt x8 = xoffs + reduced_il; + y8 = y3; rt z9 = (xoffs + reduced_il, yoffs - 4 reduced_il); penpos8 (stem_width, 0); @@ -1689,4 +1701,61 @@ fet_beginchar ("Hufnagel do/fa clef", "hufnagel.do.fa_change"); fet_endchar; +%%%%%%%% +%% +%% Medieval East-Slavic (Kievan) Notation clefs +%% Code by Aleksandr Andreev +%% +%%%%%%%% + +def draw_kievan_do_clef = + z1 = (1.108 staff_space, 0.554 staff_space); + z2 = (1.063 staff_space, -0.122 staff_space); + z3 = (1.467 staff_space, -1.621 staff_space); + z4 = (1.002 staff_space, -2.253 staff_space); + + y5 = y3; + x4 - x5 = x3 - x4; + + z6 = (0.917 staff_space, -0.383 staff_space); + z7 = (0.012 staff_space, -0.448 staff_space); + z8 = (0, -0.167 staff_space); + z9 = (0.057 staff_space, 0.464 staff_space); + z10 = (0.994 staff_space, 0.387 staff_space); + z11 = (1.023 staff_space, 0.554 staff_space); + + fill z1 + .. z2{down} + .. z3 + -- z4 + -- z5 + .. {up}z6 + & z6{left} + .. z7 + & z7 + .. z8{up} + .. z9 + & z9 + .. {right}z10 + & z10 + .. z11 + -- cycle; + + set_char_box (0, 1.5 staff_space#, + 2.25 staff_space#, 0.55 staff_space#); +enddef; + + +fet_beginchar ("Kievan tsefaut clef", "kievan.do"); + % This draws the Tse-Fa-Ut clef; it is a variant alto clef that + % always occurs on the third line of the staff. + draw_kievan_do_clef; +fet_endchar; + + +fet_beginchar ("Kievan tsefaut clef", "kievan.do_change"); + % This is the same thing as a do clef? + draw_kievan_do_clef; +fet_endchar; + fet_endgroup ("clefs");