From 49376ac39b0d4df13cc719c1ba3d3dcdf58f7fbd Mon Sep 17 00:00:00 2001 From: fred Date: Sun, 24 Mar 2002 20:01:06 +0000 Subject: [PATCH] lilypond-0.1.26 --- mf/feta-nummer.mf | 368 +++++++++++++++++++++++++++++++++++++++++++ mf/feta-nummer10.mf | 28 ++++ mf/feta-nummer8.mf | 29 ++++ tex/fetdefs.tex | 11 ++ tex/lilyponddefs.tex | 11 +- 5 files changed, 442 insertions(+), 5 deletions(-) create mode 100644 mf/feta-nummer.mf create mode 100644 mf/feta-nummer10.mf create mode 100644 mf/feta-nummer8.mf diff --git a/mf/feta-nummer.mf b/mf/feta-nummer.mf new file mode 100644 index 0000000000..8e816ab043 --- /dev/null +++ b/mf/feta-nummer.mf @@ -0,0 +1,368 @@ +% feta-nummer.mf +% part of LilyPond's pretty-but-neat music font + +fet_begingroup("nummer") + +define_pixels(height,thick,norm,thin,hair); +foot_top#:=2thin#; +foot_width#:=2thick#+thin#; +define_pixels(foot_top,foot_width); +define_pixels(kuulleke); + +def calc_kuulleke(expr w,alpha) = + begingroup; + save beta; beta=(alpha-90)/2; + save gamma; gamma=(90+alpha)/2; + + penpos1(w/cosd(alpha),alpha); + penpos2(hair,90+beta); + z2=z1l+(1/2hair/tand((alpha+90)/2))*dir(beta); + + penpos3(hair,gamma-90); + z3=z1r-(1/2hair/tand((90-alpha)/2))*dir(gamma); + z4=z1+kuulleke*dir(alpha-90); + endgroup; + enddef; + +% should make generic macro? +% +def draw_foot(expr xpos) = + begingroup; + clearxy; + penpos1(thick,0); + z1=(xpos,foot_top); + penpos2(foot_width,0); + z2=(x1,0); + penpos3(hair,-90); + z3r=z2r; + penpos4(hair,90); + z4l=z2l; + z5=(x1,hair/2); + fill z1..{right}z1r{down}..{right}z3l..z3r{left}..z5..{left}z4l..z4r{right}..{up}z1l{right}..z1..cycle; + endgroup; + enddef; + +def draw_flare(expr pos,alpha,beta,line,flare) = + begingroup; + clearxy; + penpos1(line,180+beta+alpha); + z1r=pos; + penpos2(flare,180+beta+alpha); + z2=z3; + penpos3(flare,0+alpha); + z3l=z1r+(1/2+0.43)*flare*dir(alpha+beta); + z4=z2r-1/6flare*dir(alpha); + penlabels(1,2,3,4); + pickup pencircle; + save t; t=0.833; + fill z1r{dir(alpha)}..z3r{dir(180+alpha-beta)}..z2l{dir(alpha+180)} + ..z3l{dir(180+alpha+beta)}..tension t..z4{dir(180+alpha+beta)}..z1l{dir(alpha+180)}..cycle; + endgroup; + enddef; + +def draw_six = + set_char_box(0, 2thick#+2thin#, 0, height#); + message "w:"&decimal w; + message "h:"&decimal h; + + penpos1(thin,90); + z1=(norm,h/2+thin); + penpos2(hair,90); + z2=(w/2,y1); + penpos3(norm-hair,0); + % yup, should use the path [] "everywhere" + z3r=(w,1/2[0,y1]); + penpos4(hair,-90); + z4r=(x2,0); + penpos5(norm-hair,180); + z5r=(0,y1); + penpos6(hair,90); + z6r=(w-norm,h); + penpos7(norm-hair,180); + z7r=(0,h/2); + penpos10(norm-hair,180); + z10r=(0,y3); + penlabels(1,2,3,4,5,6,7,8,9,10,11); + save t; t=0.833; + fill z5{right}..z2r{right}..z3r{down}..z4r{left} + ..tension t..z7r{up}..tension t..z6r{right} + ..z6l{left}..tension t..z7l{down}..z10l{up}..cycle; + draw_flare(z6r,0,-90,hair,norm); + unfill z2l{right}..tension t..z3l{down}..tension t + ..z4l{left}..tension t..z10l{up}..tension t..cycle; + enddef; + +fet_beginchar("Numeral 0", "0", "zero") + set_char_box(0, 3thick#, 0, height#); + message "w:"&decimal w; + message "h:"&decimal h; + penpos1(thin,90); + z1r=(w/2,h); + penpos2(thick,0); + z2r=(w,h/2); + penpos3(thin,-90); + z3r=(w/2,0); + penpos4(thick,180); + z4r=(0,h/2); + fill z1r..z2r..z3r..z4r..cycle; + save t; t=1.2; + unfill z1l..tension t..z2l..tension t..z3l..tension t..z4l..tension t..cycle; +fet_endchar; + +fet_beginchar("Numeral 1", "1", "one") + set_char_box(0, 5/2thick#+thin#, 0, height#); + message "w:"&decimal w; + message "h:"&decimal h; + + save alpha; alpha=0; + calc_kuulleke(thick,alpha); + z1=(thick+thick/2,height); + + penpos5(thick,0); + z5=(x1,foot_top); + + z6=(0,h/2); + save beta; beta=angle(z1l-z6); + penpos7(thin,beta-90); + z7l=z6; + penpos8(thin/cosd(beta),-90); + z8l=z1l; + penpos9(thin,beta-90); + z9r=z8r+(thin/cosd(beta))*(0,-1); + penlabels(1,2,3,4,5,6,7,8,9); + save gamma; gamma=angle(length(z1r-z1),+2kuulleke); + fill z2r{dir(alpha-gamma)}..z4..{dir(alpha+gamma)}z3l..z3r{down}..{down}z5r{left}..z5..{left}z5l{up}..{up}z2l..cycle; + fill z7l{dir(beta)}..{dir(beta)}z1l..z2r..z9r{up}..z9l{dir(180+beta)}..{dir(180+beta)}z7r..cycle; + penlabels(7,8,9); + + draw_foot(x1); +fet_endchar; + +fet_beginchar("Numeral 2", "2", "two") + set_char_box(0, 3thick#-thin#, 0, height#); + message "w:"&decimal w; + message "h:"&decimal h; + clearxy; + save alpha; alpha=-50; + save beta; beta=75; + penpos1(thin,90+beta); + z1=(0,0)+(1/2sqrt(2)*thin)*dir(45); + penpos3(hair,90+beta); + z3=(w,thick)+(1/2sqrt(2)*hair)*dir(-135); + penpos2(norm,90+alpha); + x2-x1=x3-x2; y2=thick/2+hair/2; + penlabels(1,2,3); + fill z1r{dir(beta)}..{dir(alpha)}z2r..{dir(beta)}z3r + ..z3l{dir(180+beta)}..{dir(180+alpha)}z2l + ..{dir(180+beta)}z1l..cycle; + + penpos4(thin,90); + z4r=(thick,2/5h); + penpos5(norm,0); + z5r=(w-thin,.72h); + penpos6(thin,90); + z6r=(w/2-thin-hair,h); + penlabels(4,5,6); + fill z1l{dir(beta)}..z4l{dir(15)}..z5r{up}..z6r{left} + ..z6l{right}..z5l{down}..z4r{dir(180+15)} + ..{dir(180+beta)}z1r..cycle; + draw_flare(z6r,180,90,thin,thick); +fet_endchar; + +fet_beginchar("Numeral 3", "3", "three") + set_char_box(0, 2thick#+2thin#, 0, height#); + message "w:"&decimal w; + message "h:"&decimal h; + penpos1(hair,-90); + z1l=(norm+hair/2,h); + penpos2(norm-hair,180); + z2l=(w-hair,3/4h+hair/2); + penpos3(hair,90); + z3=(w/2,h/2+hair); + penpos4(hair,90); + z4=(1/2norm+hair,y3); + penpos5(norm,0); + z5r=(w,1/4h+hair/2); + penpos6(hair,-90); + z6r=(norm+hair,0); + penpos7(thin+hair,90); + z7=(x2,y3); + penlabels(1,2,3,4,5,6,7); + save alpha; alpha=25; + save t; t=0.833; + fill z1l{right}..z2l{down}..z7r{dir(180+alpha)} + ..z7l{dir(-alpha)}..z5r{down}..z6r{left} + ..z6l{right}..tension t..z5l{up} + ..tension t..z3l{left}..z4l{left} + ..z4r{right}..z3r{right}..tension t..z2r{up} + ..tension t..z1r{left}..cycle; + draw_flare(z1l,180,90,hair,norm); + draw_flare(z6r,180,-90,hair,norm+hair); +fet_endchar; + +fet_beginchar("Numeral 4", "4", "four") + set_char_box(0, 3/2thick#+6thin#, 0, height#); + message "w:"&decimal w; + message "h:"&decimal h; + + save alpha; alpha=0; + calc_kuulleke(3/2thick,alpha); + z1r=(w-3thin,height); + + z5=(thin,1/4height+thin); + save beta; beta=angle(z3r-z5); + penpos6(thin,-90); + z6l=z5; + penpos7(thin,-90); + y7=y6; x7=w-1/2thin; + penpos8(thin,-alpha); + z8r=z5; + penlabels(1,2,3,4,5,6,7); + save gamma; gamma=angle(length(z1r-z1),+2kuulleke); + fill z2r{dir(alpha-gamma)}..z4..{dir(alpha+gamma)}z3l..z3r{dir(180+beta)}..{dir(180+beta)}z8r{right}..{right}z7l..z7r{left}..{left}z6r..z8l{dir(beta)}..{up}z2l..cycle; + + clearxy; + + save alpha; alpha=beta; + calc_kuulleke(thick,alpha); + z1r=(w-3thin,height-(thin+hair)/cosd(alpha)); + + penpos5(thick,0); + z5=(x1,foot_top); + + save gamma; gamma=angle(length(z1r-z1),+2kuulleke); + fill z2r{dir(alpha-gamma)}..z4..{dir(alpha+gamma)}z3l..z3r{down}..{down}z5r{left}..z5..{left}z5l{up}..{up}z2l..cycle; + penlabels(1,2,3,4,5); + + draw_foot(x5); +fet_endchar; + +fet_beginchar("Numeral 5", "5", "five") + set_char_box(0, 2thick#+thin#+hair#, 0, height#); + message "w:"&decimal w; + message "h:"&decimal h; + calc_kuulleke(w-thin,0); + z1=(w/2+thin/2,h); + save alpha; alpha=0; + penpos5(thin,0); + z5l=(x1l,h-norm); + penpos6(hair,90-45); + z6=z5r+1/2hair*dir(-45); + penpos7(thin,0); + z7l=(x1l,h/2+thin/2); + penlabels(1,2,3,4,5,6,7); + save gamma; gamma=angle(length(z1r-z1),+2kuulleke); + fill z2r{dir(alpha-gamma)}..z4..{dir(alpha+gamma)}z3l + ..z3r{dir(-135)}..{left}z6r..z6l{down}..z7r{down} + ..z7l{up}..{up}z2l..cycle; + penpos8(hair,90); + z8=z7r; + penpos9(hair,90); + z9l=(x11,y7+thin); + penpos10(norm,0); + z10r=(w,1/2[y9r,y11r]); + penpos11(hair,-90); + z11r=(norm+hair,0); + penlabels(8,9,10,11); + save beta; beta=45; + save t; t=0.833; + fill z8r{dir(beta)}..z9r{right}..z10r{down}..z11r{left} + ..z11l{right}..tension t..z10l{up}..tension t + ..z9l{left}..z8l{dir(180+beta)}..cycle; + draw_flare(z11r,180,-90,hair,norm+hair); +fet_endchar; + +fet_beginchar("Numeral 6", "6", "six") + draw_six; +fet_endchar; + +fet_beginchar("Numeral 7", "7", "seven") + set_char_box(0, 5/2thick#+thin#, 0, height#); + message "w:"&decimal w; + message "h:"&decimal h; + + save alpha; alpha=-180; +if true: + penpos1(3/2thick,180+alpha); + penpos2(hair,180+alpha-45); + z2=z1l+(1/4sqrt(2)*hair)*dir(alpha-135); + penpos3(hair,180+alpha+45); + z3=z1r+(1/4sqrt(2)*hair)*dir(alpha-45); + z4=z1+kuulleke*dir(alpha-90); +else: + % shit, does not work + calc_kuulleke(3/2thick,-alpha); +fi + z1l=(thin,0); + + save beta; beta=50; + penpos5(thin,90+beta); + z5=(w,h)+(1/2sqrt(2)*thin)*dir(-135); + + save gamma; gamma=angle(length(z1r-z1),+2kuulleke); + save delta; delta=12; + pickup pencircle; + fill z3l{dir(alpha-gamma)}..z4..{dir(alpha+gamma)}z2r.. + z2l{dir(beta+delta)}..{dir(beta)}z5r + ..z5l{dir(180+beta)}..{dir(delta-90)}z3r..cycle; + penlabels(1,2,3,4,5); + + clearxy; + save alpha; alpha=-50; + penpos1(2thin,90); + z1=(3/2thin,h-(thick+thin)/2); + penpos3(thin,90+beta); + z3=(w,h)+(1/2sqrt(2)*thin)*dir(-135); + penpos2(norm,90+alpha); + x2-x1=x3-x2; y2=h-thick/2; + + penpos4(thin,0); + z4l=(0,h-thin/2); + penpos5(thin,0); + z5l=(0,h/2+thin/2); + + penpos6(4thin,90); + z6r=(thin,y1r+thin/2); + + fill z1r{dir(beta)}..{dir(alpha)}z2r..{dir(beta)}z3r + ..z3l{dir(180+beta)}..{dir(180+alpha)}z2l + ..{dir(180+beta)}z1l..z6l{down}..{down}z5r + ..z5l{up}..{up}z4l..z4r{down}..{down}z6r..{right}cycle; + penlabels(1,2,3,4,5,6); +fet_endchar; + +fet_beginchar("Numeral 8", "8", "eight") + set_char_box(0, 2thick#+3thin#, 0, height#); + message "w:"&decimal w; + message "h:"&decimal h; + save alpha; alpha=60; + save beta; beta=alpha-15; + z1=(w/2,h/2+hair); + penpos2(hair,90+180+beta); + z2=(w/4,h/2+thin); + z3=(0,h/4+thin/2); + penpos4(hair,90); + z4l=(x1,0); + penpos5(norm,90+90+alpha); + z5=z1+w/4*dir(alpha-90); + penpos6(norm,90+90+alpha); + z6=z1+w/4*dir(90+alpha); + penpos7(hair,90); + z7r=(x1,h); + z8=(w-hair,3/4h+thin/2); + penpos9(hair,90+180+beta); + z9=(3/4w,h/2); + penlabels(1,2,3,4,5,6,7,8,9); + save t; t=0.85; + fill z2r{dir(180+beta)}..tension t..z4r{right}..z5r{dir(90+alpha)}..z6r{dir(90+alpha)}..tension t..z7r{right}..z8{down}..z9r{dir(180+beta)}..z9l{dir(beta)}..tension t..z7l{left}..z6l{dir(alpha-90)}..z5l{dir(alpha-90)}..tension t..z4l{left}..z3{up}..z2l{dir(beta)}..cycle; +fet_endchar; + +fet_beginchar("Numeral 9", "9", "nine") + draw_six; +% xy_mirror_char; + currentpicture := currentpicture scaled -1; + currentpicture := currentpicture shifted (w,h); +fet_endchar; + +fet_endgroup("nummer") + diff --git a/mf/feta-nummer10.mf b/mf/feta-nummer10.mf new file mode 100644 index 0000000000..ce26044b60 --- /dev/null +++ b/mf/feta-nummer10.mf @@ -0,0 +1,28 @@ +% feta-nummer10.mf +% part of LilyPond's pretty-but-neat music font + +input autometric; + +fet_beginfont("feta-nummer", 10); + +mode_setup; + +test:=0; +input feta-macros; + +height#:=designsize; +%thick#:=height#/4; +thick#:=8/30height#; +%norm#:=3/4thick#; +norm#:=7/8thick#; +thin#:=thick#/4; +hair#:=thin#/2; +kuulleke#:=hair#; +%kuulleke#:=0; + +input feta-nummer; + +fet_endfont("feta-nummer"); + +end. + diff --git a/mf/feta-nummer8.mf b/mf/feta-nummer8.mf new file mode 100644 index 0000000000..13526a5be1 --- /dev/null +++ b/mf/feta-nummer8.mf @@ -0,0 +1,29 @@ +% feta-nummer8.mf +% part of LilyPond's pretty-but-neat music font + +input autometric; + +fet_beginfont("feta-nummer", 8); + +mode_setup; + +test:=0; +input feta-macros; + +% copied from 10; will it work? +height#:=designsize; +%thick#:=height#/4; +thick#:=8/30height#; +%norm#:=3/4thick#; +norm#:=7/8thick#; +thin#:=thick#/4; +hair#:=thin#/2; +kuulleke#:=hair#; +%kuulleke#:=0; + +input feta-nummer; + +fet_endfont("feta-nummer"); + +end. + diff --git a/tex/fetdefs.tex b/tex/fetdefs.tex index 87657a4f94..56000c435e 100644 --- a/tex/fetdefs.tex +++ b/tex/fetdefs.tex @@ -4,10 +4,12 @@ \def\fetsixteendefs{ \font\fontentja=font-en-tja16 \font\vetfont=vette-beams16 + \font\fetanummer=feta-nummer8 } \def\fettwentydefs{ \font\fontentja=font-en-tja20 \font\vetfont=vette-beams20 + \font\fetanummer=feta-nummer10 } % \def\fetdef#1#2{\def#1{\fetchar{#2}}} @@ -21,3 +23,12 @@ \def\beamslope#1#2{{\count0=#2\advance\count0 by#1 \advance\count0by128 {\vetfont\char\count0}}} + +% stacked numbers; overrules def in lilyponddefs +% oeps: \meter 12/8; +\def\generalmeter#1#2{% + \vbox to 0pt{\vss% + \hbox to0.42\balkheight{\hss\fetanummer\char#1\hss}% + \nointerlineskip% + \hbox to0.42\balkheight{\hss\fetanummer\char#2\hss}% + \vss}} diff --git a/tex/lilyponddefs.tex b/tex/lilyponddefs.tex index 4e3b74bc83..4bd3ab3d5d 100644 --- a/tex/lilyponddefs.tex +++ b/tex/lilyponddefs.tex @@ -109,6 +109,12 @@ \ledgerlinethickness=2\staffrulethickness } +% stacked numbers; may be overruled in fetdefs +\def\generalmeter#1#2{\vbox to 0pt{\vss\hbox{\meterfont + #1}\nointerlineskip + \hbox{\meterfont #2}\vss}} + +% stacked horizontal lines \input dyndefs @@ -195,12 +201,7 @@ \def\hslurcharh#1{{\hslurhfont\char#1}} \def\hslurcharu#1{{\hslurufont\char#1}} \def\hslurchard#1{{\hslurdfont\char#1}} -% stacked numbers -\def\generalmeter#1#2{\vbox to 0pt{\vss\hbox{\meterfont - #1}\nointerlineskip - \hbox{\meterfont #2}\vss}} -% stacked horizontal lines \def\lines#1#2#3{% \vbox{\kern-\interstaffrule \n=0\nointerlineskip% -- 2.39.5