input musicdef
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% BOGEN (KONVEX) %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
def drawslursneg (expr i,j) =
save jj, factor, length, depth;
numeric jj, absp, length, depth, factor;
factor:= 1/6;
length := j*nhw#;
depth := i*1/2nhh#;
if j<4 : jj := (j*(j-1)+(i-1))*8
else: jj := (i-1)*8+(j mod 2)*64+floor((j-2)/2);fi;
beginchar(jj, length, 0, depth);
clear;
% x2 = w; x1 = 0;
z2r = (w,-d);
z1l = origin;
absp := abs((d,w));
if (factor*absp)>2nhh : factor:= 2nhh/absp fi;
z3r = 1/2z2r+factor*(d,w);
penpos1(thinwidth,90);
penpos2(thinwidth,90);
penpos3(5/12beamht,90);
currentpen := pencircle xscaled thinwidth yscaled beamht ;
penstroke (z1e..z3e..z2e);
endchar;
enddef;
%%%%%%%%%%%%%%%%%%%%%%%
% negative Steigungen %
%%%%%%%%%%%%%%%%%%%%%%%
for j= 1 upto 17:
for i= 1 upto min(2j,8):
drawslursneg(i,j);
endfor;endfor;
end;