2 % feta-sleur.mf -- implement runtime MF slurs
4 % source file of LilyPond's pretty-but-neat music font
6 % (c) 1997 Jan Nieuwenhuizen <jan@digicash.com>
7 % & Han-Wen Nienhuys <hanwen@stack.nl>
20 %breapth, width, depth, height
23 % having mf would be nice if only from a "use the source" point of view.
26 % slurhtlimit 90 div /slur_alpha exch def
27 % slurratio 60 div slur_alpha div /slur_beta exch def
28 % slur_beta mul 1 atan slur_alpha mul
31 % slur_b getslurcontrol
32 % slur_dir mul /slur_ht exch def
33 % slur_b getslurcontrol /slur_indent exch def
36 interline#:=staffsize#/4;
37 stafflinethickness#:=0.1interline#;
38 sleur_pen#:=stafflinethickness#;
39 slurheightlimit#:=staffsize#/2;
40 % staffrulethickness 1.5 mul /slur_thick exch def
41 slurthick#:=3/2stafflinethickness#;
43 define_pixels(staffsize,interline,stafflinethickness);
44 define_pixels(sleur_pen,slurheightlimit,slurthick);
46 sluralpha:=slurheightlimit#*pi/2;
49 slurbeta:=3/4*pi*slurratio/sluralpha;
51 def drawslur(expr dxs,dys,d) =
52 beginchar(0,0,0,0) "Embedded mf";
57 % message "sluralpha: "&decimal (sluralpha);
58 % message "slurbeta: "&decimal (slurbeta);
59 % message "s*b: "&decimal (slurbeta*b#);
60 % indent#:=sluralpha*atan(slurbeta*b#);
62 indent#:=2/5*sluralpha*atan(slurbeta*b#);
63 define_pixels(b,indent);
69 z5=z4-(0,d*slurthick);
70 z6=z3-(0,d*slurthick);
72 boogje=z1..controls z3 and z4..z2..controls z5 and z6..cycle;
73 boogje:=boogje rotated angle(dxs,dys);
74 pickup pencircle scaled sleur_pen;