input musicdef %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % BOGEN UND (DE)CRESCENDO % % % % (Phrasierungsbogen und Bogen der Steigung 0) % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% def drawslurs (expr st) = save i, factor, length, height; numeric i, absp, length, height, factor; factor:= 1/6; for i= 0 upto 15: length := (i+2)*nhw#; height := 0 ; beginchar(i, length, height, 0); clear; z2r = (w,h); z1l = origin; absp := abs((-h,w)); if (factor*absp)>2nhh : factor:= 2nhh/absp fi; z3r = 1/2z2l+factor*(-h,w); penpos1(thinwidth,90); penpos2(thinwidth,90); penpos3(5/12beamht,90); % currentpen := pencircle xscaled thinwidth yscaled beamht ; pickup pencircle scaled (1/16mm + blacker); penstroke z1e..z3e..z2e; %statt dir 30 endchar; endfor; enddef; def drawslursneg (expr st) = save i, factor, length, depth; numeric i, absp, length, depth, factor; factor:= 1/6; for i=0 upto 15: length := (i+2)*nhw#; depth := length*st ; beginchar(16+i, length, 0, depth); clear; z2l = (w,-d); z1r = origin; absp := abs((d,w)); if (factor*absp)>2nhh : factor:= 2nhh/absp fi; z3r = 1/2z2l+factor*(d,w); penpos1(thinwidth,90); penpos2(thinwidth,90); penpos3(5/12beamht,90); % currentpen := pencircle xscaled thinwidth yscaled beamht ; pickup pencircle scaled (1/16mm + blacker); penstroke (z1e..z3e..z2e) rotatedaround(1/2z2r, 180); endchar; endfor; enddef; def drawleftslur = save i, length, height; numeric i, length, height; length := 9*nhw#; for i = 1 upto 9: height := (i+2)*1/2nhh# ; beginchar(i-1+32, length, height, 0); clear; z2r = (w+4thinwidth,h); z1l = origin; penpos1(thinwidth,90); penpos2(5/12beamht,90); % currentpen := pencircle xscaled thinwidth yscaled beamht ; pickup pencircle scaled (1/16mm + blacker); penstroke z1e..z2e{(2w,0)}; %statt dir 30 endchar; endfor; enddef; def drawrightslur = save i, length, height; numeric i, length, height; length := 9*nhw#; for i= 1 upto 9: height := (i+2)*1/2nhh#; beginchar(i-1+48, length, height, 0); clear; z1r = (0-4\thinwidth,h); z2l = (w,0); penpos2(thinwidth,90); penpos1(5/12beamht,90); % currentpen := pencircle xscaled thinwidth yscaled beamht ; pickup pencircle scaled (1/16mm + blacker); penstroke z1e{right}..z2e; %statt dir 30 endchar; endfor; enddef; def drawleftslurneg = save i, length, depth; numeric i, length, depth; length := 9*nhw#; for i= 1 upto 9: depth := (i+2)*1/2nhh# ; beginchar(i-1+64, length, 0, depth); clear; z2l = (w+4thinwidth,-d); z1r = origin; penpos1(thinwidth,90); penpos2(5/12beamht,90); pickup pencircle scaled (1/16mm + blacker); % currentpen := pencircle xscaled thinwidth yscaled beamht ; penstroke z1e..z2e{(2w,0)}; %statt dir 30 endchar; endfor; enddef; def drawrightslurneg = save i, length, depth; numeric i, length, depth; length := 9*nhw#; for i= 1 upto 9: depth := (i+2)*1/2nhh#; beginchar(i-1+80, length, 0, depth); clear; z1l = (0-4\thinwidth,-d); z2r = (w,0); penpos2(thinwidth,90); penpos1(5/12beamht,90); % currentpen := pencircle xscaled thinwidth yscaled beamht ; pickup pencircle scaled (1/16mm + blacker); penstroke z1e{right}..z2e; %statt dir 30 endchar; endfor; enddef; %decrescendo und cresc. def drawcrescendo = save i, height, length, depth; numeric i, length, height, depth; for i= 0 upto 15: length := (i+1)*nhw#; depth := 1/2nhh# ; height := depth ; beginchar(i+96, length, height, depth); clear; z1 = origin; z2l = (w,h); z3r = (w,-d); penpos2(1/16mm,90); penpos1(1/16mm,90); penpos3(1/16mm,90); pickup pencircle scaled (blacker); penstrike z1e--z2e; penstrike z1e--z3e; endchar; endfor; enddef; def drawdecrescendo = save i, height, length, depth; numeric i, length, height, depth; for i= 0 upto 15: length := (i+1)*nhw#; depth := 1/2nhh# ; height := depth ; beginchar(i+112, length, height, depth); clear; z1l = (0,h); z2 = (w,0); z3r = (0,-d); penpos2(1/16mm,90); penpos1(1/16mm,90); penpos3(1/16mm,90); pickup pencircle scaled (blacker); penstrike z3e---z2e; penstrike z1e---z2e; %label(1,2,3); endchar; endfor; enddef; %%%%%%%%%%%%%%%%%%% % Bogen nach oben % %%%%%%%%%%%%%%%%%%% drawslurs(0); %%%%%%%%%%%%%%%%%%%% % Bogen nach unten % %%%%%%%%%%%%%%%%%%%% drawslursneg(0); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % linge Halbboegen nach oben % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% drawleftslur; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % rechte Halbboegen nach oben % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% drawrightslur; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % linke Halbboegen nach unten % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% drawleftslurneg; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % rechte Halbboegen nach unten % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% drawrightslurneg; %%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Crescendo und Decrescendo % %%%%%%%%%%%%%%%%%%%%%%%%%%%%% drawcrescendo; drawdecrescendo; end;