]> git.donarmstrong.com Git - lilypond.git/blobdiff - mf/feta-sleur.mf
release: 1.5.29
[lilypond.git] / mf / feta-sleur.mf
index 8ee650e9ade74c18a70ea1c293095573165d2b5a..aead9a66c1cfc874b6f0ea885765b4546b13fcb0 100644 (file)
@@ -3,13 +3,16 @@
 % 
 % source file of LilyPond's pretty-but-neat music font
 % 
-% (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
-% & Han-Wen Nienhuys <hanwen@stack.nl>
+% (c) 1997--2002 Jan Nieuwenhuizen <janneke@gnu.org>
+% & Han-Wen Nienhuys <hanwen@cs.uu.nl>
 % 
+% see Documentation/fonts.tex
 
-mode_setup;
+mode_setup;
 
-% staffsize#=16pt#;
+%% staffsize#=16pt#;
+% staff_space#:=staffsize#/4;
+% stafflinethickness#:=0.1staff_space#;
 
 pi:=3.14159;
 
@@ -17,69 +20,40 @@ def atan(expr x) =
        (angle(1,x)*pi/180)
        enddef;
 
-%breapth, width, depth, height
 
-% urgh
-% having mf would be nice if only from a "use the source" point of view.
-%
-% getslurcontrol:
-%        slurhtlimit 90 div /slur_alpha exch def
-%        slurratio 60 div slur_alpha div  /slur_beta  exch def
-%        slur_beta mul 1 atan slur_alpha mul
-%
-% draw_slur:
-%        slur_b getslurcontrol 
-%        slur_dir mul /slur_ht exch def
-%        slur_b getslurcontrol /slur_indent exch def       
-%
-
-interline#:=staffsize#/4;
-stafflinethickness#:=0.1interline#;
 sleur_pen#:=stafflinethickness#;
 slurheightlimit#:=staffsize#/2;
-% staffrulethickness 1.5 mul  /slur_thick exch def
-slurthick#:=3/2stafflinethickness#;
+slurthick#:=1.8stafflinethickness#;
 
-define_pixels(staffsize,interline,stafflinethickness);
+define_pixels(staffsize,staff_space,stafflinethickness);
 define_pixels(sleur_pen,slurheightlimit,slurthick);
 
-sluralpha:=slurheightlimit#*pi/2;
-% slurratio:=1/3;
-slurratio:=0.3333;
-slurbeta:=3/4*pi*slurratio/sluralpha;
+sluralpha:=2slurheightlimit#/pi;
+slurratio:=1/3;
+slurbeta:=pi*slurratio/2slurheightlimit#;
+
+def draw_slur(expr dxs,dys,hs,d) =
+       save x, y;
+       save b, dx, dy, h, indent;
+       dx#:=dxs*1pt#;
+       dy#:=dys*1pt#;
+       h#:=hs*1pt#;
+       define_pixels(dx,dy);
+       b#:=length(dx#,dy#);
+       indent#:=sluralpha*atan(slurbeta*b#);
+       define_pixels(b,h,indent);
+       height:=(indent+h)*d;
+       z1=(0,0);
+       z2=(b,0);
+       z3=(indent,height);
+       z4=(b-indent,height);
+       z5=z4-(0,d*slurthick);
+       z6=z3-(0,d*slurthick);
+       path boogje;
+       boogje=z1..controls z3 and z4..z2..controls z5 and z6..cycle;
+       boogje:=boogje rotated angle(dxs,dys);
+       pickup pencircle scaled sleur_pen;
+       filldraw boogje;
+enddef;
 
-def drawslur(expr dxs,dys,d) =
-       beginchar(0,0,0,0) "Embedded mf";
-               dx#:=dxs*1pt#;
-               dy#:=dys*1pt#;
-               define_pixels(dx,dy);
-               b#:=length(dx#,dy#);
-%              message "sluralpha: "&decimal (sluralpha);
-%              message "slurbeta: "&decimal (slurbeta);
-%              message "s*b: "&decimal (slurbeta*b#);
-%              indent#:=sluralpha*atan(slurbeta*b#);
-               % ugh: huh? 2/5
-               indent#:=2/5*sluralpha*atan(slurbeta*b#);
-               define_pixels(b,indent);
-               height:=indent*d;
-               z1=(0,0);
-               z2=(b,0);
-               z3=(indent,height);
-               z4=(b-indent,height);
-               z5=z4-(0,d*slurthick);
-               z6=z3-(0,d*slurthick);
-               path boogje;
-               boogje=z1..controls z3 and z4..z2..controls z5 and z6..cycle;
-               boogje:=boogje rotated angle(dxs,dys);
-               pickup pencircle scaled sleur_pen;
-               filldraw boogje;
-               show z1;
-               show z2;
-               show z3;
-               show z4;
-               show z5;
-               show z6;
-               endchar;
-       enddef;
 
-% draw_slur(10,10,1);