summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/fonts/source/public/musictex
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/fonts/source/public/musictex')
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/beamd20.mf4
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/beamn11.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/beamn13.mf6
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/beamn16.mf6
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/beamn20.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/beamngen.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/beamq20.mf4
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/beamt20.mf4
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/beamv20.mf4
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musicbra.mf24
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musicbrb.mf24
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musicbrg.mf53
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musicbrh.mf40
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musicd11.mf48
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musicd13.mf48
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musicd16.mf48
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musicd20.mf48
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musicdef.mf61
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musicg16.mf1360
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musicgen.mf1372
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musicn11.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musicn13.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musicn16.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musicn20.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musikd11.mf48
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musikd13.mf48
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musikd16.mf48
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musikd20.mf48
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musikgen.mf1252
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musikn11.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musikn13.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musikn16.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musikn20.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/slur16.mf230
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/slurdd16.mf41
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/slurdu16.mf42
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/slurgen.mf133
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/slurn16.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/slurn20.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/slurud16.mf41
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/sluruu16.mf40
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;