%
% source file of the Feta (not the Font-En-Tja) music font
%
-% (c) 2000 Jan Nieuwenhuizen <janneke@gnu.org>
+% (c) 2000--2004 Jan Nieuwenhuizen <janneke@gnu.org>
%
% Voor Cup
pedalpha = 40;
pedbeta = 25;
-penh#=0.7stafflinethickness#;
-penw#=4penh#;
-%penw#=penh#;
+penh#=0.7linethickness#;
+
+penw# = 2penh# + 0.14 staff_space#;
+
define_pixels (penh,penw);
pedalh# = 2staff_space#;
% code values for own pedal font commented out
% code := 41; % * = 42
-def draw_asterisk_bulb (expr w, h, i) =
- begingroup;
- clearxy;
- save bulb, p;
+fet_beginchar("Pedal asterisk", "*", "pedalasterisk")
+ set_char_box(0, 7/9pedalh#, 0, pedalh#);
+ z0 = (1/2w, h - 1/2w);
+ save bulb, p, radius, thin;
path p;
- bulb = 4/3penw;
+
+ thin = 0.8 linethickness;
+
+ bulb + 2 radius = w;
+ 0.9 thin + bulb = (radius * pi * 2) / 8;
pickup pencircle scaled penh;
penpos 1 (bulb, 180);
penpos 2 (bulb, 0);
- penpos 3 (penh, 0);
- penpos 4 (penw, 0);
+ penpos 3 (thin, 0);
- z0 = (1/2w, h - 1/2w);
- z1 = (1/2w, h-1/2bulb);
+ z1 = z0 + (0,radius);
z2 = z1;
- z3 = (x1, y1-penw);
- z4 = (x1, y3-2penh);
+
+ save inner_r ;
+ inner_r = .45 radius ;
+
+ z4l = z0 + inner_r * dir (90 + 360/16);
+ z4r = z0 + inner_r * dir (90 - 360/16);
+
+ z4 = .5 [z4l,z4r];
+ z3 = .75 [z1,z4];
+
penlabels (1,2,3,4);
-% penstroke z1e{up}..z2e{down}..z3e{down}..z4e;
- p = z1l{up}..z2l{down}..z3l{down}..z4l..z4r
- ..z3r{up}..z2r{up}..z1r{down}..cycle;
- p := p rotatedaround (z0, 360/8i);
- fill p;
- endgroup;
- enddef;
-fet_beginchar("Pedal asterisk", "*", "pedal-asterisk")
- set_char_box(0, 7/9pedalh#, 0, pedalh#);
- z0 = (1/2w, h - 1/2w);
- for i = 0 upto 7:
- draw_asterisk_bulb (w, h, i);
- pickup pencircle scaled penw;
- undraw z0;
- endfor
+ %% what is empty path?
+ p = z3r{up} .. z1l{up}..z2l{down}..z3l{down} .. z4l{dir (180 + 360/16)};
+ for i = 1 upto 7:
+ p := p ... ((z3r{up}.. z1l{up}..z2l{down}..z3l{down}..z4l{dir (180 + 360/16)})
+ rotatedaround (z0, 360/8i));
+ endfor
+
+ p := p .. cycle;
+ fill p;
+ pickup pencircle scaled (7/8 inner_r);
+ undraw z0;
fet_endchar;
% skip + and ,
% code := 44; % - = 45
-fet_beginchar("Pedal dash", "-", "pedal-dash")
+%% ugh. rounded corners!
+
+fet_beginchar("Pedal dash", "-", "pedaldash")
set_char_box(0, 3penw#, 0, pedalbh#);
pickup pencircle scaled penh;
penstroke z1e{dir 40}..tension 1.2 ..z2e{dir 40};
fet_endchar;
-fet_beginchar("Pedal dot", ".", "pedal-dot")
+fet_beginchar("Pedal dot", ".", "pedaldot")
set_char_box(0, penw#, 0, penw#);
pickup pencircle scaled penw;
draw (1/2penw,1/2penw);
y11 = 1/5h;
penlabels (1,2,3,4,5,6,7,8,9,10,11);
- penstroke z1e..tension 2.5 .. z2e.. tension 1.5 .. z3e ..tension 2.5
+ soft_penstroke z1e..tension 2.5 .. z2e.. tension 1.5 .. z3e ..tension 2.5
..z4e..tension 1.5
..z5e..z6e..tension 1.5
..z7e..tension 1.5
y16r = y2r;
penlabels (12,13,14,15,16);
- penstroke z12e{down}..tension 1.1
+ soft_penstroke z12e{down}..tension 1.1
..z13e{dir (180-pedbeta)}..tension 1.1
..z14e{right}..tension 1.1
..z15e{dir (180+pedbeta)}..tension 1.1
penlabels (1,2,3,4,5);
- penstroke z1e{dir (-70-90)}..tension 1.1
+ soft_penstroke z1e{dir (-70-90)}..tension 1.1
..z2e{down}..tension 1.1
..z3e{right}..tension 1.1
..z4e{dir (90+10)}..tension 1.1
y8 = 1/5pedalh;
penlabels (1,2,3,4,5,6,7,8);
- penstroke z1e{dir pedalpha}
+ soft_penstroke z1e{dir pedalpha}
..z2e{dir pedalpha}.. tension 1.1
%urg
..z3e..tension 1.05
% code := 79; % P = 80
-fet_beginchar("Pedal P", "P", "pedal-P")
+fet_beginchar("Pedal P", "P", "pedalP")
set_char_box(0, 5/6pedalh#, 0, pedalh#);
draw_pedal_P;
fet_endchar;
% code := 99; % d = 100
-fet_beginchar("Pedal d", "d", "pedal-d")
+fet_beginchar("Pedal d", "d", "pedald")
set_char_box(0, 2/3pedalh#, 0, 7/8pedalh#);
draw_pedal_d;
fet_endchar;
-fet_beginchar("Pedal e", "e", "pedal-e")
+fet_beginchar("Pedal e", "e", "pedale")
set_char_box(0, 2/5pedalh#, 0, pedalbh#);
draw_pedal_e;
fet_endchar;
% The pre 1.3.59 user-scm kerning sucks, but I'm not struck by
% the looks of this either.
%
-fet_beginchar("Pedal Ped", "Ped", "pedal-Ped")
+fet_beginchar("Pedal Ped", "Ped", "pedalPed")
P_width# = 5/6pedalh#;
e_width# = 2/5pedalh#;
d_width# = 2/3pedalh#;