]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-0.1.18
authorfred <fred>
Sun, 24 Mar 2002 19:58:46 +0000 (19:58 +0000)
committerfred <fred>
Sun, 24 Mar 2002 19:58:46 +0000 (19:58 +0000)
mf/TODO
mf/autometric.mf
mf/bolletjes.mf
mf/eindelijk.mf [new file with mode: 0644]

diff --git a/mf/TODO b/mf/TODO
index ac3f4a796aa10fdb8cc169f842d71a4d348e6f64..b69830eee9b30a08191f56cfdb778f80dd9f176b 100644 (file)
--- 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
 
index 6d87094155659cda2b5b1d26d8671b60641f126f..e178978ddd1f754ff45c0a09bf87d313468ede20 100644 (file)
@@ -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;
 
index 9d7052d0c23ed9dfe407625eefb53fed5a4d7477..305660525b93fe5d2baca8b084d274d68fca03ba 100644 (file)
@@ -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 (file)
index 0000000..deabf71
--- /dev/null
@@ -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");
+