From: fred Date: Sun, 24 Mar 2002 19:58:46 +0000 (+0000) Subject: lilypond-0.1.18 X-Git-Tag: release/1.5.59~3826 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=cf3c7c136303c53c17b16dff6211e6e2ab12f9d6;p=lilypond.git lilypond-0.1.18 --- diff --git a/mf/TODO b/mf/TODO index ac3f4a796a..b69830eee9 100644 --- a/mf/TODO +++ b/mf/TODO @@ -8,5 +8,6 @@ - check out Adobe Sonata/Petrucci font layout. They are the standard for Music fonts - rewrite : make a metafont iso font + - perl script to generate dependencies for mf l diff --git a/mf/autometric.mf b/mf/autometric.mf index 6d87094155..e178978ddd 100644 --- a/mf/autometric.mf +++ b/mf/autometric.mf @@ -1,5 +1,9 @@ % autometric.mf % part of LilyPond's pretty-but-neat music font +% +% these macros help create ascii logging output +% to automate generation of lily tables and tex backend +% parsed by the mf-to-table script % font or database? def fet_beginfont(expr name,size) = @@ -25,8 +29,15 @@ def fet_endgroup(expr name) = message ""; enddef; -def fet_beginchar(expr code,w,h,d,name,id,texstr) = - message "@@char:"&name&":"&decimal code&":"&decimal w&":"&decimal h&":"&decimal d&":"&id&":"&texstr&"@@"; +% starts just as plain mf's beginchar: +% charcode, width, height, depth +% and then adds: +% charname see below +% breapth x-depth +% id index in lily's table +% texstr name of tex macro in lily's table and tex backend +def fet_beginchar(expr code,w,h,d,b,name,id,texstr) = + message "@@char:"&name&":"&decimal code&":"&decimal w&":"&decimal h&":"&decimal d&":"&decimal b&":"&id&":"&texstr&"@@"; beginchar(code,w,h,d) name; enddef; diff --git a/mf/bolletjes.mf b/mf/bolletjes.mf index 9d7052d0c2..305660525b 100644 --- a/mf/bolletjes.mf +++ b/mf/bolletjes.mf @@ -4,9 +4,9 @@ % most beautiful bolletjes are pronounced, not circular, % and not even symmetric. -% interline#:=staffsize#/(stafflines-1)+stafflinethickness#; +%noteheight#:=interline#; % even more pronounced (almost overdone), just like the original -interline#:=staffsize#/(stafflines-1)+2stafflinethickness#; +noteheight#:=interline#+1.5stafflinethickness#; def test_grid = if test>1: @@ -34,9 +34,9 @@ def begin_notehead = save b_h,a_w; enddef; -def end_notehead(expr code,interline,name,id,texstr) = +def end_notehead(expr code,height,name,id,texstr) = save a,b,h,w,ai,bi; - h#=interline; + h#=height; 2b#=h#*b_h; a#=b#*a_b; w#=2a#/a_w; @@ -45,7 +45,7 @@ def end_notehead(expr code,interline,name,id,texstr) = define_pixels(a,b); define_pixels(w,h); define_pixels(ai,bi); - fet_beginchar(code,w#,h#,0,name,id,texstr); + fet_beginchar(code,w#,h#,0,0,name,id,texstr); path black,white; black=distorted_ellipse(a,b,a*err_y_a,0,super); white=distorted_ellipse(ai,bi,ai*err_y_ai,bi*err_x_bi,superi); @@ -79,16 +79,19 @@ begin_notehead; alpha:=0; super:=0.707; ai_a:=0.508; - ai_bi:=1.23; + % ai_bi:=1.23; + ai_bi:=1.30; % jcn % err_y_ai:=0.0938; % err_x_bi:=0; err_y_ai:=0; err_x_bi:=0.115; - alphai:=135; - superi:=0.69; + % alphai:=135; + alphai:=125; % jcn + % superi:=0.69; + superi:=0.68; % jcn b_h:=1; %no rotate-> no height correction a_w:=1; % no rotate-> no width correction - end_notehead(incr code,interline#,"Whole notehead","0","wholeball"); + end_notehead(incr code,noteheight#,"Whole notehead","0","wholeball"); % half note % Wanske, p.39 @@ -97,16 +100,19 @@ begin_notehead; a_b:=1.50; % after drawing err_y_a:=0.157; alpha:=34; - super:=0.66; - ai_a:=0.863; - ai_bi:=3.14; + % super:=0.66; + super:=0.67; % jcn + % ai_a:=0.863; + ai_a:=0.850; % jcn + % ai_bi:=3.14; + ai_bi:=3.30; % jcn err_y_ai:=0; err_x_bi:=-0.12; alphai:=alpha; superi:=0.80; b_h:=0.935; a_w:=1.12; - end_notehead(incr code,interline#,"Half notehead","1","halfball"); + end_notehead(incr code,noteheight#,"Half notehead","1","halfball"); % quarter note % Wanske p.38 @@ -124,7 +130,7 @@ begin_notehead; superi:=0.707; b_h:=0.85; a_w:=1.09; - end_notehead(incr code,interline#,"Quarter notehead","2","quartball"); + end_notehead(incr code,noteheight#,"Quarter notehead","2","quartball"); % from MO*gen.mf lthick:=.4pt; @@ -149,7 +155,7 @@ nhh#:=interline#; nhw#:=6/5interline#; define_pixels(nhh,nhw); -fet_beginchar(incr code,2interline#,interline#,0,"Brevis notehead","-1","breveball"); +fet_beginchar(incr code,2interline#,interline#,0,0,"Brevis notehead","-1","breveball"); fill_square (5/4nhw, .25nhh, (0,.25nhh)); add_mirror (origin, right); x1=x2=0; x3=x4=5/4nhw; y1=-y2=y3=-y4=.7nhh; @@ -158,7 +164,7 @@ fet_beginchar(incr code,2interline#,interline#,0,"Brevis notehead","-1","breveba savepic; endchar; -fet_beginchar(incr code,2interline#,interline#,0,"Longa notehead","-2","longaball"); +fet_beginchar(incr code,2interline#,interline#,0,0,"Longa notehead","-2","longaball"); callpic; pickup line_pen; draw (5/4nhw,-.7nhh)--(5/4nhw,-1.7nhh); diff --git a/mf/eindelijk.mf b/mf/eindelijk.mf new file mode 100644 index 0000000000..deabf71fac --- /dev/null +++ b/mf/eindelijk.mf @@ -0,0 +1,177 @@ +% eindelijk.mf +% LilyPond's own rest(s) + +% MO*TeX stuff +% nhh#:=interline#; +% nhw#:=6/5*interline#; +% define_pixels(interline,nhw); + +med#:=1/33designsize; +thick#:=1/16designsize; +define_blacker_pixels(med,thick); +pen med_pen; +med_pen:= pencircle scaled med; + +rthin:=1/8interline; +% rthick:=2rthin; +rthick:=2thick+rthin; + +def shift_pic (expr pone, ptwo) = + currentpicture:=currentpicture shifted (round(pone),round(ptwo)) +enddef; + +% ugh, dunno how to generate doubles "outside*" rests? +fet_begingroup("almostrests"); + +% stem#:=1/8interline#; +stem#:=1/5interline#; +flare#:=2/3interline#; +define_pixels(stem,flare); + +fet_beginchar(incr code,interline#,4interline#,0,0,"Quarter rest","4","quartrest"); + alpha:=-50; + penpos1(rthin,alpha+90); + penpos2(5/4rthick,alpha); + penpos4(5/4rthick,alpha); + penpos3(3/4rthick,alpha); + penpos6(rthin,alpha-20); +% penpos6(rthick,alpha-20); +% penpos7(4/3thick,alpha); + penpos7(5/8rthick,alpha); + penpos8(rthin,-10); + y1l=7/2interline; x1l=1/3interline; + z2r=z1+(interline*right) rotated alpha; + z3=1/2[z2,z4]; + x4=3/8interline; y4=2interline; + z6=z4l+(5/4interline*right) rotated alpha; +% x7l=x4l; y7r=y6l; + x7l=x4l; y7l=y4r; + x8=2/5interline; y8= interline-1/4interline; + z5=z6r shifted (sqrt(2)*rthin/4,sqrt(2)*rthin/4); + + pickup penrazor scaled rthin rotated 45; + draw z1--z2r; + draw z4l--z5; + penstroke z2e..z3e..z4e; + penstroke z6e..tension1.4..z7e..tension1.4..z8e; + penlabels(1,2,3,4,5,6,7,8); + endchar; + +def crook(expr a,w) = + begingroup; + save x,y; + penpos1(flare/2,-90); + penpos2(flare/2,0); + penpos3(flare/2,90); + penpos4(flare/2,180); + x4r=xpart a-w; y3r=ypart a+flare/4; + x1l=x2l=x3l=x4l; + y1l=y2l=y3l=y4l; + penpos5(stem,250); + x5=x4r+9/8flare; y5r=y1r; + penpos6(stem,260); + x6l=xpart a; y6l=ypart a; + penstroke z1e..z2e..z3e..z4e..z1e..z5e{right}..z6e; + penlabels(1,2,3,4,5,6); + endgroup; + enddef; + +def brush(expr a,w,b,v) = + begingroup; + save x,y; + z1=a; z2=b; + penpos3(w,angle(z2-z1)+90); + penpos4(w,angle(z2-z1)); + penpos5(v,angle(z1-z2)+90); + penpos6(v,angle(z1-z2)); + x3=x4=x1; y3=y4=y1; + x5=x6=x2; y5=y6=y2; + fill z3r{z1-z2}..z4l..{z2-z1}z3l..z5r{z2-z1}..z6l..{z1-z2}z5l..cycle; + penlabels(1,2,3,4,5,6); + endgroup; + enddef; + +fet_beginchar(incr code,4/3interline#,5/3interline#+2stafflinethickness#,0,0,"8th rest","-2","eighthrest"); + save x,y; + x1=w-stem/6; y1=h-flare/4; + crook (z1,w-stem/6); + z2-z1=whatever*dir70; + y2=stem/2; + brush (z1,stem/3,z2,stem); + % ugh + currentpicture:=currentpicture shifted (0,interline); +% currentpicture:=currentpicture shifted (0,interline+2stafflinethickness); + endchar; + +fet_beginchar(incr code,4/3interline#,5/3interline#+interline#+2stafflinethickness#,0,0,"16th rest","-2","sixteenthrest"); + save x,y; + x1=w-stem/6; y1=h-flare/4; + z2-z1=whatever*dir74; + y2=stem/2; + brush (z1,stem/2,z2,stem); + crook (z1,7/8w); + z3-z1=whatever*dir74; + y3=y1-interline; + crook (z3,7/8w); +% currentpicture:=currentpicture shifted (0,2stafflinethickness); + endchar; + +fet_beginchar(incr code,4/3interline#,5/3interline#+2interline#+2stafflinethickness#,0,0,"32th rest","-2","thirtysecondrest"); + save x,y; + x1=w-stem/6; y1=h-flare/4; + z2-z1=whatever*dir76; + y2=stem/2; + brush (z1,stem/2,z2,stem); + crook (z1,7/8w); + z3-z1=whatever*dir76; + y3=y1-interline; + crook (z3,7/8w); + z4-z1=whatever*dir76; + y4=y1-2interline; + crook (z4,7/8w); +% currentpicture:=currentpicture shifted (0,2stafflinethickness); + endchar; + +fet_beginchar(incr code,4/3interline#,5/3interline#+3interline#+2stafflinethickness#,0,0,"64th rest","-2","sixtyfourthrest"); + save x,y; + x1=w-stem/6; y1=h-flare/4; + z2-z1=whatever*dir78; + y2=stem/2; + brush (z1,stem/2,z2,stem); + crook (z1,7/8w); + z3-z1=whatever*dir78; + y3=y1-interline; + crook (z3,7/8w); + z4-z1=whatever*dir78; + y4=y1-2interline; + crook (z4,7/8w); + z5-z1=whatever*dir78; + y5=y1-3interline; + crook (z5,7/8w); +% currentpicture:=currentpicture shifted (0,2stafflinethickness); + endchar; + +fet_beginchar(incr code,4/3interline#,5/3interline#+4interline#+2stafflinethickness#,0,0,"128th rest","-2","hundredtwentyeighthrest"); + save x,y; + x1=w-stem/6; y1=h-flare/4; + z2-z1=whatever*dir80; + y2=stem/2; + brush (z1,stem/2,z2,stem); + crook (z1,7/8w); + z3-z1=whatever*dir80; + y3=y1-interline; + crook (z3,7/8w); + z4-z1=whatever*dir80; + y4=y1-2interline; + crook (z4,7/8w); + z5-z1=whatever*dir80; + y5=y1-3interline; + crook (z5,7/8w); + z6-z1=whatever*dir80; + y6=y1-4interline; + crook (z6,7/8w); +% currentpicture:=currentpicture shifted (0,2stafflinethickness); + endchar; + +fet_endgroup("rests"); +