diff options
Diffstat (limited to 'Master/texmf-dist/fonts/source/public/musictex')
41 files changed, 5338 insertions, 0 deletions
diff --git a/Master/texmf-dist/fonts/source/public/musictex/beamd20.mf b/Master/texmf-dist/fonts/source/public/musictex/beamd20.mf new file mode 100644 index 00000000000..3a49d49fc7b --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/beamd20.mf @@ -0,0 +1,4 @@ +input musicd20 +numeric beammult; +beammult:=2; +input beamngen diff --git a/Master/texmf-dist/fonts/source/public/musictex/beamn11.mf b/Master/texmf-dist/fonts/source/public/musictex/beamn11.mf new file mode 100644 index 00000000000..56ae0526129 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/beamn11.mf @@ -0,0 +1,5 @@ +font_identifier := "beamn11"; +input musicd11 +numeric beammult; +beammult:=1; +input beamngen diff --git a/Master/texmf-dist/fonts/source/public/musictex/beamn13.mf b/Master/texmf-dist/fonts/source/public/musictex/beamn13.mf new file mode 100644 index 00000000000..103abeedfaf --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/beamn13.mf @@ -0,0 +1,6 @@ +font_identifier := "beamn13"; +input musicd13 +numeric beammult; +beammult:=1; +input beamngen + diff --git a/Master/texmf-dist/fonts/source/public/musictex/beamn16.mf b/Master/texmf-dist/fonts/source/public/musictex/beamn16.mf new file mode 100644 index 00000000000..6760e5b74b0 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/beamn16.mf @@ -0,0 +1,6 @@ +font_identifier := "beamn16"; +input musicd16 +numeric beammult; +beammult:=1; +input beamngen + diff --git a/Master/texmf-dist/fonts/source/public/musictex/beamn20.mf b/Master/texmf-dist/fonts/source/public/musictex/beamn20.mf new file mode 100644 index 00000000000..6968e0f8887 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/beamn20.mf @@ -0,0 +1,5 @@ +font_identifier := "beamn20"; +input musicd20 +numeric beammult; +beammult:=1; +input beamngen diff --git a/Master/texmf-dist/fonts/source/public/musictex/beamngen.mf b/Master/texmf-dist/fonts/source/public/musictex/beamngen.mf new file mode 100644 index 00000000000..cdd378559f9 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/beamngen.mf @@ -0,0 +1,83 @@ +% Length has been changed to longueur for BCPL_string +% Nicolas Brouard 25/10/91 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% BALKEN % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +font_x_height beamht#; + +def drawbeams (expr st, jj, nn) = + save i, j, longueur, height; + numeric i, j, longueur, height; + longueur:= 60.0/32; + for i=0 upto 5: + height := longueur*st ; + beginchar(jj*6+i, longueur, height, 0); + clear; + z2 = (w,h); + z1 = origin; + penpos1(beamht,90); + penpos2(beamht,90); + for j=0 upto nn-1: + penstroke (z1e---z2e) shifted (0,beamstep*j); + endfor; + endchar; + longueur := 2*longueur; + endfor; +enddef; + +def drawbeamsneg (expr st, jj, nn) = + save i, longueur, depth; + numeric i, longueur, depth; + longueur:= 60.0/32; + for i=0 upto 5: + depth := longueur*st; + beginchar(64+jj*6+i, longueur, 0, depth); + clear; + z2 = (w,d); + z1 = origin; + penpos1(beamht,90); + penpos2(beamht,90); + for j=0 upto nn-1: + penstroke (z1e---z2e) shifted (0,beamstep*j); + endfor; + endchar; + longueur := 2*longueur; + endfor; +enddef; +numeric beamstep; +numeric ss[]; + +beamstep:=0.75nhh; +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.4; +ss[8]:=0.45; +ss[9]:=0.50; +ss[10]:=0.55; + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Balken mit positiver Steigung % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +for j=0 upto 9 : +drawbeams(ss[j],j,beammult); +endfor; + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Balken mit negativer Steigung % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +for j=0 upto 9 : +drawbeamsneg(-ss[j],j,beammult); +endfor; + +end; diff --git a/Master/texmf-dist/fonts/source/public/musictex/beamq20.mf b/Master/texmf-dist/fonts/source/public/musictex/beamq20.mf new file mode 100644 index 00000000000..5a6e5670014 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/beamq20.mf @@ -0,0 +1,4 @@ +input musicd20 +numeric beammult; +beammult:=4; +input beamngen diff --git a/Master/texmf-dist/fonts/source/public/musictex/beamt20.mf b/Master/texmf-dist/fonts/source/public/musictex/beamt20.mf new file mode 100644 index 00000000000..ea3e714e700 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/beamt20.mf @@ -0,0 +1,4 @@ +input musicd20 +numeric beammult; +beammult:=3; +input beamngen diff --git a/Master/texmf-dist/fonts/source/public/musictex/beamv20.mf b/Master/texmf-dist/fonts/source/public/musictex/beamv20.mf new file mode 100644 index 00000000000..9b485f9a69b --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/beamv20.mf @@ -0,0 +1,4 @@ +input musicd20 +numeric beammult; +beammult:=5; +input beamngen diff --git a/Master/texmf-dist/fonts/source/public/musictex/musicbra.mf b/Master/texmf-dist/fonts/source/public/musictex/musicbra.mf new file mode 100644 index 00000000000..66e6b36f8a3 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/musicbra.mf @@ -0,0 +1,24 @@ +%%% +% this is musicbra.mf +%%% + +font_identifier := "music_brace_20"; +font_coding_scheme:="UNSPECIFIED"; + +input musicd20 + +%%% +% setup fontdimen 1-7 +% "Parameters are zero unless otherwise specified." +% METAFONT-Book App. F +%%% +%font_slant 0; +%font_normal_space 0pt; +%font_normal_stretch 0pt; +%font_normal_shrink 0pt; +font_x_height nhh#; +font_quad nhw#; +%font_extra_space 0pt; + +input musicbrg +end diff --git a/Master/texmf-dist/fonts/source/public/musictex/musicbrb.mf b/Master/texmf-dist/fonts/source/public/musictex/musicbrb.mf new file mode 100644 index 00000000000..e0b760c533b --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/musicbrb.mf @@ -0,0 +1,24 @@ +%%% +% this is musicbra.mf +%%% + +font_identifier := "music_brace_20"; +font_coding_scheme:="UNSPECIFIED"; + +input musicd20 + +%%% +% setup fontdimen 1-7 +% "Parameters are zero unless otherwise specified." +% METAFONT-Book App. F +%%% +%font_slant 0; +%font_normal_space 0pt; +%font_normal_stretch 0pt; +%font_normal_shrink 0pt; +font_x_height nhh#; +font_quad nhw#; +%font_extra_space 0pt; + +input musicbrh +end diff --git a/Master/texmf-dist/fonts/source/public/musictex/musicbrg.mf b/Master/texmf-dist/fonts/source/public/musictex/musicbrg.mf new file mode 100644 index 00000000000..758c9f3df18 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/musicbrg.mf @@ -0,0 +1,53 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% this is musicbrg.mf +% +% Version 0.99 [August 93] Andreas Egler +% [January] Daniel Taupin +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +transform t; +path p; + +pen thin_pen, med_pen, thick_pen; +thin_pen:= pencircle scaled .15pt; +med_pen:= pencircle scaled thin; +thick_pen:= pencircle scaled med; + +apog_fact=0.75; + +%%%%%%%%%%%%%% +% big braces % +%%%%%%%%%%%%%% +% +% change firstbrace and lastbrace if you need smaller or larger braces +% + +firstbrace:=20; % smallest brace is 2*20 pt (\simeq 14mm) +lastbrace:=99; % largest brace is 2*99 pt (\simeq 69mm) + +def bigbrace(expr v) = + vwidth:=v*pt; + hwidth:=.2vwidth; + actwidth:=.035vwidth; + + x1=hwidth; y1=vwidth; + x2l=.2hwidth; y2=.75vwidth; + x3r=.8hwidth; y3=1/3vwidth; + x4=0; y4=0; + penpos1(thinwidth,-90); + penpos2(1.25med+.8actwidth,40); + penpos3(1.25med+actwidth,45); + penpos4(.5thin+thinwidth,-90); + + currentpen:= pencircle; + penstroke z1e..z2e..z3e..{left+sw}z4e; + addto currentpicture also currentpicture reflectedabout (origin, right); + penlabels(1,2,3,4); +enddef; + +for v=firstbrace upto lastbrace : + beginchar (v-firstbrace, .2v*pt#, 0, 0); + bigbrace (v); + endchar; +endfor; + diff --git a/Master/texmf-dist/fonts/source/public/musictex/musicbrh.mf b/Master/texmf-dist/fonts/source/public/musictex/musicbrh.mf new file mode 100644 index 00000000000..7a0abd2cfbd --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/musicbrh.mf @@ -0,0 +1,40 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% this is musicbrg.mf from Stanislav Kneifl +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% +% change firstbrace and lastbrace if you need smaller or larger braces +% + +firstbrace:=20; % smallest brace is 2*20 pt (\simeq 14mm) +lastbrace:=99; % largest brace is 2*99 pt (\simeq 69mm) + +def drawpianobracket (expr height) = + u# := 1nhh#/5pt# * 1pt#; + v# := (height/40) * 1pt#; + define_pixels (u, v); + beginchar (height-firstbrace, 1.25nhh#, 0, 0); + z1 = origin; + z2 = (4.7u, 7v); + z3 = (3.6u, 16.5v); + z4 = (1.9u, 25v); + z5 = (2.28u, 32v); + z6 = (w, 40v); + penpos1 (max(1,0.1u), 125); + penpos2 (1.2u, 180); + penpos3 (3.2u, 195); + penpos4 (2.5u, 180); + penpos5 (1.14u, 180); + penpos6 (max(2,0.3u), 150); + penstroke z1e{dir 35}..z2e..z3e..z4e..z5e..{dir 60}z6e; + currenttransform := identity reflectedabout ((0,0),(1,0)); + penstroke z1e{dir 35}..z2e..z3e..z4e..z5e..{dir 60}z6e; + currenttransform := identity; + endchar; +enddef; + +for v=firstbrace upto lastbrace : + drawpianobracket (v); +endfor; diff --git a/Master/texmf-dist/fonts/source/public/musictex/musicd11.mf b/Master/texmf-dist/fonts/source/public/musictex/musicd11.mf new file mode 100644 index 00000000000..cb2c11106a0 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/musicd11.mf @@ -0,0 +1,48 @@ +%%% +% this is musicd11.mf +%%% + +% input modes +% input local + +mode_setup; + +%blacker:=0; %uncomment to override + +font_size 11pt#; + +nhh#:=1/4designsize; %noteheadheight +nhw#:=1.2nhh#; %noteheadwidth + +thin#:=1/50designsize; +med#:=1/33designsize; +thick#:=1/16designsize; + +thinwidth := 0.1pt; +s := 0.70pt; +S := 1/16designsize; + +beamht#:=0.48nhh#; %beamthickness + +% use pixelmacros from plain +define_pixels(nhh,nhw,beamht); +define_blacker_pixels(thin,med,thick); + +% pair constants +pair ne,se,sw,nw; %northeast,southeast,southwest,northwest +ne = up+right; se = down+right; sw = down+left; nw = up+left; + +% displaying:=2; %uncomment to see characters immediatly on screen + +def clear = + numeric x[],y[],x[]l,y[]l,x[]r,y[]r,dx[],dy[]; + pair sh[]; +enddef; + +% this macro might be deleted +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/Master/texmf-dist/fonts/source/public/musictex/musicd13.mf b/Master/texmf-dist/fonts/source/public/musictex/musicd13.mf new file mode 100644 index 00000000000..5c814a43c00 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/musicd13.mf @@ -0,0 +1,48 @@ +%%% +% this is musicd13.mf +%%% + +% input modes +% input local + +mode_setup; + +%blacker:=0; %uncomment to override + +font_size 13pt#; + +nhh#:=1/4designsize; %noteheadheight +nhw#:=1.2nhh#; %noteheadwidth + +thin#:=1/50designsize; +med#:=1/33designsize; +thick#:=1/16designsize; + +thinwidth := 0.1pt; +s := 0.80pt; +S := 1/16designsize; + +beamht#:=0.48nhh#; %beamthickness + +% use pixelmacros from plain +define_pixels(nhh,nhw,beamht); +define_blacker_pixels(thin,med,thick); + +% pair constants +pair ne,se,sw,nw; %northeast,southeast,southwest,northwest +ne = up+right; se = down+right; sw = down+left; nw = up+left; + +% displaying:=2; %uncomment to see characters immediatly on screen + +def clear = + numeric x[],y[],x[]l,y[]l,x[]r,y[]r,dx[],dy[]; + pair sh[]; +enddef; + +% this macro might be deleted +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/Master/texmf-dist/fonts/source/public/musictex/musicd16.mf b/Master/texmf-dist/fonts/source/public/musictex/musicd16.mf new file mode 100644 index 00000000000..38f96a256de --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/musicd16.mf @@ -0,0 +1,48 @@ +%%% +% this is musicd16.mf +%%% + +% input modes +% input local + +mode_setup; + +%blacker:=0; %uncomment to override + +font_size 16pt#; + +nhh#:=1/4designsize; %noteheadheight +nhw#:=1.2nhh#; %noteheadwidth + +thin#:=1/50designsize; +med#:=1/33designsize; +thick#:=1/16designsize; + +thinwidth := 0.1pt; +s := 1.00pt; +S := 1/16designsize; + +beamht#:=0.48nhh#; %beamthickness + +% use pixelmacros from plain +define_pixels(nhh,nhw,beamht); +define_blacker_pixels(thin,med,thick); + +% pair constants +pair ne,se,sw,nw; %northeast,southeast,southwest,northwest +ne = up+right; se = down+right; sw = down+left; nw = up+left; + +% displaying:=2; %uncomment to see characters immediatly on screen + +def clear = + numeric x[],y[],x[]l,y[]l,x[]r,y[]r,dx[],dy[]; + pair sh[]; +enddef; + +% this macro might be deleted +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/Master/texmf-dist/fonts/source/public/musictex/musicd20.mf b/Master/texmf-dist/fonts/source/public/musictex/musicd20.mf new file mode 100644 index 00000000000..c8e36c9547c --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/musicd20.mf @@ -0,0 +1,48 @@ +%%% +% this is musicd20.mf +%%% + +% input modes +% input local + +mode_setup; + +%blacker:=0; %uncomment to override + +font_size 20pt#; + +nhh#:=1/4designsize; %noteheadheight +nhw#:=1.2nhh#; %noteheadwidth + +thin#:=1/50designsize; +med#:=1/33designsize; +thick#:=1/16designsize; + +thinwidth := 0.125pt; +s := 1.25pt; +S := 1/16designsize; + +beamht#:=0.48nhh#; %beamthickness + +% use pixelmacros from plain +define_pixels(nhh,nhw,beamht); +define_blacker_pixels(thin,med,thick); + +% pair constants +pair ne,se,sw,nw; %northeast,southeast,southwest,northwest +ne = up+right; se = down+right; sw = down+left; nw = up+left; + +% displaying:=2; %uncomment to see characters immediatly on screen + +def clear = + numeric x[],y[],x[]l,y[]l,x[]r,y[]r,dx[],dy[]; + pair sh[]; +enddef; + +% this macro might be deleted +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/Master/texmf-dist/fonts/source/public/musictex/musicdef.mf b/Master/texmf-dist/fonts/source/public/musictex/musicdef.mf new file mode 100644 index 00000000000..5c221a74b82 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/musicdef.mf @@ -0,0 +1,61 @@ +% 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; +% 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:=300; +% blacker:=.78; % (this value is conjectural) +% fillin:=0.25; % (ditto) +% o_correction:=.5; % (ditto) +% enddef; +%localfont:=ibm; +%mode:=ibm; +mode_setup; +% +%fontmaking:=1; +turningcheck:=1; +displaying:=2; +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.4pt; +beamht := beamht#*pt; +s := 1.0pt; +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/Master/texmf-dist/fonts/source/public/musictex/musicg16.mf b/Master/texmf-dist/fonts/source/public/musictex/musicg16.mf new file mode 100644 index 00000000000..f6fcd2df725 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/musicg16.mf @@ -0,0 +1,1360 @@ +apog_fact=0.75; +apog_nhh=apog_fact*nhh; +apog_nhh#=apog_fact*nhh#; +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% NOTENKOEPFE UND FAEHNCHEN % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +%%%%%%%%%%%%%%% +%%notenkoepfe % +%%%%%%%%%%%%%%% + +def drawnoteb(expr noteheadwidth, noteheadheight, 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 = noteheadwidth; y2l = noteheadheight; y4l = -noteheadheight; + penstroke (z1e{up}..z2e{right}..z3e{down}..z4e{left}..cycle) + rotatedaround((origin +1/2noteheadwidth*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, shiftx, shifty) = + pair intersectionp; % + thick := 1/3 height; + sh[-3] = (shiftx, 0); + sh[i] = (shiftx, shifty); % .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; + 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; + +%%%%%%%%%%%%%%%%%%%%%% +% song system limits % +%%%%%%%%%%%%%%%%%%%%%% +beginchar(126,nhw#,nhh#,0); + clear; + z1=(-0.5nhw,-0.2pt); + z2=(0,-0.2pt); + z3=(0.7nhw,0.5nhh); + penpos1(0.4pt,90); + penpos2(0.4pt,90); + penpos3(0.1pt,135); + penstroke (z1e--z2e..z3e); +endchar; +beginchar(127,nhw#,-nhh#,0); + clear; + z1=(-0.5nhw,0.2pt); + z2=(0,0.2pt); + z3=(0.7nhw,-0.5nhh); + penpos1(0.4pt,90); + penpos2(0.4pt,90); + penpos3(0.1pt,135); + penstroke (z1e--z2e..z3e); +endchar; + +%%%%%%%%%%%%%%%% +% 4 crescendos % +%%%%%%%%%%%%%%%% +for n:=1 upto 4: + beginchar(15+n, 4*n*nhw#, (0.5+0.1*n)*nhh#, (0.5+0.1*n)*nhh#); + pickup pencircle scaled (0.4s); + draw (0,(0.5+0.1*n)*nhh)--(4*n*nhw,0)--(0,-(0.5+0.1*n)*nhh); + endchar; +endfor; +%%%%%%%%%%%%%%%%%% +% 4 decrescendos % +%%%%%%%%%%%%%%%%%% +for n:=1 upto 4: + beginchar(19+n, 4*n*nhw#, (0.5+0.1*n)*nhh#, (0.5+0.1*n)*nhh#); + pickup pencircle scaled (0.4s); + draw (4*n*nhw,(0.5+0.1*n)*nhh)--(0,0)--(4*n*nhw,-(0.5+0.1*n)*nhh); + endchar; +endfor; +%%%%%%%%%%%%%%% +% accents % +%%%%%%%%%%%%%%% +% point au-dessus de la note +beginchar(24, nhw#, 1.0nhh#, 0.0nhh#); + clear; + pickup pencircle scaled 0.25nhh; + drawdot (0.5nhw, nhh); +endchar; +% point au-dessous de la note +beginchar(25, nhw#, 0.0nhh#, 1.0nhh#); + clear; + pickup pencircle scaled 0.25nhh; + drawdot (0.5nhw, -nhh); +endchar; +% barre au-dessus de la note +beginchar(26, nhw#, 1.0nhh#, 0.0nhh#); + clear; + pickup penrazor scaled 0.15nhh rotated 90; + draw (0.0nhw, nhh)--(1.0nhw, nhh); +endchar; +% trait au-dessous de la note +beginchar(27, nhw#, 0.0nhh#, 1.0nhh#); + clear; + pickup penrazor scaled 0.15nhh rotated 90; + draw (0.0nhw, -nhh)--(1.0nhw, -nhh); +endchar; +% accent (pizz.) au-dessus de la note +beginchar(28, nhw#, 1.0nhh#, 0.0nhh#); + clear; + dely:=1.2nhh; + rayon:=0.2nhh; + z1=(0.5nhw,dely+rayon); + z2=(0.5nhw-rayon,dely); + z3=(0.5nhw,dely-0.45nhh); + z4=(0.5nhw+rayon,dely); + fill z1{left}..{down}z2--z3--z4{up}..{left}cycle; +endchar; +% accent (pizz.) au-dessous de la note +beginchar(29, nhw#, 0.0nhh#, 1.0nhh#); + clear; + rayon:=0.2nhh; + z1=(0.5nhw,nhh+rayon); + z2=(0.5nhw-rayon,nhh); + z3=(0.5nhw,0.55nhh); + z4=(0.5nhw+rayon,nhh); + fill (z1{left}..{down}z2--z3--z4{up}..{left}cycle) rotatedaround ((0.5nhw,0),180); +endchar; +% accent (sforz.) au-dessus de la note +beginchar(30, nhw#, 1.5nhh#, 0.0nhh#); + clear; + z1=(1.2nhw,1.3nhh); + z2=(-0.2nhw,1.3nhh); + pickup pencircle scaled 0.5s; + draw z1--(x2,y2+0.3nhh); + draw z1--(x2,y2-0.3nhh); +endchar; +% accent (sforz.) au-dessous de la note +beginchar(31, nhw#, 0.0nhh#, 1.0nhh#); + clear; + z1=(1.2nhw,-1.3nhh); + z2=(-0.2nhw,-1.3nhh); + pickup pencircle scaled 0.5s; + draw z1--(x2,y2+0.3nhh); + draw z1--(x2,y2-0.3nhh); +endchar; +%%%%%%%%%%%%%%% +% breve % +%%%%%%%%%%%%%%% +beginchar(32, nhw#, 0.7nhh#, 0.7nhh#); + clear; + pickup pencircle scaled (4thinwidth); + draw (0,h)--(0,-d); + draw (w,h)--(w,-d); + fill (0,0.75h)--(w,0.75h)--(w,0.25h)--(0,0.25h)--cycle; + fill (0,-0.75d)--(w,-0.75d)--(w,-0.25d)--(0,-0.25d)--cycle; +endchar; +%%%%%%%%%%%%%%% +%% volle Note % +%%%%%%%%%%%%%%% +beginchar(33, nhw#, .5nhh#, .5nhh#); + w:=w+2thinwidth; + drawnoteb(w, h, 0, 90, 20, w/2, nhh/2); +endchar; +%%%%%%%%%%%%%%% +%% halbe Note % +%%%%%%%%%%%%%%% +beginchar(34, nhw#, .5nhh#, .5nhh#); + w:=w+2thinwidth; +% drawnoteb(w, h, 0, 90, 20, thinwidth, nhh/4); + drawnoteb(w, h, 0, 90, 20, 3*thinwidth, nhh/4); +endchar; +%%%%%%%%%%%%%%% +%% ganze Note % +%%%%%%%%%%%%%%% +beginchar(35,1.5nhh#, .5nhh#, .5nhh#); +% drawnoteb(w, h, 0, 85, 0, nhh/3, thinwidth); + drawnoteb(w, h, 0, 85, 0, nhh/3, 3*thinwidth); +endchar; +%%%%%%%%%%%%%%% +% semi-breve % +%%%%%%%%%%%%%%% +beginchar(36, 2nhw#, 0.7nhh#, 0.7nhh#); + clear; + pickup pencircle scaled (4thinwidth); + draw (0,h)--(0,-d); + draw (w,h)--(w,-d); + fill (0,0.75h)--(w,0.75h)--(w,0.25h)--(0,0.25h)--cycle; + fill (0,-0.75d)--(w,-0.75d)--(w,-0.25d)--(0,-0.25d)--cycle; +endchar; +%%%%%%%%%%%%%%% +%% volle kleine Note % +%%%%%%%%%%%%%%% +beginchar(37, apog_fact*nhw#, .50*apog_nhh#, .50*apog_nhh#); + w:=apog_fact*nhw; + w:=w+2thinwidth; + drawnoteb(w, h, 0, 90, 20, w/2, apog_nhh/2); +endchar; +%%%%%%%%%%%%%%% +%% halbe Note % +%%%%%%%%%%%%%%% +beginchar(38, apog_fact*nhw#, apog_fact*0.5nhh#, apog_fact*0.5nhh#); + w:=w+2thinwidth; +% drawnoteb(w, h, 0, 90, 20, thinwidth, nhh/4); + drawnoteb(w, h, 0, 90, 20, 3*thinwidth, apog_nhh/4); +endchar; +%%%%%%%%%%%%%%% +%% ganze Note % +%%%%%%%%%%%%%%% +beginchar(39, 1.5*apog_nhh#, apog_fact*0.5nhh#, apog_fact*0.5nhh#); +% drawnoteb(w, h, 0, 85, 0, nhh/3, thinwidth); + drawnoteb(w, h, 0, 85, 0, apog_nhh/3, 3*thinwidth); +endchar; +%%%%%%%%%%%%%%%%%%%%%%% +%% "8flag nach unten" % +%%%%%%%%%%%%%%%%%%%%%%% +beginchar(40, 0, 3nhh#, 0); + clear; + w:=0.8*nhw; + pickup pencircle scaled (0.1pt); + flagshape(1,w, h, nhh, 5thinwidth, 0, 0); + w:=0; +endchar; +%%%%%%%%%%%%%%%%%%%%%%%% +%% "16flag nach unten" % +%%%%%%%%%%%%%%%%%%%%%%%% +beginchar(41, 0, 3.25nhh#, 0); + clear; + w:=0.8*nhw; + pickup pencircle scaled (0.1pt); + flagshape(1, w, 2.5nhh, 2/3nhh, 5thinwidth, 0, 0); + 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:=0.8*nhw; + pickup pencircle scaled (0.1pt); + flagshape(1, w, 2.5nhh, 2/3nhh, 5thinwidth, 0, 0); + 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:=0.8*nhw; + pickup pencircle scaled (0.1pt); + flagshape(1, w, 2.5nhh, 2/3nhh, 5thinwidth, 0, 0); + 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:=0.8*nhw; + pickup pencircle scaled (0.1pt); + flagshape(1, w, 2.5nhh, 2/3nhh, 5thinwidth, 0, 0); + 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:=0.8*nhw; + pickup pencircle scaled (0.1pt); + 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:=0.8*nhw; + pickup pencircle scaled (0.1pt); + 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:=0.8*nhw; + pickup pencircle scaled (0.1pt); + 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:=0.8*nhw; + pickup pencircle scaled (0.1pt); + 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:=0.8*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; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% VERSETZUNGSZEICHEN % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%% +%% "flat" % +%%%%%%%%%%%% +def flat (expr reduction) = + clear; flatraise:=-0.1*nhh*reduction; + penpos4(7/24reduction*nhh, 25);%/5,20 % 1 + penpos3(reduction*nhh/6,-90);%/5,20 % + penpos6(reduction*nhh/6,-90);%/5,20 % + penpos2(reduction*nhh/5, 90);%/5,20 % + y1 = h; % 4 + x1 = x2 = x3 = reduction*s; x4 = reduction*(nhw-s); % 2 + y4 = reduction*s; % + y2l - y3r = 1/4h; y2l = 0; % 3 + currentpen:= pencircle scaled 3thinwidth; + penstroke (z2e...z4e...z3e{3left+2down}) shifted (0,flatraise);%right ,sw + draw (z1--z3) shifted (0,flatraise) ; + penlabels(1,2,3,4); +enddef; +% +beginchar(50, nhw#, 2nhh#, 2nhh#); + flat (1.0); +endchar; +% +%%%%%%%%%% +%% "bb" % +%%%%%%%%%% +beginchar(51,2nhw#, 2nhh#, 2nhh#); + flat (1.0); + draw (z1--z3) shifted ((w/2 - 1.5s),flatraise); + penstroke (z2e..z4e...z3e{3left+2down})shifted ((w/2 + -1.5s),flatraise); +endchar; +%%%%%%%%%%%%% +%% "sharp" % +%%%%%%%%%%%%% +def sharp ( expr reduction ) = + clear; + penpos3(3/8reduction*nhh,90); + penpos4(3/8reduction*nhh,90); + penpos5(3/8reduction*nhh,90); + penpos6(3/8reduction*nhh,90); + y1 + y2 = -0.5reduction*s; y1 - y2 = 2h - reduction*s; + x1 = x2 = reduction*s; y3 = 1/4reduction*nhh; + y4l = y3r; x3= 0; x4 = 0.8*reduction*nhw; + y5 = -y4; y6 = -y3; x5 = x3; x6 = x4; + currentpen:= pencircle scaled 3thinwidth; + draw z1--z2; + draw (z1--z2) shifted (w-2reduction*s,reduction*s); + penstroke z3e--z4e; + penstroke (z5e--z6e) ; + penlabels(1,2,3,4,5,6); +enddef; +% +beginchar(52, 0.8nhw#, 1.5nhh#, 1.5nhh#); + sharp(1.0); +endchar; +% +%%%%%%%%%% +%% "xx" % +%%%%%%%%%%% +beginchar(53, nhw#, .5nhw#, .5nhw#); + clear; + z1 = (0.150w, h-0.150w); z2 = (w-0.150w, h-0.150w); + z3 = (0.150w,-h+0.150w); z4 = (w-0.150w,-h+0.150w); + currentpen:= pencircle scaled .2nhh; + draw z1--z4; draw z3--z2; + currentpen:= pensquare scaled .30w; + drawdot z1; drawdot z2; drawdot z3; drawdot z4; +endchar; +%%%%%%%%%%%%%%% +% "natural" % +%%%%%%%%%%%%%%% +def natural = + clear; + reduction:=w/(0.8*nhw); + penpos3(3/8reduction*nhh,90); + penpos4(3/8reduction*nhh,90); + penpos7(3/8reduction*nhh,90); + penpos8(3/8reduction*nhh,90); + x1 = x2 = x3 = x7 = 0.75*reduction*s; + x5 = x6 = x4 = x8 = w-x1; + y1 = h; y3 = 0.30reduction*nhh ; + y4l = y3r-0.5*reduction*s ; + y6 = -y1; y5 = -y2; + y7l = y2; + y7 = -y4; y8 = -y3; + currentpen:= pencircle scaled 3thinwidth; + draw z1--z2; + draw z5--z6; + penstroke z3e--z4e; + penstroke z7e--z8e; +enddef; +% +beginchar(54, 0.8nhw#, 1.5nhh#, 1.5nhh#); + natural; +endchar; +% +%%%%%%%%%%%%%%%% +%% "1/4 flat" % +%%%%%%%%%%%%%%%% +beginchar(55, nhw#, 2nhh#, 2nhh#); + clear; + penpos4(7/24nhh, 25);%/5,20 % 1 + penpos3(nhh/6,-90);%/5,20 % + penpos2(nhh/6, 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{3left+2down}) reflectedabout(z1 ,z3)); + draw z1--z3; + penlabels(1,2,3,4); +endchar; +%%%%%%%%%%%%%%%% +%% "3/4 flat" % +%%%%%%%%%%%%%%%% +beginchar(56, 2nhw#, 2nhh#, 2nhh#); + clear; + penpos4(7/24nhh, 25);%/5,20 % 1 + penpos3(nhh/6,-90);%/5,20 % + penpos2(nhh/6, 90);%/5,20 % + y1 = h; % 4 + x1 = x2 = x3 = w/2; x4 =x1+nhw-2s; % 2 + y4 = s; % + y2l - y3r = 1/4h; y2l = 0; % 3 + currentpen:= pencircle scaled 3thinwidth; + penstroke z2e...z4e...z3e{3left+2down}; + penstroke (counterclockwise + (z2e...z4e...z3e{3left+2down}) reflectedabout(z1 ,z3)); + draw z1--z3; + penlabels(1,2,3,4); +endchar; +% +% Gregorian notes +% +beginchar(57, nhw#, .5nhh#, .5nhh#); + fill (0.5w-0.8h,0)--(0.5w,h)--(0.5w+0.8h,0)--(0.5w,-h)--cycle; +endchar; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% 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; +% +%%%%%%%%%%%%%%%%%% +%% "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 ( 2/3thick, alpha_b); + penpos7 ( 1/2thick, 10); + 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]; + z4 = (w,h) scaled .55; + y6r = 1.45nhh; + x6l = x4l; + x7 = 0.9w; y7= nhh; + currentpen:= pencircle scaled thin; + draw z1--z2r; draw z5--z4l; + penstroke z2e..z3e..z8e..z4e; + penstroke z5e{nw}..z6e..z7e; +endchar; +%%%%%%%%%%%%%%%%%%% +%% "achtel Pause" % +%%%%%%%%%%%%%%%%%%% +beginchar(63, 2nhh#, 3nhh#, 0) + clear; + %punkte f"ur achtelpause, 16. und 32. Pause + x1=y1= nhh; x2=7/4nhh; y2=11/4nhh; + x3=x4=1/2nhh; y4=3nhh; y3=10/4nhh; + currentpen := pencircle scaled 4thinwidth; + draw z1..z2; + currentpen := pensquare rotated45 scaled(2*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=7/4nhh; y2=11/4nhh; + x3=x4=1/2nhh; y4=3nhh; y3=10/4nhh; +% + x5=x2; y5=y2; + y6=0; x6=x5-1/3y5; + currentpen := pencircle scaled 4thinwidth; + draw z5..z6; + currentpen := pensquare rotated45 scaled(2*thinwidth); + draw z2..z3{up+left}; + draw z2..z3{up+left} shifted(-1/3nhh,-nhh); + fill z3..z4..z3..cycle; + fill z3..z4..z3..cycle shifted(-1/3nhh,-nhh); +endchar; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% "zweiunddreissigstel Pause" % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +beginchar(65,2nhh#, 4nhh#, 0) + clear; + %punkte f"ur achtelpause, 16. und 32. Pause + x1=y1= nhh; x2=7/4nhh; y2=11/4nhh; + x3=x4=1/2nhh; y4=3nhh; y3=10/4nhh; +% + x5=x2+1/6nhh; y5=y2+nhh; + y6=0; x6=x5-1/3y5; + currentpen := pencircle scaled 4thinwidth; + draw z5..z6; + currentpen := pensquare rotated45 scaled(2*thinwidth); + draw z2..z3{up+left} shifted( 1/6nhh,nhh); + draw z2..z3{up+left} shifted(-1/6nhh, 0); + draw z2..z3{up+left} shifted(-3/6nhh,-nhh); + fill z3..z4..z3..cycle shifted( 1/6nhh, nhh); + fill z3..z4..z3..cycle shifted(-1/6nhh, 0); + fill z3..z4..z3..cycle shifted(-3/6nhh,-nhh); +endchar; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% "vierundsechzigstel Pause" %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +beginchar(66,2nhh#, 5nhh#, 0) + clear; + %punkte f"ur achtelpause, 16. und 32. Pause + x1=y1= nhh; x2=7/4nhh; y2=11/4nhh; + x3=x4=1/2nhh; y4=3nhh; y3=10/4nhh; +% + x5=x2+1/3nhh; y5=y2+2nhh; + y6=0; x6=x5-1/3y5; + currentpen := pencircle scaled 4thinwidth; + draw z5..z6; + currentpen := pensquare rotated45 scaled(2*thinwidth); + draw z2..z3{up+left} shifted( 1/3nhh, 2nhh); + draw z2..z3{up+left} shifted( 0,nhh); + draw z2..z3{up+left} shifted(-1/3nhh, 0); + draw z2..z3{up+left} shifted(-2/3nhh,-nhh); + fill z3..z4..z3..cycle shifted( 1/3nhh, 2nhh); + fill z3..z4..z3..cycle shifted( 0, nhh); + fill z3..z4..z3..cycle shifted(-1/3nhh,0); + fill z3..z4..z3..cycle shifted(-2/3nhh,-nhh); +endchar; +%%%%%%%%%%%%%%%%%%% +% ornements % +%%%%%%%%%%%%%%%%%%% +beginchar (67, 2nhw#, nhh#, 0); + clear; + x1=0.2w; y1=h; x6=w-x1; y6=h-y1; + x2=0; y2=0.5h; x5=w-x2; y5=h-y2; + x3=0.25w; y3=0; x4=w-x3; y4=h-y3; + pickup pencircle scaled 4thinwidth; + penpos1 (5thinwidth,90); + penpos2 (5thinwidth, 180); + penpos3 (0.3nhw, -10); + penpos4 (0.3nhw, -10); + penpos5 (5thinwidth, 180); + penpos6 (5thinwidth, 90); + penstroke (z1e..{down}z2e{down}..{right}z3e{right}..{right}z4e{right}..{down}z5e{down}..z6e) ; + pickup pencircle scaled 2s ; + drawdot (x1,y1-s) ; + drawdot (x6,y6+s) ; +endchar; +beginchar (68, 2nhw#, nhh#, 0); + clear; + x1=0.2w; y1=0; x6=w-x1; y6=h-y1; + x2=0; y2=0.5h; x5=w-x2; y5=h-y2; + x3=0.25w; y3=h; x4=w-x3; y4=h-y3; + pickup pencircle scaled 4thinwidth; + penpos1 (5thinwidth,-90); + penpos2 (5thinwidth, -180); + penpos3 (0.3nhw, 10); + penpos4 (0.3nhw, 10); + penpos5 (5thinwidth, -180); + penpos6 (5thinwidth, -90); + penstroke (z1e..{up}z2e{up}..{right}z3e{right}..{right}z4e{right}..{up}z5e{up}..z6e); + pickup pencircle scaled 2s; + drawdot (x1,y1+s); + drawdot (x6,y6-s); +endchar; +%%%%%%%%%%%%%%% +% appogiature % +%%%%%%%%%%%%%%% +beginchar(69, apog_fact*nhw#, 3*apog_nhh#, .50*apog_nhh#); + clear; + w:=apog_fact*nhw; + flagshape(1,w, 3*apog_nhh, apog_nhh, 4thinwidth, w,0); + clear; + w:=apog_fact*nhw; + w:=w+2thinwidth; + drawnoteb(w, 0.5apog_nhh, 0, 90, 20, w/2, apog_nhh/2); + clear; + pickup pencircle scaled 4thinwidth; + w:=apog_fact*nhw; + draw (w,0)--(w,h); + x1=-0.1w; y1=0.6apog_nhh; x2=2w; y2=y1+0.6*(x2-x1); + draw z1--z2; +% + w:=apog_fact*nhw; +endchar; +beginchar(70, apog_fact*nhw#, 0.5apog_nhh#, 3*apog_nhh#); + clear; + w:=apog_fact*nhw; + flagshaper(1,w, 3apog_nhh, apog_nhh, 5thinwidth, (0,-3apog_nhh)); + clear; + w:=apog_fact*nhw; + w:=w+2thinwidth; + drawnoteb(w, 0.5apog_nhh, 0, 90, 20, w/2, apog_nhh/2); + pickup pencircle scaled 4thinwidth; + draw (0,0)--(0,-d); + clear; + w:=apog_fact*nhw; + x1=-0.3w; y1=-1.6apog_nhh; x2=1.3w; y2=y1+0.6*(x2-x1); + draw z1--z2; +% + w:=apog_fact*nhw; +endchar; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% 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; +y13=y8; x13=x8-0.6s; +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); +penpos13(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; +penstroke z1e{2left}..z2e..z11e..z3e +..z4e{right+up}..z10e..{up}z5e..z6e; +penstroke z6e{down+left}..{down}z7e--z8e +{2down+right}..z12e..{2left+up}z9e; +pickup pencircle scaled 2.5s; +drawdot (x9+0.4s,y9+0.8s); +% +penlabels(1,2,3,4,5,6,7,8,9,10,11,12); +enddef; +% +beginchar(71,3.25nhw#, 6nhh#, 2nhh#); +clear; +violin(15/8nhh,1.75nhh,-1.5nhh,0.4nhh,0.111nhh); +endchar; + +%%%%%%%%violin-schluessel verkleinert%%%%%%%% +beginchar(72,2.60nhw#, 6nhh#, 2nhh#); +clear; +violin(12/8nhh,1.40nhh,-1.2nhh,0.32nhh,1/10nhh); +endchar; + +%%%%%%%%%%%%%%%%%%%%% +% BASS--SCHLUESSEL %% +%%%%%%%%%%%%%%%%%%%%% +% clef de fa par D. Taupin % +%%%%%%%%%%%%%%%%%%%%%%%%%%%% +def bass (expr reduction) = + clear; + x2=0.80*reduction*nhw; y2=3nhh; + x1=x2+1.25*reduction*s; y1=y2; + x3=x2+0.71*reduction*nhw; y3=y2+reduction*nhh; + x4=x3+0.71*reduction*nhw; y4=y2-0.2*reduction*nhh; + x6=x2-6*reduction*thinwidth; y6=y2-2.2*reduction*nhh; + x7=x4+0.50*reduction*nhw; x8=x7; + y7=y2+0.38*reduction*nhh; y8=y2-0.38*reduction*nhh; +% + currentpen:=pencircle scaled (4*reduction*thinwidth); + penpos2(6*reduction*thinwidth,180); + penpos3(6*reduction*thinwidth, 90); + penpos4(0.5*reduction*nhh,0); + penpos6(0.3*reduction*nhh,-30); + penstroke(z2e{up}..{right}z3e{right}..{down}z4e{down}..{left+0.1down}z6); + currentpen := pencircle scaled (0.4reduction*nhh); + pickup pencircle scaled (2*(x2-x1)); + drawdot z1; + pickup pencircle scaled 1.7s; + drawdot z7; drawdot z8; +enddef; +% +beginchar(73, 3nhw#, 4nhh#, 0); + bass(1.0); +endchar; + +%%%%%%verkleinerter bass-schluessel%%%%%%%%% +beginchar(74, 2.4*nhw#, 4nhh#, 0); + bass(0.8); +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; +y9=y7+1/9height; +x5=x3; +y4=y5+0.120height; +x4-x7=height+3thinwidth; +x4-x5=1/2height+3thinwidth; +y3-y5=2/7height; +y8=y7; +y6=y7; +x9=0.62x5+0.38x4; +x10=x9; y10=y7+height; +x11=0.5x3+0.5x6; y11=y3; penpos11(1/2thick,0); +penpos8(1/4thick,180); +penpos2(1/4thick,180); +penpos1(thick,180); +penpos7(thick,180); +penpos6(thick,0); +penpos5(1/10thick,0); +penpos9(1/3thick,90); +penpos3(1/2thick,0); +penpos4(thick,180); +penpos10(1/3thick,-90); + +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}..{right}z9e{right}..{up}z4e{up}..{left}z10e{left}..{left+4down}z11e; + + +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}..{right}z9e{right}..{up}z4e{up}..{left}z10e{left}..{left+4down}z11e) +reflectedabout(z7,z8)); + +pickup pencircle scaled 2.5s; +drawdot (x3+0.1nhh, y3); +drawdot (x3+0.1nhh, 2y7-y3); +penlabels(1,2,3,4,5,6,7,8); +enddef; + +%%%%%%%%%%%Altschl"usseL%%%%%%%%%%% +beginchar(75,3.5nhw#, 4nhh#, 0nhh#); +clear; +alt(2nhh,1.25nhh,2nhh,0.4nhh); +endchar; + +%%%%%%%%%Verkleinerter Altschluessel%%%%%%%%% +beginchar(76,2.8nhw#, 4nhh#, 0nhh#); +clear; +alt(1.6nhh,1.00nhh,2nhh,0.32nhh); +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; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% SONDERZEICHEN % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +def alla_breve (expr trans) = + thin := 5thinwidth; thick := 1/2 nhh; + penpos1(thin, 0); + penpos2(thin, -90); + penpos3(thick,180); + penpos4(thin, 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; + + +%%%%%%%%%%%%%%% +% "fermate1" %% +%%%%%%%%%%%%%%% +beginchar(80, 2nhw#, 1.25nhh#, 0); + clear; + penpos2(nhh/3,90); + penpos4(nhh/3,90); + y2r =1.2h; + z1 = origin; 2x2l = 2x4l = x3 = w; y4l = y3 = 0; + penstroke z1..z2e..z3; + currentpen:= pencircle scaled (nhh/3); + drawdot z4; +endchar; +%%%%%%%%%%%%%%% +% "fermate2" %% +%%%%%%%%%%%%%%% +beginchar(81, 2nhw#, 0, 1.25nhh#); + clear; + penpos2(nhh/3,90); + penpos4(nhh/3,90); + y2l = -1.2d; + z1 = origin; 2x2l = 2x4 = x3 = w; + y4r = y3 = 0; + penstroke (z1..z2e..z3); + currentpen := pencircle scaled (nhh/3); + drawdot z4; +endchar; +%%%%%%%%%%%%%%%% +% "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(thin, 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; +%%%%%%%%%%%%%%% +% reprises sym% +%%%%%%%%%%%%%%% +beginchar(85, 2nhw#, 3nhh#, 0); + clear; + x1=0.5w; y1=0.5h; + x2=0.5nhh; y2=y1; + x3=x1; y3=y1+nhh; + x4=2x1-x2; y4=2y1-y2; + x5=2x1-x3; y5=2y1-y3; + pickup pencircle scaled 4thinwidth; + draw (x1,0)--(x1,h); + draw (0,y1)--(w,y1); + pickup pencircle xscaled 10thinwidth yscaled 4thinwidth; + draw z2..z3..z4..z5..cycle; +endchar; +beginchar(86, 3nhw#, 3nhw#, 0); + clear; + x1=0.5w; y1=0.5h; + x2=x1; y2=y1+0.4h; + x3=2x1-x2; y3=2y1-y2; + x4=x1-0.4h; y4=y1; + x5=2x1-x4; y5=2y1-y4; + x6=x1+0.4w; y6=y1+0.4h; + x7=2x1-x6; y7=2y1-y6; + pickup pencircle scaled 10thinwidth; + drawdot z2; drawdot z3; + drawdot z4; drawdot z5; + pickup pencircle scaled 4thinwidth; + draw z6--z7; +% + x8=x1-0.3w; y8=y1+0.3h; + x9=2x1-x8; y9=2y1-y8; +% + draw z8--z9; +endchar; +%%%%%%%%%%%%%%% +% " pince" % +%%%%%%%%%%%%%%% +def pince = + clear; + x1=-0.125w; y1=0.25h; + x2=1/8w; y2=8/10h; + x3=0.5w-x2; y3=h-y2; + x4=0.5w+x2; y4=y2; + x5=0.5w+x3; y5=y3; + x6=w-x1; y6=h-y1; + pickup pencircle xscaled 0.40nhh yscaled 0.1nhh rotated 45; + draw (z1--z2--z3--z4--z5--z6); +enddef; +% +beginchar(87, 1.2nhw#, 0.8nhh#, 0); + pince; +endchar; +% +beginchar(88, 1.8nhw#, 0.8nhh#, 0); + w:=2w/3; + pince; + draw (z4--z5--z6) shifted (0.5w,0); +endchar; +%%%%%%%%%%%%%%% +% "mordant" % +%%%%%%%%%%%%%%% +beginchar(89, 1.2nhw#, 0.8nhh#, 0); + pince; + pickup pencircle scaled (4thinwidth); + draw (0.5w,-0.4h)--(0.5w,1.4h); +endchar; +%%%%%%%%%%%%%%% +% arpeggio %% +%%%%%%%%%%%%%%% +def arpegel = + clear; + y1=0; x1=0.5w; + y2=0.3nhh; x2=8/10w; + y3=nhh-y2; x3=w-x2; + y4=nhh; x4=0.5w; + pickup pencircle xscaled 0.40nhh yscaled 0.1nhh rotated 45; + draw (z1..z2..z3..z4); +enddef; +% +beginchar(90, 0.4nhw#, nhh#, 0); + arpegel; +endchar; +for jj=1 upto 9: + beginchar(90+jj, 0.4nhw#, (1+jj)*nhh#, 0); + arpegel; + for kk=1 upto jj: + draw (z1..z2..z3..z4) shifted (0,kk*nhh); + endfor; +endchar; +endfor; +%%%%%%%%%%%%%%% +% "trille" %% +%%%%%%%%%%%%%%% +def arp_elem = + clear; + x1=0; y1=0.5h; + x2=1/3nhw; y2=8/10h; + x3=nhw-x2; y3=h-y2; + x4=nhw; y4=0.5h; + pickup pencircle xscaled 0.33nhh yscaled 0.1nhh rotated 45; + draw (z1..z2..z3..z4); +enddef; +% +beginchar(100, nhw#, 0.45nhh#, 0); + arp_elem; +endchar; +% +for jj=1 upto 9: + beginchar(100+jj, (jj+1)*nhw#, 0.45nhh#, 0); + arp_elem; + for kk=1 upto jj: + draw (z1..z2..z3..z4) shifted (kk*nhw,0); + endfor; + endchar; +endfor; +%%%%%%%%%%%%%%%%%%%%%%% +%% "8flag nach unten" % +%%%%%%%%%%%%%%%%%%%%%%% +beginchar(110, 0, 3apog_nhh#, 0); + clear; + w:=0.8*apog_fact*nhw; + flagshape(1,w, h, apog_nhh, 5thinwidth, 0, 0); + w:=0; +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%% +%% "16flag nach unten" % +%%%%%%%%%%%%%%%%%%%%%%%% + +beginchar(111, 0, 3.25apog_nhh#, 0); + clear; + w:=0.8*apog_fact*nhw; + flagshape(1, w, 2.5apog_nhh, 2/3apog_nhh, 5thinwidth, 0, 0); + flagshape(5,.95 w, 2.25 apog_nhh, 2/3apog_nhh, 5thinwidth, 0, apog_nhh); + w:=0; +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%% +%% "32flag nach unten" % +%%%%%%%%%%%%%%%%%%%%%%%% + +beginchar(112, 0, 3.75apog_nhh#, 0); + clear; + w:=0.8*apog_fact*nhw; + flagshape(1, w, 2.5apog_nhh, 2/3apog_nhh, 5thinwidth, 0, 0); + flagshape(5, .95w, 2.25 apog_nhh, 2/3apog_nhh, 5thinwidth, 0, apog_nhh); + flagshape(9, .9w, 2 apog_nhh, 2/3apog_nhh, 5thinwidth, 0, 1.75apog_nhh); + w:=0; +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%% +%% "64flag nach unten" % +%%%%%%%%%%%%%%%%%%%%%%%% + +beginchar(113, 0, 4.25apog_nhh#, 0); + clear; + w:=0.8*apog_fact*nhw; + flagshape(1, w, 2.5apog_nhh, 2/3apog_nhh, 5thinwidth, 0, 0); + flagshape(5,.95 w, 2.25 apog_nhh, 2/3apog_nhh, 5thinwidth, 0, apog_nhh); + flagshape(9,.9w, 2 apog_nhh, 2/3apog_nhh, 5thinwidth, 0, 1.75apog_nhh); + flagshape(13,0.85w, 2apog_nhh, 2/3apog_nhh, 5thinwidth, 0, 2.25apog_nhh); + w:=0; +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%%% +%% "128flag nach unten" % +%%%%%%%%%%%%%%%%%%%%%%%%% + +beginchar(114, 0, 4.5apog_nhh#, 0); + clear; + w:=0.8*apog_fact*nhw; + flagshape(1, w, 2.5apog_nhh, 2/3apog_nhh, 5thinwidth, 0, 0); + flagshape(5, w, 2.25apog_nhh, 2/3apog_nhh, 5thinwidth, 0, apog_nhh); + flagshape(9, w, 2 apog_nhh, 2/3apog_nhh, 5thinwidth, 0, 1.75apog_nhh); + flagshape(13,0.9 w, 2apog_nhh, 2/3apog_nhh, 5thinwidth, 0, 2.25apog_nhh); + flagshape(17,0.9 w, 1.5apog_nhh, 1/3apog_nhh, 5thinwidth, 0, 3apog_nhh); + w:=0; +endchar; + +%%%%%%%%%%%%%%%%%%%%%% +%% "8flag nach oben" % +%%%%%%%%%%%%%%%%%%%%%% + +beginchar(115, 0, 3apog_nhh#, 0); + clear; + w:=0.8*apog_fact*nhw; + flagshaper(1,w, h, apog_nhh, 5thinwidth, origin); + penlabels(1,2,3,4); + w:=0; +endchar; + +%%%%%%%%%%%%%%%%%%%%%%% +%% "16flag nach oben" % +%%%%%%%%%%%%%%%%%%%%%%% + +beginchar(116, 0, 3.25apog_nhh#, 0); + clear; + w:=0.8*apog_fact*nhw; + flagshaper(1, w, 2.5apog_nhh, 2/3apog_nhh, 5thinwidth, (0,0.75apog_nhh)); + flagshaper(5, w, 2.25 apog_nhh, 2/3apog_nhh, 5thinwidth,(0,-0.25apog_nhh)); + penlabels(1,2,3,4,5,6,7,8); + w:=0; +endchar; + +%%%%%%%%%%%%%%%%%%%%%%% +%% "32flag nach oben" % +%%%%%%%%%%%%%%%%%%%%%%% + +beginchar(117, 0, 3.75apog_nhh#, 0); + clear; + w:=0.8*apog_fact*nhw; + flagshaper(1, w, 2.5apog_nhh, 2/3apog_nhh, 5thinwidth, (0,1.5apog_nhh)); + flagshaper(5, w, 2.5apog_nhh, 2/3apog_nhh, 5thinwidth, (0,0.75apog_nhh)); + flagshaper(9, .95w, 2.25 apog_nhh, 2/3apog_nhh, 5thinwidth, origin); + penlabels(1,2,3,4,5,6,7,8,9,10,11,12); + w := 0; +endchar; + +%%%%%%%%%%%%%%%%%%%%%%% +%% "64flag nach oben" % +%%%%%%%%%%%%%%%%%%%%%%% + +beginchar(118, 0, 4.25apog_nhh#, 0); + clear; + w:=0.8*apog_fact*nhw; + flagshaper(1, w, 2.5apog_nhh, 2/3apog_nhh, 5thinwidth, (0,1.75apog_nhh)); + flagshaper(5, w, 2.25 apog_nhh, 2/3apog_nhh, 5thinwidth, (0,1apog_nhh)); + flagshaper(9,w, 2 apog_nhh, 2/3apog_nhh, 5thinwidth, (0,0.34apog_nhh)); + flagshaper(13,0.9w, 2apog_nhh, 2/3apog_nhh, 5thinwidth, (0,-0.32apog_nhh)); + penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); + w := 0; +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%% +%% "128flag nach oben" % +%%%%%%%%%%%%%%%%%%%%%%%% + +beginchar(119, 0, 4.5apog_nhh#, 0); + clear; + w:=0.8*apog_fact*nhw; + flagshaper(1, w, 2.25apog_nhh, 2/3apog_nhh, 5thinwidth, (0,2.5apog_nhh)); + flagshaper(5, w, 2.25apog_nhh, 2/3apog_nhh, 5thinwidth, (0,1.75apog_nhh)); + flagshaper(9, w, 2 apog_nhh, 2/3apog_nhh, 5thinwidth, (0,1apog_nhh)); + flagshaper(13,0.9 w, 2apog_nhh, 2/3apog_nhh, 5thinwidth, (0,0.5apog_nhh)); + flagshaper(17,0.9 w, 2apog_nhh, 1/3apog_nhh, 5thinwidth, (0,0apog_nhh)); + w := 0; +endchar; +%%%%%%%%%%%%%%%% +% kleine versetzungen +%%%%%%%%%%%%%%%% +beginchar(120, apog_fact*nhw#, 2apog_fact*nhh#, 2apog_fact*nhh#); + flat (apog_fact); +endchar; +beginchar(121,2*apog_fact*nhw#, 2*apog_fact*nhh#, 2*apog_fact*nhh#); + flat (apog_fact); + draw (z1--z3) shifted ((w/2 - 1.5s),0); + penstroke (z2e..z4e...z3e{3left+2down})shifted ((w/2 -1.5s),0); +endchar; +beginchar(122, 0.8apog_fact*nhw#, 1.5apog_fact*nhh#, 1.5apog_fact*nhh#); + sharp(apog_fact); +endchar; +beginchar(123, apog_fact*nhw#, .5nhw#, .5nhw#); + clear; + z1 = (0.150w, h-0.150w); z2 = (w-0.150w, h-0.150w); + z3 = (0.150w,-h+0.150w); z4 = (w-0.150w,-h+0.150w); + pwidth:=0.2*apog_fact*nhh; + currentpen:= pencircle scaled pwidth; + draw z1--z4; draw z3--z2; + currentpen:= pensquare scaled .30w; + drawdot z1; drawdot z2; drawdot z3; drawdot z4; +endchar; +beginchar(124, 0.8apog_fact*nhw#, 1.5apog_fact*nhh#, 1.5apog_fact*nhh#); + natural; +endchar; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% volle Note mit | --> |O|% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +beginchar(125,1.5nhh#, .5nhh#, .5nhh#); + drawnoteb(w, h, 0, 85, 0, nhh/3, 3*thinwidth); + pickup pensquare scaled 0.2w; + draw (-0.05w,-0.4nhh)--(-0.05w,0.4nhh); + draw (1.05w,-0.4nhh)--(1.05w,0.4nhh); +endchar; + diff --git a/Master/texmf-dist/fonts/source/public/musictex/musicgen.mf b/Master/texmf-dist/fonts/source/public/musictex/musicgen.mf new file mode 100644 index 00000000000..8457f0336b5 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/musicgen.mf @@ -0,0 +1,1372 @@ +apog_fact=0.75; +apog_nhh=apog_fact*nhh; +apog_nhh#=apog_fact*nhh#; +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% NOTENKOEPFE UND FAEHNCHEN % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +%%%%%%%%%%%%%%% +%%notenkoepfe % +%%%%%%%%%%%%%%% + +def drawnoteb(expr noteheadwidth, noteheadheight, 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 = noteheadwidth; y2l = noteheadheight; y4l = -noteheadheight; + penstroke (z1e{up}..z2e{right}..z3e{down}..z4e{left}..cycle) + rotatedaround((origin +1/2noteheadwidth*right),theta_c); + enddef; + +def drawnotew(expr noteheadwidth, noteheadheight, theta_a, theta_b, +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); % + y1l = y3l = 0; + x2l = x4l = 0.5noteheadwidth; + x1l= 0; x3l = noteheadwidth; + y2l = noteheadheight; y4l = -noteheadheight; +%%%% penstroke (z1e{up}..z2e{right}..z3e{down}..z4e{left}..cycle); +%%%% pickup pencircle xscaled width_a yscaled width_b; +%%%% draw (z1{up}..z2{right}..z3{down}..z4{left}..cycle); + fill (z1l{up}..z2l{right}..z3l{down}..z4l{left}..cycle); cullit; + unfill (z1r{up}..z2r{right}..z3r{down}..z4r{left}..cycle); cullit; + penlabels(1,2,3,4); + 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, thick, thin, shiftx, shifty, + flagsense) = + pair intersectionp; % +% % .1 + penpos[i](thick,90); % + penpos[i+1](3thin,45); % .2 + penpos[i+2](thin,0); % + penpos[i+3](thin,0); % .3 + x[i] = shiftx-0.2pt; % + y[i]r = height+shifty; % .4 + x[i+1] = shiftx+3/8width; % + y[i+1] = height+shifty - thick; % + x[i+2]r = shiftx+width; + y[i+2]r = height+shifty - 2thick; + y[i+3] = shifty; + x[i+3]r = shiftx+0.6width; + if i>1: intersectionp = z[i-2]; + else : intersectionp = z[i+3]; + fi; + + if flagsense>0: 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); + else: + 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) + reflectedabout ((0,h/2), (nhw,h/2))) ; + fi; + +enddef; +%%%%%%%%%%%%%%%%%%%%%% +% song system limits % +%%%%%%%%%%%%%%%%%%%%%% +beginchar(14,0.5nhw#,0,0); + clear; + z1=(0,0); + z2=(0.5nhw,0); + z3=(1.5nhw,nhh); + penpos1(0.4pt,90); + penpos2(0.4pt,90); + penpos3(0.2pt,135); + penstroke (z1e--z2e{right+0.2up}..z3e); +endchar; +beginchar(15,0.5nhw#,0,0); + clear; + z1=(0,0); + z2=(0.5nhw,0); + z3=(1.5nhw,-nhh); + penpos1(0.4pt,90); + penpos2(0.4pt,90); + penpos3(0.2pt,45); + penstroke (z1e--z2e{right-0.2up}..z3e); +endchar; + +%%%%%%%%%%%%%%%% +% 4 crescendos % +%%%%%%%%%%%%%%%% +for n:=1 upto 4: + beginchar(15+n, 4*n*nhw#, (0.5+0.1*n)*nhh#, (0.5+0.1*n)*nhh#); + pickup pencircle scaled (0.4s); + draw (0,(0.5+0.1*n)*nhh)--(4*n*nhw,0)--(0,-(0.5+0.1*n)*nhh); + endchar; +endfor; +%%%%%%%%%%%%%%%%%% +% 4 decrescendos % +%%%%%%%%%%%%%%%%%% +for n:=1 upto 4: + beginchar(19+n, 4*n*nhw#, (0.5+0.1*n)*nhh#, (0.5+0.1*n)*nhh#); + pickup pencircle scaled (0.4s); + draw (4*n*nhw,(0.5+0.1*n)*nhh)--(0,0)--(4*n*nhw,-(0.5+0.1*n)*nhh); + endchar; +endfor; +%%%%%%%%%%%%%%% +% accents % +%%%%%%%%%%%%%%% +% point au-dessus de la note +beginchar(24, nhw#, 1.0nhh#, 0.0nhh#); + clear; + pickup pencircle scaled 0.25nhh; + drawdot (0.5nhw, 0.2pt+1.15nhh); +endchar; +% point au-dessous de la note +beginchar(25, nhw#, 0.0nhh#, 1.0nhh#); + clear; + pickup pencircle scaled 0.25nhh; + drawdot (0.5nhw, -0.2pt-1.15nhh); +endchar; +% barre au-dessus de la note +beginchar(26, nhw#, 1.0nhh#, 0.0nhh#); + clear; + dely:=0.2pt+1.15nhh; + pickup penrazor scaled 0.15nhh rotated 90; + draw (0.0nhw, dely)--(1.0nhw, dely); +endchar; +% trait au-dessous de la note +beginchar(27, nhw#, 0.0nhh#, 1.0nhh#); + clear; + dely:=0.2pt+1.15nhh; + pickup penrazor scaled 0.15nhh rotated 90; + draw (0.0nhw, -dely)--(1.0nhw, -dely); +endchar; +% accent (pizz.) au-dessus de la note +beginchar(28, nhw#, 1.0nhh#, 0.0nhh#); + clear; + dely:=1.2nhh; + rayon:=0.2nhh; + z1=(0.5nhw,dely+rayon); + z2=(0.5nhw-rayon,dely); + z3=(0.5nhw,dely-0.45nhh); + z4=(0.5nhw+rayon,dely); + fill z1{left}..{down}z2--z3--z4{up}..{left}cycle; +endchar; +% accent (pizz.) au-dessous de la note +beginchar(29, nhw#, 0.0nhh#, 1.0nhh#); + clear; + rayon:=0.2nhh; + dely:=1.2nhh; + z1=(0.5nhw,dely+rayon); + z2=(0.5nhw-rayon,dely); + z3=(0.5nhw,dely-0.45nhh); + z4=(0.5nhw+rayon,dely); + fill (z1{left}..{down}z2--z3--z4{up}..{left}cycle) + rotatedaround ((0.5nhw,0),180); +endchar; +% accent (sforz.) au-dessus de la note +beginchar(30, nhw#, 1.5nhh#, 0.0nhh#); + clear; + z1=(1.2nhw,1.3nhh); + z2=(-0.2nhw,1.3nhh); + pickup pencircle scaled 0.5s; + draw z1--(x2,y2+0.3nhh); + draw z1--(x2,y2-0.3nhh); +endchar; +% accent (sforz.) au-dessous de la note +beginchar(31, nhw#, 0.0nhh#, 1.0nhh#); + clear; + z1=(1.2nhw,-1.3nhh); + z2=(-0.2nhw,-1.3nhh); + pickup pencircle scaled 0.5s; + draw z1--(x2,y2+0.3nhh); + draw z1--(x2,y2-0.3nhh); +endchar; +%%%%%%%%%%%%%%% +% breve % +%%%%%%%%%%%%%%% +beginchar(32, nhw#, 0.7nhh#, 0.7nhh#); + clear; + pickup pencircle scaled (4thinwidth); + draw (0,h)--(0,-d); + draw (w,h)--(w,-d); + fill (0,0.75h)--(w,0.75h)--(w,0.25h)--(0,0.25h)--cycle; + fill (0,-0.75d)--(w,-0.75d)--(w,-0.25d)--(0,-0.25d)--cycle; +endchar; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% volle Note -- quarter note -- noire % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +beginchar(33, nhw#, .5nhh#, .5nhh#); + w:=w+2thinwidth; + drawnoteb(w, h, 0, 90, 20, w/2, nhh/2); +endchar; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% halbe Note -- half note -- blanche % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +beginchar(34, nhw#, .5nhh#, .5nhh#); + w:=w+2thinwidth; + drawnoteb(w, h, 0, 90, 20, 3*thinwidth, nhh/4); +endchar; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% ganze Note -- whole note -- ronde % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +beginchar(35,1.5nhh#, .5nhh#, .5nhh#); + drawnotew(w, h, 0, 30, nhh/3, 3.5*thinwidth); +endchar; +%%%%%%%%%%%%%%% +% semi-breve % +%%%%%%%%%%%%%%% +beginchar(36, 2nhw#, 0.7nhh#, 0.7nhh#); + clear; + pickup pencircle scaled (4thinwidth); + draw (0,h)--(0,-d); + draw (w,h)--(w,-d); + fill (0,0.75h)--(w,0.75h)--(w,0.25h)--(0,0.25h)--cycle; + fill (0,-0.75d)--(w,-0.75d)--(w,-0.25d)--(0,-0.25d)--cycle; +endchar; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% volle kleine Note -- small quarter note % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +beginchar(37, apog_fact*nhw#, .50*apog_nhh#, .50*apog_nhh#); + w:=apog_fact*nhw; + w:=w+2thinwidth; + drawnoteb(w, h, 0, 90, 20, w/2, apog_nhh/2); +endchar; +%%%%%%%%%%%%%%% +%% halbe Note % +%%%%%%%%%%%%%%% +beginchar(38, apog_fact*nhw#, apog_fact*0.5nhh#, apog_fact*0.5nhh#); + w:=w+2thinwidth; + drawnoteb(w, h, 0, 90, 20, 3*thinwidth, apog_nhh/4); +endchar; +%%%%%%%%%%%%%%% +%% ganze Note % +%%%%%%%%%%%%%%% +beginchar(39, 1.5*apog_nhh#, apog_fact*0.5nhh#, apog_fact*0.5nhh#); + drawnotew(w, h, 0, 30, apog_nhh/3, 3.5*thinwidth*apog_fact); +endchar; +% +% general parameters for flags +% + flagw:=0.8*nhw; + flagthick:=nhh; + flagthin:=5thinwidth; +% + def cflag (expr sense) = + pickup pencircle scaled (0.1pt); + flagshape(1, flagw, h, flagthick, flagthin, 0, 0, sense); + enddef; + def ccflag (expr sense) = + pickup pencircle scaled (0.1pt); + flagshape(1, flagw, 2.50flagthick, 2/3flagthick, flagthin, + 0, 0, sense); + flagshape(5, flagw, 2.25flagthick, 2/3flagthick, flagthin, + 0, flagthick, sense); + enddef; + def cccflag (expr sense) = + ccflag(sense); + flagshape(9, flagw, 2.25flagthick, 2/3flagthick, flagthin, + 0, 1.75flagthick, sense); + enddef; + def ccccflag (expr sense) = + cccflag(sense); + flagshape(13, flagw, 2.25flagthick, 2/3flagthick, flagthin, + 0, 2.50flagthick, sense); + enddef; + def cccccflag (expr sense) = + ccccflag(sense); + flagshape(17, flagw, 2.25flagthick, 2/3flagthick, flagthin, + 0, 3.25flagthick, sense); + enddef; +%%%%%%%%%%%%%%%%%%%%%% +% "8flag nach unten" % +%%%%%%%%%%%%%%%%%%%%%% +flagw:=0.8*nhw; +beginchar(40, 0, 3nhh#, 0); + clear; + cflag(1); + w:=0; +endchar; +% idem mais avec barre (appogiature) +beginchar(12, 0, 3nhh#, 0); + clear; + cflag(1); + pickup pencircle scaled 4thinwidth; + clear; + w:=nhw; + x1=-0.25w; y1=0.6nhh; x2=1.1w; y2=y1+0.6*(x2-x1); + draw z1--z2; + w:=0; +endchar; +%%%%%%%%%%%%%%%%%%%%%%%% +%% "16flag nach unten" % +%%%%%%%%%%%%%%%%%%%%%%%% +beginchar(41, 0, 3.25nhh#, 0); + clear; + ccflag(1); + w:=0; +endchar; +%%%%%%%%%%%%%%%%%%%%%%%% +%% "32flag nach unten" % +%%%%%%%%%%%%%%%%%%%%%%%% +beginchar(42, 0, 4.00nhh#, 0); + clear; + cccflag(1); + w:=0; +endchar; +%%%%%%%%%%%%%%%%%%%%%%%% +%% "64flag nach unten" % +%%%%%%%%%%%%%%%%%%%%%%%% +beginchar(43, 0, 4.75nhh#, 0); + clear; + ccccflag(1); + w:=0; +endchar; +%%%%%%%%%%%%%%%%%%%%%%%%% +%% "128flag nach unten" % +%%%%%%%%%%%%%%%%%%%%%%%%% +beginchar(44, 0, 5.50nhh#, 0); + clear; + cccccflag(1); + w:=0; +endchar; +flagw:=1.0*nhw; % flags up should be wider +%%%%%%%%%%%%%%%%%%%%%% +%% "8flag nach oben" % +%%%%%%%%%%%%%%%%%%%%%% +beginchar(45, 0, 3nhh#, 0); + clear; + cflag(-1); + w:=0; +endchar; +% idem mais avec barre (appogiature) +beginchar(13, 0, 3nhh#, 0); + clear; + cflag(-1); + pickup pencircle scaled 4thinwidth; + clear; + w:=nhw; + x1=-0.25w; y1=1.6nhh; x2=1.2w; y2=y1+0.6*(x2-x1); + draw z1--z2; + w:=0; +endchar; +%%%%%%%%%%%%%%%%%%%%%%% +%% "16flag nach oben" % +%%%%%%%%%%%%%%%%%%%%%%% +beginchar(46, 0, 3.25nhh#, 0); + clear; + ccflag(-1); + w:=0; +endchar; +%%%%%%%%%%%%%%%%%%%%%%% +%% "32flag nach oben" % +%%%%%%%%%%%%%%%%%%%%%%% +beginchar(47, 0, 4.00nhh#, 0); + clear; + cccflag(-1); + w := 0; +endchar; +%%%%%%%%%%%%%%%%%%%%%%% +%% "64flag nach oben" % +%%%%%%%%%%%%%%%%%%%%%%% +beginchar(48, 0, 4.75nhh#, 0); + clear; + ccccflag(-1); + w := 0; +endchar; +%%%%%%%%%%%%%%%%%%%%%%%% +%% "128flag nach oben" % +%%%%%%%%%%%%%%%%%%%%%%%% +beginchar(49, 0, 5.50nhh#, 0); + clear; + cccccflag(-1); + w := 0; +endchar; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% VERSETZUNGSZEICHEN % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%%%%%%%%%%% +% "flat" % +%%%%%%%%%%%% +def flat (expr reduction,shiftx,flatsense) = + clear; flatraise:=0; % + penpos4(8/24reduction*nhh,0);%/5,20 % 1 + penpos3(reduction*nhh/8,-90);%/5,20 % + penpos6(reduction*nhh/7, 90);%/5,20 % + penpos2(reduction*nhh/8, 90);%/5,20 % 6 \ + y1 = 1.5*reduction*nhh+flatraise; % / 4 + x1=x2=x5 = reduction*s; x4 = reduction*(nhw-s); % 2 / + y4 = 0.1reduction*s+flatraise; % / + y3l = flatraise-0.5*reduction*nhh; %35 + y2l = 0.5y4; y5=y3; + x3=x5-1.5thinwidth; + y6r=0.5*reduction*nhh+flatraise; x6=(x2+x4)/2; + currentpen:= pencircle scaled 3thinwidth; + if flatsense>0: + penstroke + (z2e..{right}z6e{right}..{down}z4e{down}..{left+down}z3e) + shifted (shiftx,flatraise); + cullit; + draw (z1--z5) shifted (shiftx,flatraise); + penlabels (1,2,3,4,5); + else: + penstroke (counterclockwise ( + (z2e..{right}z6e{right}..{down}z4e{down}..{3left+2down}z3e) + reflectedabout(z1,z5))) + shifted (shiftx,flatraise); + cullit; + draw (z1--z5) shifted (shiftx,flatraise); + fi; cullit; +enddef; +% +beginchar(50, nhw#, 2nhh#, 2nhh#); + flat (1.0, 0, 1); +endchar; +% +%%%%%%%%%% +%% "bb" % +%%%%%%%%%% +beginchar(51,1.7nhw#, 2nhh#, 2nhh#); + flat (1.0, 0, 1); cullit; clear; + flat (1.0, 0.7nhw, 1); +endchar; +%%%%%%%%%%%%% +% "sharp" % +%%%%%%%%%%%%% +def sharp ( expr reduction ) = + clear; + penpos3(3/8reduction*nhh,90); + penpos4(3/8reduction*nhh,90); + penpos5(3/8reduction*nhh,90); + penpos6(3/8reduction*nhh,90); + y1 + y2 = -0.5reduction*s; y1 - y2 = 2h - reduction*s; + x1 = x2 = reduction*s; y3 = 1/4reduction*nhh; + y4l = y3r; x3= 0; x4 = 0.8*reduction*nhw; + y5 = -y4; y6 = -y3; x5 = x3; x6 = x4; + x7 = w-x1 ; x8 = w-x2; y7=-y1; y8=-y2; + currentpen:= pencircle scaled 3thinwidth; + draw z1--z2; + draw z7--z8; + penstroke z3e--z4e; + penstroke (z5e--z6e) ; + penlabels(1,2,3,4,5,6,7,8); +enddef; +% +beginchar(52, 0.8nhw#, 1.5nhh#, 1.5nhh#); + sharp(1.0); +endchar; +% +%%%%%%%%%% +%% "xx" % +%%%%%%%%%%% +beginchar(53, nhw#, .5nhw#, .5nhw#); + clear; + z1 = (0.150w, h-0.150w); z2 = (w-0.150w, h-0.150w); + z3 = (0.150w,-h+0.150w); z4 = (w-0.150w,-h+0.150w); + currentpen:= pencircle scaled .2nhh; + draw z1--z4; draw z3--z2; + currentpen:= pensquare scaled .30w; + drawdot z1; drawdot z2; drawdot z3; drawdot z4; +endchar; +%%%%%%%%%%%%%%% +% "natural" % +%%%%%%%%%%%%%%% +def natural = + clear; + reduction:=w/(0.8*nhw); + penpos3(3/8reduction*nhh,90); + penpos4(3/8reduction*nhh,90); + penpos7(3/8reduction*nhh,90); + penpos8(3/8reduction*nhh,90); + x1 = x2 = x3 = x7 = 0.75*reduction*s-1.5thinwidth; + x5 = x6 = x4 = x8 = w-x1; + y1 = h; y3 = 0.30reduction*nhh ; + y4l = y3r-0.5*reduction*s ; + y6 = -y1; y5 = -y2; + y7l = y2; + y7 = -y4; y8 = -y3; + currentpen:= pencircle scaled 3thinwidth; + draw (z1--(x2,y2+1.5thinwidth)) shifted (1.5thinwidth,0); + draw ((x5,y5-1.5thinwidth)--z6) shifted (-1.5thinwidth,0); + penstroke z3e--z4e; + penstroke z7e--z8e; + penlabels(1,2,3,4,5,6,7,8); +enddef; +% +beginchar(54, 0.8nhw#, 1.5nhh#, 1.5nhh#); + natural; +endchar; +% +%%%%%%%%%%%%%%%% +%% "1/4 flat" % +%%%%%%%%%%%%%%%% +beginchar(55, nhw#, 2nhh#, 2nhh#); + flat (1.0, 0.65nhw,-1); +endchar; +%%%%%%%%%%%%%%%% +%% "3/4 flat" % +%%%%%%%%%%%%%%%% +beginchar(56, 1.7nhw#, 2nhh#, 2nhh#); + flat (1.0, 0.65nhw, -1); clear; cullit; + flat (1.0, 0.65nhw, 1); +endchar; +% +% Gregorian notes +% +beginchar(57, nhw#, .5nhh#, .5nhh#); + fill (0.5w-0.8h,0)--(0.5w,h)--(0.5w+0.8h,0)--(0.5w,-h)--cycle; +endchar; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% 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; +% +%%%%%%%%%%%%%%%%%% +%% "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 := 1/8 nhh; 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+thin, alpha_a ); % + penpos4 ( thick+thin, 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 ( 2/3thick, alpha_b); + penpos7 ( thin, 45); + 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]; + z4 = (w,h) scaled .55; + y6r = 1.45nhh; + x6l = x4l; + x7 = 0.9w; y7= nhh-thin; + z10= z5r shifted (0.36thin,0.36thin); + currentpen:= penrazor scaled thin rotated 45; + draw z1--z2r; draw z10--z4l; + cullit; penstroke z2e..z3e..z8e..z4e; pickup pencircle scaled thin; +% cullit; penstroke z5e{nw}..z6e..z7e; cullit; + cullit; penstroke z5e..z6e..{up+4right}z7e; cullit; + penlabels(1,2,3,4,5,6,7,8,9,10); +endchar; +%%%%%%%%%%%%%%%%%%% +%% "achtel Pause" % +%%%%%%%%%%%%%%%%%%% +beginchar(63, 2nhh#, 3nhh#, 0) + clear; + %punkte f"ur achtelpause, 16. und 32. Pause + x1=y1= nhh; x2=7/4nhh; y2=11/4nhh; + x3=1/2nhh; y3=10/4nhh; + z4-z3=(0.20nhh,0.35nhh); + currentpen := pencircle scaled 4thinwidth; + draw z1..z2; + currentpen := pencircle scaled(2*thinwidth); + draw z2..z3{up+left}; + z5=z3; + filldraw z5..z4..z5..cycle; + penlabels (1,2,3,4,5); +endchar; +%%%%%%%%%%%%%%%%%%%%%%%% +%% "sechzehntel Pause" % +%%%%%%%%%%%%%%%%%%%%%%%% +beginchar(64,2nhh#, 3nhh#, 0) + clear; + %punkte f"ur achtelpause, 16. und 32. Pause + x1=y1= nhh; x2=7/4nhh; y2=11/4nhh; + x3=1/2nhh; y3=10/4nhh; + z4-z3=(0.20nhh,0.35nhh); +% + x5=x2; y5=y2; + y6=0; x6=x5-1/3y5; + currentpen := pencircle scaled 4thinwidth; + draw z5..z6; + currentpen := pencircle scaled(2*thinwidth); + draw z2..z3{up+left}; + draw z2..z3{up+left} shifted(-1/3nhh,-nhh); + filldraw z3..z4..z3..cycle; + filldraw z3..z4..z3..cycle shifted(-1/3nhh,-nhh); + penlabels(1,2,3,4,5,6); +endchar; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% "zweiunddreissigstel Pause" % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +beginchar(65,2nhh#, 4nhh#, 0) + clear; + %punkte f"ur achtelpause, 16. und 32. Pause + x1=y1= nhh; x2=7/4nhh; y2=11/4nhh; + x3=1/2nhh; y3=10/4nhh; + z4-z3=(0.20nhh,0.35nhh); +% + x5=x2+1/6nhh; y5=y2+nhh; + y6=0; x6=x5-1/3y5; + currentpen := pencircle scaled 4thinwidth; + draw z5..z6; + currentpen := pencircle scaled(2*thinwidth); + draw z2..z3{up+left} shifted( 1/6nhh,nhh); + draw z2..z3{up+left} shifted(-1/6nhh, 0); + draw z2..z3{up+left} shifted(-3/6nhh,-nhh); + filldraw z3..z4..z3..cycle shifted( 1/6nhh, nhh); + filldraw z3..z4..z3..cycle shifted(-1/6nhh, 0); + filldraw z3..z4..z3..cycle shifted(-3/6nhh,-nhh); +endchar; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% "vierundsechzigstel Pause" %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +beginchar(66,2nhh#, 5nhh#, 0) + clear; + %punkte f"ur achtelpause, 16. und 32. Pause + x1=y1= nhh; x2=7/4nhh; y2=11/4nhh; + x3=1/2nhh; y3=10/4nhh; + z4-z3=(0.20nhh,0.35nhh); +% + x5=x2+1/3nhh; y5=y2+2nhh; + y6=0; x6=x5-1/3y5; + currentpen := pencircle scaled 4thinwidth; + draw z5..z6; + currentpen := pencircle scaled(2*thinwidth); + draw z2..z3{up+left} shifted( 1/3nhh, 2nhh); + draw z2..z3{up+left} shifted( 0,nhh); + draw z2..z3{up+left} shifted(-1/3nhh, 0); + draw z2..z3{up+left} shifted(-2/3nhh,-nhh); + filldraw z3..z4..z3..cycle shifted( 1/3nhh, 2nhh); + filldraw z3..z4..z3..cycle shifted( 0, nhh); + filldraw z3..z4..z3..cycle shifted(-1/3nhh,0); + filldraw z3..z4..z3..cycle shifted(-2/3nhh,-nhh); +endchar; +%%%%%%%%%%%%%%%%%%% +% ornements % +%%%%%%%%%%%%%%%%%%% +beginchar (67, 2nhw#, nhh#, 0); + clear; + x1=0.2w; y1r=h; x6=w-x1; y6=h-y1; + x2r=0; y2=0.5h; x5=w-x2; y5=h-y2; + x3=0.22w; y3r=0; x4=w-x3; y4=h-y3; + pickup pencircle scaled 4thinwidth; + penpos1 (5thinwidth,90); + penpos2 (5thinwidth, 180); + penpos3 (0.2nhw, -40); + penpos4 (0.2nhw, -40); + penpos5 (5thinwidth, 180); + penpos6 (5thinwidth, 90); + penstroke (z1e..{down}z2e{down}..{right}z3e{right}..{right}z4e{right}..{down}z5e{down}..z6e) ; + pickup pencircle scaled 2s ; + drawdot (x1,y1r-s) ; + drawdot (x6,y6l+s) ; + penlabels(1,2,3,4,5,6); +endchar; +beginchar (68, 2nhw#, nhh#, 0); + clear; + x1=0.2w; y1r=0; x6=w-x1; y6=h-y1; + x2r=0; y2=0.5h; x5=w-x2; y5=h-y2; + x3=0.22w; y3r=h; x4=w-x3; y4=h-y3; + pickup pencircle scaled 4thinwidth; + penpos1 (5thinwidth,-90); + penpos2 (5thinwidth, -180); + penpos3 (0.2nhw, 40); + penpos4 (0.2nhw, 40); + penpos5 (5thinwidth, -180); + penpos6 (5thinwidth, -90); + penstroke (z1e..{up}z2e{up}..{right}z3e{right}..{right}z4e{right}..{up}z5e{up}..z6e); + pickup pencircle scaled 2s; + drawdot (x1,y1r+s); + drawdot (x6,y6l-s); + penlabels(1,2,3,4,5,6); +endchar; +%%%%%%%%%%%%%%% +% appogiature % +%%%%%%%%%%%%%%% +beginchar(69, apog_fact*nhw#, 3.5*apog_nhh#, .50*apog_nhh#); + clear; + w:=apog_fact*nhw; + flagshape(1,0.8w, 3*apog_nhh, apog_nhh, 4thinwidth, w, 0.5apog_nhh, 1); + clear; + w:=apog_fact*nhw; + drawnoteb(w, 0.5apog_nhh, 0, 90, 20, w/2, apog_nhh/2); + clear; + pickup pencircle scaled 4thinwidth; + w:=apog_fact*nhw; + draw (w-2thinwidth,0)--(w-2thinwidth,h); + x1=-0.1w; y1=0.6apog_nhh; x2=2w; y2=y1+0.6*(x2-x1); + draw z1--z2; +% + w:=apog_fact*nhw; +endchar; +beginchar(70, apog_fact*nhw#, 0.5apog_nhh#, 3.5*apog_nhh#); + clear; + w:=apog_fact*nhw; + flagshape(1,w, 3apog_nhh, apog_nhh, 4thinwidth, 0.2pt, apog_nhh, -1); + clear; + w:=apog_fact*nhw; + drawnoteb(w, 0.5apog_nhh, 0, 90, 20, w/2, apog_nhh/2); + pickup pencircle scaled 4thinwidth; + draw (2thinwidth,0)--(2thinwidth,-d); + clear; + w:=apog_fact*nhw; + x1=-0.3w; y1=-1.6apog_nhh; x2=1.3w; y2=y1+0.6*(x2-x1); + draw z1--z2; +% + w:=apog_fact*nhw; +endchar; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% 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; +y13=y8; x13=x8-0.6s; +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); +penpos13(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; +penstroke z1e{2left}..z2e..z11e..z3e +..z4e{right+up}..z10e..{up}z5e..z6e; +penstroke z6e{down+left}..{down}z7e--z8e +{2down+right}..z12e..{2left+up}z9e; +pickup pencircle scaled 2.5s; +drawdot (x9+0.4s,y9+0.8s); +% +penlabels(1,2,3,4,5,6,7,8,9,10,11,12); +enddef; +% +beginchar(71,3.25nhw#, 6nhh#, 2nhh#); +clear; +violin(15/8nhh,1.75nhh,-1.5nhh,0.4nhh,0.111nhh); +endchar; + +%%%%%%%%violin-schluessel verkleinert%%%%%%%% +beginchar(72,2.60nhw#, 6nhh#, 2nhh#); +clear; +violin(12/8nhh,1.40nhh,-1.2nhh,0.32nhh,1/10nhh); +endchar; + +%%%%%%%%%%%%%%%%%%%%% +% BASS--SCHLUESSEL %% +%%%%%%%%%%%%%%%%%%%%% +% clef de fa par D. Taupin % +%%%%%%%%%%%%%%%%%%%%%%%%%%%% +def bass (expr reduction) = + clear; + x2=0.80*reduction*nhw; y2=3nhh; + x1=x2r+1.25*reduction*s; y1=y2; + x3=x2+0.71*reduction*nhw; y3=y2+reduction*nhh; + x4=x3+0.71*reduction*nhw; y4=y2-0.2*reduction*nhh; + x6=x2-6*reduction*thinwidth; y6=y2-2.2*reduction*nhh; + x7=x4+0.50*reduction*nhw; x8=x7; + y7=y2+0.38*reduction*nhh; y8=y2-0.38*reduction*nhh; +% + currentpen:=pencircle scaled (4*reduction*thinwidth); + penpos2(6*reduction*thinwidth,180); + penpos3(6*reduction*thinwidth, 90); + penpos4(0.5*reduction*nhh,0); + penpos6(0.1*reduction*nhh,-10); + penstroke(z2e{up}..{right}z3e{right}..{down}z4e{down}..{left+0.1down}z6e); + currentpen := pencircle scaled (0.4reduction*nhh); + pickup pencircle scaled (2*(x2r-x1)); + drawdot z1; + pickup pencircle scaled 1.7s; + drawdot z7; drawdot z8; + penlabels(1,2,3,4,6); +enddef; +% +beginchar(73, 3nhw#, 4nhh#, 0); + bass(1.0); +endchar; + +%%%%%%verkleinerter bass-schluessel%%%%%%%%% +beginchar(74, 2.4*nhw#, 4nhh#, 0); + bass(0.8); +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; +y9=y7+1/9height; +x5=x3; +y4=y5+0.120height; +x4-x7=height+3thinwidth; +x4-x5=1/2height+3thinwidth; +y3-y5=2/7height; +y8=y7; +y6=y7; +x9=0.62x5+0.38x4; +x10=x9; y10=y7+height; +x11=0.5x3+0.5x6; y11=y3; penpos11(1/2thick,0); +penpos8(1/4thick,180); +penpos2(1/4thick,180); +penpos1(thick,180); +penpos7(thick,180); +penpos6(thick,0); +penpos5(1/10thick,0); +penpos9(1/3thick,90); +penpos3(1/2thick,0); +penpos4(thick,180); +penpos10(1/3thick,-90); + +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}..{right}z9e{right}..{up}z4e{up}..{left}z10e{left}..{left+4down}z11e; + + +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}..{right}z9e{right}..{up}z4e{up}..{left}z10e{left}..{left+4down}z11e) +reflectedabout(z7,z8)); + +pickup pencircle scaled 2.5s; +drawdot (x3+0.1nhh, y3); +drawdot (x3+0.1nhh, 2y7-y3); +penlabels(1,2,3,4,5,6,7,8); +enddef; + +%%%%%%%%%%%Altschl"usseL%%%%%%%%%%% +beginchar(75,3.5nhw#, 4nhh#, 0nhh#); +clear; +alt(2nhh,1.25nhh,2nhh,0.4nhh); +endchar; + +%%%%%%%%%Verkleinerter Altschluessel%%%%%%%%% +beginchar(76,2.8nhw#, 4nhh#, 0nhh#); +clear; +alt(1.6nhh,1.00nhh,2nhh,0.32nhh); +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; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% SONDERZEICHEN % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + + + +def alla_breve (expr trans) = + thin := 5thinwidth; thick := 1/2 nhh; + penpos1(thin, 0); + penpos2(thin, -90); + penpos3(thick,180); + penpos4(thin, 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; + + +%%%%%%%%%%%%%%% +% "fermate1" %% +%%%%%%%%%%%%%%% +beginchar(80, 2nhw#, 1.25nhh#, 0); + clear; + penpos2(nhh/3,90); + penpos1(nhh/8,180); + penpos3(nhh/8,0); + penpos4(nhh/3,90); + y2r =1.2h; + z1 = origin; 2x2l = 2x4l = x3 = w; y4l = y3 = 0; + penstroke z1e..z2e..z3e; + currentpen:= pencircle scaled (nhh/3); + drawdot z4; + penlabels(1,2,3); +endchar; +%%%%%%%%%%%%%%% +% "fermate2" %% +%%%%%%%%%%%%%%% +beginchar(81, 2nhw#, 0, 1.25nhh#); + clear; + penpos2(nhh/3,-90); + penpos1(nhh/8,180); + penpos3(nhh/8,0); + penpos4(nhh/3,90); + y2r = -1.2d; + z1 = origin; 2x2l = 2x4 = x3 = w; + y4r = y3 = 0; + penstroke (z1e..z2e..z3e); + currentpen := pencircle scaled (nhh/3); + drawdot z4; + penlabels(1,2,3); +endchar; +%%%%%%%%%%%%%%%% +% "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; + penlabels(1,2,3,4,5,6,7,8); +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(thin, 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; +%%%%%%%%%%%%%%%%%% +% repeat symbols % +%%%%%%%%%%%%%%%%%% +beginchar(85, 2nhw#, 3nhh#, 0); + clear; + x1=0.5w; y1=0.5h; + x2=0.5nhh; y2=y1; + x3=x1; y3=y1+nhh; + x4=2x1-x2; y4=2y1-y2; + x5=2x1-x3; y5=2y1-y3; + pickup pensquare xscaled thinwidth yscaled 4thinwidth; + draw (0,y1)--(w,y1); + pickup pensquare xscaled 4thinwidth yscaled thinwidth; + draw (x1,0)--(x1,h); + pickup pencircle xscaled 12thinwidth yscaled 4thinwidth; + draw z2..z3..z4..z5..cycle; +endchar; +beginchar(86, 3nhw#, 3nhw#, 0); + clear; + x1=0.5w; y1=0.5h; + x2=x1-0.1w; y2=y1+0.4h; + x3=2x1-x2; y3=2y1-y2; + x4=x1-0.3h; y4=y1-0.1h; + x5=2x1-x4; y5=2y1-y4; + x6=x1+0.25w; y6=y1+0.4h; + x7=2x1-x6; y7=2y1-y6; + pickup pencircle scaled 1.6s; + drawdot z2; drawdot z3; + pickup pencircle scaled s; + drawdot z4; drawdot z5; + z8l=z2+(0,0.8s); z9=2z1-z8; + penpos1 (1.8s,25); + penpos10 (1.8s,25); + penpos11 (1.8s,25); + penpos8 (0.5s,-90); + penpos9 (0.5s,-90); + z10=z1+(-s,s); z11=2z1-z10; + penstroke (z8e{left}..{right+down}z10e..z11e{right+down}..{left}z9e); + pickup penrazor scaled 0.8s; + draw z6--z7; +% + penlabels (1,2,3,4,5,6,7,8,9); +endchar; +%%%%%%%%%%%%%%% +% " pince" % +%%%%%%%%%%%%%%% +def pince = + clear; + x1-x3=x3-x5; y1=y3; + x2=1/8w; y2=8/10h; + x3=0.5w-x2; y3=h-y2; + x4=0.5w+x2; y4=y2; + x5=0.5w+x3; y5=y3; + x6=w-x1; y6=h-y1; + pickup pensquare xscaled 0.40nhh yscaled 0.1nhh rotated 52; + draw (z1--z2--z3--z4--z5--z6); +enddef; +% +beginchar(87, 1.2nhw#, 0.8nhh#, 0); + pince; +endchar; +% +beginchar(88, 1.8nhw#, 0.8nhh#, 0); + w:=2w/3; + pince; + draw (z4--z5--z6) shifted (z4-z2); + w:=1.8nhw; +endchar; +%%%%%%%%%%%%%%% +% "mordant" % +%%%%%%%%%%%%%%% +beginchar(89, 1.2nhw#, 0.8nhh#, 0); + pince; + pickup pencircle scaled (4thinwidth); + draw (0.5w,-0.4h)--(0.5w,1.4h); +endchar; +%%%%%%%%%%%%%%% +% arpeggio %% +%%%%%%%%%%%%%%% +def arpegel = + clear; + y1=0; x1=0.5w; + y2=0.3nhh; x2=8/10w; + y3=nhh-y2; x3=w-x2; + y4=nhh; x4=0.5w; + pickup pencircle xscaled 0.40nhh yscaled 0.1nhh rotated 45; + draw (z1..z2..z3..z4); +enddef; +% +beginchar(90, 0.4nhw#, nhh#, 0); + arpegel; +endchar; +for jj=1 upto 9: + beginchar(90+jj, 0.4nhw#, (1+jj)*nhh#, 0); + arpegel; + for kk=1 upto jj: + draw (z1..z2..z3..z4) shifted (0,kk*nhh); + endfor; +endchar; +endfor; +%%%%%%%%%%%%%%% +% "trille" %% +%%%%%%%%%%%%%%% +def arp_elem = + clear; + x1=0; y1=0.5h; + x2=1/3nhw; y2=8/10h; + x3=nhw-x2; y3=h-y2; + x4=nhw; y4=0.5h; + pickup pencircle xscaled 0.33nhh yscaled 0.1nhh rotated 45; + draw (z1..z2..z3..z4); +enddef; +% +beginchar(100, nhw#, 0.45nhh#, 0); + arp_elem; +endchar; +% +for jj=1 upto 9: + beginchar(100+jj, (jj+1)*nhw#, 0.45nhh#, 0); + arp_elem; + for kk=1 upto jj: + draw (z1..z2..z3..z4) shifted (kk*nhw,0); + endfor; + endchar; +endfor; +% +% general parameters for small flags +% + flagw:=0.8*nhw*apog_fact; + flagthick:=nhh*apog_fact; + flagthin:=5thinwidth*apog_fact; +%%%%%%%%%%%%%%%%%%%%%%% +%% "8flag nach unten" % +%%%%%%%%%%%%%%%%%%%%%%% +flagw:=0.8*nhw*apog_fact; +beginchar(110, 0, 3apog_nhh#, 0); + clear; + cflag(1); + w:=0; +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%% +%% "16flag nach unten" % +%%%%%%%%%%%%%%%%%%%%%%%% + +beginchar(111, 0, 3.25apog_nhh#, 0); + clear; + ccflag(1); + w:=0; +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%% +%% "32flag nach unten" % +%%%%%%%%%%%%%%%%%%%%%%%% + +beginchar(112, 0, 4.00apog_nhh#, 0); + clear; + cccflag(1); + w:=0; +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%% +%% "64flag nach unten" % +%%%%%%%%%%%%%%%%%%%%%%%% + +beginchar(113, 0, 4.75apog_nhh#, 0); + clear; + ccccflag(1); + w:=0; +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%%% +%% "128flag nach unten" % +%%%%%%%%%%%%%%%%%%%%%%%%% + +beginchar(114, 0, 5.50apog_nhh#, 0); + clear; + cccccflag(1); + w:=0; +endchar; + +%%%%%%%%%%%%%%%%%%%%%% +%% "8flag nach oben" % +%%%%%%%%%%%%%%%%%%%%%% +flagw:=1.0*nhw*apog_fact; +beginchar(115, 0, 3apog_nhh#, 0); + clear; + cflag(-1); + w:=0; +endchar; + +%%%%%%%%%%%%%%%%%%%%%%% +%% "16flag nach oben" % +%%%%%%%%%%%%%%%%%%%%%%% + +beginchar(116, 0, 3.25apog_nhh#, 0); + clear; + ccflag(-1); + w:=0; +endchar; + +%%%%%%%%%%%%%%%%%%%%%%% +%% "32flag nach oben" % +%%%%%%%%%%%%%%%%%%%%%%% + +beginchar(117, 0, 4.00apog_nhh#, 0); + clear; + cccflag(-1); + w := 0; +endchar; + +%%%%%%%%%%%%%%%%%%%%%%% +%% "64flag nach oben" % +%%%%%%%%%%%%%%%%%%%%%%% + +beginchar(118, 0, 4.75apog_nhh#, 0); + clear; + ccccflag(-1); + w := 0; +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%% +%% "128flag nach oben" % +%%%%%%%%%%%%%%%%%%%%%%%% + +beginchar(119, 0, 5.50apog_nhh#, 0); + clear; + cccccflag(-1); + w := 0; +endchar; +%%%%%%%%%%%%%%%%%%%%%%% +% kleine versetzungen % +%%%%%%%%%%%%%%%%%%%%%%% +beginchar(120, apog_fact*nhw#, 2apog_fact*nhh#, 2apog_fact*nhh#); + flat (apog_fact, 0, 1); +endchar; +beginchar(121,1.7*apog_fact*nhw#, 2*apog_fact*nhh#, 2*apog_fact*nhh#); + flat (apog_fact, 0, 1);cullit; clear; + flat (apog_fact, 0.7*apog_fact*nhw, 1); +endchar; +beginchar(122, 0.8apog_fact*nhw#, 1.5apog_fact*nhh#, 1.5apog_fact*nhh#); + sharp(apog_fact); +endchar; +beginchar(123, apog_fact*nhw#, .5nhw#, .5nhw#); + clear; + z1 = (0.150w, h-0.150w); z2 = (w-0.150w, h-0.150w); + z3 = (0.150w,-h+0.150w); z4 = (w-0.150w,-h+0.150w); + pwidth:=0.2*apog_fact*nhh; + currentpen:= pencircle scaled pwidth; + draw z1--z4; draw z3--z2; + currentpen:= pensquare scaled .30w; + drawdot z1; drawdot z2; drawdot z3; drawdot z4; +endchar; +beginchar(124, 0.8apog_fact*nhw#, 1.5apog_fact*nhh#, 1.5apog_fact*nhh#); + natural; +endchar; +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% volle Note mit | --> |O| % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +beginchar(125,1.5nhh#, .5nhh#, .5nhh#); + drawnoteb(w, h, 0, 85, 0, nhh/3, 3*thinwidth); + pickup pensquare scaled 0.2w; + draw (-0.05w,-0.4nhh)--(-0.05w,0.4nhh); + draw (1.05w,-0.4nhh)--(1.05w,0.4nhh); +endchar; +%%%%%%%%%%%%%%%%% +% repeat colons % +%%%%%%%%%%%%%%%%% +beginchar(126,0.6nhh#, 4nhh#, 0); + pickup pencircle scaled 0.3nhh; + drawdot (0.3nhh, 1.5nhh); + drawdot (0.3nhh, 2.5nhh); +endchar; + diff --git a/Master/texmf-dist/fonts/source/public/musictex/musicn11.mf b/Master/texmf-dist/fonts/source/public/musictex/musicn11.mf new file mode 100644 index 00000000000..534b5c99e50 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/musicn11.mf @@ -0,0 +1,10 @@ +font_identifier := "musicn11"; +input musicd11 +font_x_height nhh#; +font_quad nhw#; +font_normal_space 0pt; +font_normal_stretch 0pt; +font_normal_shrink 0pt; +input musicgen +end + diff --git a/Master/texmf-dist/fonts/source/public/musictex/musicn13.mf b/Master/texmf-dist/fonts/source/public/musictex/musicn13.mf new file mode 100644 index 00000000000..6d4189fc8d3 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/musicn13.mf @@ -0,0 +1,10 @@ +font_identifier := "musicn13"; +input musicd13 +font_x_height nhh#; +font_quad nhw#; +font_normal_space 0pt; +font_normal_stretch 0pt; +font_normal_shrink 0pt; +input musicgen +end + diff --git a/Master/texmf-dist/fonts/source/public/musictex/musicn16.mf b/Master/texmf-dist/fonts/source/public/musictex/musicn16.mf new file mode 100644 index 00000000000..77021eaa980 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/musicn16.mf @@ -0,0 +1,9 @@ +font_identifier := "musicn16"; +input musicd16 +font_x_height nhh#; +font_quad nhw#; +font_normal_space 0pt; +font_normal_stretch 0pt; +font_normal_shrink 0pt; +input musicgen +end diff --git a/Master/texmf-dist/fonts/source/public/musictex/musicn20.mf b/Master/texmf-dist/fonts/source/public/musictex/musicn20.mf new file mode 100644 index 00000000000..73a69d1dcf6 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/musicn20.mf @@ -0,0 +1,9 @@ +font_identifier := "musicn20"; +input musicd20 +font_x_height nhh#; +font_quad nhw#; +font_normal_space 0pt; +font_normal_stretch 0pt; +font_normal_shrink 0pt; +input musicgen +end diff --git a/Master/texmf-dist/fonts/source/public/musictex/musikd11.mf b/Master/texmf-dist/fonts/source/public/musictex/musikd11.mf new file mode 100644 index 00000000000..cb2c11106a0 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/musikd11.mf @@ -0,0 +1,48 @@ +%%% +% this is musicd11.mf +%%% + +% input modes +% input local + +mode_setup; + +%blacker:=0; %uncomment to override + +font_size 11pt#; + +nhh#:=1/4designsize; %noteheadheight +nhw#:=1.2nhh#; %noteheadwidth + +thin#:=1/50designsize; +med#:=1/33designsize; +thick#:=1/16designsize; + +thinwidth := 0.1pt; +s := 0.70pt; +S := 1/16designsize; + +beamht#:=0.48nhh#; %beamthickness + +% use pixelmacros from plain +define_pixels(nhh,nhw,beamht); +define_blacker_pixels(thin,med,thick); + +% pair constants +pair ne,se,sw,nw; %northeast,southeast,southwest,northwest +ne = up+right; se = down+right; sw = down+left; nw = up+left; + +% displaying:=2; %uncomment to see characters immediatly on screen + +def clear = + numeric x[],y[],x[]l,y[]l,x[]r,y[]r,dx[],dy[]; + pair sh[]; +enddef; + +% this macro might be deleted +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/Master/texmf-dist/fonts/source/public/musictex/musikd13.mf b/Master/texmf-dist/fonts/source/public/musictex/musikd13.mf new file mode 100644 index 00000000000..5c814a43c00 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/musikd13.mf @@ -0,0 +1,48 @@ +%%% +% this is musicd13.mf +%%% + +% input modes +% input local + +mode_setup; + +%blacker:=0; %uncomment to override + +font_size 13pt#; + +nhh#:=1/4designsize; %noteheadheight +nhw#:=1.2nhh#; %noteheadwidth + +thin#:=1/50designsize; +med#:=1/33designsize; +thick#:=1/16designsize; + +thinwidth := 0.1pt; +s := 0.80pt; +S := 1/16designsize; + +beamht#:=0.48nhh#; %beamthickness + +% use pixelmacros from plain +define_pixels(nhh,nhw,beamht); +define_blacker_pixels(thin,med,thick); + +% pair constants +pair ne,se,sw,nw; %northeast,southeast,southwest,northwest +ne = up+right; se = down+right; sw = down+left; nw = up+left; + +% displaying:=2; %uncomment to see characters immediatly on screen + +def clear = + numeric x[],y[],x[]l,y[]l,x[]r,y[]r,dx[],dy[]; + pair sh[]; +enddef; + +% this macro might be deleted +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/Master/texmf-dist/fonts/source/public/musictex/musikd16.mf b/Master/texmf-dist/fonts/source/public/musictex/musikd16.mf new file mode 100644 index 00000000000..38f96a256de --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/musikd16.mf @@ -0,0 +1,48 @@ +%%% +% this is musicd16.mf +%%% + +% input modes +% input local + +mode_setup; + +%blacker:=0; %uncomment to override + +font_size 16pt#; + +nhh#:=1/4designsize; %noteheadheight +nhw#:=1.2nhh#; %noteheadwidth + +thin#:=1/50designsize; +med#:=1/33designsize; +thick#:=1/16designsize; + +thinwidth := 0.1pt; +s := 1.00pt; +S := 1/16designsize; + +beamht#:=0.48nhh#; %beamthickness + +% use pixelmacros from plain +define_pixels(nhh,nhw,beamht); +define_blacker_pixels(thin,med,thick); + +% pair constants +pair ne,se,sw,nw; %northeast,southeast,southwest,northwest +ne = up+right; se = down+right; sw = down+left; nw = up+left; + +% displaying:=2; %uncomment to see characters immediatly on screen + +def clear = + numeric x[],y[],x[]l,y[]l,x[]r,y[]r,dx[],dy[]; + pair sh[]; +enddef; + +% this macro might be deleted +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/Master/texmf-dist/fonts/source/public/musictex/musikd20.mf b/Master/texmf-dist/fonts/source/public/musictex/musikd20.mf new file mode 100644 index 00000000000..c8e36c9547c --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/musikd20.mf @@ -0,0 +1,48 @@ +%%% +% this is musicd20.mf +%%% + +% input modes +% input local + +mode_setup; + +%blacker:=0; %uncomment to override + +font_size 20pt#; + +nhh#:=1/4designsize; %noteheadheight +nhw#:=1.2nhh#; %noteheadwidth + +thin#:=1/50designsize; +med#:=1/33designsize; +thick#:=1/16designsize; + +thinwidth := 0.125pt; +s := 1.25pt; +S := 1/16designsize; + +beamht#:=0.48nhh#; %beamthickness + +% use pixelmacros from plain +define_pixels(nhh,nhw,beamht); +define_blacker_pixels(thin,med,thick); + +% pair constants +pair ne,se,sw,nw; %northeast,southeast,southwest,northwest +ne = up+right; se = down+right; sw = down+left; nw = up+left; + +% displaying:=2; %uncomment to see characters immediatly on screen + +def clear = + numeric x[],y[],x[]l,y[]l,x[]r,y[]r,dx[],dy[]; + pair sh[]; +enddef; + +% this macro might be deleted +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/Master/texmf-dist/fonts/source/public/musictex/musikgen.mf b/Master/texmf-dist/fonts/source/public/musictex/musikgen.mf new file mode 100644 index 00000000000..0b7de414897 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/musikgen.mf @@ -0,0 +1,1252 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% this is musikgen.mf +% +% Version 5.02 [March 94] Daniel Taupin changed '047 to a + for percussion +% +% Version 5.01 [January 94] Daniel Taupin +% +% Version 4.89 [September 93] Andreas Egler +% - blacker influence now +% - redesigned chars 71, 72, 53, 123 +% +% Version 4.88 [January 93] Ross Mitchell +% - redesigned chars 63, 64, 65, 66 +% +% Version 4.87 [] Daniel Taupin +% +% Version 2.00 [] Daniel Taupin +% +% Version 1.00 [August 86] Angelika Schofer/Andrea Steinbach +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%"At most 15 different nonzero heights, 15 different nonzero depths, ... +% may appear in a single fonts. If these limits are exceeded, METAFONT will +% change one or more values, ..., until the restriction hold. A warning +% message is issued ..; for example 'some charht values had to be adjusted +% by as much as 0.12pt' means that you had too many different nonzero +% heights, ..." METAFONT-Book App. F + +%<<<>>> This indicates the heights I've changed + +%{{{ This always indicates a lowres fix to avoid seperated points +%}}} and/or 'invisible' lines. It doesn't affect higher resolutions !! + +pair pone, ptwo; +transform t; +path p; +picture save_pic; + +pen thin_pen, med_pen; +thin_pen:= pencircle scaled thin; +med_pen:= pencircle scaled med; + +apog_fact=0.75; +apog_nhh=apog_fact*nhh; +apog_nhh#=apog_fact*nhh#; +apog_nhw#=apog_fact*nhw#; + +%%%AE it's somewhat faster to use already computed pictures +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 savepic = save_pic:= currentpicture enddef; +def callpic = currentpicture:= save_pic enddef; +def clearpic = save_pic:= nullpicture enddef; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% basic macros for noteheads and flags % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% noteheads % +%%%%%%%%%%%%% +def drawnoteb(expr noteheadwidth, noteheadheight, theta_a, + theta_b, theta_c, width_a, width_b) = + penpos1(width_a, theta_a); % .l + penpos3(width_a, 180+theta_a); % .2 + penpos2(width_b, 180+theta_b); % .r + penpos4(width_b, theta_b); %.l.1.r .r.3.l + x1l = y1 = y3 = 0; % .r + x3l = 2x2 = 2x4 = noteheadwidth; % .4 + y2l =-y4l = noteheadheight; % .l + t:= identity rotatedaround ((x2,0),theta_c); + penstroke (z1e{up}..z2e{right}..z3e{down}..z4e{left}..cycle) + transformed t; +%{{{ + currentpen:= pencircle; + draw (z1{up}..z2{right}..z3{down}..z4{left}..cycle) transformed t +%}}} +enddef; + +def drawnotew(expr noteheadwidth, noteheadheight, theta_a, + theta_b, width_a, width_b) = + penpos1(width_a, theta_a); % .l + penpos3(width_a, 180+theta_a); % .2 + penpos2(width_b, 180+theta_b); % .r + penpos4(width_b, theta_b); %.l.1.r .r.3.l + x1l= y1l = y3l = 0; % .r + x3l= 2x2l = 2x4l = noteheadwidth;% .4 + y2l=-y4l = noteheadheight; % .l + fill z1l{up}..z2l{right}..z3l{down}..z4l{left}..cycle; + erase fill z1r{up}..z2r{right}..z3r{down}..z4r{left}..cycle; +%{{{ + currentpen:= pencircle; + draw z1{up}..z2{right}..z3{down}..z4{left}..cycle; +%}}} + penlabels(1,2,3,4) +enddef; + +%%%AE I found in a notebook a whole note which looks slight different +def drawnote_w(expr noteheadwidth, noteheadheight, theta, width_a, width_b)= + x1= y1 = y3 = y5 = y7 = 0; + x3= 2x2 = 2x4 = 2x6 = 2x8 = noteheadwidth; + y2=-y4 = noteheadheight; + x5= x3-x7 = x1+width_a; + y6=-y8 = y2-width_b; + fill z1{curl3}..z2..{curl3}z3{curl3}..z4..{curl3}cycle; + unfill (z5..z6..z7..z8..cycle) rotatedaround ((x2,0),theta); + labels(range 1 thru 8); +enddef; +%%%AE if you have GFtoDVI and want to see the character, +% uncomment the next four lines +%beginchar(0,1.5nhh#, .5nhh#, .5nhh#); +% drawnote_w(w, h, 45, 1.6thick, .5thin); +%endchar; +%end + +%%%%%%%%% +% flags % +%%%%%%%%% +%%%AE the penstrike macro is a copy of plain's penstroke +% macro, 'fill' is replaced by 'filldraw', this is +% responsible for 'strange path' when sharp turns ahead (intersectionp) +% the second macro does the same with a little more 'tolerance' +% +% I don't like it at all, because the flags are thicker +% on lowres than (or as?) on highres devices +% {Sorry, my english is very bad, nevertheless I hope you +% understand my words} +% +%%%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 penstrike text t = +% forsuffixes e = l,r: path_.e:=t; endfor +% if cycle path_.l: cyclestroke_ +% else: fill path_.l -- reverse path_.r -- cycle; +% draw path_.l -- reverse path_.r -- cycle fi enddef; + +def flagshape(suffix i) (expr width, height, thick, + thin, shiftx, shifty, flagsense) = + pair intersectionp; % .1 + penpos[i](thick+blacker, 90); % + penpos[i+1](3.25thin+blacker, 70);% .2 + penpos[i+3](thin, -45); % + x[i] = rt shiftx; % .3 + y[i] = height+shifty-thick/2; % + x[i+1] = shiftx+3/8width; % .4 + y[i+1] = height+shifty-.95thick; % + x[i+2] = shiftx+width-thin/2; + y[i+2] = height+shifty-2thick; + x[i+3] = shiftx-thin/2+0.6width; + y[i+3] = shifty; + if i>1: intersectionp = z[i-2]; else: intersectionp = z[i+3]; fi; + if flagsense>0: + penpos[i+2](1.25thin+blacker, 35); + else: + penpos[i+2](1.05thin+blacker, 0); + fi; + penstroke z[i]e..z[i+1]e..z[i+2]e{down}..intersectionp; +%{{{ + currentpen:= pencircle; + draw lft z[i]..z[i+1]..z[i+2]{down}..intersectionp; +%}}} + penlabels (range i thru i+3) +enddef; + +% Added by D. Taupin Jan 1993 +beginchar(14,0.5nhw#,0,0); "Song system limit up"; +%%%AE clearxy is already done by 'beginchar();' +% clear; + x1=y1=y2=0; 3x2=x3=3w; y3=nhh; + p:= z1---z2..z3; + pickup penrazor scaled med rotated 90; + draw p; +%{{{ + currentpen:= pencircle; + draw p; +%}}} + savepic; +endchar; + +beginchar(15,0.5nhw#,0,0); "Song system limit down"; + callpic; + mirror (origin, right); +endchar; + +for n:=1 upto 4: +%<<<>>>(0.5+0.1*n)*nhh# + beginchar(15+n, 4n*nhw#, 0, (0.5+0.1n)*nhh#); "Crescendo"; + pickup med_pen; + draw (0,(0.5+0.1n)*nhh)--(w,0)--(0,-d); + endchar; +endfor; + +for n:=1 upto 4: +%<<<>>>(0.5+0.1*n)*nhh# + beginchar(19+n, 4n*nhw#, 0, (0.5+0.1n)*nhh#); "Decrescendo"; + pickup med_pen; + draw (w,(0.5+0.1n)*nhh)--(0,0)--(w,-d); + endchar; +endfor; + +%%%%%%%%%%% +% accents % +%%%%%%%%%%% +dely:=1.15nhh+.2pt; + +%%%AE 'fill fullcircle' is faster and produce 'nicer' circles +beginchar(24, nhw#, nhh#, 0); "Point au-dessus de la note"; + fill fullcircle scaled thick shifted (.5w, dely); + savepic; +endchar; + +beginchar(25, nhw#, 0, nhh#); "Point au-dessous de la note"; + callpic; + mirror (origin, right); +endchar; + +beginchar(26, nhw#, nhh#, 0); "Barre au-dessus de la note"; +%%%AE faster + fill unitsquare xscaled w yscaled 1.25med shifted (0,dely-.625med); + savepic; +endchar; + +beginchar(27, nhw#, 0, nhh#); "Trait au-dessous de la note"; + callpic; + mirror (origin, right); +endchar; + +beginchar(28, nhw#, nhh#, 0); "Accent (pizz.) au-dessus de la note"; + rayon:= thin+.1nhh; + z1=(0.5w,w+rayon); + z2=(0.5w-rayon,w); + z3=(0.5w,w-0.45nhh); + z4=(0.5w+rayon,w); + fill z3--z4{up}..z1..{down}z2--cycle; + savepic; +endchar; + +beginchar(29, nhw#, 0, nhh#); "Accent (pizz.) au-dessous de la note"; + callpic; + mirror (origin, right); +endchar; + +%%%AE why 1.5nhh ??? +beginchar(30, nhw#, 1.5nhh#, 0); "Accent (sforz.) au-dessus de la note"; + pickup med_pen; + draw (-.2w, 1.6nhh)--(1.2w, 1.3nhh)--(-.2w, nhh); + savepic; +endchar; + +beginchar(31, nhw#, 0, nhh#); "Accent (sforz.) au-dessous de la note"; + callpic; + mirror (origin, right); +endchar; + +%%%%%%%%% +% breve % +%%%%%%%%% +def breve = + fill unitsquare xscaled w yscaled .5h shifted (0,.25h); + add_mirror (origin, right); + nh:= .7nhh; + pickup thin_pen; + draw (0,nh)--(0,-nh); draw (w,nh)--(w,-nh); +enddef; + +%<<<>>>.7nhh# +beginchar(32, nhw#, 0.5nhh#, 0.5nhh#); "Breve"; + breve; +endchar; + +beginchar(33, nhw#, .5nhh#, .5nhh#); "Quarter note"; + w:=w+2thinwidth; +%%%AE a little bit smaller, because a quarter note +% seems to be thicker as an half note + drawnoteb(w, .99h, 0, 90, 20, w/2, h); +endchar; + +beginchar(34, nhw#, .5nhh#, .5nhh#); "Half note"; + w:=w+2thinwidth; + drawnoteb(w, h, 0, 90, 20, thin, thick); +endchar; + +beginchar(35,1.5nhh#, .5nhh#, .5nhh#); "Whole note"; + drawnotew(w, h, 0, 30, 1.3thick, 1.75thin); +endchar; + +%<<<>>>.7nhh# +beginchar(36, 2nhw#, 0.5nhh#, 0.5nhh#); "Semi-breve"; + breve; +endchar; + +beginchar(37, apog_nhw#, .5apog_nhh#, .5apog_nhh#); "Small quarter note"; + w:=w+2thinwidth; + drawnoteb(w, .99h, 0, 90, 20, w/2, h); +endchar; + +%beginchar(38, apog_nhw#, .5apog_nhh#, .5apog_nhh#); "Small half note"; +% w:=w+2thinwidth; +% drawnoteb(w, h, 0, 90, 20, thin, apog_fact*thick); +%endchar; + +def doublesharp (expr high)= + clear; + x4= .5w; y4=high; + x1=w-x7=.5w+1/25nhh; y1=y7=0; + x2=w-x6=.51w+thin; y2=y6=.3y4; + x3=w-x5=.58w+thin; y3=y5=.6y4; + t:= identity rotatedaround ((.5w, 0), 90); + fill (z1{up}..z2..z3..{nw}z4 & z4{sw}..z5..z6..{down}z7--z1--cycle) + rotatedaround ((.5w, 0), 45); + addto currentpicture also currentpicture transformed t; + addto currentpicture also currentpicture transformed (t transformed t); + labels (1,2,3,4,5,6,7) +enddef; + + +beginchar(38, nhw#, nhh#, nhh#); "Circled doublesharp"; + doublesharp (.62w); + pickup thin_pen; + draw (0,0){up}..{right}(0.5nhw,0.5nhw).. + {down}(nhw,0)..{left}(0.5nhw,-0.5nhw)..cycle; +endchar; + + + +% beginchar(39, 1.5apog_nhh#, .5apog_nhh#, .5apog_nhh#); "Small full note"; +% drawnotew(w, h, 0, 30, apog_fact*1.3thick, 1.5thin); +% endchar; + +% +beginchar(39, nhw#, nhh#, nhh#); "Bongo cross"; + pickup pencircle scaled med; + draw (0,0)--(nhw,0); + draw (0.5nhw,-0.5nhw) -- (0.5nhw,0.5nhw) +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% general parameters for flags % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +flagw:=0.8nhw; +flagthick:=nhh; +flagthin:=5thinwidth; + +def cflag (expr sense) = + flagshape(1, flagw, h, flagthick, flagthin, 0, 0, sense); + if sense<0 : mirror ((0,h/2), (1,h/2)); fi +enddef; + +def flagloop (expr sense, doitagain) = + flagshape(1, flagw, 2.50flagthick, 2/3flagthick, + flagthin, 0, 0, sense); + for xyz:=1 upto doitagain: + flagshape([4xyz+1], flagw, 2.25flagthick, 2/3flagthick, + flagthin, 0, (.75xyz+.25)*flagthick, sense); + endfor; + if sense<0 : mirror ((0,h/2), (1,h/2)); fi +enddef; + +def ccflag (expr sense) = flagloop(sense, 1) enddef; +def cccflag (expr sense) = flagloop(sense, 2) enddef; +def ccccflag (expr sense) = flagloop(sense, 3) enddef; +def cccccflag (expr sense) = flagloop(sense, 4) enddef; + +beginchar(40, 0, 3nhh#, 0); "1/8flag down"; + cflag(1); + savepic; +endchar; + +% Acciacaturra, added by D.Taupin Jan 93. +% idem mais avec barre (appogiature) +beginchar(12, 0, 3nhh#, 0); "Acciacaturra stem up"; + callpic; + pickup med_pen; + x1=-0.25nhw; y1=0.2h; x2=1.1nhw; y2=y1+0.6(x2-x1); + draw z1--z2; +endchar; + +beginchar(41, 0, 3.25nhh#, 0); "1/16flag down"; + ccflag(1); +endchar; + +beginchar(42, 0, 4.00nhh#, 0); "1/32flag down"; + cccflag(1); +endchar; + +beginchar(43, 0, 4.75nhh#, 0); "1/64flag down"; + ccccflag(1); +endchar; + +beginchar(44, 0, 5.50nhh#, 0); "1/128flag down"; + cccccflag(1); +endchar; + +%%% +% flags up should be wider +%%% +flagw:=nhw; + +beginchar(45, 0, 3nhh#, 0); "1/8flag up"; + cflag(-1); + savepic; +endchar; + +% added by D.Taupin Jan 93. +% idem mais avec barre (appogiature) +beginchar(13, 0, 3nhh#, 0); "Acciacaturra stem down"; + callpic; + pickup med_pen; + x1=-0.25nhw; y1=1.6nhh; x2=1.2nhw; y2=y1+0.6(x2-x1); + draw z1--z2; +endchar; + +beginchar(46, 0, 3.25nhh#, 0); "1/16flag up"; + ccflag(-1); +endchar; + +beginchar(47, 0, 4.00nhh#, 0); "1/32flag up"; + cccflag(-1); +endchar; + +beginchar(48, 0, 4.75nhh#, 0); "1/64flag up"; + ccccflag(-1); +endchar; + +beginchar(49, 0, 5.50nhh#, 0); "1/128flag up"; + cccccflag(-1); +endchar; + +%%%%%%%%%%%%%%% +% accidentals % +%%%%%%%%%%%%%%% +def flat (expr reduction, shiftx, flatsense) = + clear; + fthick:= reduction*s; + penpos4(4/3fthick+blacker,0); % 1 + penpos3(1/2fthick+blacker,-90);% + penpos6(4/7fthick+blacker,90); % 6 + penpos2(.1thinwidth, 180); % / \ + x1 = x2 = x3 = x5 = fthick; % 2 4 + y1 = 6fthick; y2l= 0.5y4; % / + y3l=-2fthick; y5= y3r; % 3,5 + x4 = 3.6fthick; y4 = 0.1fthick; + y6r= 2fthick; x6= 0.5(x2+x4); + t:=identity shifted (shiftx,0); + p:= (z1--z5) transformed t; + pickup penrazor scaled (2sind40*thin) rotated 40; + draw p; +%{{{ + currentpen:= pencircle; + draw p; +%}}} + penstroke (z2e..{right}z6e..z4e{sw+down}..{sw}z3e) transformed t; + if flatsense<0: mirror (z5 transformed t, z1 transformed t); fi; + penlabels (1,2,3,4,5,6) +enddef; + +%<<<>>> 2nhh# +beginchar(50, nhw#, 1.5nhh#, 1.5nhh#); "Flat"; + flat (1, 0, 1); + savepic; +endchar; + +%<<<>>> 2nhh# +beginchar(51,1.7nhw#, 1.5nhh#, 1.5nhh#); "Doubleflat"; + callpic; + addto currentpicture also currentpicture shifted (.7nhw, 0); +endchar; + +def sharp = + clear; + reduction:=w/0.8nhw; + sthick:= .5reduction*thick; + y1 =-y7= h-1.5sthick; y2 =-y8 = .5sthick-h; + x1 = x2 = y3 = -y6 = w-x7 = w-x8 = 2sthick; + y4 =-y5 = y3 + 3sthick; + x3 = x5 = 0; x4 = x6 = w; + pickup penrazor scaled thin rotated angle(z4-z3); + draw z1--z2; draw z8--z7; +%{{{ + currentpen:= pencircle; + draw z1--z2; draw z8--z7; +%}}} + pickup penrazor scaled 3sthick rotated 90; + draw z3--z4; draw z5--z6; + labels (range 1 thru 8) +enddef; + +beginchar(52, 0.8nhw#, 1.5nhh#, 1.5nhh#); "Sharp"; + sharp; +endchar; + +%<<<>>>.5nhw# +beginchar(53, nhw#, nhh#, nhh#); "Doublesharp"; + doublesharp (.65w); +endchar; + +def natural = + clear; + reduction:=w/0.8nhw; + nthick:= 3/4reduction*thick; + x1 = x2 = x3 = nthick; + x5 = x6 = x4 = w-x1; + y1 = -y6 = h; + y2 = -y5 = 1.6nthick; + y4 = -y3 = y2+4/3nthick; + pickup penrazor scaled thin rotated angle(z4-z2); + draw lft z1--bot lft(x3,y3-nthick); + draw top rt(x4,y4+nthick)--rt z6; +%{{{ + pickup pencircle; + draw lft z1--lft(x3,y3-nthick); + draw rt(x4,y4+nthick)--rt z6; +%}}} + pickup penrazor scaled 2nthick rotated 90; + draw z2--z4; draw z3--z5; + labels(1,2,3,4,5,6) +enddef; + +beginchar(54, 0.8nhw#, 1.5nhh#, 1.5nhh#); "Natural"; + natural; +endchar; + +%<<<>>> 2nhh# +beginchar(55, nhw#, 1.5nhh#, 1.5nhh#); "1/4 flat"; + flat (1, 0.65nhw, -1); +endchar; + +%<<<>>> 2nhh# +beginchar(56, 1.7nhw#, 1.5nhh#, 1.5nhh#); "3/4 flat"; + flat (1, 0.65nhw, -1); flat (1, 0.65nhw, 1); +endchar; + +beginchar(57, nhw#, .5nhh#, .5nhh#); "Gregorian notes"; + fill (0.5w-0.8h,0)--(0.5w,h)--(0.5w+0.8h,0)--(0.5w,-h)--cycle; +endchar; + +beginchar(0, nhw#, .5nhh#, .5nhh#); "Gregorian diamond"; + fill (0,0)--(0.5w,0.5nhw)--(w,0)--(0.5w,-0.5nhw)--cycle; +endchar; + +beginchar(1, 0.71*nhw#, .5nhh#, .5nhh#); "Gregorian square"; + fill (0,0.355nhw)--(w,0.355nhw)--(w,-0.355nhw)--(0,-0.355nhw)--cycle; +endchar; + +beginchar(2, 0.71*nhw#, .5nhh#, .5*nhh#); "Gregorian square left"; + fill (0,0.355nhw)--(w,0.355nhw)--(w,-0.355nhw)--(0,-0.355nhw)--cycle; + pickup thin_pen; + draw (0.5thin,0.355nhw-thin)--(0.5thin,-1.5nhh+0.5thin); +endchar; + +beginchar(3, 0.71*nhw#, .5nhh#, .5nhh#); "Gregorian square right"; + fill (0,0.355nhw)--(w,0.355nhw)--(w,-0.355nhw)--(0,-0.355nhw)--cycle; + pickup thin_pen; + draw (w-0.5thin,0.355nhw-thin)--(w-0.5thin,-1.5nhh+0.5thin); +endchar; + +beginchar(4, nhw#, 3nhh#, 0); "Gregorian C clef"; + fill (0,2nhh+0.8nhh)..{right}(0.5w,2nhh+nhh)--(w,2nhh+nhh)-- + (w,2nhh+0.3nhh)--(0.5w,2nhh+0.3nhh){left}..(0,2nhh+0.1nhh)--cycle; + fill (0,2nhh-0.8nhh)..{right}(0.5w,2nhh-nhh)--(w,2nhh-nhh)-- + (w,2nhh-0.3nhh)--(0.5w,2nhh-0.3nhh){left}..(0,2nhh-0.1nhh)--cycle; + pickup thin_pen; + draw (0.5thin,2.5nhh)--(0.5thin,1.5nhh); +endchar; + +%%%%%%%%% +% rests % +%%%%%%%%% +beginchar(58,1/2nhw#, 3nhh#, 0); "Dp"; + fill unitsquare xscaled w yscaled 1/3h shifted (0, 2/3h); +endchar; + +beginchar(59,1/2nhw#, 3nhh#, 0); "Ddp"; + fill unitsquare xscaled w yscaled 2/3h shifted (0, 1/3h); +endchar; + +beginchar(60, nhw#, 3nhh#, 0); "Full rest"; + fill unitsquare xscaled w yscaled .5nhh shifted (0,h-.5nhh); +endchar; + +%<<<>>> 2.5nhh# +beginchar(61, nhw#, 3nhh#, 0); "Half rest"; + fill unitsquare xscaled w yscaled .5nhh shifted (0,h-nhh); +endchar; + +beginchar(62, nhw#, 4nhh#, 0); "Quarter rest"; + rthin:= 1/8 nhh; % .1 + rthick:= 2 thick+rthin; % .2 + alpha:= -50; % .3 + penpos1 (rthin, 90+alpha); % .4 + penpos5 (rthin, alpha); % .5,10 + penpos2 (rthick, alpha); % .6 + penpos4 (rthick, alpha); % + penpos3 (3/4rthick, alpha);% .7 + penpos6 (4/3thick, alpha); + penpos7 (rthin, 45); + y1l = h - 2s; + x1l = 2s; + z2r = z1 +(nhh* right) rotated alpha; + z3 = 1/2[z2,z4]; + z4 = (w,h) scaled .55; + z5 = z4l+(nhh* right) rotated alpha; + x6l = x4l; y6r = 1.45nhh; + x7 = 0.9w; y7= nhh-.5s; + z10 = z5r shifted (sqrt(2)*rthin/4,sqrt(2)*rthin/4); + + pickup penrazor scaled rthin rotated 45; + draw z1--z2r; draw z4l--z10; + penstroke z2e..z3e..z4e; + penstroke z5e..z6e..z7e; + penlabels(1,2,3,4,5,6,7,10); +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Quaver rest and submultiples. % +% Ross Mitchell, January 1993 % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%%% +% Draw the crook needed for quaver rests and shorter. +% The crook extends left from the point z.i on the stem. +%%% +def crook(suffix i)= + x3:=x.i-6.5fact; y3:=top y.i-3.0fact; + x4:=x.i-6.0fact; y4:= y.i+0.5fact; + draw z.i{dir 240}..{dir 160}z3; + filldraw z3{dir 160}..z4{dir-20}..{dir 160}z3..cycle +enddef; + +beginchar(63, 2nhh#, 3nhh#, 0); "Quaver rest"; + z1=(nhh,nhh); + z2-z1=whatever*dir 70; % Angle the stem at 70 degrees. +%%% +% Define the scaling factor `fact' implicitly. +% This value will be used for the shorter rests as well. +%%% + z2-z1=(5fact,1.7nhh); + pickup med_pen; + draw z1..z2; + crook(2); + penlabels (1,2,3,4); +endchar; + +beginchar(64,2nhh#, 3nhh#, 0); "Semiquaver rest"; + z1=(nhh,0); + z2-z1=whatever*dir 75; % Angle the stem at 75 degrees. + y2-y1=2.7nhh; + z5-z2=whatever*(z1-z2); y5=y2-nhh; + pickup med_pen; + draw z1..z2; + crook(2); crook(5); + penlabels (1,2,3,4,5); +endchar; + +beginchar(65,2nhh#, 4nhh#, 0); "Demisemiquaver rest"; + z1=(nhh,0); + z2-z1=whatever*dir 80; % Angle the stem at 80 degrees. + y2-y1=3.7nhh; + z5-z2=whatever*(z1-z2); y5=y2-nhh; + z6-z2=whatever*(z1-z2); y6=y5-nhh; + pickup med_pen; + draw z1..z2; + crook(2); crook(5); crook(6); + penlabels (1,2,3,4,5,6); +endchar; + +%<<<>>> 5nhh# +beginchar(66,2nhh#, 4.75nhh#, 0); "Hemidemisemiquaver rest"; + z1=(nhh,0); + z2-z1=whatever*dir 82; % Angle the stem at 82 degrees. + y2-y1=4.7nhh; + z5-z2=whatever*(z1-z2); y5=y2-nhh; + z6-z2=whatever*(z1-z2); y6=y5-nhh; + z7-z2=whatever*(z1-z2); y7=y6-nhh; + pickup med_pen; + draw z1..z2; + crook(2); crook(5); crook(6); crook(7); + penlabels (1,2,3,4,5,6,7); +endchar; + +%%%%%%%%%%%%% +% ornaments % +%%%%%%%%%%%%% +beginchar (67, 2nhw#, nhh#, 0); "Ornament"; + x1=w-x6=0.2w; y1r=h; y6=h-y1; + x2r=0; y2=0.5h; x5=w-x2; y5=h-y2; + x3=0.22w; y3r=0; x4=w-x3; y4=h-y3; + penpos1 (med, 90); + penpos2 (med, 180); + penpos3 (thick,-40); + penpos4 (thick,-40); + penpos5 (med, 180); + penpos6 (med, 90); + penstroke z1e..{down}z2e{down}..{right}z3e{right} + ..{right}z4e{right}..{down}z5e{down}..z6e; + fill fullcircle scaled (s+thick) shifted (x1,y1r-thick); + fill fullcircle scaled (s+thick) shifted (x6,y6l+thick); + penlabels(1,2,3,4,5,6); + savepic; +endchar; + +beginchar (68, 2nhw#, nhh#, 0); "Ornament"; + callpic; + mirror ((.5w,0), (.5w,1)); +endchar; + +%<<<>>>3.5apog_nhh# +beginchar(69, apog_nhw#, 3.25apog_nhh#, .5apog_nhh#); "Appogiature stem up"; + flagshape(1,0.8w, 3apog_nhh, apog_nhh, 4thinwidth, w, 0.5apog_nhh, 1); + clear; + drawnoteb(w, 0.5apog_nhh, 0, 90, 20, w/2, apog_nhh/2); + clear; + pickup pencircle scaled .8med; + draw (w-2thinwidth,0)--(w-2thinwidth,3.5apog_nhh); + x1=-0.1w; y1=0.6apog_nhh; x2=2w; y2=y1+0.6(x2-x1); + draw z1--z2; +endchar; + +beginchar(70, apog_nhw#, 0.5apog_nhh#, 3.5apog_nhh#); "Appogiature stem down"; + flagshape(1,w, 3apog_nhh, apog_nhh, 4thinwidth, 0.2pt, apog_nhh, -1); + mirror ((0,h/2), (1,h/2)); + clear; + drawnoteb(w, 0.5apog_nhh, 0, 90, 20, w/2, apog_nhh/2); + pickup pencircle scaled .8med; + draw (2thinwidth,0)--(2thinwidth,-d); + clear; + x1=-0.3w; y1=-1.6apog_nhh; x2=1.3w; y2=y1+0.6(x2-x1); + draw z1--z2; +endchar; + +%%%%%%%%% +% clefs % +%%%%%%%%% +def violin(expr reduction) = + clear; + gx:=reduction*-nhw; + gy:=reduction*nhh; + gthick:=1.6reduction*thick; + gthin:=.95reduction*med; + + x1=x4=23/24gx+w; x2=x10=3/4gx+w; x3r=w; x8l=7/8gx+w; + x5=x11r=2gx+w; x6=gx+w; x7=1/2gx+w; x9=5/4gx+w; + y1=3/8gy; y2=y5=2gy; y3=gy; y4r=0; y6=27/8gy; + y7l=21/4gy; y8l=23/4gy; y9=17/4gy; y10=y11=-7/8gy; + penpos1(gthin,180); + penpos2(gthick,90); + penpos3(gthick,0); + penpos4(5/4gthin,-90); + penpos5(11/8gthick,110); + penpos6(5/4gthick,120); + penpos7(4/5gthin,-140); + penpos8(5/4gthick,-80); + penpos9(3/8gthick,0); + penpos10(gthin,0); + penpos11(1/2gthick,180); + penstroke z1e{left}..z2e..z3e..z4e..z5e{up+ne}..z6e..{up+nw}z7e + ..z8e{sw}..{down}z9e{down}..{down}z10e..z11e; +%{{{ + currentpen:= pencircle; + draw z3..z4..z5{up+ne}..z6..{up+nw}z7 + ..z8{sw}..{down}z9{down}..{down}z10..z11; +%}}} + fill fullcircle scaled (3(x2-x1)) shifted (x11+11/40gy, y11); + penlabels(range 1 thru 11) +enddef; + +%<<<>>> 6nhh# +beginchar(71,3.25nhw#, 5.50nhh#, 2nhh#); "G-clef"; + violin(1); +endchar; + +%<<<>>> 6nhh# +beginchar(72,2.60nhw#, 5.50nhh#, 2nhh#); "small G-clef"; + violin(0.8); +endchar; + +% clef de fa par D. Taupin +def bass (expr reduction) = + clear; + x2=0.80reduction*nhw; y2=3nhh; + x1=x2r+1.25reduction*s; y1=y2; + x3=x2+0.71reduction*nhw; y3=y2+reduction*nhh; + x4=x3+0.71reduction*nhw; y4=y2-0.2reduction*nhh; + x6=x2-6reduction*thinwidth; y6=y2-2.2reduction*nhh; + x7=x4+0.50reduction*nhw; x8=x7; + y7=y2+0.38reduction*nhh; y8=y2-0.38reduction*nhh; + + penpos2(.6thick*reduction,180); + penpos3(.6thick*reduction, 90); + penpos4(2thick*reduction,0); + penpos6(.4thick*reduction,-10); + + penstroke(z2e{up}..{right}z3e{right}..{down}z4e{down} + ..{left+0.1down}z6e); +%{{{ + currentpen:= pencircle; + draw (z2{up}..{right}z3{right}..{down}z4{down}..{left+0.1down}z6); +%}}} + fill fullcircle scaled (2(x2r-x1)) shifted z1; + fill fullcircle scaled 1.7s shifted z7; + fill fullcircle scaled 1.7s shifted z8; + penlabels(1,2,3,4,6) +enddef; + +beginchar(73, 3nhw#, 4nhh#, 0); "F-clef"; + bass(1.0); +endchar; + +beginchar(74, 2.4nhw#, 4nhh#, 0); "small F-clef"; + bass(0.8); +endchar; + +def alt(expr reduction, yshift) = + clear; + nh:=h*reduction; + athick:=1/10nh; + ahigh:=1/2nh; + + x4=13/16nh+3thinwidth; x5=9/16nh; + x6=1/2nh; x9=x10=2/3nh; x11=17/32nh; + y4=yshift+31/50ahigh; y5=yshift+1/2ahigh; + y6=yshift; y9=yshift+1/9ahigh; + y10=yshift+ahigh; y11=yshift+11/14ahigh; + penpos4(athick,180); + penpos5(1/8athick,0); + penpos6(athick,0); + penpos9(1/3athick,90); + penpos10(1/3athick,-90); + penpos11(1/2athick,0); + + penstroke z5e..{sw+down}z6e; + penstroke z5e{se+3down}..{right}z9e{right}..{up}z4e{up} + ..{left}z10e{left}..{sw+3down}z11e; + fill fullcircle scaled (5/2thick*reduction) + shifted (x11l+5/4thick*reduction, y11-.05nhh); + fill unitsquare xscaled athick yscaled ahigh + shifted (5/16nh-1/2athick,yshift); + fill unitsquare xscaled 1/4athick yscaled ahigh + shifted (x6l-1/4athick,yshift); + add_mirror ((0,yshift),(1,yshift)); + penlabels(4,5,6,9,10,11) +enddef; + +beginchar(75,3.5nhw#, 4nhh#, 0); "Alto clef"; + alt(1, 2nhh); + savepic; +endchar; + +beginchar(76,2.8nhw#, 4nhh#, 0); "small Alto clef"; + alt(0.8 ,2nhh); +endchar; + +%%%%%%%%%%%%% +% drum clef % (by Andreas Egler) +%%%%%%%%%%%%% +beginchar(77, 3nhw#, 4nhh#, 0); + fill unitsquare xscaled .5nhw yscaled 2nhh shifted (.5nhw,1nhh); + fill unitsquare xscaled .5nhw yscaled 2nhh shifted (1.5nhw,1nhh); +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% this sign is sometimes used % +% to indicate a (randomly played) % +% tremolo accord (ragtime, boogie) % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +beginchar(78, 0, 3nhh#, 0); + clear; + x1=-x2=-.5nhw; y1=1nhh; y2=1.6nhh; + pickup med_pen; + for i=0 upto 4: draw (z1--z2) shifted (0,.4nhh*i); endfor; + labels (1,2); +endchar; + + +%%%%%%%%%% +% shaker % +%%%%%%%%%% +beginchar(79, nhw#, nhh#, nhh#); + x1=x4=y2=y4=0; y1=-0.6nhh; x2=x3=w; y3=0.6nhh; + fill z1--z2--z3--z4--cycle; + labels (1,2,3,4); +endchar; + + +%%%%%%%%%%%%%%%%% +% special signs % +%%%%%%%%%%%%%%%%% +%<<<>>>1.25nhh# +beginchar(80, 2nhw#, 1.5*apog_nhh#, 0); "Fermate up"; + x1 = y1 = y3 = 0; + y2r = 1.5nhh; 2x2l = x3 = w; + penpos1(med,180); + penpos2(1.3thick,90); + penpos3(med,0); + penstroke z1e..z2e..z3e; + fill fullcircle scaled 1.3thick shifted (.5w, .65thick); + savepic; + penlabels(1,2,3); +endchar; + +beginchar(81, 2nhw#, 0, 1.25nhh#); "Fermate down"; + callpic; + mirror (origin, right); +endchar; + +beginchar(82, 2nhh#, 3nhh#, 0); "Allabreve"; + 2x2 = 2x4 = x1 + 2s = w; + x3r = 0; 2y1 = 3y2 = y4r = h; + y3r = 2/3h; x5 = w -2s; y5 = h -2s; + z6r = z5r + (-0.1s, .2s); + penpos1(med, 0); + penpos2(med, -90); + penpos3(s+thick,180); + penpos4(med, 90); + penpos5(med, 0); + penpos6(s+med,45); + penstroke z1e..z2e..z3e..z4e..z5e; +%{{{ + currentpen:= pencircle; + draw z1..z2..z3..z4..z5; +%}}} + fill fullcircle scaled 1.3thick shifted z6; + savepic; + + pickup med_pen; + draw (w/2, y2r-1/8h)--(w/2, y4r+1/8h); + penlabels(1,2,3,4,5,6); +endchar; + +beginchar(83, 2nhh#, 3nhh#, 0); "C"; + callpic; +endchar; + +beginchar(84, 2nhh#, 3nhh#, 0); "reverseC"; + callpic; + mirror ((w/2,0),(w/2,1)); +endchar; + +%%%%%%%%%%%%%%%%%% +% repeat symbols % +%%%%%%%%%%%%%%%%%% +beginchar(85, 2nhw#, 3nhh#, 0); "Repeat symbol"; + x2 = w-x4 = 1/6h; y2 = y4 = 1/2h; + x3 = x5 = 1/2w; y3 = h-y5 = 5/6h; + pickup pencircle scaled 1.25thin; + draw (0,h/2)--(w,h/2); draw (w/2,0)--(w/2,h); + pickup pencircle xscaled 1.2thick yscaled 1.25thin; + draw z2..z3..z4..z5..cycle; + labels (1,2,3,4); +endchar; + +%<<<>>>3nhw# +beginchar(86, 3nhw#, 4.75apog_nhh#, 0); "Repeat symbol"; + x6 = .75w; y6 = .9w; x8 = .4w; y8l = .95w; + x11= y11 = .5w; z10 = z11+(-s,s); + penpos8 (med, -90); + penpos10 (1.8thick, 25); + penpos11 (1.8thick, 25); + penstroke z8e{left}..{se}z10e..z11e; + fill fullcircle scaled 1.6thick shifted (z8l-(0, .8thick)); + fill fullcircle scaled thick shifted (.2w, .4w); + pickup penrazor scaled 0.8thick; + draw z6--z11; + addto currentpicture also currentpicture rotatedaround((.5w,.5w),180); + penlabels (8,9,11); +endchar; + +def pince (expr length)= + clear; + off:= w/2length; + nh:= .8nhh; + y1 = y3 = nh-y2 = nh-y4 = 1/5nh; + x1=-.5off; x2=x1+off; x3=x2+off; x4=x3+off; + pickup pensquare xscaled (thick+.15nhh) yscaled thin rotated 52; + p:= z1--z2--z3--z4; + for i=1 upto length: draw p shifted ((i-1)*2off,0); endfor +enddef; +%%%%%%%%%% Begin Andreas Egler's +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% full rest outside a staff % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +beginchar(5, nhw#, nhh#, 0); + fill unitsquare xscaled w yscaled .5nhh shifted (0,-.5nhh); + fill unitsquare xscaled 1.8w yscaled med shifted (-.4w,-0.5med); +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% half rest outside a staff % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +beginchar(6, nhw#, nhh#, 0); + fill unitsquare xscaled w yscaled .5nhh; + fill unitsquare xscaled 1.8w yscaled med shifted (-.4w,-0.5med); +endchar; +%%%%%%%%%%%%%%%%%%%%% +% mordant with line % +%%%%%%%%%%%%%%%%%%%%% +beginchar(7, 1.8nhw#, apog_nhh#, 0); + pince(3); + pickup med_pen; + draw ((x1,0)--(x1,2h)) shifted (-.5thick,0); +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%% +% mordant with hook ne % +%%%%%%%%%%%%%%%%%%%%%%%% +beginchar(9, 1.8nhw#, apog_nhh#, 0); + pince(3); + pickup pencircle scaled .75med; + z5=2[z3,z4]-(.5thick,1/5nh); z6=z3 rotatedaround (z5,-90); + draw (z4..z5{z4-z3}..{z3-z4}z6) shifted 2(x4-x2,0); +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%% +% mordant with hook nw % +%%%%%%%%%%%%%%%%%%%%%%%% +beginchar(10, 1.8nhw#, apog_nhh#, 0); + pince(3); + pickup pencircle scaled .75med; + z5=1.75[z3,z2]-(x3-x1,0); z6=z1 rotatedaround (z5,90); + draw (z1..z5{z2-z3}..{z3-z2}z6) shifted -(.5thick, 1/5nh); +endchar; + +%%%%%%%%%%%%%%%%%%%%%%%% +% mordant with hook sw % +%%%%%%%%%%%%%%%%%%%%%%%% +beginchar(11, 1.8nhw#, apog_nhh#, 0); + pince(3); + pickup pencircle scaled .75med; + z5=1.5[z2,z1]-.75(.5thick,1/5nh); z6=z2 rotatedaround (z5,-90); + draw (z1..z5{z1-z2}..{z2-z1}z6); +endchar; +%%%%%%%%%% End Andreas Egler +%<<<>>> .8nhh# +beginchar(87, 1.2nhw#, apog_nhh#, 0); "Pince"; + pince(2); +endchar; + +%<<<>>> .8nhh# +beginchar(88, 1.8nhw#, apog_nhh#, 0); "???"; + pince(3); +endchar; + +%<<<>>> .8nhh# +beginchar(89, 1.2nhw#, apog_nhh#, 0); "Mordant"; + pince(2); + fill unitsquare xscaled med yscaled 2h shifted ((.5w-.5med),-.5h); +endchar; + +def arpeg (expr length)= + clear; + x1=.5w; y1=0; z2=z1+(0,.5nhh); z3=z1+(0,nhh); + pickup penrazor scaled (thick+.16nhh) rotated 46;% try 50 + callpic; + draw (z1{ne}..{nw}z2{nw}..{ne}z3) shifted (0, length*nhh); + savepic; + labels (1,2,3) +enddef; + +clearpic; +for jj=0 upto 9: +%<<<>>>(1+jj)*nhh# + beginchar(90+jj, 0.4nhw#, nhh#, 0); "Arpeggio"; + arpeg(jj); + endchar; +endfor; + +def trill (expr length)= + clear; + x1=0; y1=.5h; z2=z1+(.5nhw,0); z3=z1+(nhw,0); + pickup penrazor scaled 1.4thick rotated 48; + callpic; + draw (z1{ne}..{se}z2{se}..{ne}z3) shifted (length*nhw, 0); + savepic; + labels (1,2,3) +enddef; + +clearpic; +for jj=0 upto 9: +%<<<>>>0.45nhh# + beginchar(100+jj, (jj+1)*nhw#, 0.5nhh#, 0); "Trille"; + trill(jj); + endchar; +endfor; + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% general parameters for small flags % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +flagw:=0.8nhw*apog_fact; +flagthick:=apog_nhh; +flagthin:=5thinwidth*apog_fact; + +beginchar(110, 0, 3apog_nhh#, 0); "Small 1/8flag down"; + cflag(1); +endchar; + +beginchar(111, 0, 3.25apog_nhh#, 0); "Small 1/16flag down"; + ccflag(1); +endchar; + +beginchar(112, 0, 4.00apog_nhh#, 0); "Small 1/32flag down"; + cccflag(1); +endchar; + +beginchar(113, 0, 4.75apog_nhh#, 0); "Small 1/64flag down"; + ccccflag(1); +endchar; + +beginchar(114, 0, 5.50apog_nhh#, 0); "Small 1/128flag down"; + cccccflag(1); +endchar; + +%%% +% flags up should be wider +%%% +flagw:=nhw*apog_fact; + +beginchar(115, 0, 3apog_nhh#, 0); "Small 1/8flag up"; + cflag(-1); +endchar; + +beginchar(116, 0, 3.25apog_nhh#, 0); "Small 1/16flag up"; + ccflag(-1); +endchar; + +beginchar(117, 0, 4.00apog_nhh#, 0); "Small 1/32flag up"; + cccflag(-1); +endchar; + +beginchar(118, 0, 4.75apog_nhh#, 0); "Small 1/64flag up"; + ccccflag(-1); +endchar; + +beginchar(119, 0, 5.50apog_nhh#, 0); "Small 1/128flag up"; + cccccflag(-1); +endchar; + +%%%%%%%%%%%%%%%%%%%%% +% small accidentals % +%%%%%%%%%%%%%%%%%%%%% +%<<<>>>2apog_nhh# +beginchar(120, apog_nhw#, 1.5apog_nhh#, 1.5apog_nhh#); "Small flat"; + flat (apog_fact, 0, 1); + savepic; +endchar; + +%<<<>>>2apog_nhh# +beginchar(121,1.7*apog_fact*nhw#, 1.5apog_nhh#, 1.5apog_nhh#); "Small doubleflat"; + callpic; + addto currentpicture also currentpicture shifted(0.7apog_fact*nhw,0); +endchar; + +beginchar(122, 0.8apog_fact*nhw#, 1.5apog_nhh#, 1.5apog_nhh#); "Small sharp"; + sharp; +endchar; + +%<<<>>>.5nhw# +beginchar(123, apog_nhw#, apog_nhh#, apog_nhh#); "Small doublesharp"; + doublesharp(.75w); +endchar; + +beginchar(124, 0.8apog_fact*nhw#, 1.5apog_nhh#, 1.5apog_nhh#); "Small natural"; + natural; +endchar; + +beginchar(125,1.5nhh#, .5nhh#, .5nhh#); "Full note with | --> |O|"; + fill unitsquare xscaled thick yscaled nhh shifted (-4/5thick,-d); + add_mirror ((w/2, 0),(w/2, 1)); + drawnoteb(w, h, 0, 85, 0, 1.3thick, thin); +endchar; + +beginchar(126,0.6nhh#, 4nhh#, 0); "Repeat colons"; + fill fullcircle scaled 1.2thick shifted (0.5w, 3/8h); + add_mirror ((0, h/2),(1, h/2)); +endchar; + +%%%%%%%%%%% +% rimshot % +%%%%%%%%%%% +def caro (expr reduction)= + x1=w-w*reduction; y1=y3=0; x2=x4=w-.5w*reduction; + x3=w; -y2=y4=0.6nhh*reduction; + pickup thin_pen; + draw z1--z2; draw z3--z4; + pickup pencircle xscaled (.15nhw*reduction) yscaled thinwidth + rotated -45; + draw z2--z3; draw z4--z1; + labels (1,2,3,4); +enddef; + +beginchar(127, nhw#, nhh#, nhh#); + caro(.95); +endchar; + + +%%%AE some characters are 'kerned' and 'raised' by MusicTeX +% this can be done faster with modified fonts and +% as an additional advantage, there is more 'main memory' for +% future enhancements, for example: +% +%\def\w@coli{\selectinstr{\p@loop\raise\altportee +% \hbox to \z@{\hss\musicnorfont\char 126\hss}\n@portee\repeat}}% +% +% with +% +%beginchar(126, 0, 4nhh#, 0); "Repeat colons"; +% fill fullcircle scaled 1.2thick shifted (0, 3/8h); +% add_mirror ((0, h/2),(1, h/2)); +%endchar; +% +% becomes +% +%\def\w@coli{\selectinstr{\p@loop\raise\altportee +% \hbox{\musicnorfont\char 126}\n@portee\repeat}}% +% +% or +% +%\def\clefdesol{\hbox to 3.2\Interligne{\musickeyfont +% \kern -1.2\internote\hss\char"47\hss}}% +% +% with +% +%beginchar(71, 8/3nhw#, 5.50nhh#, 2nhh#); "G-clef"; +% violin(1); +%endchar; +% +% becomes +% +%\def\clefdesol{\hbox{\musickeyfont\char"47}}% +% +% or +% +%\def\d@soup{\hbox{\kern -0.3\qn@width\musicnfont\char"3F}}% +% +% with +% +%beginchar(63, 2nhh#, 3nhh#, 0); "Quaver rest"; +% ... +% currentpicture:= currentpicture shifted (round(-0.3nhw), 0); +%endchar; +% +% becomes +% +%\def\d@soup{\hbox{\musicnfont\char"3F}}% +% +% and so on diff --git a/Master/texmf-dist/fonts/source/public/musictex/musikn11.mf b/Master/texmf-dist/fonts/source/public/musictex/musikn11.mf new file mode 100644 index 00000000000..6fd4e776ddf --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/musikn11.mf @@ -0,0 +1,19 @@ +%%% +% this is musicn11.mf +%%% + +font_identifier:="musicn11"; +font_coding_scheme:="UNSPECIFIED"; + +input musikd11 + +%font_slant 0; +%font_normal_space 0pt; +%font_normal_stretch 0pt; +%font_normal_shrink 0pt; +font_x_height nhh#; %fontdimen 5 +font_quad nhw#; %fontdimen 6 +%font_extra_space 0pt; + +input musikgen +end diff --git a/Master/texmf-dist/fonts/source/public/musictex/musikn13.mf b/Master/texmf-dist/fonts/source/public/musictex/musikn13.mf new file mode 100644 index 00000000000..7a73e707a00 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/musikn13.mf @@ -0,0 +1,19 @@ +%%% +% this is musicn13.mf +%%% + +font_identifier:="musicn13"; +font_coding_scheme:="UNSPECIFIED"; + +input musikd13 + +%font_slant 0; +%font_normal_space 0pt; +%font_normal_stretch 0pt; +%font_normal_shrink 0pt; +font_x_height nhh#; %fontdimen 5 +font_quad nhw#; %fontdimen 6 +%font_extra_space 0pt; + +input musikgen +end diff --git a/Master/texmf-dist/fonts/source/public/musictex/musikn16.mf b/Master/texmf-dist/fonts/source/public/musictex/musikn16.mf new file mode 100644 index 00000000000..b5aeebdb70a --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/musikn16.mf @@ -0,0 +1,19 @@ +%%% +% this is musicn16.mf +%%% + +font_identifier:="musicn16"; +font_coding_scheme:="UNSPECIFIED"; + +input musikd16 + +%font_slant 0; +%font_normal_space 0pt; +%font_normal_stretch 0pt; +%font_normal_shrink 0pt; +font_x_height nhh#; %fontdimen 5 +font_quad nhw#; %fontdimen 6 +%font_extra_space 0pt; + +input musikgen +end diff --git a/Master/texmf-dist/fonts/source/public/musictex/musikn20.mf b/Master/texmf-dist/fonts/source/public/musictex/musikn20.mf new file mode 100644 index 00000000000..3f56be5c445 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/musikn20.mf @@ -0,0 +1,19 @@ +%%% +% this is musicn20.mf +%%% + +font_identifier:="musicn20"; +font_coding_scheme:="UNSPECIFIED"; + +input musikd20 + +%font_slant 0; +%font_normal_space 0pt; +%font_normal_stretch 0pt; +%font_normal_shrink 0pt; +font_x_height nhh#; %fontdimen 5 +font_quad nhw#; %fontdimen 6 +%font_extra_space 0pt; + +input musikgen +end diff --git a/Master/texmf-dist/fonts/source/public/musictex/slur16.mf b/Master/texmf-dist/fonts/source/public/musictex/slur16.mf new file mode 100644 index 00000000000..04d83c01173 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/slur16.mf @@ -0,0 +1,230 @@ +% Change of length into longueur for new modes.mf (Nicolas Brouard 4/11/91) +input musicdef +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% BOGEN UND (DE)CRESCENDO % +% % +% (Phrasierungsbogen und Bogen der Steigung 0) % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +def drawslurs (expr st) = + save i, factor, longueur, height; + numeric i, absp, longueur, height, factor; + factor:= 1/6; + for i= 0 upto 15: + longueur := (i+2)*nhw#; + height := 0 ; + + beginchar(i, longueur, 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, longueur, depth; + numeric i, absp, longueur, depth, factor; + factor:= 1/6; + for i=0 upto 15: + longueur := (i+2)*nhw#; + depth := longueur*st ; + + beginchar(16+i, longueur, 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, longueur, height; + numeric i, longueur, height; + longueur := 9*nhw#; + for i = 1 upto 9: + height := (i+2)*1/2nhh# ; + beginchar(i-1+32, longueur, 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, longueur, height; + numeric i, longueur, height; + longueur := 9*nhw#; + for i= 1 upto 9: + height := (i+2)*1/2nhh#; + beginchar(i-1+48, longueur, 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, longueur, depth; + numeric i, longueur, depth; + longueur := 9*nhw#; + for i= 1 upto 9: + depth := (i+2)*1/2nhh# ; + beginchar(i-1+64, longueur, 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, longueur, depth; + numeric i, longueur, depth; + longueur := 9*nhw#; + for i= 1 upto 9: + depth := (i+2)*1/2nhh#; + + beginchar(i-1+80, longueur, 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, longueur, depth; + numeric i, longueur, height, depth; + for i= 0 upto 15: + longueur := (i+1)*nhw#; + depth := 1/2nhh# ; + height := depth ; + + beginchar(i+96, longueur, 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, longueur, depth; + numeric i, longueur, height, depth; + for i= 0 upto 15: + longueur := (i+1)*nhw#; + depth := 1/2nhh# ; + height := depth ; + + beginchar(i+112, longueur, 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/Master/texmf-dist/fonts/source/public/musictex/slurdd16.mf b/Master/texmf-dist/fonts/source/public/musictex/slurdd16.mf new file mode 100644 index 00000000000..2bf325cfeb8 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/slurdd16.mf @@ -0,0 +1,41 @@ +% Change of length into longueur for new modes.mf (Nicolas Brouard 4/11/91) +input musicdef +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% BOGEN (KONKAV) % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +def drawslursneg (expr i, j) = + save jj, factor, longueur, depth; + numeric jj, absp, longueur, depth, factor; + factor:= 1/6; + longueur := 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, longueur, 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/Master/texmf-dist/fonts/source/public/musictex/slurdu16.mf b/Master/texmf-dist/fonts/source/public/musictex/slurdu16.mf new file mode 100644 index 00000000000..93f677d67bf --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/slurdu16.mf @@ -0,0 +1,42 @@ +% Change of length into longueur for new modes.mf (Nicolas Brouard 4/11/91) +input musicdef +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% BOGEN (KONVEX) % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +def drawslursneg (expr i,j) = + save jj, factor, longueur, depth; + numeric jj, absp, longueur, depth, factor; + factor:= 1/6; + longueur := 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, longueur, 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/Master/texmf-dist/fonts/source/public/musictex/slurgen.mf b/Master/texmf-dist/fonts/source/public/musictex/slurgen.mf new file mode 100644 index 00000000000..38f36742d75 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/slurgen.mf @@ -0,0 +1,133 @@ +% Change of length into longueur for new modes.mf (Nicolas Brouard 4/11/91) + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% BOGEN % +% % +% (Phrasierungsbogen und Bogen der Steigung 0) % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +def drawslurs (expr st, hflag, istart) = + save i, factor, longueur, height, depth; + numeric i, absp, longueur, height, depth, factor, bnummer, quotum, quotum#; + factor:= 1/6; + if hflag = 0 : bnummer:=31; quotum#:=0.5*nhw#; quotum:=0.5*nhw; + else : bnummer:=15; quotum#:=nhw#; quotum:=nhw; + fi; + for i=0 upto bnummer: fulllength:=(i+1)*quotum#; + if hflag = 0 : longueur:= fulllength; + else : longueur:= fulllength/2; + fi; + + depth := 0 ; + + ww:= (i+1)*quotum; + hh:=0; + dd:=0; + absp := abs((-hh,ww)); + if (factor*absp)>2nhh : factor:= 2nhh/absp fi; + height := factor*fulllength; + +% modif Ian Collier + if (hflag=0) and (i mod 2 = 0): + height := height - factor*quotum# + fi; + + beginchar(istart+i, longueur, height, depth); + clear; + z2l = (ww,hh); + z1l = origin; + z3r = (ww/2,h); + penpos1(thinwidth,90); + penpos2(thinwidth,90); + penpos3(5/12beamht,90); + % currentpen := pencircle xscaled thinwidth yscaled beamht ; + pickup pencircle scaled (1/16mm + blacker); + if hflag=0 : penstroke z1e..{right}z3e{right}..z2e; fi; + if hflag<0 : penstroke z1e..{right}z3e; fi; + if hflag>0 : + penstroke (z3e{right}..z2e) shifted (-ww/2,0); fi; + endchar; + endfor; +enddef; + +def drawslursneg (expr st, hflag, istart) = + save i, factor, longueur, height, depth; + numeric i, absp, longueur, height, depth, factor, bnummer, quotum, quotum#; + factor:= 1/6; + if hflag = 0 : bnummer:=31; quotum#:=0.5*nhw#; quotum:=0.5*nhw; + else : bnummer:=15; quotum#:=nhw#; quotum:=nhw; + fi; + for i=0 upto bnummer: fulllength:=(i+1)*quotum#; + if hflag = 0 : longueur := fulllength; + else : longueur:= fulllength/2; + fi; + height := 0 ; + + ww:= (i+1)*quotum; + hh:=0; + dd:=0; + absp := abs((dd,ww)); + if (factor*absp)>2nhh : factor:= 2nhh/absp fi; + depth:=fulllength*factor; + +% modif Ian Collier + if (hflag=0) and (i mod 2 = 0): + depth := depth - factor*quotum# + fi; + beginchar(istart+i, longueur, height, depth); + clear; + z2r = (ww,-dd); + z1r = origin; + z3l = (ww/2,-d); + penpos1(thinwidth,90); + penpos2(thinwidth,90); + penpos3(5/12beamht,90); +% currentpen := pencircle xscaled thinwidth yscaled beamht ; + pickup pencircle scaled (1/16mm + blacker); + if hflag=0 : penstroke z1e..{right}z3e{right}..z2e; fi; + if hflag<0 : penstroke z1e..{right}z3e; fi; + if hflag>0 : + penstroke (z3e{right}..z2e) shifted (-ww/2,0); fi; + endchar; + endfor; +enddef; + +%%%%%%%%%%%%%%%%%%% +% Bogen nach oben % +%%%%%%%%%%%%%%%%%%% + +drawslurs(0,0,0); + +%%%%%%%%%%%%%%%%%%%% +% Bogen nach unten % +%%%%%%%%%%%%%%%%%%%% + +drawslursneg(0,0,32); + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% linke Halbboegen nach oben % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +drawslurs(0,-1,64); + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% rechte Halbboegen nach oben % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +drawslurs(0,1,80); + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% linke Halbboegen nach unten % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +drawslursneg(0,-1,96); + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% rechte Halbboegen nach unten % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +drawslursneg(0,1,112); + +end; diff --git a/Master/texmf-dist/fonts/source/public/musictex/slurn16.mf b/Master/texmf-dist/fonts/source/public/musictex/slurn16.mf new file mode 100644 index 00000000000..3b42e09f668 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/slurn16.mf @@ -0,0 +1,3 @@ +input musicd16 +input slurgen + diff --git a/Master/texmf-dist/fonts/source/public/musictex/slurn20.mf b/Master/texmf-dist/fonts/source/public/musictex/slurn20.mf new file mode 100644 index 00000000000..b83ddc75a72 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/slurn20.mf @@ -0,0 +1,3 @@ +input musicd20 +input slurgen + diff --git a/Master/texmf-dist/fonts/source/public/musictex/slurud16.mf b/Master/texmf-dist/fonts/source/public/musictex/slurud16.mf new file mode 100644 index 00000000000..4a8b0d6a10f --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/slurud16.mf @@ -0,0 +1,41 @@ +% Change of length into longueur for new modes.mf (Nicolas Brouard 4/11/91) +input musicdef +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% BOGEN (KONKAV) % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +def drawslurs (expr i,j) = + save jj, factor, longueur, height; + numeric jj, absp, longueur, height, factor; + factor:= 1/6; + height := i*1/2nhh#; + longueur := 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, longueur, 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/Master/texmf-dist/fonts/source/public/musictex/sluruu16.mf b/Master/texmf-dist/fonts/source/public/musictex/sluruu16.mf new file mode 100644 index 00000000000..fe132ce67e0 --- /dev/null +++ b/Master/texmf-dist/fonts/source/public/musictex/sluruu16.mf @@ -0,0 +1,40 @@ +% Change of length into longueur for new modes.mf (Nicolas Brouard 4/11/91) +input musicdef +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% % +% BOGEN (KONVEX) % +% % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +def drawslurs(expr i,j) = + save jj,factor, longueur, height; + numeric jj, absp, longueur, height, factor; + factor:= 1/6; + height = i*1/2nhh#; + longueur = 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, longueur, 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; |