%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % NOTENKOEPFE UND FAEHNCHEN % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % %%%%%%%%%%%%%%% %%notenkoepfe % %%%%%%%%%%%%%%% % % % % def drawnoteb(expr noteheadwidth, theta_a, theta_b, theta_c, width_a, width_b) = % .l penpos1(width_a, theta_a); % .2 % .r penpos3(width_a, 180+theta_a); %.l.1.r .r.3.l % .r penpos2(width_b, 180+theta_b); % .4 % .l penpos4(width_b, theta_b); % y1 = y3 = 0; x2 = x4 = 1/2noteheadwidth; x1l= 0; x3l = w; y2l = h; y4l = -h; penstroke (z1e{up}..z2e{right}..z3e{down}..z4e{left}..cycle) rotatedaround((origin +1/2w*right),theta_c); enddef; % % %%%%%%%%%%%%%%% %% flags % %%%%%%%%%%%%%%% % % % pickup pencircle scaled (0.1pt); def penstrike text t = forsuffixes e = l,r: path_.e:=t; endfor if cycle path_.l: cyclestroke_ else: filldraw path_.l -- reverse path_.r -- cycle fi enddef; def flagshape (suffix i) (expr width, height, thicka, thin, shift) = pair intersectionp; % thick := 1/3 height; sh[-3] = origin; sh[i] = shift; % .1 penpos[i](thick,90); % penpos[i+1]( 3thin ,90); % .2 penpos[i+2](thin,0); % penpos[i+3](thin,0); % .3 x[i] = -1/16mm; % y[i]r = height; % .4 x[i+1] = 3/8width; % y[i+1] = height - thick; % y[i+3] = 0; x[i+2]r = x[i+3]+2s= width; y[i+2]r = height - 2thick; if i>1: intersectionp = z[i-2]; else : intersectionp = z[i+3]; fi; penstrike (z[i]e{dir(angle(z[i+1]e-z[i]e)-15)} ..z[i+1]e{z[i+1]e-z[i]e} ..z[i+2]e{down}..intersectionp shifted (sh[i-4]-sh[i])) shifted sh[i]; for n=0 upto 3: k:=i+n; penlabels(k);endfor; enddef; %def flagshaper (suffix i) (expr width, height, thicka, thin, shift) = % pair intersectionp; % % thick := 1/3 height; % sh[-3] := origin+shift; % sh[i] = shift; % .1 % penpos[i](thick,90); % % penpos[i+1]( 3thin ,90); % .2 % penpos[i+2](thin,0); % % penpos[i+3](thin,0); % .3 % x[i] = 0; % % y[i]r = height; % .4 % x[i+1] = 3/8width; % % y[i+1] = height - thick; % % y[i+3] = 0; % x[i+2]r = x[i+3]+2s= width; % y[i+2]r = height - 2thick; % if i>1: intersectionp = z[i-2]; % else : intersectionp = z[i+3]; % fi; % penstroke (counterclockwise % (z[i]e{dir(angle(z[i+1]e-z[i]e)-15)} % ..z[i+1]e{z[i+1]e-z[i]e} % ..z[i+2]e{down}..intersectionp shifted (-sh[i-4]+sh[i])) % reflectedabout (z1r scaled 0.5, % z1r scaled 0.5+right) ) % shifted sh[i]; % for n=0 upto 3: % k:=i+n; % penlabels(k);endfor; % enddef; def flagshaper (suffix i) (expr width, height, thicka, thin, shift) = pair intersectionp; % thick := 1/3 height; sh[-3] := origin+shift; sh[i] = shift; % .1 penpos[i](thick,90); % penpos[i+1]( 3thin ,90); % .2 penpos[i+2](thin,0); % penpos[i+3](thin,0); % .3 x[i] = 0; % y[i]r = height; % .4 x[i+1] = 3/8width; % y[i+1] = height - thick; % y[i+3] = 0; x[i+2]r = x[i+3]+2s= width; y[i+2]r = height - 2thick; if i>1: intersectionp = z[i-2]; else : intersectionp = z[i+3]; fi; penstrike (counterclockwise (z[i]e{dir(angle(z[i+1]e-z[i]e)-15)} ..z[i+1]e{z[i+1]e-z[i]e} ..z[i+2]e{down}..intersectionp shifted (-sh[i-4]+sh[i])) reflectedabout (z1r scaled 0.5, z1r scaled 0.5+right) ) shifted sh[i]; enddef; %%%%%%%%%%%%%%% %% volle Note % %%%%%%%%%%%%%%% beginchar(33, nhw#, .5nhh#, .5nhh#); w:=w+2thinwidth; drawnoteb(w, 0, 90, 20, w/2, nhh/2); endchar; %%%%%%%%%%%%%%% %% halbe Note % %%%%%%%%%%%%%%% beginchar(34, nhw#, .5nhh#, .5nhh#); w:=w+2thinwidth; drawnoteb(w, 0, 90, 20, 3*thinwidth, nhh/4); endchar; %%%%%%%%%%%%%%% %% ganze Note % %%%%%%%%%%%%%%% beginchar (35,1.5nhh#, .5nhh#, .5nhh#); drawnoteb(w, 0, 85, 0, nhh/3, 3*thinwidth); endchar; %%%%%%%%%%%%%%%%%%%%%%% %% "8flag nach unten" % %%%%%%%%%%%%%%%%%%%%%%% beginchar(40, 0, 3nhh#, 0); clear; w:=nhw; flagshape (1,w, h, nhh, 5thinwidth, origin); w:=0; endchar; %%%%%%%%%%%%%%%%%%%%%%%% %% "16flag nach unten" % %%%%%%%%%%%%%%%%%%%%%%%% beginchar(41, 0, 3.25nhh#, 0); clear; w:=nhw; flagshape (1, w, 2.5nhh, 2/3nhh, 5thinwidth, origin); flagshape (5,.95 w, 2.25 nhh, 2/3nhh, 5thinwidth, (0,nhh)); w:=0; endchar; %%%%%%%%%%%%%%%%%%%%%%%% %% "32flag nach unten" % %%%%%%%%%%%%%%%%%%%%%%%% beginchar(42, 0, 3.75 nhh#, 0); clear; w:=nhw; flagshape (1, w, 2.5nhh, 2/3nhh, 5thinwidth, origin); flagshape (5, .95w, 2.25 nhh, 2/3nhh, 5thinwidth, (0,nhh)); flagshape (9, .9w, 2 nhh, 2/3nhh, 5thinwidth, (0,1.75nhh)); w:=0; endchar; %%%%%%%%%%%%%%%%%%%%%%%% %% "64flag nach unten" % %%%%%%%%%%%%%%%%%%%%%%%% beginchar(43, 0, 4.25nhh#, 0); clear; w:=nhw; flagshape (1, w, 2.5nhh, 2/3nhh, 5thinwidth, origin); flagshape (5,.95 w, 2.25 nhh, 2/3nhh, 5thinwidth, (0,nhh)); flagshape (9,.9w, 2 nhh, 2/3nhh, 5thinwidth, (0,1.75nhh)); flagshape(13,0.85w, 2nhh, 2/3nhh, 5thinwidth, (0,2.25nhh)); w:=0; endchar; %%%%%%%%%%%%%%%%%%%%%%%%% %% "128flag nach unten" % %%%%%%%%%%%%%%%%%%%%%%%%% beginchar(44, 0, 4.5nhh#, 0); clear; w:=nhw; flagshape (1, w, 2.5nhh, 2/3nhh, 5thinwidth, origin); flagshape (5, w, 2.25nhh, 2/3nhh, 5thinwidth, (0,nhh)); flagshape (9, w, 2 nhh, 2/3nhh, 5thinwidth, (0,1.75nhh)); flagshape(13,0.9 w, 2nhh, 2/3nhh, 5thinwidth, (0,2.25nhh)); flagshape(17,0.9 w, 1.5nhh, 1/3nhh, 5thinwidth, (0,3nhh)); w:=0; endchar; %%%%%%%%%%%%%%%%%%%%%% %% "8flag nach oben" % %%%%%%%%%%%%%%%%%%%%%% beginchar(45, 0, 3nhh#, 0); clear; w:=nhw; flagshaper(1,w, h, nhh, 5thinwidth, origin); penlabels(1,2,3,4); w:=0; endchar; %%%%%%%%%%%%%%%%%%%%%%% %% "16flag nach oben" % %%%%%%%%%%%%%%%%%%%%%%% beginchar(46, 0, 3.25nhh#, 0); clear; w:=nhw; flagshaper(1, w, 2.5nhh, 2/3nhh, 5thinwidth, (0,0.75nhh)); flagshaper(5, w, 2.25 nhh, 2/3nhh, 5thinwidth,(0,-0.25nhh)); penlabels(1,2,3,4,5,6,7,8); w:=0; endchar; %%%%%%%%%%%%%%%%%%%%%%% %% "32flag nach oben" % %%%%%%%%%%%%%%%%%%%%%%% beginchar(47, 0, 3.75 nhh#, 0); clear; w:=nhw; flagshaper(1, w, 2.5nhh, 2/3nhh, 5thinwidth, (0,1.5nhh)); flagshaper(5, w, 2.5nhh, 2/3nhh, 5thinwidth, (0,0.75nhh)); flagshaper(9, .95w, 2.25 nhh, 2/3nhh, 5thinwidth, origin); penlabels(1,2,3,4,5,6,7,8,9,10,11,12); w := 0; endchar; %%%%%%%%%%%%%%%%%%%%%%% %% "64flag nach oben" % %%%%%%%%%%%%%%%%%%%%%%% beginchar(48, 0, 4.25nhh#, 0); clear; w:=nhw; flagshaper(1, w, 2.5nhh, 2/3nhh, 5thinwidth, (0,1.75nhh)); flagshaper(5, w, 2.25 nhh, 2/3nhh, 5thinwidth, (0,1nhh)); flagshaper(9,w, 2 nhh, 2/3nhh, 5thinwidth, (0,0.34nhh)); flagshaper(13,0.9w, 2nhh, 2/3nhh, 5thinwidth, (0,-0.32nhh)); penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); w := 0; endchar; %%%%%%%%%%%%%%%%%%%%%%%% %% "128flag nach oben" % %%%%%%%%%%%%%%%%%%%%%%%% beginchar(49, 0, 4.5nhh#, 0); clear; w:=nhw; flagshaper (1, w, 2.25nhh, 2/3nhh, 5thinwidth, (0,2.5nhh)); flagshaper (5, w, 2.25nhh, 2/3nhh, 5thinwidth, (0,1.75nhh)); flagshaper (9, w, 2 nhh, 2/3nhh, 5thinwidth, (0,1nhh)); flagshaper(13,0.9 w, 2nhh, 2/3nhh, 5thinwidth, (0,0.5nhh)); flagshaper(17,0.9 w, 2nhh, 1/3nhh, 5thinwidth, (0,0nhh)); w := 0; endchar;