diff options
Diffstat (limited to 'fonts/musixtex-fonts/source/xadfgen.mf')
-rw-r--r-- | fonts/musixtex-fonts/source/xadfgen.mf | 236 |
1 files changed, 236 insertions, 0 deletions
diff --git a/fonts/musixtex-fonts/source/xadfgen.mf b/fonts/musixtex-fonts/source/xadfgen.mf new file mode 100644 index 0000000000..51a5375374 --- /dev/null +++ b/fonts/musixtex-fonts/source/xadfgen.mf @@ -0,0 +1,236 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% basic def's -- taken from musixgen.mf % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +pair pone, ptwo; +transform t; +path p; + +hlthick=.2pt; +lthick=.4pt; + +pen line_pen, med_pen, coda_pen, thin_pen; +med_pen:= pencircle scaled med; +line_pen:= pencircle scaled lthick; +coda_pen:= pencircle xscaled 1.25thick yscaled max(1,.75med); +%thin_pen:= pencircle scaled max(1,.25pt); +thin_pen:= pencircle scaled max(1,.4pt); + +apog_fact=.75; +apog_nhw#=apog_fact*nhw#; + +picture save_pic, elem_pic; + +def savepic = save_pic:= currentpicture enddef; +def save_elempic = elem_pic:= currentpicture enddef; +def callpic = currentpicture:= save_pic enddef; + +def mirror (expr pone, ptwo) = + currentpicture:=currentpicture reflectedabout(round(pone),round(ptwo)) +enddef; + +def add_mirror (expr pone, ptwo) = + addto currentpicture also currentpicture + reflectedabout (round(pone), round(ptwo)) +enddef; + +def call_mirror (expr pone, ptwo) = callpic; mirror (pone, ptwo) enddef; + +def add_shift (expr pone, ptwo) = + addto currentpicture also currentpicture shifted (pone, ptwo) +enddef; + +def call_add_shift (expr pone, ptwo) = + callpic; add_shift (pone, ptwo) +enddef; + +def add_elempic (expr pone, ptwo) = + addto currentpicture also elem_pic shifted (pone, ptwo) +enddef; + +def call_add_save_elempic (expr pone, ptwo) = + callpic; add_elempic(pone, ptwo); savepic +enddef; + +def shift_pic (expr pone, ptwo) = + currentpicture:=currentpicture shifted (round(pone),round(ptwo)) +enddef; + +def fill_circle (expr diameter, zshift) = + fill fullcircle scaled diameter shifted zshift +enddef; + +def fill_square (expr xwidth, ywidth, zshift) = + fill unitsquare xscaled xwidth yscaled ywidth shifted zshift +enddef; + +% + +def staff= + for i=0 upto 4: + pickup pencircle yscaled lthick; + draw (-5nhw,i*nhh)--(5nhw,i*nhh); + endfor +enddef; + +def Staff= + for i=0 upto 4: + pickup pencircle yscaled lthick; + draw (-5nhw,(i*nhh-.5nhh))--(5nhw,(i*nhh-.5nhh)); + endfor +enddef; + +def upstem= + fill_square (lthick, 5nhh, (0,-5nhh)) +enddef; + +def downstem= + fill_square (lthick, 5nhh, (nhw-hlthick,0)) +enddef; + + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% character definitions % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% +% so-called Miyoshi accent ...something like <> +% (give me the true name of this!) +% +beginchar(30, 0, 2.25nhh#, 0); "upper Miyoshi accent"; + pickup med_pen; + draw (.15nhw, 1.9nhh)--(1.15nhw, 1.5nhh)--(.15nhw, 1.1nhh); + add_mirror (origin, down); + shift_pic (.5nhw, 0); + savepic; +endchar; + +beginchar(31, 0, 0, 2.25nhh#); "lower Miyoshi accent"; + call_mirror (origin, right); +endchar; + +% +% size-balanced (a little large) sforzato +% +beginchar(20, 0, 2.25nhh#, 0); "upper sforzato (size-balanced)"; + x1=-.05nhw; x2=.5nhw; x3=nhw-x1; x3=x4+.28nhw; x6=x1+med; + y1=y6=y4=y3=nhh; y2=y1+1.4nhh; + z5-z6=whatever*(z2-z1); + z5-z4=whatever*(z2-z3); + fill z1--z2--z3--z4--z5--z6--cycle; + savepic; +endchar; + +beginchar(21, 0, 0, 2.25nhh#); "lower sforzato (size-balanced)"; + call_mirror (origin, right); +endchar; + +% +% coda with serif +% +beginchar(85, 0, 3.25nhh#, 0); "coda with serif"; + mh:=3nhh; + x2 = 2nhw-x4 = 1/6mh; y2 = y4 = 1/2mh; + x3 = x5 = nhw; y3 = mh-y5 = 5/6mh; +% pickup thin_pen; + pickup thin_pen; + draw (0,mh/2)--(2nhw,mh/2); + draw (nhw-.3nhw,0 )--(nhw+.3nhw,0 ); + draw (nhw-.3nhw,mh)--(nhw+.3nhw,mh); + draw (nhw,0)--(nhw,mh); + draw (0 ,mh/2-.3nhw)--(0 ,mh/2+.3nhw); + draw (2nhw,mh/2-.3nhw)--(2nhw,mh/2+.3nhw); + savepic; + pickup coda_pen; + draw z2..z3..z4..z5..cycle; + shift_pic (-nhw, 0); + labels (1,2,3,4); +endchar; + +% +% upright segno +% +beginchar(86, 0, 3.25nhh#, 0); "upright segno"; + x1:= 0; y1:=0; + x4:=-.69nhw; y4:=y1; + x5:=.36nhw; y5:=.9nhh; + x6:=-.28nhw; y6:=.97nhh; + x7:=-x5; y7:=-y5; + x8:=-x6; y8:=-y6; + z1'= (x1+1,y1); + penpos1'(.5nhh+blacker, 75); + penpos6(max(1,thin), -45); + penpos5(max(1,thin), -180); + penpos8(max(1,thin), -45); + penpos7(max(1,thin), -180); + fill_circle (.45nhh, (x5-.15nhh, y5l-.12nhh)); + fill_circle (.42nhh, (x4, y4)); +% pickup thin_pen; + pickup thin_pen; + draw ( ( (x4-.2nhh)+(2x1-x5) )/2, y1-(y5l-y4)/2-.05nhh)--z1; + addto currentpicture also currentpicture rotatedaround (z1, 180); + penstroke z7e..{ne}z8e..z1'e{dir135}..{ne}z6e..z5e; +% penlabels (1,4,5,6,7,8); + shift_pic (.5nhw, 1.5nhh); +endchar; + +% +% V-shaped breath +% +beginchar(33, 0, 1.5nhh#, 0); "V-shaped breath (up)"; + pickup thin_pen; + draw (.1nhw, 1.5nhh)--(.5nhw, .05nhh); + add_mirror ((.5nhw,0),(.5nhw,1)); + savepic; +endchar; +beginchar(34, 0, 0, 1.5nhh#); "V-shaped breath (down)"; + call_mirror (origin, right); +endchar; + + +%%%%%%% +message ("<noteheads>"); +%%%%%%% + +NHW=nhw+hlthick; + +beginchar(7, 0, .5nhh#, .5nhh#); "quarter note"; +% makeshift, expedience + corNHW=1.065*NHW; + fill fullcircle xscaled corNHW yscaled 1.85h + rotated 20 shifted (.5NHW, 0); +endchar; + +beginchar(8, 0, .5nhh#, .5nhh#); "half note"; + penpos1(max(1,2hlthick), 0); + penpos3(max(1,2hlthick), 180); + penpos2(thick,-90); + penpos4(thick, 90); + -x1l = .53NHW; + x3l = .5NHW; + x2 = x4 = y1 = y3 = 0; + y2l =-y4l = h; + penstroke (z1e{up}..z2e{right}..z3e{down}..z4e{left}..cycle) + rotated 20 shifted (.5NHW, 0); +endchar; + +beginchar(9, 0, .5nhh#, .5nhh#); "whole note"; + x1= y1 = y3 = y5 = y7 = 0; + x3= 2x2 = 2x4 = 2x6 = 2x8 = 5/4nhw; + y2=-y4 = h; + x5= x3-x7 = x1+.375nhw-blacker; + y6=-y8 = y2-.1thin; + fill z1{curl3}..z2..{curl3}z3{curl3}..z4..{curl3}cycle; + unfill (z5..z6..z7..z8..cycle) rotatedaround ((x2,0), 45) shifted (.5,.5); +%{{{ + currentpen:= pencircle; + draw rt z1{curl3}..bot z2..{curl3}lft z3{curl3}..top z4..{curl3}cycle; +%}}} + labels(range 1 thru 8); + savepic; +endchar; + + + +end. |