input musicdef
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                                             %
%                   BALKEN                                    %
%                                                             %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



font_x_height beamht#;

def drawbeams (expr st, jj) =
   save i, length, height;
   numeric i, length, height;
   length:= 0.5;
   for i=0 upto 7:
       height := length*st + beamht#;
       beginchar(jj*8+i, length, height, 0);
          clear;
        % x2 = w; x1 = 0;
          z2r = (w,h);
          z1l = origin;
          penpos1(beamht,90);
          penpos2(beamht,90);
          penstroke z1e---z2e;
        endchar;
        length :=  2*length;
   endfor;
enddef;

def drawbeamsneg (expr st, jj) =
   save i, length, depth;
   numeric i, length, depth;
   length:= 0.5;
   for i=0 upto 7:
       depth := length*st - beamht#;
       beginchar(jj*8+i, length, 0, depth);
          clear;
          z2l = (w,d);
          z1r = origin;
          penpos1(beamht,90);
          penpos2(beamht,90);
          penstroke z1e---z2e;
        endchar;
        length :=  2*length;
   endfor;
enddef;

numeric ss[];

ss[0]:=0.05;
ss[1]:=0.10;
ss[2]:=0.15;
ss[3]:=0.20;
ss[4]:=0.25;
ss[5]:=0.30;
ss[6]:=0.35;
ss[7]:=0.45;


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Balken mit positiver Steigung %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

for j=0 upto 7 :
drawbeams(ss[j],j);
endfor;


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Balken mit negativer Steigung %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

for j=0 upto 7 :
drawbeamsneg(-ss[j],j+8);
endfor;

end;