diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/mtex/metafont |
Initial commit
Diffstat (limited to 'macros/mtex/metafont')
-rw-r--r-- | macros/mtex/metafont/acc16.mf | 142 | ||||
-rw-r--r-- | macros/mtex/metafont/beam16.mf | 79 | ||||
-rw-r--r-- | macros/mtex/metafont/music16.mf | 12 | ||||
-rw-r--r-- | macros/mtex/metafont/musicdef.mf | 71 | ||||
-rw-r--r-- | macros/mtex/metafont/noten16.mf | 292 | ||||
-rw-r--r-- | macros/mtex/metafont/pause16.mf | 184 | ||||
-rw-r--r-- | macros/mtex/metafont/slur16.mf | 229 | ||||
-rw-r--r-- | macros/mtex/metafont/slurdd16.mf | 41 | ||||
-rw-r--r-- | macros/mtex/metafont/slurdu16.mf | 42 | ||||
-rw-r--r-- | macros/mtex/metafont/slurud16.mf | 40 | ||||
-rw-r--r-- | macros/mtex/metafont/sluruu16.mf | 39 | ||||
-rw-r--r-- | macros/mtex/metafont/sonder16.mf | 112 | ||||
-rw-r--r-- | macros/mtex/metafont/vio16.mf | 195 |
13 files changed, 1478 insertions, 0 deletions
diff --git a/macros/mtex/metafont/acc16.mf b/macros/mtex/metafont/acc16.mf new file mode 100644 index 0000000000..821f879e8a --- /dev/null +++ b/macros/mtex/metafont/acc16.mf @@ -0,0 +1,142 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% VERSETZUNGSZEICHEN % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + +%%%%%%%%%%%% +%% "flat" % +%%%%%%%%%%%% + +beginchar(50, nhw#, 2nhh#, 2nhh#); + clear; + penpos4(7/24nhh, 30);%/5,20 % 1 + penpos3(nhh/5,-90);%/5,20 % + penpos2(nhh/5, 90);%/5,20 % + y1 = h; %4 + x1 = x2 = x3 = s; x4 = w-s; % 2 + y4 = s; % + y2l - y3r = 1/4h; y2l = 0; % 3 + currentpen:= pencircle scaled 3thinwidth; + penstroke z2e...z4e...z3e{sw};%right ,sw + draw z1--z3; + draw z1--z3; +penlabels(1,2,3,4); +endchar; + +%%%%%%%%%% +%% "bb" % +%%%%%%%%%% + +beginchar(51,2nhw#, 2nhh#, 2nhh#); + clear; + penpos4(nhh/4, 0);%/5,20 + penpos3(nhh/4,-90);%/5,20 + penpos2(nhh/4, 90);%/5,20 + y1 = h; %4 + x1 = x2 = x3 = s; x4 = w/2-s; % 2 + y4 = s; % + y2l - y3r = 1/4h; y2l = 0; % 3 + currentpen:= pencircle scaled 3thinwidth; + draw z1--z3; + draw z1--z3; + penstroke z2e..z4e...z3e{sw}; + draw (z1--z3) shifted ((w/2 - 1.5s),0); + penstroke (z2e..z4e...z3e{sw})shifted ((w/2 -1.5s),0); +endchar; + +%%%%%%%%%%%%% +%% "sharp" % +%%%%%%%%%%%%% + +beginchar(52, nhw#, 1.5nhh#, 1.5nhh#); + clear; + penpos3(nhh/2,90); + penpos4(nhh/2,90); + y1 = h - s; y1 - y2 = 2h - s; + x1 = x2 = s; z3 = (0,1/4nhh); + y4l = y3r; x4 = w; + currentpen:= pencircle scaled 3thinwidth; + draw z1--z2; + draw (z1--z2) shifted (w-2s,s); + penstroke z3e--z4e; + penstroke (z3e--z4e) shifted (0, -nhh); +penlabels(1,2,3,4); +endchar; + +%%%%%%%%%% +%% "xx" % +%%%%%%%%%%% + +beginchar(53, nhw#, .5nhh#, .5nhh#); + clear; + z1 = (s, h-s); z2 = (w-s, h-s); + z3 = (s,-h+s); z4 = (w-s,-h+s); + currentpen:= pencircle scaled .2nhh; + draw z1--z4; draw z3--z2; + currentpen:= pencircle scaled .3nhh; + drawdot z1; drawdot z2; drawdot z3; drawdot z4; +endchar; + +%%%%%%%%%%%%%%% +%% "natural" % +%%%%%%%%%%%%%%% + +beginchar(54, nhw#, 1.5nhh#, 1.5nhh#); + clear; + penpos3(nhh/2,90); + penpos4(nhh/2,90); + y1 = h; y2 = -h + nhh/2; + x1 = x2 = s; z3l = (s,0); + y4 = y3r; x4 = w-s; + currentpen:= pencircle scaled 3thinwidth; + draw z1--z2; + draw (z1--z2) shifted (w-2s,-h+y4r); + penstroke z3e--z4e; + penstroke (z3e--z4e) shifted (0, -nhh); +endchar; + +%%%%%%%%%%%%%%%% +%% "1/4 flat" % +%%%%%%%%%%%%%%%% + +beginchar(55, nhw#, 2nhh#, 2nhh#); + clear; + penpos4(7/24nhh, 30);%/5,20 % 1 + penpos3(nhh/5,-90);%/5,20 % + penpos2(nhh/5, 90);%/5,20 % + y1 = h; % 4 + x1 = x2 = x3 = w-s; x4 =2w-3s; % 2 + y4 = s; % + y2l - y3r = 1/4h; y2l = 0; % 3 + currentpen:= pencircle scaled 3thinwidth; + penstroke (counterclockwise + (z2e...z4e...z3e{sw}) reflectedabout(z1 ,z3)); + draw z1--z3; + draw z1--z3; +penlabels(1,2,3,4); +endchar; + +%%%%%%%%%%%%%%%% +%% "3/4 flat" % +%%%%%%%%%%%%%%%% + +beginchar(56, 2nhw#-2S, 2nhh#, 2nhh#); + clear; + penpos4(7/24nhh, 30);%/5,20 % 1 + penpos3(nhh/5,-90);%/5,20 % + penpos2(nhh/5, 90);%/5,20 % + y1 = h; % 4 + x1 = x2 = x3 = w/2; x4 =w-s; % 2 + y4 = s; % + y2l - y3r = 1/4h; y2l = 0; % 3 + currentpen:= pencircle scaled 3thinwidth; + penstroke z2e...z4e...z3e{sw}; + penstroke (counterclockwise + (z2e...z4e...z3e{sw}) reflectedabout(z1 ,z3)); + draw z1--z3; + draw z1--z3; +penlabels(1,2,3,4); +endchar; diff --git a/macros/mtex/metafont/beam16.mf b/macros/mtex/metafont/beam16.mf new file mode 100644 index 0000000000..03239d1784 --- /dev/null +++ b/macros/mtex/metafont/beam16.mf @@ -0,0 +1,79 @@ +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; + diff --git a/macros/mtex/metafont/music16.mf b/macros/mtex/metafont/music16.mf new file mode 100644 index 0000000000..9565133273 --- /dev/null +++ b/macros/mtex/metafont/music16.mf @@ -0,0 +1,12 @@ +input musicdef +font_x_height nhh#; +font_quad nhw#; +font_normal_space 0pt; +font_normal_stretch 0pt; +font_normal_shrink 0pt; +input noten16 +input acc16 +input pause16 +input vio16 +input sonder16 +end diff --git a/macros/mtex/metafont/musicdef.mf b/macros/mtex/metafont/musicdef.mf new file mode 100644 index 0000000000..fbbef58249 --- /dev/null +++ b/macros/mtex/metafont/musicdef.mf @@ -0,0 +1,71 @@ +% this is musicdef.mf +% +% +% hier evtl. mode fuer gewuenschten output setzen +% +% AGFA P400 mode: for devices that print 406 pixels per inch +% mode_def agfa = +% proofing:=0; +% fontmaking:=1; +% tracingtitles:=0; +% pixels_per_inch:=406; +% blacker:=0.65; +% fillin:=0; +% o_correction:=1; +% enddef; +% localfont:=agfa; +% mode:=agfa; +% +% low resolution music fonts are not very nice - but you need something... + mode_def atari = + proofing:=0; + fontmaking:=1; + tracingtitles:=0; + pixels_per_inch:=96; + blacker:=1.0; + fillin:=0; + o_correction:=1; + enddef; + localfont:=atari; + mode:=atari; + mode_setup; +% +% +%mode_def ibm = % ibm mode: for the IBM3820 +% proofing:=0; % no, we're not making proofs +% fontmaking:=1; % yes, we are making a font +% tracingtitles:=0; % no, don't show titles in the log +% pixels_per_inch:=240; +% blacker:=.78; % (this value is conjectural) +% fillin:=0.25; % (ditto) +% o_correction:=.5; % (ditto) +% enddef; +% +fontmaking:=1; +turningcheck:=0; +displaying:=1; +designsize:=16; +nhh#:=1/4designsize; %noteheadheight +nhw#:=1.2nhh#; %noteheadwidth +beamht#:=0.6nhh#; %Balkenst"arke +nhh:=nhh#*pt; %noteheadheight *pt +nhw:=nhw#*pt; %noteheadwidth *pt +thinwidth := 0.1pt; +beamht := beamht#*pt; +s := 10thinwidth; +S := 1/16designsize; +%pair constants +pair ne,se,sw,nw; %northeast,southeast,southwest,northwest +ne = up+right; se = down+right; sw = down+left; nw = up+left; +openit; +def clear = + numeric x[],y[],x[]l,y[]l,x[]r,y[]r,dx[],dy[]; + pair sh[]; +enddef; +% +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; +% diff --git a/macros/mtex/metafont/noten16.mf b/macros/mtex/metafont/noten16.mf new file mode 100644 index 0000000000..6aff8ab739 --- /dev/null +++ b/macros/mtex/metafont/noten16.mf @@ -0,0 +1,292 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% 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; diff --git a/macros/mtex/metafont/pause16.mf b/macros/mtex/metafont/pause16.mf new file mode 100644 index 0000000000..7ebbf449f9 --- /dev/null +++ b/macros/mtex/metafont/pause16.mf @@ -0,0 +1,184 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% PAUSEN % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +%%%%%%%%% +%% "dp" % +%%%%%%%%% + +beginchar(58,1/2nhw#, 3nhh#, 0); + clear; + penpos1(nhh,90); + penpos2(nhh,90); + y1r = y2r = h; + x1r = 0; x2r = w; + currentpen:= pencircle; + penstroke z1e--z2e; +labels(1,2); +endchar; + +%%%%%%%%%% +%% "ddp" % +%%%%%%%%%% + +beginchar(59,1/2nhw#, 3nhh#, 0); + clear; + penpos1(2nhh,90); + penpos2(2nhh,90); + y1r = y2r = h; + x1r = 0; x2r = w; + currentpen:= pencircle; + penstroke z1e--z2e; +labels(1,2); +endchar; + +%%%%%%%%%%%%%%%%%% +%% "ganze Pause" % +%%%%%%%%%%%%%%%%%% + +beginchar(60, nhw#, 3nhh#, 0); + clear; + penpos1(nhh/2,90); + penpos2(nhh/2,90); + y1r = y2r = h; + x1r = 0; x2r = w; + currentpen:= pencircle; + penstroke z1e--z2e; +endchar; +%charwd:=4.5; chardx:=charwd*pt; chardp:=0; charht:=4; + +%%%%%%%%%%%%%%%%%% +%% "halbe Pause" % +%%%%%%%%%%%%%%%%%% + +beginchar(61, nhw#, 2.5nhh#, 0); + clear; + penpos1(nhh/2,90); + penpos2(nhh/2,90); + y1r = y2r = h; + x1r = 0; x2r = w; + currentpen:= pencircle; + penstroke z1e--z2e; +endchar; + +%%%%%%%%%%%%%%%%%%%% +%% "viertel Pause" % +%%%%%%%%%%%%%%%%%%%% + +beginchar(62, nhw#, 4nhh#, 0); % .1 + clear; % .2 + thin := 5 thinwidth; thick := 1/2 nhh; % 8..3 + alpha_a = -50; alpha_b = -50; % .4 + penpos1 ( thin, (alpha_a+90)); % .5 + penpos5 ( thin, (alpha_b)); % .6 + penpos2 ( thick, alpha_a ); % + penpos4 ( thick, alpha_b ); % .7 + penpos3 ( thick, 1/2(alpha_a+alpha_b)); + x3r:=9/10[x3,x3r]; + penpos8 ( thick, 1/2(alpha_a+alpha_b)); + x8l:=9/10[x8,x8l]; + penpos6 ( 1/2thick, (alpha_b+10)); + penpos7 ( 1/4thick,-20); + y1l = h - 2s; + x1l = 2s; + z2r = z1 +(nhh* right) rotated alpha_a; + z5 = z4l+(nhh* right) rotated alpha_b; + z3 = 1/3[z2,z4]; + z8 = 2/3[z2,z4]; +% z3 = 1/2[z2r,z4]; + z4 = (w,h) scaled .5; + y6r = 1.5nhh; + x6l = x4l; + x7 = w/2; y7r= nhh; + currentpen:= pencircle scaled thin; + draw z1--z2r; draw z5--z4l; + penstroke z2e..z3e..z8e..z4e; + penstroke z5e{nw}..z6e{z7-z6}..z7e; +endchar; +%%title "viertelpause"; % +%beginchar(62, nhw#, 4nhh#, 0); % .1 +% clear; % .2 +% thin := 5 thinwidth; thick := 1/2 nhh; % 8..3 +% alpha_a = -50; alpha_b = -50; % .4 +%% penpos4(thick,-45); +% z1 = (s,h-s); +% z3 = (w,nhh); +% z2-z3=(h/2-s)*up; +% z1-z6=(h/2-2s)*up; +% z4r = 1/3z1; +% z4l = (w/2,nhh);% z2 = (w-s,h-nhh-s); +% % 1[z2,z4r]=1/3(w,h); +% z5 = 1/2(w,nhh); +% currentpen:= pencircle scaled thin;%4 +% draw z1--z2; draw z6--z3; +% filldraw z1--z2..control1/3[-z2,z4r] +% %-(w/2,h/2))} +% ..z3--z6..control1/4[-z6,z2] +% %(w/2,h-nhh))} +% ..z1--cycle; +% filldraw z3...z4r...z5--z5..z4l..z3..cycle; +%penlabels(1,2,3,4,5,6); +%endchar; +%end; + +%%%%%%%%%%%%%%%%%%% +%% "achtel Pause" % +%%%%%%%%%%%%%%%%%%% + +beginchar(63, 2nhh#, 3nhh#, 0) +clear; + %punkte f"ur achtelpause, 16. und 32. Pause + x1=y1= nhh; x2=x6=7/4nhh; y2=11/4nhh; + x3=x4=x5=1/2nhh; y3=10/4nhh; + y4=3nhh; y5=0; y6=15/4nhh; + currentpen := pencircle scaled 2thinwidth; + draw z1..z2; + currentpen := pensquare rotated45 scaled(sqrt2*thinwidth); + draw z2..z3{up+left}; + fill z3..z4..z3..cycle; +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%% +%% "sechzehntel Pause" % +%%%%%%%%%%%%%%%%%%%%%%%% + +beginchar(64,2nhh#, 3nhh#, 0) + clear; + %punkte f"ur achtelpause, 16. und 32. Pause + x1=y1= nhh; x2=x6=7/4nhh; y2=11/4nhh; + x3=x4=x5=1/2nhh; y3=10/4nhh; + y4=3nhh; y5=0; y6=15/4nhh; + currentpen := pencircle scaled 2thinwidth; + draw z5..z2; + currentpen := pensquare rotated45 scaled(sqrt2*thinwidth); + draw z2..z3{up+left}; + draw z2..z3{up+left} shifted(-1/2nhh,-nhh); + fill z3..z4..z3..cycle; + fill z3..z4..z3..cycle shifted (-1/2nhh,-nhh); +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% "zweiunddreissigstel Pause" % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +beginchar(65,2nhh#, 4nhh#, 0) + clear; + %punkte f"ur achtelpause, 16. und 32. Pause + x1=y1= nhh; x2=x6=7/4nhh; + y2=11/4nhh; x3=x4=x5=1/2nhh; y3=10/4nhh; + y4=3nhh; y5=0; y6=15/4nhh; + currentpen := pencircle scaled 2thinwidth; + draw z5..z6; + currentpen := pensquare rotated45 scaled(sqrt2*thinwidth); + draw z2..z3{up+left} shifted( 0,nhh); + draw z2..z3{up+left} shifted(-1/4nhh, 0); + draw z2..z3{up+left} shifted(-2/3nhh,-nhh); + fill z3..z4..z3..cycle shifted ( 0, nhh); + fill z3..z4..z3..cycle shifted (-1/4nhh, 0); + fill z3..z4..z3..cycle shifted (-2/3nhh,-nhh); +endchar; diff --git a/macros/mtex/metafont/slur16.mf b/macros/mtex/metafont/slur16.mf new file mode 100644 index 0000000000..1ce0c194ae --- /dev/null +++ b/macros/mtex/metafont/slur16.mf @@ -0,0 +1,229 @@ +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; diff --git a/macros/mtex/metafont/slurdd16.mf b/macros/mtex/metafont/slurdd16.mf new file mode 100644 index 0000000000..fd5712c57c --- /dev/null +++ b/macros/mtex/metafont/slurdd16.mf @@ -0,0 +1,41 @@ +input musicdef +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% BOGEN (KONKAV) % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +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; + 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) rotatedaround (1/2z2r,180); + endchar; +enddef; + +%%%%%%%%%%%%%%%%%%%%%%% +% negative Steigungen % +%%%%%%%%%%%%%%%%%%%%%%% + +for j= 1 upto 17: +for i= 1 upto min(2j,8): +drawslursneg(i,j); +endfor;endfor; +end; + diff --git a/macros/mtex/metafont/slurdu16.mf b/macros/mtex/metafont/slurdu16.mf new file mode 100644 index 0000000000..20282e2ca7 --- /dev/null +++ b/macros/mtex/metafont/slurdu16.mf @@ -0,0 +1,42 @@ +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; + diff --git a/macros/mtex/metafont/slurud16.mf b/macros/mtex/metafont/slurud16.mf new file mode 100644 index 0000000000..f4028a8e96 --- /dev/null +++ b/macros/mtex/metafont/slurud16.mf @@ -0,0 +1,40 @@ +input musicdef +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% BOGEN (KONKAV) % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +def drawslurs (expr i,j) = + save jj, factor, length, height; + numeric jj, absp, length, height, factor; + factor:= 1/6; + height := i*1/2nhh#; + length := j*nhw#; + 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, height, 0); + clear; + z2r = (w,h); + z1l = origin; + absp := abs((-h,w)); + if (factor*absp)>2nhh : factor:= 2nhh/absp fi; + z3r = 1/2z2r+factor*(-h,w); + penpos1(thinwidth,90); + penpos2(thinwidth,90); + penpos3(5/12beamht,90); + currentpen := pencircle xscaled thinwidth yscaled beamht ; + penstroke (z1e..z3e..z2e) rotatedaround (1/2z2r,180); + endchar; +enddef; + +%%%%%%%%%%%%%%%%%%%%%%% +% positive Steigungen % +%%%%%%%%%%%%%%%%%%%%%%% + +for j= 1 upto 17: +for i= 1 upto min(2j,8): +drawslurs(i,j); +endfor;endfor; +end; diff --git a/macros/mtex/metafont/sluruu16.mf b/macros/mtex/metafont/sluruu16.mf new file mode 100644 index 0000000000..59fa5b22de --- /dev/null +++ b/macros/mtex/metafont/sluruu16.mf @@ -0,0 +1,39 @@ +input musicdef +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% BOGEN (KONVEX) % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +def drawslurs(expr i,j) = + save jj,factor, length, height; + numeric jj, absp, length, height, factor; + factor:= 1/6; + height = i*1/2nhh#; + length = j*nhw#; + 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, 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 ; + penstroke z1e..z3e..z2e; %statt dir 30 + endchar; +enddef; + +%%%%%%%%%%%%%%%%%%%%%%% +% positive Steigungen % +%%%%%%%%%%%%%%%%%%%%%%% + +for j= 1 upto 17: +for i= 1 upto min(2j,8): +drawslurs(i,j); +endfor;endfor; +end; diff --git a/macros/mtex/metafont/sonder16.mf b/macros/mtex/metafont/sonder16.mf new file mode 100644 index 0000000000..8421dee032 --- /dev/null +++ b/macros/mtex/metafont/sonder16.mf @@ -0,0 +1,112 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% SONDERZEICHEN % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +def alla_breve (expr trans) = + thin := 5thinwidth; thick := 1/2 nhh; + penpos1(thin, 0); + penpos2(thin, -90); + penpos3(thick,180); + penpos4(2/3thin, 90); + penpos5(thin, 45); + penpos6(3/4thick,45); + 2x2r = 2x4r = x1 + 2s = w; + x3r = 0; 2y1 = 3y2 = y4r = h; + y3r = 2/3h; + x5 = w -2s; + y5 = h -2s; + z6r = z5r; + penstroke (z1e..z2e..z3e..z4e..z5e) transformed trans; + currentpen := pencircle scaled (2/3thick); + drawdot z6; +enddef; + + +%%%%%%%%%%%%%%%% +% "allabreve" %% +%%%%%%%%%%%%%%%% + +beginchar(82, 2nhh#, 3nhh#, 0); + clear; + alla_breve(identity); + z7 = z4 + 2/16 h *up; + z8 = z2 + 2/16 h *down; + currentpen := pencircle scaled (thin); + draw z7--z8; + +endchar; + +%%%%%%%% +% "C" %% +%%%%%%%% + +beginchar(83, 2nhh#, 3nhh#, 0); + clear; + alla_breve(identity); + +endchar; + +%%%%%%%%%%%%%%% +% "reverseC" %% +%%%%%%%%%%%%%%% + +beginchar(84, 2nhh#, 3nhh#, 0); + clear; + transform T; + xxpart T = -yypart T; xypart T = yxpart T; % T is a reflection + (w/2,0) transformed T = (w/2,0); (w/2,1) transformed T = (w/2,1); + thin := 5thinwidth; thick := 1/2 nhh; + penpos1(thin, 0); + penpos2(thin, -90); + penpos3(thick,180); + penpos4(2/3thin, 90); + penpos5(thin, 45); + penpos6(3/4thick,45); + 2x2r = 2x4r = x1 + 2s = w; + x3r = 0; 2y1 = 3y2 = y4r = h; + y3r = 2/3h; + x5 = w -2s; + y5 = h -2s; + z6r = z5r; + penstroke (counterclockwise + (z1e..z2e..z3e..z4e..z5e) transformed T); + currentpen := pencircle scaled (2/3thick); + drawdot (z6 transformed T); + +endchar; + +%%%%%%%%%%%%%%% +% "fermate1" %% +%%%%%%%%%%%%%%% + +beginchar(80, 2nhw#, 1.25nhh#, 0); + clear; + penpos2(nhh/4,90); + penpos4(nhh/4,90); + y2r = h; + z1 = origin; 2x2l = 2x4l = x3 = w; y4l = y3 = 0; + penstroke z1..z2e..z3; + currentpen:= pencircle scaled (nhh/4); + drawdot z4; +endchar; + +%%%%%%%%%%%%%%% +% "fermate2" %% +%%%%%%%%%%%%%%% + +beginchar(81, 2nhw#, 0, 1.25nhh#); + clear; + penpos2(nhh/4,90); + penpos4(nhh/4,90); + y2l = -d; + z1 = origin; 2x2l = 2x4 = x3 = w; + y4r = y3 = 0; + penstroke (z1..z2e..z3); + currentpen := pencircle scaled (nhh/4); + drawdot z4; +endchar; diff --git a/macros/mtex/metafont/vio16.mf b/macros/mtex/metafont/vio16.mf new file mode 100644 index 0000000000..8626d6c180 --- /dev/null +++ b/macros/mtex/metafont/vio16.mf @@ -0,0 +1,195 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% NOTENSCHLUESSEL % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%%%%%%%%%%%%%%%%%%%% +% VIOLINSCHLUESSEL % +%%%%%%%%%%%%%%%%%%%% + +def violin(expr width, beginleft, begindown, thick, penthick) = +x10=x3=x2=x8; +y6l=56/15width+y12r; +x11-x4=width; +x5=x4+13/15width; +x2=x4+31/45 width; +x1=x4+7/15width; +x4=beginleft; +x2-x12=4/15 width; +x9+2/5width=x6; +x6-4/15width=x7; +x9=x4+1/5width; +y12r=begindown; +y2r=y4=2y11; +y8=y12r+4/15width; +y2r=y12r+28/15width; +y1=y12r+width; +y3r=y12r+13/15width; +y7=y12r+116/45width; +y5=y12r+16/5width; +y5-y10=y11; +y9=y12r+2/15width; +penpos1(0,180); +penpos2(thick,90); +penpos3(penthick+1/16thick,-90); +penpos4(5/4thick,120); +penpos5(5/6thick,-120); +penpos6(5/3thick,-85); +penpos7(1/2thick,0); +penpos8(penthick,0); +penpos9(5/4thick,170); +penpos10(5/6thick,180); +penpos11(thick,0); +penpos12(penthick,-90); +pickup pencircle scaled 1s; +penstroke z1e{2left}..z2e..z11e..z3e +..z4e{right+up}..z10e..{up}z5e..z6e; +penstroke z6e{down+left}..{down}z7e--z8e; +fill z8l{2down+right}..z12l..z9l +--z9r..z12r..{up}z8r..cycle; +pickup pencircle scaled 1s; +fill z9l{3/2right+up}..{right+2down}z9r..cycle; +penlabels(1,2,3,4,5,6,7,8,9,10,11,12); +enddef; + +beginchar(71,3.25nhw#, 6nhh#, 2nhh#); +clear; +violin(15/8nhh,7/4nhh,-3/2nhh,2/5nhh,1/9nhh); +endchar; + +%%%%%%%%violin-schluessel verkleinert%%%%%%%% +beginchar(72,3.25nhw#, 6nhh#, 2nhh#); +clear; +violin(12/8nhh,7/4nhh,-2/2nhh,3/10nhh,1/10nhh); +endchar; + +%%%%%%%%%%%%%%%%%%%%% +% BASS--SCHLUESSEL %% +%%%%%%%%%%%%%%%%%%%%% + +def bass(expr width, beginleft, begindown, thick, dotthick)= + +y1=begindown; +x1l=beginleft; +x4=x5; +x4-x3=width; +x1l-x3=1/10width; +y2=3/6(y4+y5); +y4-y5=3/9width; +y5-y3=9/9width; +y3=y1-17/12width; +x4-x2=3/9width; +x7-x3=1/5width; +y7=1/4(3y5+y4); +penpos1(1/2thick,10); +penpos2(thick,180); +penpos3(0,180); +penpos7(1/3thick,90); + +pickup pencircle scaled dotthick; +drawdot z4; drawdot z5; +pickup pencircle scaled 1s; +penstroke z3e{up+right}..z2e{up}..{down+left}z1e; +fill z1l{down+left}..{right}z7l{right}..{left+up}z1r..cycle; +penlabels(1,2,3,4,5,7); +enddef; + +beginchar(73,3nhw#, 4nhh#, 0nhh#); +clear; +bass(9/4nhh, 49/40nhh, 58/16nhh, 1/2nhh, 2s); +endchar; + +%%%%%%verkleinerter bass-schluessel%%%%%%%%% +beginchar(74,3nhw#, 4nhh#, 0nhh#); +clear; +bass(7/4nhh, 60/40nhh, 56/16nhh, 1/2nhh, 1.5s); +endchar; + +%%%%%%%%%%%%%%%%%%% +% ALT--SCHLUESSEL % +%%%%%%%%%%%%%%%%%%% + +def alt(expr height, beginleft, begindown, thick) = +x1=x7; +x2=x8; +y1-y7=height; +y2-y8=height; +y7=begindown; +x7=beginleft; +x2=x1+1/4height; +x6l=x8l; +y5=y7+1/2height; +x5=x3; +y4=y5+1/3(y3-y5); +x4-x7=height; +x4-x5=1/2height; +y3-y5=2/5height; +y8=y7; +y6=y7; +x9=x3; +y9=y7-1/2height-2/5height; +penpos8(1/4thick,180); +penpos2(1/4thick,180); +penpos1(thick,180); +penpos7(thick,180); +penpos6(thick,0); +penpos5(1/10thick,0); +penpos3(1/2thick,0); +penpos4(2/3thick,180); + +pickup pencircle scaled 1s; +fill z7l--z1l--z1r--z7r--cycle; +fill z8l--z2l--z2r--z8r--cycle; +penstroke z5e..{left+2down}z6e; +penstroke z5e{right+4down}..{up}z4e{up}..{left+down}z3e; +pickup pencircle scaled 1.8s; +drawdot z3; + + +pickup pencircle scaled 1s; +penstroke + (counterclockwise(z7e--z1e)reflectedabout(z7,z8)); +penstroke +(counterclockwise(z8e--z2e)reflectedabout(z7,z8)); +penstroke +(counterclockwise(z5e..{left+2down}z6e)reflectedabout(z7,z8)); +penstroke +(counterclockwise (z5e{right+4down}..{up}z4e{up}..{left+down}z3e) +reflectedabout(z7,z8)); + +pickup pencircle scaled 1.75s; +drawdot z9; +penlabels(1,2,3,4,5,6,7,8); +enddef; + +%%%%%%%%%%%Altschl"usseL%%%%%%%%%%% +beginchar(75,3.5nhw#, 4nhh#, 0nhh#); +clear; +alt(2nhh,1.25nhh,2nhh,2/5nhh); +endchar; + +%%%%%%%%%Tenorschluessel%%%%%%%%% +beginchar(76,3.5nhw#, 4nhh#, 0nhh#); +clear; +alt(2nhh,1.25nhh,3nhh,2/5nhh); +endchar; + +%%%%%%%%%Baritonschluessel%%%%%%%%% +beginchar(77,3.5nhw#, 4nhh#, 0nhh#); +clear; +alt(2nhh,1.25nhh,4nhh,2/5nhh); +endchar; + +%%%%%%%%%Mezzosopranschluessel%%%%%%%%% +beginchar(78,3.5nhw#, 4nhh#, 0nhh#); +clear; +alt(2nhh,1.25nhh,1nhh,2/5nhh); +endchar; + +%%%%%%%%%Sopranschluessel%%%%%%%%% +beginchar(79,3.5nhw#, 4nhh#, 0nhh#); +clear; +alt(2nhh,1.25nhh,0nhh,2/5nhh); +endchar; + |