summaryrefslogtreecommitdiff
path: root/fonts/musixtex-fonts
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /fonts/musixtex-fonts
Initial commit
Diffstat (limited to 'fonts/musixtex-fonts')
-rw-r--r--fonts/musixtex-fonts/README49
-rw-r--r--fonts/musixtex-fonts/doc/CHANGES.psfonts34
-rw-r--r--fonts/musixtex-fonts/doc/README.psfonts114
-rw-r--r--fonts/musixtex-fonts/doc/musixtex-fonts-install.pdfbin0 -> 73753 bytes
-rw-r--r--fonts/musixtex-fonts/doc/musixtex-fonts-install.tex90
-rw-r--r--fonts/musixtex-fonts/map/musix.map79
-rw-r--r--fonts/musixtex-fonts/source/musexgen.mf194
-rw-r--r--fonts/musixtex-fonts/source/musix11.mf28
-rw-r--r--fonts/musixtex-fonts/source/musix13.mf28
-rw-r--r--fonts/musixtex-fonts/source/musix16.mf28
-rw-r--r--fonts/musixtex-fonts/source/musix20.mf28
-rw-r--r--fonts/musixtex-fonts/source/musix24.mf28
-rw-r--r--fonts/musixtex-fonts/source/musix25.mf28
-rw-r--r--fonts/musixtex-fonts/source/musix29.mf28
-rw-r--r--fonts/musixtex-fonts/source/musixgen.mf1550
-rw-r--r--fonts/musixtex-fonts/source/musixsps.mf314
-rw-r--r--fonts/musixtex-fonts/source/musixspx.mf314
-rw-r--r--fonts/musixtex-fonts/source/mxsk.mf100
-rw-r--r--fonts/musixtex-fonts/source/xadf11.mf28
-rw-r--r--fonts/musixtex-fonts/source/xadf13.mf28
-rw-r--r--fonts/musixtex-fonts/source/xadf16.mf28
-rw-r--r--fonts/musixtex-fonts/source/xadf20.mf28
-rw-r--r--fonts/musixtex-fonts/source/xadf24.mf28
-rw-r--r--fonts/musixtex-fonts/source/xadf29.mf28
-rw-r--r--fonts/musixtex-fonts/source/xadfgen.mf236
-rw-r--r--fonts/musixtex-fonts/source/xdrawsl.mf39
-rw-r--r--fonts/musixtex-fonts/source/xdrawzl.mf25
-rw-r--r--fonts/musixtex-fonts/source/xgreg11.mf10
-rw-r--r--fonts/musixtex-fonts/source/xgreg13.mf10
-rw-r--r--fonts/musixtex-fonts/source/xgreg16.mf10
-rw-r--r--fonts/musixtex-fonts/source/xgreg20.mf10
-rw-r--r--fonts/musixtex-fonts/source/xgreg24.mf10
-rw-r--r--fonts/musixtex-fonts/source/xgreg25.mf28
-rw-r--r--fonts/musixtex-fonts/source/xgreg29.mf10
-rw-r--r--fonts/musixtex-fonts/source/xgreggen.mf369
-rw-r--r--fonts/musixtex-fonts/source/xppff10.mf86
-rw-r--r--fonts/musixtex-fonts/source/xppffgen.mf261
-rw-r--r--fonts/musixtex-fonts/source/xsld11.mf20
-rw-r--r--fonts/musixtex-fonts/source/xsld11d.mf21
-rw-r--r--fonts/musixtex-fonts/source/xsld13.mf20
-rw-r--r--fonts/musixtex-fonts/source/xsld13d.mf21
-rw-r--r--fonts/musixtex-fonts/source/xsld16.mf20
-rw-r--r--fonts/musixtex-fonts/source/xsld16d.mf21
-rw-r--r--fonts/musixtex-fonts/source/xsld20.mf20
-rw-r--r--fonts/musixtex-fonts/source/xsld20d.mf21
-rw-r--r--fonts/musixtex-fonts/source/xsld24.mf20
-rw-r--r--fonts/musixtex-fonts/source/xsld24d.mf21
-rw-r--r--fonts/musixtex-fonts/source/xsld29.mf20
-rw-r--r--fonts/musixtex-fonts/source/xsld29d.mf21
-rw-r--r--fonts/musixtex-fonts/source/xsldd20.mf20
-rw-r--r--fonts/musixtex-fonts/source/xsldu20.mf20
-rw-r--r--fonts/musixtex-fonts/source/xslgen.mf94
-rw-r--r--fonts/musixtex-fonts/source/xslgend.mf34
-rw-r--r--fonts/musixtex-fonts/source/xslgenu.mf33
-rw-r--r--fonts/musixtex-fonts/source/xslhd.mf69
-rw-r--r--fonts/musixtex-fonts/source/xslhd11.mf5
-rw-r--r--fonts/musixtex-fonts/source/xslhd11d.mf6
-rw-r--r--fonts/musixtex-fonts/source/xslhd13.mf4
-rw-r--r--fonts/musixtex-fonts/source/xslhd13d.mf5
-rw-r--r--fonts/musixtex-fonts/source/xslhd16.mf5
-rw-r--r--fonts/musixtex-fonts/source/xslhd16d.mf6
-rw-r--r--fonts/musixtex-fonts/source/xslhd20.mf4
-rw-r--r--fonts/musixtex-fonts/source/xslhd20d.mf5
-rw-r--r--fonts/musixtex-fonts/source/xslhd24.mf4
-rw-r--r--fonts/musixtex-fonts/source/xslhd24d.mf5
-rw-r--r--fonts/musixtex-fonts/source/xslhd29.mf4
-rw-r--r--fonts/musixtex-fonts/source/xslhd29d.mf5
-rw-r--r--fonts/musixtex-fonts/source/xslhu.mf68
-rw-r--r--fonts/musixtex-fonts/source/xslhu11.mf4
-rw-r--r--fonts/musixtex-fonts/source/xslhu11d.mf5
-rw-r--r--fonts/musixtex-fonts/source/xslhu13.mf4
-rw-r--r--fonts/musixtex-fonts/source/xslhu13d.mf5
-rw-r--r--fonts/musixtex-fonts/source/xslhu16.mf5
-rw-r--r--fonts/musixtex-fonts/source/xslhu16d.mf6
-rw-r--r--fonts/musixtex-fonts/source/xslhu20.mf4
-rw-r--r--fonts/musixtex-fonts/source/xslhu20d.mf5
-rw-r--r--fonts/musixtex-fonts/source/xslhu24.mf4
-rw-r--r--fonts/musixtex-fonts/source/xslhu24d.mf5
-rw-r--r--fonts/musixtex-fonts/source/xslhu29.mf4
-rw-r--r--fonts/musixtex-fonts/source/xslhu29d.mf5
-rw-r--r--fonts/musixtex-fonts/source/xslhz-o.mf51
-rw-r--r--fonts/musixtex-fonts/source/xslhz.mf52
-rw-r--r--fonts/musixtex-fonts/source/xslhz20.mf5
-rw-r--r--fonts/musixtex-fonts/source/xslhz20d.mf6
-rw-r--r--fonts/musixtex-fonts/source/xslu11.mf20
-rw-r--r--fonts/musixtex-fonts/source/xslu11d.mf21
-rw-r--r--fonts/musixtex-fonts/source/xslu13.mf20
-rw-r--r--fonts/musixtex-fonts/source/xslu13d.mf21
-rw-r--r--fonts/musixtex-fonts/source/xslu16.mf20
-rw-r--r--fonts/musixtex-fonts/source/xslu16d.mf21
-rw-r--r--fonts/musixtex-fonts/source/xslu20.mf20
-rw-r--r--fonts/musixtex-fonts/source/xslu20d.mf21
-rw-r--r--fonts/musixtex-fonts/source/xslu24.mf20
-rw-r--r--fonts/musixtex-fonts/source/xslu24d.mf21
-rw-r--r--fonts/musixtex-fonts/source/xslu29.mf20
-rw-r--r--fonts/musixtex-fonts/source/xslu29d.mf21
-rw-r--r--fonts/musixtex-fonts/source/xslud20.mf20
-rw-r--r--fonts/musixtex-fonts/source/xslup20.mf20
-rw-r--r--fonts/musixtex-fonts/source/xslz.mf67
-rw-r--r--fonts/musixtex-fonts/source/xslz20.mf5
-rw-r--r--fonts/musixtex-fonts/source/xslz20d.mf6
-rw-r--r--fonts/musixtex-fonts/source/xtie20.mf24
-rw-r--r--fonts/musixtex-fonts/tfm/musix11.tfmbin0 -> 1288 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/musix13.tfmbin0 -> 1288 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/musix16.tfmbin0 -> 1284 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/musix20.tfmbin0 -> 1284 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/musix24.tfmbin0 -> 1284 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/musix25.tfmbin0 -> 1272 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/musix29.tfmbin0 -> 1284 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/musixsps.tfmbin0 -> 992 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/musixspx.tfmbin0 -> 1184 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/mxsk.tfmbin0 -> 916 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xadf11.tfmbin0 -> 424 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xadf13.tfmbin0 -> 424 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xadf16.tfmbin0 -> 424 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xadf20.tfmbin0 -> 424 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xadf24.tfmbin0 -> 424 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xadf29.tfmbin0 -> 424 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xgreg11.tfmbin0 -> 676 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xgreg13.tfmbin0 -> 676 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xgreg16.tfmbin0 -> 676 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xgreg20.tfmbin0 -> 676 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xgreg24.tfmbin0 -> 676 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xgreg29.tfmbin0 -> 676 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xppff10.tfmbin0 -> 224 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xsld11.tfmbin0 -> 1160 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xsld11d.tfmbin0 -> 1160 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xsld13.tfmbin0 -> 1160 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xsld13d.tfmbin0 -> 1160 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xsld16.tfmbin0 -> 1160 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xsld16d.tfmbin0 -> 1160 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xsld20.tfmbin0 -> 1160 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xsld20d.tfmbin0 -> 1160 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xsld24.tfmbin0 -> 1160 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xsld24d.tfmbin0 -> 1160 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xsld29.tfmbin0 -> 1160 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xsld29d.tfmbin0 -> 1160 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xsldd20.tfmbin0 -> 1160 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xsldu20.tfmbin0 -> 1160 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslhd11.tfmbin0 -> 1168 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslhd11d.tfmbin0 -> 1168 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslhd13.tfmbin0 -> 1168 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslhd13d.tfmbin0 -> 1168 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslhd16.tfmbin0 -> 1168 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslhd16d.tfmbin0 -> 1168 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslhd20.tfmbin0 -> 1168 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslhd20d.tfmbin0 -> 1168 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslhd24.tfmbin0 -> 1168 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslhd24d.tfmbin0 -> 1168 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslhd29.tfmbin0 -> 1168 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslhd29d.tfmbin0 -> 1168 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslhu11.tfmbin0 -> 1168 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslhu11d.tfmbin0 -> 1168 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslhu13.tfmbin0 -> 1168 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslhu13d.tfmbin0 -> 1168 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslhu16.tfmbin0 -> 1168 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslhu16d.tfmbin0 -> 1168 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslhu20.tfmbin0 -> 1168 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslhu20d.tfmbin0 -> 1168 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslhu20m.tfmbin0 -> 1168 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslhu24.tfmbin0 -> 1168 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslhu24d.tfmbin0 -> 1168 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslhu29.tfmbin0 -> 1168 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslhu29d.tfmbin0 -> 1168 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslhz20.tfmbin0 -> 1028 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslhz20d.tfmbin0 -> 1028 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslu11.tfmbin0 -> 1160 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslu11d.tfmbin0 -> 1160 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslu13.tfmbin0 -> 1160 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslu13d.tfmbin0 -> 1160 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslu16.tfmbin0 -> 1160 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslu16d.tfmbin0 -> 1160 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslu20.tfmbin0 -> 1160 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslu20d.tfmbin0 -> 1160 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslu24.tfmbin0 -> 1160 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslu24d.tfmbin0 -> 1160 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslu29.tfmbin0 -> 1160 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslu29d.tfmbin0 -> 1160 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslud20.tfmbin0 -> 1160 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslup20.tfmbin0 -> 1160 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslz20.tfmbin0 -> 568 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xslz20d.tfmbin0 -> 568 bytes
-rw-r--r--fonts/musixtex-fonts/tfm/xtie20.tfmbin0 -> 1028 bytes
-rw-r--r--fonts/musixtex-fonts/type1/musix11.pfbbin0 -> 40099 bytes
-rw-r--r--fonts/musixtex-fonts/type1/musix13.pfbbin0 -> 32019 bytes
-rw-r--r--fonts/musixtex-fonts/type1/musix16.pfbbin0 -> 31747 bytes
-rw-r--r--fonts/musixtex-fonts/type1/musix20.pfbbin0 -> 31318 bytes
-rw-r--r--fonts/musixtex-fonts/type1/musix24.pfbbin0 -> 31280 bytes
-rw-r--r--fonts/musixtex-fonts/type1/musix29.pfbbin0 -> 31228 bytes
-rw-r--r--fonts/musixtex-fonts/type1/musixsps.pfbbin0 -> 53020 bytes
-rw-r--r--fonts/musixtex-fonts/type1/musixspx.pfbbin0 -> 65838 bytes
-rw-r--r--fonts/musixtex-fonts/type1/mxsk.pfbbin0 -> 3209 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xadf11.pfbbin0 -> 9669 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xadf13.pfbbin0 -> 9692 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xadf16.pfbbin0 -> 9720 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xadf20.pfbbin0 -> 9580 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xadf24.pfbbin0 -> 9671 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xadf29.pfbbin0 -> 9692 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xgreg11.pfbbin0 -> 15139 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xgreg13.pfbbin0 -> 15194 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xgreg16.pfbbin0 -> 15284 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xgreg20.pfbbin0 -> 15099 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xgreg24.pfbbin0 -> 15100 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xgreg29.pfbbin0 -> 15098 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xppff10.pfbbin0 -> 3705 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xsld11.pfbbin0 -> 42507 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xsld11d.pfbbin0 -> 110740 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xsld13.pfbbin0 -> 37797 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xsld13d.pfbbin0 -> 104131 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xsld16.pfbbin0 -> 37634 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xsld16d.pfbbin0 -> 94450 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xsld20.pfbbin0 -> 36004 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xsld20d.pfbbin0 -> 106997 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xsld24.pfbbin0 -> 33980 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xsld24d.pfbbin0 -> 106208 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xsld29.pfbbin0 -> 33549 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xsld29d.pfbbin0 -> 106609 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xsldd20.pfbbin0 -> 37860 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xsldu20.pfbbin0 -> 37209 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslhd11.pfbbin0 -> 42367 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslhd11d.pfbbin0 -> 125948 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslhd13.pfbbin0 -> 37999 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslhd13d.pfbbin0 -> 133735 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslhd16.pfbbin0 -> 36952 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslhd16d.pfbbin0 -> 126484 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslhd20.pfbbin0 -> 34126 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslhd20d.pfbbin0 -> 125998 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslhd24.pfbbin0 -> 33980 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslhd24d.pfbbin0 -> 126012 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslhd29.pfbbin0 -> 31792 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslhd29d.pfbbin0 -> 149381 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslhu11.pfbbin0 -> 42709 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslhu11d.pfbbin0 -> 125659 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslhu13.pfbbin0 -> 39950 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslhu13d.pfbbin0 -> 133537 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslhu16.pfbbin0 -> 36543 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslhu16d.pfbbin0 -> 125523 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslhu20.pfbbin0 -> 33980 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslhu20d.pfbbin0 -> 126063 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslhu24.pfbbin0 -> 32326 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslhu24d.pfbbin0 -> 127885 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslhu29.pfbbin0 -> 31932 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslhu29d.pfbbin0 -> 147525 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslhz20.pfbbin0 -> 50434 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslhz20d.pfbbin0 -> 86183 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslu11.pfbbin0 -> 42461 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslu11d.pfbbin0 -> 108596 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslu13.pfbbin0 -> 37640 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslu13d.pfbbin0 -> 101871 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslu16.pfbbin0 -> 37448 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslu16d.pfbbin0 -> 93126 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslu20.pfbbin0 -> 35860 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslu20d.pfbbin0 -> 108719 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslu24.pfbbin0 -> 33448 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslu24d.pfbbin0 -> 107106 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslu29.pfbbin0 -> 33112 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslu29d.pfbbin0 -> 106733 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslud20.pfbbin0 -> 35259 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslup20.pfbbin0 -> 37584 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslz20.pfbbin0 -> 19440 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xslz20d.pfbbin0 -> 72465 bytes
-rw-r--r--fonts/musixtex-fonts/type1/xtie20.pfbbin0 -> 50960 bytes
262 files changed, 5506 insertions, 0 deletions
diff --git a/fonts/musixtex-fonts/README b/fonts/musixtex-fonts/README
new file mode 100644
index 0000000000..6377c99c34
--- /dev/null
+++ b/fonts/musixtex-fonts/README
@@ -0,0 +1,49 @@
+This is musixtex-fonts, packaged 2015-07-04. It contains all of
+the font-related files for MusiXTeX, including both the original
+metafont sources and Type 1 versions by Takanori Uchiyama.
+
+The main author of MusiXTeX was Daniel Taupin, who died in a climbing
+accident in 2003; other authors credited in the MusiXTeX manual are
+Andreas Egler and Ross Mitchell. MusiXTeX is now being maintained by
+
+Don Simons dsimons(at)roadrunner(dot)com
+Hiroaki Morimoto CQX05646(at)nifty(dot)com
+Bob Tennent rdt(at)cs(dot)queensu(dot)ca
+
+musixtex-fonts-install.{pdf,tex} is a more-detailed version of the
+following instructions:
+
+To install (on TDS-compliant TeX systems):
+
+ + download "tex-archive"/install/fonts/musixtex-fonts.tds.zip where
+ the preferred URL for "tex-archive" is http://mirror.ctan.org
+
+ + unzip the archive at the root of a texmf tree and, if necessary,
+ update the filename database; e.g., texhash texmf.
+
+ + update the relevant font-map files; e.g., append
+
+ MixedMap musix.map
+
+ to the relevant updmap.cfg, and execute updmap[-sys]
+
+Documentation for musixtex-fonts is installed under
+
+doc/fonts/musixtex-fonts
+
+Additional documentation, additional add-on packages, and many examples
+of MusiXTeX typesetting may be found at the Werner Icking Music Archive
+at
+
+http://icking-music-archive.org/
+
+Support for users of MusiXTeX and related software may be obtained via
+the MusiXTeX mail list at
+
+http://tug.org/mailman/listinfo/tex-music
+
+MusiXTeX may be freely copied, duplicated and used in conformance to the
+GNU General Public License (Version 2, 1991, see included file gpl.txt).
+
+This CTAN distribution is maintained by Bob Tennent
+rdt(at)cs(dot)queensu(dot)ca.
diff --git a/fonts/musixtex-fonts/doc/CHANGES.psfonts b/fonts/musixtex-fonts/doc/CHANGES.psfonts
new file mode 100644
index 0000000000..47ef978a54
--- /dev/null
+++ b/fonts/musixtex-fonts/doc/CHANGES.psfonts
@@ -0,0 +1,34 @@
+ PostScript (Type 1) Fonts for MusiXTeX
+ Ver 1.14
+
+ 28-September-2010
+
+ Takanori Uchiyama, uchiyama@appi.keio.ac.jp
+
+28-September-2010
+ + Augment mxsk from slur-ps package.
+
+19-February-2003
+ + Fix a problem that xslz20 disappears with Acrobat 5.
+
+15-July-2002
+ + Fix broken fonts, xslhd11, xslhd11d, xslhd13, xslhd13d, xslhd16d,
+ xslhd24, xslhd29d.
+
+28-August-2001
+ + Fix wrong width of musix13.pfb.
+ + Fix wrong width of xslhu11-29 and xslhu11d-29d.
+
+30-July-2001
+ + Reducing control points.
+ + Hinted automatically with Fontographer.
+ + Upgrade from T101 to T102 (musix11 - 29, xslhz20, xslhz20d)
+ + PostScript names were changed.
+ Ex. TeX-musix20 --> TeXMUSIX20-Regular
+ + typo correction.
+ musix.tex --> musix.map
+
+13-July-2001
+ + First release.
+
+[End of CHANGES]
diff --git a/fonts/musixtex-fonts/doc/README.psfonts b/fonts/musixtex-fonts/doc/README.psfonts
new file mode 100644
index 0000000000..24c14c7073
--- /dev/null
+++ b/fonts/musixtex-fonts/doc/README.psfonts
@@ -0,0 +1,114 @@
+ PostScript (Type 1) Fonts for MusiXTeX
+ Ver 1.14
+
+ 28-September-2010
+
+ Takanori Uchiyama, uchiyama@appi.keio.ac.jp
+
+1. DESCRIPTION
+
+This package provides PostScript (type 1) fonts (PFB format), and dvips and
+dvipdfm map files for MusiXTeX. The fonts are based on the original METAFONT
+sources, such as musix20.mf, which are distributed with MusiXTeX. The fonts
+provided here may be used to produce printer-independent Postscript files. PDF
+files generated using type 1 fonts are well displayed by the Adobe Reader and
+xpdf.
+
+The most of fonts were generated from the METAFONT sources in the TeX Live
+CD 2000 July using TeXtrace 0.45 or mftrace 1.0.12 but musix11-20, xslhz20
+and xslhz20d were upgraded to those in musixtex-T102.tar.gz.
+mxsk was generated from the METAFONT source in slur-ps package using mftrace
+1.2.16.
+
+Here is a list of the 72 generated fonts.
+
+musix11.pfb xgreg24.pfb xsld29.pfb xslhd24.pfb xslhu24.pfb xslu20.pfb
+musix13.pfb xgreg29.pfb xsld29d.pfb xslhd24d.pfb xslhu24d.pfb xslu20d.pfb
+musix16.pfb xsld11.pfb xsldd20.pfb xslhd29.pfb xslhu29.pfb xslu24.pfb
+musix20.pfb xsld11d.pfb xsldu20.pfb xslhd29d.pfb xslhu29d.pfb xslu24d.pfb
+musix24.pfb xsld13.pfb xslhd11.pfb xslhu11.pfb xslhz20.pfb xslu29.pfb
+musix29.pfb xsld13d.pfb xslhd11d.pfb xslhu11d.pfb xslhz20d.pfb xslu29d.pfb
+musixsps.pfb xsld16.pfb xslhd13.pfb xslhu13.pfb xslu11.pfb xslud20.pfb
+musixspx.pfb xsld16d.pfb xslhd13d.pfb xslhu13d.pfb xslu11d.pfb xslup20.pfb
+xgreg11.pfb xsld20.pfb xslhd16.pfb xslhu16.pfb xslu13.pfb xslz20.pfb
+xgreg13.pfb xsld20d.pfb xslhd16d.pfb xslhu16d.pfb xslu13d.pfb xslz20d.pfb
+xgreg16.pfb xsld24.pfb xslhd20.pfb xslhu20.pfb xslu16.pfb xtie20.pfb
+xgreg20.pfb xsld24d.pfb xslhd20d.pfb xslhu20d.pfb xslu16d.pfb
+mxsk.pfb
+
+Note: musix25 and xgreg25 were not generated because they are not used in
+ musixgre.tex or musixtex.tex.
+
+
+The control points were reduced with Fontographer.
+The fonts were hinted automatically with Fontographer. musix11 - 29 were
+hand tuned by Takanori Uchiyama.
+
+2. METHOD
+
+Most of fonts were generated using TeXtrace 0.45 running on Mac OS X 10.0.4.
+xslz20 was generated using mftrace 1.0.12 running on Mac OS X 10.2.3.
+mxsk was generated using mftrace 1.2.16 running on Mac OS X 10.6.4.
+Thirty-two fonts were generated with the original traceall.sh script. Others
+were generated with traceall.sh modified by Takanori Uchiyama. The modification
+involved reducing resolution, corresponding to enlargement of "1 thou" in
+traceall.sh. The following are lists of fonts that were generated with N-fold
+thou scripts.
+
+twofold
+ musix11, musix13, xsld11, xsld11d, xsld13, xsld13d, xsld16, xsld16d,
+ xslhd13, xslhd13d, xslhd16, xslhd16d, xslhd20, xslhd20d, xslhd24d,
+ xslhu13, xslhu13d, xslhu16, xslhu16d, xslhu20, xslhu20d, xslhu24d,
+ xslu13, xslu13d, xslu16, xslu16d, xslud20
+
+threefold
+ musixsps, musixspx, xslhd11, xslhd11d, xslhu11, xslhu11d, xslz20, xslz20d
+
+fivefold
+ xslhz20, xslhz20d, xtie20
+
+The reason for reducing resolution is that METAFONT supports only limited
+values of real numbers and so cannot generate very high resolution MusiXTeX
+fonts.
+
+3. INSTALLATION
+
+ 1) Make a directory such as $TEXMF/fonts/type1/musixtex, for PFBs.
+ 2) Copy all PFBs to the above directory; they should be readable by all users.
+ 3) Copy the map file ./dvips/musix.map to the appropriate directory, such as
+ $TEXMF/dvips/config
+ 4) Add a line
+
+ p +musix.map
+
+ to a suitable config.xxx file or, in a tetex-based distribution, add
+ musix.map to the list of map files for Type1 fonts with Metafont
+ equivalents in the updmap script, which should then be executed
+ by doing "./updmap".
+ 5) Do mktexlsr or texhash or whatever is necessary on your system to
+ re-generate the TeX database.
+
+Note: dvipdfm does not need a map file for these fonts because the PFBs'
+names are identical to TFMs' names.
+
+When these fonts are used, type 1 fonts should also be used for non-music text;
+for example, type 1 versions of the Computer Modern fonts are available.
+
+4. TODO
+
+ + Hinting
+ + Modifying METAFONT sources to get high resolution outputs
+
+5. LICENSE
+
+ The license of this package is LPPL.
+
+6. ACKNOWLEDGEMENTS
+
+ Thanks to Dr. Daniel Taupin, Ross Mitchell and Andreas Egler for their
+MusiXTeX package, to Dr. Peter Szabo for his excellent TeXtrace tool,
+and to Dr. Han-Wen Nienhuys for his smart mftrace tool.
+And thanks to Dr. Bob Tennent for his helpful comments, and to Mr. David
+Fritzsche for his suggestions.
+
+[End of README]
diff --git a/fonts/musixtex-fonts/doc/musixtex-fonts-install.pdf b/fonts/musixtex-fonts/doc/musixtex-fonts-install.pdf
new file mode 100644
index 0000000000..df90f30ff9
--- /dev/null
+++ b/fonts/musixtex-fonts/doc/musixtex-fonts-install.pdf
Binary files differ
diff --git a/fonts/musixtex-fonts/doc/musixtex-fonts-install.tex b/fonts/musixtex-fonts/doc/musixtex-fonts-install.tex
new file mode 100644
index 0000000000..2768334dfb
--- /dev/null
+++ b/fonts/musixtex-fonts/doc/musixtex-fonts-install.tex
@@ -0,0 +1,90 @@
+\documentclass[11pt]{article}
+\usepackage[textwidth=6.5in,textheight=8.5in]{geometry}
+\usepackage[osf]{mathpazo}
+\usepackage{textcomp}
+\PassOptionsToPackage{urlcolor=black,colorlinks}{hyperref}
+\RequirePackage{hyperref}
+\usepackage{xcolor}
+\newcommand{\myurl}[1]{\textcolor{blue}{\underline{\textcolor{black}{\url{#1}}}}}
+\newcommand{\musixflxVersion}{0.83.3}
+\begin{document}
+\title{Installation of the CTAN MusiXTeX Fonts Distribution}
+\author{Bob Tennent\\
+\small\url{rdt@cs.queensu.ca}}
+\date{\today}
+\maketitle
+\thispagestyle{empty}
+
+\section{Introduction}
+Before trying to install from CTAN, check whether your TeX distribution
+provides packages for MusiXTeX; this will be easier than doing it yourself.
+But if your TeX distribution
+doesn't have MusiXTeX (or doesn't have the most recent version), this distribution
+of the MusiXTeX fonts is very easy to install, though
+you may need to read the material on
+installation of (La)TeX files in the
+TeX FAQ\footnote{%
+\myurl{http://www.tex.ac.uk/cgi-bin/texfaq2html}},
+particularly
+the pages on
+which tree to use\footnote{%
+\myurl{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=what-TDS}}
+and installing files\footnote{%
+\myurl{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=inst-wlcf}}.
+
+\section{Installing \texttt{musixtex-fonts.tds.zip}}
+
+In this distribution of the MusiXTeX fonts, all of the files to be installed
+are in
+\begin{list}{}{}\item
+\myurl{http://mirror.ctan.org/install/fonts/musixtex-fonts.tds.zip}
+\end{list}
+at CTAN. The archive is a zipped TEXMF
+hierarchy; simply download and unzip this archive in the root folder/directory of whichever TEXMF tree
+you decide is most appropriate, likely a ``local'' or ``personal'' one.
+This should work with any TDS\footnote{%
+\myurl{http://www.tex.ac.uk/cgi-bin/texfaq2html?label=tds}}
+compliant TeX distribution, including MikTeX, TeXlive and teTeX.
+
+After unzipping the archive, update the filename database as necessary,
+for example, by executing \verb\texhash ~/texmf\ or
+clicking the button labelled ``Refresh FNDB" in the MikTeX settings program.
+
+You now need to update various font-map files. The details vary from one distribution
+to another.
+On any current TeXLive-based system, or a teTeX v3.0 system, execute the command
+\begin{list}{}{}\item
+ \verb\updmap --enable MixedMap=musix.map\
+\end{list}
+if you've installed into a ``personal'' TEXMF tree, or
+\begin{list}{}{}\item
+ \verb\updmap-sys --enable MixedMap=musix.map\
+\end{list}
+(as super-user) if you've installed to a ``local'' TEXMF tree.
+
+On an older MiKTeX system, you may need to update the system file \verb\updmap.cfg\, using the shell command
+\begin{list}{}{}\item
+ \verb\initexmf --edit-config-file updmap\
+\end{list}
+adding the following line at the end if it isn't already there:
+\begin{list}{}{}\item
+ \verb\MixedMap musix.map\
+\end{list}
+Then generate revised font maps with the shell command
+\begin{list}{}{}\item
+ \verb\initexmf --mkmaps\
+\end{list}
+
+\section{Discussion}
+
+Additional documentation, additional
+add-on packages, and many examples of MusiXTeX typesetting may be found
+at the Werner Icking Music Archive\footnote{%
+\myurl{http://icking-music-archive.org}}.
+Support for users of MusiXTeX and related software may be obtained via
+the MusiXTeX mail list\footnote{%
+\myurl{http://tug.org/mailman/listinfo/tex-music}}.
+MusiXTeX fonts may be freely copied, duplicated and used in conformance to the
+GNU General Public License (Version~2, 1991, see included file \verb\gpl.txt\).
+
+\end{document}
diff --git a/fonts/musixtex-fonts/map/musix.map b/fonts/musixtex-fonts/map/musix.map
new file mode 100644
index 0000000000..f128b3e139
--- /dev/null
+++ b/fonts/musixtex-fonts/map/musix.map
@@ -0,0 +1,79 @@
+musix11 TeXMUSIX11-Regular <musix11.pfb
+musix13 TeXMUSIX13-Regular <musix13.pfb
+musix16 TeXMUSIX16-Regular <musix16.pfb
+musix20 TeXMUSIX20-Regular <musix20.pfb
+musix24 TeXMUSIX24-Regular <musix24.pfb
+musix29 TeXMUSIX29-Regular <musix29.pfb
+musixsps TeXMUSIXSPS-Regular <musixsps.pfb
+musixspx TeXMUSIXSPX-Regular <musixspx.pfb
+mxsk TeXMXSK-Regular <mxsk.pfb
+xgreg11 TeXXGREG11-Regular <xgreg11.pfb
+xgreg13 TeXXGREG13-Regular <xgreg13.pfb
+xgreg16 TeXXGREG16-Regular <xgreg16.pfb
+xgreg20 TeXXGREG20-Regular <xgreg20.pfb
+xgreg24 TeXXGREG24-Regular <xgreg24.pfb
+xgreg29 TeXXGREG29-Regular <xgreg29.pfb
+xsld11 TeXXSLD11-Regular <xsld11.pfb
+xsld11d TeXXSLD11D-Regular <xsld11d.pfb
+xsld13 TeXXSLD13-Regular <xsld13.pfb
+xsld13d TeXXSLD13D-Regular <xsld13d.pfb
+xsld16 TeXXSLD16-Regular <xsld16.pfb
+xsld16d TeXXSLD16D-Regular <xsld16d.pfb
+xsld20 TeXXSLD20-Regular <xsld20.pfb
+xsld20d TeXXSLD20D-Regular <xsld20d.pfb
+xsld24 TeXXSLD24-Regular <xsld24.pfb
+xsld24d TeXXSLD24D-Regular <xsld24d.pfb
+xsld29 TeXXSLD29-Regular <xsld29.pfb
+xsld29d TeXSLD29D-Regular <xsld29d.pfb
+xsldd20 TeXXSLDD20-Regular <xsldd20.pfb
+xsldu20 TeXXSLDU20-Regular <xsldu20.pfb
+xslhd11 TeXXSLHD11-Regular <xslhd11.pfb
+xslhd11d TeXXSLHD11D-Regular <xslhd11d.pfb
+xslhd13 TeXXSLHD13-Regular <xslhd13.pfb
+xslhd13d TeXXSLHD13D-Regular <xslhd13d.pfb
+xslhd16 TeXXSLHD16-Regular <xslhd16.pfb
+xslhd16d TeXXSLHD16D-Regular <xslhd16d.pfb
+xslhd20 TeXXSLHD20-Regular <xslhd20.pfb
+xslhd20d TeXXSLHD20D-Regular <xslhd20d.pfb
+xslhd24 TeXXSLHD24-Regular <xslhd24.pfb
+xslhd24d TeXXSLHD24D-Regular <xslhd24d.pfb
+xslhd29 TeXXSLHD29-Regular <xslhd29.pfb
+xslhd29d TeXXSLHD29D-Regular <xslhd29d.pfb
+xslhu11 TeXXSLHU11-Regular <xslhu11.pfb
+xslhu11d TeXXSLHU11D-Regular <xslhu11d.pfb
+xslhu13 TeXXSLHU13-Regular <xslhu13.pfb
+xslhu13d TeXXSLHU13D-Regular <xslhu13d.pfb
+xslhu16 TeXXSLHU16-Regular <xslhu16.pfb
+xslhu16d TeXXSLHU16D-Regular <xslhu16d.pfb
+xslhu20 TeXXSLHU20-Regular <xslhu20.pfb
+xslhu20d TeXXSLHU20D-Regular <xslhu20d.pfb
+xslhu24 TeXXSLHU24-Regular <xslhu24.pfb
+xslhu24d TeXXSLHU24D-Regular <xslhu24d.pfb
+xslhu29 TeXXSLHU29-Regular <xslhu29.pfb
+xslhu29d TeXXSLHU29D-Regular <xslhu29d.pfb
+xslhz20 TeXXSLHZ20-Regular <xslhz20.pfb
+xslhz20d TeXXSLHZ20D-Regular <xslhz20d.pfb
+xslu11 TeXXSLU11-Regular <xslu11.pfb
+xslu11d TeXXSLU11D-Regular <xslu11d.pfb
+xslu13 TeXXSLU13-Regular <xslu13.pfb
+xslu13d TeXXSLU13D-Regular <xslu13d.pfb
+xslu16 TeXXSLU16-Regular <xslu16.pfb
+xslu16d TeXXSLU16D-Regular <xslu16d.pfb
+xslu20 TeXXSLU20-Regular <xslu20.pfb
+xslu20d TeXXSLU20D-Regular <xslu20d.pfb
+xslu24 TeXXSLU24-Regular <xslu24.pfb
+xslu24d TeXXSLU24D-Regular <xslu24d.pfb
+xslu29 TeXXSLU29-Regular <xslu29.pfb
+xslu29d TeXXSLU29D-Regular <xslu29d.pfb
+xslud20 TeXXSLUD20-Regular <xslud20.pfb
+xslup20 TeXXSLUP20-Regular <xslup20.pfb
+xslz20 TeXXSLZ20-Regular <xslz20.pfb
+xslz20d TeXXSLZ20D-Regular <xslz20d.pfb
+xtie20 TeXXTIE20-Regular <xtie20.pfb
+xppff10 TeXXPPFF10-Regular <xppff10.pfb
+xadf29 TeXXADF29-Regular <xadf29.pfb
+xadf24 TeXXADF24-Regular <xadf24.pfb
+xadf20 TeXXADF20-Regular <xadf20.pfb
+xadf16 TeXXADF16-Regular <xadf16.pfb
+xadf13 TeXXADF13-Regular <xadf13.pfb
+xadf11 TeXXADF11-Regular <xadf11.pfb
diff --git a/fonts/musixtex-fonts/source/musexgen.mf b/fonts/musixtex-fonts/source/musexgen.mf
new file mode 100644
index 0000000000..1b73e01bd8
--- /dev/null
+++ b/fonts/musixtex-fonts/source/musexgen.mf
@@ -0,0 +1,194 @@
+% this is musexgen.mf
+
+% Here are two types of pianobrackets available, they are absolute compatible,
+% so choose this one you prefer (search for '%!!!')
+
+path p;
+picture save_pic;
+
+pen thin_pen, med_pen;
+thin_pen:= pencircle scaled max(1,.2pt+blacker);
+med_pen:= pencircle scaled med;
+
+%%%%%%%
+message ("<big braces>");
+%%%%%%%
+
+firstbrace:=20; % smallest brace is 2*20 pt (\simeq 14mm)
+lastbrace:=67; % largest brace is 2*67 pt (\simeq 47mm)
+
+%%% from Stanislav Kneifl
+
+def drawpianobracket (expr height) =
+ u# := 1nhh#/5pt# * 1pt#;
+ v# := (height/40) * 1pt#;
+ define_pixels (u, v);
+% beginchar (height-firstbrace, 1.25nhh#, 0, 0);
+ beginchar (height-firstbrace, 0, 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;
+% inserted
+ currentpicture:=currentpicture shifted (round(-1.75nhh), 0);
+%
+ endchar;
+enddef;
+
+def bigbrace(expr v) =
+ beginchar (v-firstbrace, 0, 0, 0);
+ " brace vsize "&decimal round(2v*pt#)&"pt";
+ vwidth:=v*pt;
+ hwidth:=max(.1vwidth,3.25pt);
+ hwidth:=min(hwidth,6.5pt);
+ actwidth:=.035vwidth;
+ x1=.25nhw; y1=vwidth;
+ x2l=-.8hwidth; y2=2/3vwidth;
+ x3r=.2hwidth; y3=1/3vwidth;
+ x4=-hwidth; y4=0;
+ penpos1(max(1,.25pt),-35);
+ penpos2(1.5med+actwidth,40);
+ penpos3(1.75med+actwidth,45);
+ penpos4(max(1,.2pt),-90);
+ penstroke z1e..z2e..z3e..{left+sw}z4e;
+ currentpen:= pencircle; draw z1..z2..z3..{left+sw}z4;
+ addto currentpicture also currentpicture reflectedabout (origin, right);
+ penlabels(1,2,3,4);
+ currentpicture:= currentpicture shifted (round(-.75nhh), 0);
+ endchar;
+enddef;
+
+%!!! comment the line 'bigbrace' and uncomment the line 'drawpianobracket'
+% or leave it like it is !!!
+
+for v=firstbrace upto lastbrace :
+ bigbrace (v);
+% drawpianobracket (v);
+endfor;
+
+%%%%%%%
+message ("<glissandi-elements>");
+%%%%%%%
+% glissando{slide} (slope [degree])
+
+def glissando (expr theta)=
+ x1=-1; y1=0; z2=z1+(.5nhw,0); z3=z1+(nhw+1,0);
+ p:= z1{1.25up+right}..{1.25down+right}z2{1.25down+right}..{1.25up+right}z3;
+ pickup penrazor scaled (.075nhw+thick) rotated (theta+65);
+ draw p rotated theta;
+ labels (1,2,3);
+enddef;
+
+for slope=1 upto 8:
+
+ beginchar(56+slope-1, (cosd(10slope))*nhw#,(sind(10slope))*nhw#, 0);
+ " glissando element slope "&decimal (10slope)&" degree";
+ glissando (10slope);
+ save_pic:= currentpicture;
+ endchar;
+
+ beginchar(64+slope-1, (cosd(10slope))*nhw#, (sind(10slope))*nhw#, 0);
+ " glissando element slope "&decimal (-10slope)&" degree";
+ currentpicture:= save_pic reflectedabout (origin, right);
+ endchar;
+
+endfor;
+
+%%%%%%%
+message ("<guitar chords>");
+%%%%%%%
+def tabulatur (expr nd)=
+ hwidth:=1/5w;
+ x1=x2=y2=y3=0; x3=w; y1=-nd;
+ fill unitsquare xscaled (w+2thinwidth) yscaled (med+.2pt)
+ shifted(-thinwidth,0);
+ pickup thin_pen;
+ for v=1 upto 5 :
+ draw (z2--z3) shifted (0,v*-hwidth);
+ endfor;
+
+ for v=0 upto 5 :
+ draw (z1--z2) shifted (v*hwidth,0);
+ endfor;
+ labels (1,2,3);
+enddef;
+
+%beginchar(72, 15/4nhw#, 0, 0);" grid";
+% tabulatur (54/10nhh);
+%endchar;
+
+%beginchar(73, 15/8nhw#, 0, 0); " dot";
+% fill fullcircle scaled .675nhh shifted (w,-.45nhh);
+%endchar;
+
+%beginchar(74, 15/4nhw#, 0, 0); " bar";
+% fill unitsquare xscaled w yscaled .3nhh shifted (0,-.6nhh);
+%endchar;
+
+shift:=.15nhh;
+def Circle (expr nh)=
+ x1l=.1w; x2=x4=.5w; x3l=.9w;
+ y1=y3=.5nh+shift; y2=.1nh+shift; y4=.9nh+shift;
+ penpos1(med, 0);
+ penpos2(thinwidth,90);
+ penpos3(med,180);
+ penpos4(thinwidth, 270);
+ penstroke z1e..z2e..z3e..z4e..cycle;
+ pickup pencircle; draw z1..z2..z3..z4..cycle;
+enddef;
+
+%beginchar(75, 3/4nhw#, 0, 0); " circle";
+% Circle (.9nhh);
+%endchar;
+
+def Cross (expr nh)=
+ x1=x3=.2w; x2=x4=.8w;
+ y1=y4=.2nh+shift; y2=y3=nh-.2nh+shift;
+ pickup med_pen;
+ draw z1--z2; draw z3--z4;
+% labels (1,2,3,4);
+enddef;
+
+%beginchar(76, 3/4nhw#, 0, 0); " cross";
+% Cross (.9nhh);
+%endchar;
+
+%beginchar(77, 3/4nhw#, 0, 0); " blank";
+%endchar;
+
+beginchar(72, 3nhw#, 0, 0);" small grid";
+ tabulatur (108/25nhh);
+endchar;
+
+beginchar(73, 3/2nhw#, 0, 0); " small dot";
+ fill fullcircle scaled .54nhh shifted (w,-.36nhh);
+endchar;
+
+beginchar(74, 3nhw#, 0, 0); " small bar";
+ fill unitsquare xscaled w yscaled .24nhh shifted (0,-.48nhh);
+endchar;
+
+beginchar(75, 3/5nhw#, 0, 0); " small circle";
+ Circle (.72nhh);
+endchar;
+
+beginchar(76, 3/5nhw#, 0, 0); " small cross";
+ Cross (.72nhh);
+endchar;
+
+% the next seems to be senseless, but it isn't
+
+beginchar(77, 3/5nhw#, 0, 0); " small blank";
+endchar;
diff --git a/fonts/musixtex-fonts/source/musix11.mf b/fonts/musixtex-fonts/source/musix11.mf
new file mode 100644
index 0000000000..fd70f02eca
--- /dev/null
+++ b/fonts/musixtex-fonts/source/musix11.mf
@@ -0,0 +1,28 @@
+
+font_identifier:="musix11";
+
+mode_setup;
+
+font_size 10.24pt#;
+
+nhh#:=2.56pt#;
+nhw#:=3.072pt#;
+gregwidth#:=0.5*sqrt(2)*nhw#;
+
+thin#:=1/50designsize;
+med#:=1/33designsize;
+thick#:=1/16designsize;
+
+thinwidth := 0.064pt;
+beamht#:=0.48nhh#;
+
+define_pixels(nhh,nhw,beamht,gregwidth);
+define_blacker_pixels(thin,med,thick);
+
+pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
+ne = up+right; se = down+right; sw = down+left; nw = up+left;
+
+font_x_height nhh#;
+font_quad nhw#;
+
+input musixgen
diff --git a/fonts/musixtex-fonts/source/musix13.mf b/fonts/musixtex-fonts/source/musix13.mf
new file mode 100644
index 0000000000..918db5f01b
--- /dev/null
+++ b/fonts/musixtex-fonts/source/musix13.mf
@@ -0,0 +1,28 @@
+
+font_identifier:="musix13";
+
+mode_setup;
+
+font_size 12.8pt#;
+
+nhh#:=3.2pt#;
+nhw#:=3.84pt#;
+gregwidth#:=0.5*sqrt(2)*nhw#;
+
+thin#:=1/50designsize;
+med#:=1/33designsize;
+thick#:=1/16designsize;
+
+thinwidth := 0.08pt;
+beamht#:=0.48nhh#;
+
+define_pixels(nhh,nhw,beamht,gregwidth);
+define_blacker_pixels(thin,med,thick);
+
+pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
+ne = up+right; se = down+right; sw = down+left; nw = up+left;
+
+font_x_height nhh#;
+font_quad nhw#;
+
+input musixgen
diff --git a/fonts/musixtex-fonts/source/musix16.mf b/fonts/musixtex-fonts/source/musix16.mf
new file mode 100644
index 0000000000..32dbddd36d
--- /dev/null
+++ b/fonts/musixtex-fonts/source/musix16.mf
@@ -0,0 +1,28 @@
+
+font_identifier:="musix16";
+
+mode_setup;
+
+font_size 16pt#;
+
+nhh#:=4pt#;
+nhw#:=4.8pt#;
+gregwidth#:=0.5*sqrt(2)*nhw#;
+
+thin#:=1/50designsize;
+med#:=1/33designsize;
+thick#:=1/16designsize;
+
+thinwidth := 0.1pt;
+beamht#:=0.48nhh#;
+
+define_pixels(nhh,nhw,beamht,gregwidth);
+define_blacker_pixels(thin,med,thick);
+
+pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
+ne = up+right; se = down+right; sw = down+left; nw = up+left;
+
+font_x_height nhh#;
+font_quad nhw#;
+
+input musixgen
diff --git a/fonts/musixtex-fonts/source/musix20.mf b/fonts/musixtex-fonts/source/musix20.mf
new file mode 100644
index 0000000000..0bdebdf3f1
--- /dev/null
+++ b/fonts/musixtex-fonts/source/musix20.mf
@@ -0,0 +1,28 @@
+
+font_identifier:="musix20";
+
+mode_setup;
+
+font_size 20pt#;
+
+nhh#:=5pt#;
+nhw#:=1.2*nhh#;
+gregwidth#:=0.5*sqrt(2)*nhw#;
+
+thin#:=1/50designsize;
+med#:=1/33designsize;
+thick#:=1/16designsize;
+
+thinwidth := 0.125pt;
+beamht#:=0.48nhh#;
+
+define_pixels(nhh,nhw,beamht,gregwidth);
+define_blacker_pixels(thin,med,thick);
+
+pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
+ne = up+right; se = down+right; sw = down+left; nw = up+left;
+
+font_x_height nhh#;
+font_quad nhw#;
+
+input musixgen
diff --git a/fonts/musixtex-fonts/source/musix24.mf b/fonts/musixtex-fonts/source/musix24.mf
new file mode 100644
index 0000000000..0b2dc46b71
--- /dev/null
+++ b/fonts/musixtex-fonts/source/musix24.mf
@@ -0,0 +1,28 @@
+
+font_identifier:="musix24";
+
+mode_setup;
+
+font_size 24pt#;
+
+nhh#:=6pt#;
+nhw#:=1.2nhh#;
+gregwidth#:=0.5*sqrt(2)*nhw#;
+
+thin#:=1/50designsize;
+med#:=1/33designsize;
+thick#:=1/16designsize;
+
+thinwidth := 0.15pt;
+beamht#:=0.48nhh#;
+
+define_pixels(nhh,nhw,beamht,gregwidth);
+define_blacker_pixels(thin,med,thick);
+
+pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
+ne = up+right; se = down+right; sw = down+left; nw = up+left;
+
+font_x_height nhh#;
+font_quad nhw#;
+
+input musixgen
diff --git a/fonts/musixtex-fonts/source/musix25.mf b/fonts/musixtex-fonts/source/musix25.mf
new file mode 100644
index 0000000000..529c7ec7ad
--- /dev/null
+++ b/fonts/musixtex-fonts/source/musix25.mf
@@ -0,0 +1,28 @@
+
+font_identifier:="musix25";
+
+mode_setup;
+
+font_size 25pt#;
+
+nhh#:=6.25pt#;
+nhw#:=7.5pt#;
+gregwidth#:=0.5*sqrt(2)*nhw#;
+
+thin#:=1/50designsize;
+med#:=1/33designsize;
+thick#:=1/16designsize;
+
+thinwidth := 0.15pt;
+beamht#:=0.48nhh#;
+
+define_pixels(nhh,nhw,beamht,gregwidth);
+define_blacker_pixels(thin,med,thick);
+
+pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
+ne = up+right; se = down+right; sw = down+left; nw = up+left;
+
+font_x_height nhh#;
+font_quad nhw#;
+
+input musixgen
diff --git a/fonts/musixtex-fonts/source/musix29.mf b/fonts/musixtex-fonts/source/musix29.mf
new file mode 100644
index 0000000000..622aeae27f
--- /dev/null
+++ b/fonts/musixtex-fonts/source/musix29.mf
@@ -0,0 +1,28 @@
+
+font_identifier:="musix29";
+
+mode_setup;
+
+font_size 29pt#;
+
+nhh#:=7.2pt#;
+nhw#:=1.2*nhh#;
+gregwidth#:=0.5*sqrt(2)*nhw#;
+
+thin#:=1/50designsize;
+med#:=1/33designsize;
+thick#:=1/16designsize;
+
+thinwidth := 0.15pt;
+beamht#:=0.48nhh#;
+
+define_pixels(nhh,nhw,beamht,gregwidth);
+define_blacker_pixels(thin,med,thick);
+
+pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
+ne = up+right; se = down+right; sw = down+left; nw = up+left;
+
+font_x_height nhh#;
+font_quad nhw#;
+
+input musixgen
diff --git a/fonts/musixtex-fonts/source/musixgen.mf b/fonts/musixtex-fonts/source/musixgen.mf
new file mode 100644
index 0000000000..a59adfb567
--- /dev/null
+++ b/fonts/musixtex-fonts/source/musixgen.mf
@@ -0,0 +1,1550 @@
+%
+% This file is part of MusiXTeX
+%
+% MusiXTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% MusiXTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with MusiXTeX; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+% next changes: - redesigning accidentals
+% - new accents
+% - new gregorian symbols
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% this is musixgen.mf (c)
+%
+% Version T.102 [February 2001]
+% - alternate longa symbol ||O||
+%
+% Version T.70 [March 97]
+% - double shap corrected by Julian Gilbey (strange paths)
+%
+% Version T.59 [September 96]
+% - added one more gregorian symbol (126)
+%
+% Version T.40 [September 95]
+% - corrected gregorianFclef (123)
+%
+% Version 0.37 [March 95]
+% - introduced reverseAllabreve (122)
+%
+% Version 0.25 [December 94]
+% - some new chars
+% - added the beamfonts at pos x+128 to save memory
+% - changed coda to be centered
+% - changed the flags
+% - changed the position of some chars to save time
+%
+% ... - trouble shooting, minor changes
+%
+% Version 0.99b[April 94]
+% - added the new signs from Daniel Taupin
+%
+% Version 0.99 [February 94]
+% -'bravely' changed the tfm informations to save memory
+% - redesigned chars 14, 15, 35, 36, 53, 71, 72, 80, 81, 86, 93
+% - removed * 'never used' chars 37-39, 55-57, 69-70,
+% 77-79, 91-99, 101-119
+% * (de)crescendi 16-23 -> now in musixlin
+% - introduced some new chars 0-11, 16-23, 37-39, 57, 77-79,
+% 99-117
+% - changed the position of some chars to save memory
+%%%%%%%%%%
+% this was musicgen.mf
+%
+% 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
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% free positions: 125-127, 188-191, 252-255
+% heights : 0, 0.5, 1, 1.5, 2.25, 3.25, 4, 4.75, 5.25
+% depths : 0, 0.5, 1, 1.5, 2.25
+
+%{{{ 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;
+
+hlthick=.2pt;
+lthick=.4pt;
+
+pen line_pen, med_pen, coda_pen, thin_pen;
+med_pen:= pencircle scaled med;
+line_pen:= pencircle scaled lthick;
+coda_pen:= pencircle xscaled 1.25thick yscaled max(1,.75med);
+thin_pen:= pencircle scaled max(1,.25pt);
+
+apog_fact=.75;
+apog_nhw#=apog_fact*nhw#;
+
+picture save_pic, elem_pic;
+
+%%%%%%%%%%%%%%%
+% basic def's %
+%%%%%%%%%%%%%%%
+
+def savepic = save_pic:= currentpicture enddef;
+def save_elempic = elem_pic:= currentpicture enddef;
+def callpic = currentpicture:= save_pic enddef;
+
+def mirror (expr pone, ptwo) =
+ currentpicture:=currentpicture reflectedabout(round(pone),round(ptwo))
+enddef;
+
+def add_mirror (expr pone, ptwo) =
+ addto currentpicture also currentpicture
+ reflectedabout (round(pone), round(ptwo))
+enddef;
+
+def call_mirror (expr pone, ptwo) = callpic; mirror (pone, ptwo) enddef;
+
+def add_shift (expr pone, ptwo) =
+ addto currentpicture also currentpicture shifted (pone, ptwo)
+enddef;
+
+def call_add_shift (expr pone, ptwo) =
+ callpic; add_shift (pone, ptwo)
+enddef;
+
+def add_elempic (expr pone, ptwo) =
+ addto currentpicture also elem_pic shifted (pone, ptwo)
+enddef;
+
+def call_add_save_elempic (expr pone, ptwo) =
+ callpic; add_elempic(pone, ptwo); savepic
+enddef;
+
+def shift_pic (expr pone, ptwo) =
+ currentpicture:=currentpicture shifted (round(pone),round(ptwo))
+enddef;
+
+def fill_circle (expr diameter, zshift) =
+ fill fullcircle scaled diameter shifted zshift
+enddef;
+
+def fill_square (expr xwidth, ywidth, zshift) =
+ fill unitsquare xscaled xwidth yscaled ywidth shifted zshift
+enddef;
+
+%
+
+def staff=
+ for i=0 upto 4:
+ pickup pencircle yscaled lthick;
+ draw (-5nhw,i*nhh)--(5nhw,i*nhh);
+ endfor
+enddef;
+
+def Staff=
+ for i=0 upto 4:
+ pickup pencircle yscaled lthick;
+ draw (-5nhw,(i*nhh-.5nhh))--(5nhw,(i*nhh-.5nhh));
+ endfor
+enddef;
+
+def upstem=
+ fill_square (lthick, 5nhh, (0,-5nhh))
+enddef;
+
+def downstem=
+ fill_square (lthick, 5nhh, (nhw-hlthick,0))
+enddef;
+
+% eobasicdefs ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+%%%%%%%
+message ("<dots & par's>");
+%%%%%%%
+
+beginchar(0, 0, 0, 0); "duration dot"; % correct 3=>0 DT
+ fill_circle (1/3nhh+blacker, (1.5nhw, 0));
+ save_elempic;
+ savepic;
+endchar;
+
+beginchar(1, 0, 0, 0); "double duration dot";
+ call_add_shift (.5nhw, 0);
+ savepic;
+endchar;
+
+beginchar(2, 0, 0, 0); "triple duration dot";
+ callpic;
+ add_elempic (nhw, 0);
+endchar;
+
+beginchar(3, 0, nhh#, nhh#); "left parenthesis"; % correct 0=>3 DT
+ x11=x13=-.1nhw; y12=0; x12=-.3nhw; y11=-y13=-.75nhh;
+ pickup med_pen;
+ draw z11..z12..z13;
+ savepic;
+endchar;
+
+beginchar(4, 0, nhh#, nhh#); "right parenthesis";
+ call_mirror ((.5nhw,0),(.5nhw,1));
+endchar;
+
+beginchar(5, 0, nhh#, nhh#); "cautionary parentheses";
+ callpic;
+ add_mirror ((.3nhw, 0),(.3nhw, 1));
+endchar;
+
+beginchar(6, 0, nhh#, nhh#); "cautionary wide parentheses";% -> bb
+ callpic;
+ add_mirror ((.55nhw, 0),(.55nhw, 1));
+endchar;
+
+%%%%%%%
+message("<accents>");
+%%%%%%%
+
+beginchar(120, 0, 1.5nhh#, 0); "harmonics";
+ pickup thin_pen;
+ draw fullcircle scaled .5nhw shifted (.5nhw, nhh);
+endchar;
+
+%beginchar(XX, 0, 1.5nhh#, 0); "???";
+% x1=0; x2=.5nhw; x3=nhw-x1; x3=x4+.25nhw; x6=x1+med;
+% y1=y6=y4=y3=nhh; y2=y1+nhh;
+% z5-z6=whatever*(z2-z1);
+% z5-z4=whatever*(z2-z3);
+% fill z1--z2--z3--z4--z5--z6--cycle;
+% fill_circle (thick, ((x5,y1+.5thick)));
+% savepic;
+%endchar;
+
+beginchar(20, 0, 2.25nhh#, 0); "upper sforzato";
+ x1=1/12nhw; x2=.5nhw; x3=nhw-x1; x3=x4+.25nhw; x6=x1+med;
+ y1=y6=y4=y3=nhh; y2=y1+nhh;
+ z5-z6=whatever*(z2-z1);
+ z5-z4=whatever*(z2-z3);
+ fill z1--z2--z3--z4--z5--z6--cycle;
+ savepic;
+endchar;
+
+beginchar(21, 0, 0, 2.25nhh#); "lower sforzato";
+ call_mirror (origin, right);
+endchar;
+
+beginchar(22, 0, nhh#, 0); "downbow";
+ fill_square (thin, nhh, (-thin, .4nhh));
+ fill_square (.5nhw+thin+1, .8beamht+thin, (-thin, nhh));
+ add_mirror ((.5nhw,0),(.5nhw,1));
+endchar;
+
+beginchar(23, 0, 1.5nhh#, 0); "upbow";
+ pickup med_pen;
+ draw (.15nhw, 1.7nhh)--(.5nhw, .2nhh);
+ add_mirror ((.5nhw,0),(.5nhw,1));
+endchar;
+
+beginchar(24, 0, nhh#, 0); "upper staccato";
+ fill_circle (.275nhw+blacker, (.5nhw, nhh));
+ savepic;
+endchar;
+
+beginchar(25, 0, 0, nhh#); "lower staccato";
+ call_mirror (origin, right);
+endchar;
+
+beginchar(18, 0, nhh#, 0); "upper tenuto/staccato";
+ fill_square (nhw, 1.25med, (0, 1.2nhh-.625med));
+ fill_circle (.275nhw+blacker, (.5nhw, .9nhh));
+ savepic;
+endchar;
+
+beginchar(19, 0, 0, nhh#); "lower tenuto/staccato";
+ call_mirror (origin, right);
+endchar;
+
+beginchar(26, 0, nhh#, 0); "upper portato (tenuto)";
+ fill_square (nhw, 1.25med, (0, nhh-.625med));
+ savepic;
+endchar;
+
+beginchar(27, 0, 0, nhh#); "lower portato (tenuto)";
+ call_mirror (origin, right);
+endchar;
+
+beginchar(28, 0, 1.5nhh#, 0); "upper staccatissimo";
+ rayon:= thin+.125nhh;
+ x1=x3=x2+rayon=x4-rayon=.5nhw;
+ y2=y4=y1-rayon=y3+.5nhh=1.15nhh;
+ fill z3--z4{up}..z1..{down}z2--cycle;
+ savepic;
+endchar;
+
+beginchar(29, 0, 0, 1.5nhh#); "lower staccatissimo";
+ call_mirror (origin, right);
+endchar;
+
+beginchar(30, 0, 2.25nhh#, 0); "upper marcato";
+ pickup med_pen;
+ draw (-.2nhw, 1.9nhh)--(1.2nhw, 1.5nhh)--(-.2nhw, 1.1nhh);
+ savepic;
+endchar;
+
+beginchar(31, 0, 0, 2.25nhh#); "lower marcato";
+ call_mirror (origin, right);
+endchar;
+
+%%%%%%%
+message ("<noteheads>");
+%%%%%%%
+
+NHW=nhw+hlthick;
+
+beginchar(7, 0, .5nhh#, .5nhh#); "quarter note";
+% makeshift, expedience
+if pixels_per_inch=600:
+ if NHW>50: corNHW=1.04*NHW; else: corNHW=1.04*NHW+1; fi
+ fill fullcircle xscaled corNHW yscaled 1.85h
+ rotated 20 shifted (.5NHW-.5, 0);
+else:
+ corNHW=1.065*NHW;
+ fill fullcircle xscaled corNHW yscaled 1.85h
+ rotated 20 shifted (.5NHW, 0);
+fi
+endchar;
+
+beginchar(8, 0, .5nhh#, .5nhh#); "half note";
+ penpos1(max(1,2hlthick), 0);
+ penpos3(max(1,2hlthick), 180);
+ penpos2(thick,-90);
+ penpos4(thick, 90);
+ -x1l = .53NHW;
+ x3l = .5NHW;
+ x2 = x4 = y1 = y3 = 0;
+ y2l =-y4l = h;
+ penstroke (z1e{up}..z2e{right}..z3e{down}..z4e{left}..cycle)
+ rotated 20 shifted (.5NHW, 0);
+endchar;
+
+beginchar(9, 0, .5nhh#, .5nhh#); "whole note";
+ x1= y1 = y3 = y5 = y7 = 0;
+ x3= 2x2 = 2x4 = 2x6 = 2x8 = 5/4nhw;
+ y2=-y4 = h;
+ x5= x3-x7 = x1+.375nhw-blacker;
+ y6=-y8 = y2-.1thin;
+ fill z1{curl3}..z2..{curl3}z3{curl3}..z4..{curl3}cycle;
+ unfill (z5..z6..z7..z8..cycle) rotatedaround ((x2,0), 45) shifted (.5,.5);
+%{{{
+ currentpen:= pencircle;
+ draw rt z1{curl3}..bot z2..{curl3}lft z3{curl3}..top z4..{curl3}cycle;
+%}}}
+ labels(range 1 thru 8);
+ savepic;
+endchar;
+
+beginchar(56, 0, .5nhh#, .5nhh#); "whole note with | --> |O|";
+ callpic;
+ fill_square (.6thick, nhh, (-.55thick,-.5nhh));
+ fill_square (.6thick, nhh, (5/4nhw-.05thick,-.5nhh));
+endchar;
+
+beginchar(127, 0, .5nhh#, .5nhh#); "whole note with || --> ||O||";
+ callpic;
+ fill_square (.6thick, nhh, (-.55thick,-.5nhh));
+ fill_square (.6thick, nhh, (5/4nhw-.05thick,-.5nhh));
+ fill_square (.6thick, nhh, (-1/4nhw-.55thick,-.5nhh));
+ fill_square (.6thick, nhh, (6/4nhw-.05thick,-.5nhh));
+endchar;
+
+beginchar(32, 0, .5nhh#, .5nhh#); "brevis";% 2 whole notes
+ fill_square (5/4nhw, .25nhh, (0,.25nhh));
+ add_mirror (origin, right);
+ x1=x2=0; x3=x4=5/4nhw; y1=-y2=y3=-y4=.7nhh;
+ pickup line_pen;
+ draw z1--z2; draw z3--z4;
+ savepic;
+endchar;
+
+beginchar(39, 0, .5nhh#, .5nhh#); "longa";% 4 whole notes
+ callpic;
+ pickup line_pen;
+ draw (5/4nhw,-.7nhh)--(5/4nhw,-1.7nhh);
+endchar;
+
+beginchar(36, 0, .5nhh#, .5nhh#); "maxima";% 8 whole notes
+ fill_square (5/2nhw, .3nhh, (0,.2nhh));
+ add_mirror (origin, right);
+ pickup line_pen;
+ draw (0,.7nhh)--(0,-.7nhh); draw (5/2nhw,.7nhh)--(5/2nhw,-1.7nhh);
+endchar;
+
+beginchar(37, 0, .5nhh#, .5nhh#); "filled diamond";% -> triangle
+ fill unitsquare scaled (.5*sqrt(2)*NHW) rotated -45;
+endchar;
+
+def square (expr mw)=
+ fill_square (sqrt(2)*.5mw, max(1,thin), origin) rotated -45;
+ fill_square (sqrt(2)*.5mw, .15nhw, (0,-.15nhw)) rotated 45;
+ save_elempic;
+ mirror (origin,up);
+ mirror (origin,left);
+ shift_pic (mw+.5,0);
+ add_elempic(0,0);
+% mirror (origin,right);% I've seen this too, somewhere ...
+enddef;
+
+beginchar(38, 0, .5nhh#, .5nhh#); "unfilled diamond";% -> rimshot
+ square (NHW);
+endchar;
+
+beginchar(99, 0, .5nhh#, .5nhh#); "oldstyle quarter notehead up";
+ x1=x4=0; x2=x3=NHW; y1=y2=-y3=-y4=h-hlthick;
+ fill z1{dir-10}..z2--z3{dir-170}..z4--cycle;
+ savepic;
+endchar;
+
+beginchar(100, 0, .5nhh#, .5nhh#); "oldstyle quarter notehead down";
+ call_mirror(origin, right);
+endchar;
+
+beginchar(101, 0, .5nhh#, .5nhh#); "oldstyle half notehead up";
+ pthick:=.2nhh;
+ x1=0; x2=NHW; y1=y2=h-.5pthick+hlthick;
+ pickup penrazor scaled pthick rotated 90;
+ draw z1{dir-10}..z2;
+ add_shift (0, -nhh+pthick);
+ fill_square (lthick, nhh-hlthick, (0, -h+hlthick));
+ fill_square (lthick, nhh-hlthick, (nhw-hlthick, -h+hlthick));
+ savepic;
+endchar;
+
+beginchar(102, 0, .5nhh#, .5nhh#); "oldstyle half notehead down";
+ call_mirror(origin, right);
+endchar;
+
+beginchar(111, 0, .5nhh#, .5nhh#); "cross"; % -> closed hihat
+ x1=0; x2=nhw; y1=-.5nhw; y2=-y1;
+ pickup med_pen;
+ draw top rt z1--bot lft z2;
+ add_mirror((.5nhw,0),(.5nhw,1));
+ savepic;
+endchar;
+
+beginchar(112, 0, .5nhh#, .5nhh#); "halfcircled cross";% -> halfclosed hihat
+ callpic;
+ pickup thin_pen;
+ draw halfcircle scaled nhw shifted (.5nhw,0);
+endchar;
+
+beginchar(113, 0, .5nhh#, .5nhh#); "circled cross";% -> open hihat
+ callpic;
+ pickup thin_pen;
+ draw fullcircle scaled nhw shifted (.5nhw,0);
+endchar;
+
+def doublesharp (expr mw, xshift)=
+ x1=y2=x3=0; y1=x2=y4=.5mw; y3=.5mw-x4=.1mw;
+ z4'=.925[z3,z4]; z3'=.925[z4,z3]; % ***
+ penpos2(max(1,thin),45);
+%%% a 'nicer' look for 'high'res-printers gives
+if pixels_per_inch > 500:
+ fill z1..{dir-125}z3'{dir35}..{se}z2l--z2r--(z1+(eps,0))--cycle;
+ fill z1..{dir35}z4'{dir-125}..{se}z2r--z2l--(z1-(eps,0))--cycle; % ***
+else :
+%%% but this causes 'strange path' on lower resolutions
+ fill z1..{dir-110}z3'{dir30}..{se}z2l--z2r--(z1+(eps,0))--cycle;
+ fill z1..{dir20}z4'{dir-120}..{se}z2r--z2l--(z1-(eps,0))--cycle; % ***
+fi
+%{{{
+ currentpen:= pencircle; draw z1--(x2+1,y2-1);% draw (x3'+1,y3'+1)--z5';
+%}}}
+% add_mirror ((0,.5mw),(.5mw,0)); % ***
+ add_mirror ((.5mw,-.5mw),(.5mw,.5mw));
+ add_mirror (origin, right);
+ shift_pic (xshift, 0);
+enddef;
+
+beginchar(114, 0, .5nhh#, .5nhh#); "doublesharp notehead";% -> ride cymbal
+ doublesharp (.95nhw,0.025nhw);
+ savepic;
+endchar;
+
+beginchar(115,0, .5nhh#, .5nhh#);"circled doublesharp notehead";%->crash cymbal
+ callpic;
+ pickup thin_pen;
+ draw fullcircle scaled nhw shifted (.5nhw,0);
+endchar;
+
+beginchar(116, 0, .5nhh#, .5nhh#); "triangle";% -> rattle
+ x1=y1=y2=0; x2=2x3=nhw; y3=.8h;
+ pickup med_pen;
+ draw z1--z2--z3--z1;
+endchar;
+
+beginchar(117, 0, .5nhh#, .5nhh#); "bongo cross";
+ pickup med_pen;
+ draw (0,0)--(nhw,0);
+ draw (0.5nhw,-0.5nhw) -- (0.5nhw,0.5nhw);
+endchar;
+
+beginchar(118, 0, .5nhh#, .5nhh#); "rhombus";% -> shaker
+ x1=x4=y2=y4=0; y1=-y3=-h; x2=x3=NHW;
+ fill z1--z2--z3--z4--cycle;
+endchar;
+
+beginchar(95, 0, .5nhh#, .5nhh#); "gregorian square";
+ x1=x4=0; x2=x3=gregwidth; y1=y2=-y3=-y4=.5gregwidth-lthick;
+ fill z1{dir 15}..z2--z3{dir 165}..z4--cycle;
+ shift_pic(0,-hlthick);
+ savepic;
+endchar;
+
+beginchar(96, 0, .5nhh#, .5nhh#); "gregorian square left";
+ callpic;
+ fill_square (med, 1.5nhh,(0, -1.5nhh));
+endchar;
+
+beginchar(97, 0, .5nhh#, .5nhh#); "gregorian square right";
+ callpic;
+ fill_square (med, 1.5nhh,(gregwidth-med, -1.5nhh));
+ savepic;
+endchar;
+
+beginchar(124, 0, .5nhh#, .5nhh#); "porrectus";
+ x1=x4=0; x2=x3=2.5*gregwidth; y1=-y4=.5gregwidth-lthick; y2=y1-nhh; y3=y4-nhh;
+ fill z1..{right}z2--z3{left}..z4--cycle; shift_pic(0,hlthick);
+ fill_square (med, 1.5nhh,(0, -1.5nhh));
+endchar;
+
+beginchar(125, 0, .5nhh#, .5nhh#); "quilisma";
+ qdecalage:=.12*gregwidth;
+ x1=x4=-0.2*gregwidth; x2=x3=1.2*gregwidth;
+ y1+qdecalage=y2-qdecalage=.5gregwidth-lthick;y1=-y3; y2=-y4;
+ fill z1--z2--z3--z4--cycle;
+ pickup med_pen;
+
+ draw z4--(z1+0.4*(z1-z4));
+ draw (0.667z4+0.333z3)--((0.667z1+0.333z2)+0.4*(z1-z4));
+ draw (0.333z4+0.667z3)--((0.333z1+0.667z2)+0.4*(z1-z4));
+ draw z3--(z2+0.4*(z1-z4));
+ shift_pic(0,-hlthick);
+endchar;
+
+beginchar(126, 0, .5nhh#, .5nhh#); "mirrored gregorian square";
+ x1=x4=0; x2=x3=gregwidth; y1=y2=-y3=-y4=-.5gregwidth+lthick;
+ fill z1{dir -15}..z2--z3{dir -165}..z4--cycle;
+ shift_pic(0,+hlthick);
+endchar;
+
+
+
+%%%%%%%
+message ("<flags>");
+%%%%%%%
+
+flagw:=.8nhw;
+flagthick:=nhh;
+flagthin:=5thinwidth;
+
+def flagshape
+(expr contflag, width, height, flgthick, flgthin, shifty, flagsense) =
+ penpos1(flgthick+blacker, 90); % .1
+ penpos2(3.25flgthin+blacker, 70);%
+ x1 = 0; % .2
+ y1 = height+shifty-.5flgthick; %
+ x2 = 3/8width; % .3
+ y2 = y1-.45flgthick; %
+ x3 = width-flgthin/2; % .4(.4)
+ y3 = y1-1.5flgthick;
+
+ if contflag=1: x4 = x3-.4width; y4 = shifty;
+ else: x4 = x3; y4 = 2.5flagthick-2flgthick; fi
+ if flagsense>0: penpos3(1.15flgthin, 35);
+ else: penpos3(.8flgthin, 0); fi
+
+ penstroke z1e..z2e..z3e{down}..z4;
+%{{{
+ currentpen:= pencircle; draw lft z1..z2..z3{down}..z4;
+%}}}
+ penlabels(1,2,3,4)
+enddef;
+
+def mirror_flag(expr sense)= if sense<0: mirror((0,h/2),(1,h/2));fi enddef;
+
+def cflag (expr sense) =
+ flagshape(1, flagw, 3nhh, flagthick, flagthin, 0, sense);
+ mirror_flag(sense);
+ savepic;
+enddef;
+
+def ccflag (expr sense) =
+ flagshape(5, flagw, 2.25nhh, 2/3flagthick, flagthin, flagthick, sense);
+ save_elempic;
+ clearxy;
+ flagshape(1, flagw, 2.5nhh, 2/3flagthick, flagthin, 0, sense);
+ savepic;
+ mirror_flag(sense);
+enddef;
+
+def addflag (expr sense, shifty) =
+ call_add_save_elempic (0, shifty*.75flagthick);
+ mirror_flag(sense);
+enddef;
+
+def cccflag (expr sense) = addflag(sense, 1) enddef;
+def ccccflag (expr sense) = addflag(sense, 2) enddef;
+def cccccflag (expr sense) = addflag(sense, 3) enddef;
+
+beginchar(40, 0, 3.25nhh#, 0); "8th flag up";
+ cflag(1);
+ shift_pic (0, .5nhh+.5);
+endchar;
+
+beginchar(12, 0, 3.25nhh#, 0); "acciacaturra stem up";
+ callpic;
+ pickup med_pen;
+ x1=-.25nhw; y1=.2h; x2=1.1nhw; y2=y1+.6(x2-x1);
+ draw z1--z2;
+ shift_pic (0, .5nhh+.5);
+endchar;
+
+beginchar(41, 0, 3.25nhh#, 0); "16th flag up";
+ ccflag(1);
+ shift_pic (0, .25nhh);
+endchar;
+
+beginchar(42, 0, 4nhh#, 0); "32th flag up";
+ cccflag(1);
+ shift_pic (0, .25nhh);
+endchar;
+
+beginchar(43, 0, 4.75nhh#, 0); "64th flag up";
+ ccccflag(1);
+ shift_pic (0, .25nhh);
+endchar;
+
+beginchar(44, 0, 5.5nhh#, 0); "128th flag up";
+ cccccflag(1);
+ shift_pic (0, .25nhh);
+endchar;
+
+%%%
+% flags up should be wider
+%%%
+flagw:=nhw;
+
+beginchar(45, 0, 3.25nhh#, 0); "8th flag down";
+ cflag(-1);
+ shift_pic (0,-.5nhh-.5);
+endchar;
+
+beginchar(13, 0, 3.25nhh#, 0); "acciacaturra stem down";
+ callpic;
+ pickup med_pen;
+ x1=-.25nhw; y1=1.6nhh; x2=1.2nhw; y2=y1+.6(x2-x1);
+ draw z1--z2;
+ shift_pic (0,-.5nhh-.5);
+endchar;
+
+beginchar(46, 0, 3.25nhh#, 0); "16th flag down";
+ ccflag(-1);
+ shift_pic (0,-.25nhh);
+endchar;
+
+beginchar(47, 0, 4nhh#, 0); "32th flag down";
+ cccflag(-1);
+ shift_pic (0,-.25nhh);
+endchar;
+
+beginchar(48, 0, 4.75nhh#, 0); "64th flag down";
+ ccccflag(-1);
+ shift_pic (0,-.25nhh);
+endchar;
+
+beginchar(49, 0, 5.5nhh#, 0); "128th flag down";
+ cccccflag(-1);
+ shift_pic (0,-.25nhh);
+endchar;
+
+%%%%%%%
+message("<accidentals>");
+%%%%%%%
+
+def flat (expr reduction, shiftx, flatsense) =
+ fthick:= reduction*thick;
+ penpos4(4/3fthick,0); % 1
+ penpos3(1/2fthick,-90); %
+ penpos6(4/7fthick,90); % 6
+ x1 = x2 = x3 = x5 = fthick; % / \
+ y1 = 6fthick; y2 = .5y4; % 2 4
+ y3l=-2fthick; y5 = y3r; % /
+ x4 = 3.6fthick; y4 = .1fthick; % 3,5
+ y6r= 2fthick; x6 = .5(x2+x4);
+ t:= identity shifted (round(shiftx),0);
+ p:= (z1--z5) transformed t;
+ pickup penrazor scaled max(1,(2sind40*thin)) rotated 40;
+ draw p;
+ penstroke (z2..{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;
+
+beginchar(50, nhw#, 1.5nhh#, .5nhh#); "flat";
+ flat (1, 0, 1);
+ savepic;
+endchar;
+
+beginchar(51, 1.7nhw#, 1.5nhh#, .5nhh#); "doubleflat";
+ call_add_shift (.7nhw, 0);
+endchar;
+
+def sharp (expr reduction, zshift) =
+ sthick:= .5reduction*thick;
+ nx:= reduction*1.5nhh;
+ ny:= reduction*.8nhw;
+ y1 =-y7= nx-1.5sthick; y2 =-y8 = .5sthick-nx;
+ x1 = x2 = y3 = -y6 = ny-x7 = ny-x8 = 2sthick;
+ y4 =-y5 = y3 + 3sthick;
+ x3 = x5 = 0; x4 = x6 = ny;
+ pickup penrazor scaled max(1,thin) rotated angle(z4-z3);
+ draw z1--z2; draw z8--z7;
+ pickup penrazor scaled 3sthick rotated 90;
+ draw z3--z4; draw z5--z6;
+ shift_pic (zshift, 0);
+ labels (range 1 thru 8)
+enddef;
+
+beginchar(52, nhw#, 1.5nhh#, 1.5nhh#); "sharp";
+ sharp (1, 0);
+endchar;
+
+beginchar(53, nhw#, .5nhh#, .5nhh#); "doublesharp";
+ doublesharp (w, -.1nhw);
+endchar;
+
+def natural (expr reduction, zshift) =
+ ny:= .8nhw*reduction;
+ nthick:= 3/4reduction*thick;
+ x1 = x2 = x3 = nthick+.5thin;
+ x5 = x6 = x4 = ny-x1;
+ y1 = -y6 = 1.5nhh*reduction;
+ y2 = -y5 = 1.6nthick;
+ y4 = -y3 = y2+4/3nthick;
+ pickup penrazor scaled max(1,thin) rotated angle(z4-z2);
+ draw lft z1--bot lft(x3,y3-nthick);
+ draw top rt(x4,y4+nthick)--rt z6;
+ pickup penrazor scaled 2nthick rotated 90;
+ draw (x2-.5,y2)--(x4+.5,y4);
+ draw (x3-.5,y3)--(x5+.5,y5);
+ shift_pic (zshift, 0);
+ labels(1,2,3,4,5,6)
+enddef;
+
+beginchar(54, nhw#, 1.5nhh#, 1.5nhh#); "natural";
+ natural (1, 0);
+endchar;
+
+beginchar(90, apog_nhw#, nhh#, .5nhh#); "small flat";
+ flat (apog_fact, -.05nhw, 1);
+ savepic;
+endchar;
+
+beginchar(91, 1.65apog_nhw#, nhh#, .5nhh#); "small doubleflat";
+ call_add_shift (.7apog_fact*nhw,0);
+endchar;
+
+beginchar(92, apog_nhw#, nhh#, nhh#); "small sharp";
+ sharp (apog_fact, 0);
+endchar;
+
+beginchar(93, apog_nhw#, .5nhh#, .5nhh#); "small doublesharp";
+ doublesharp (w, -.075nhw);
+endchar;
+
+beginchar(94, apog_nhw#, nhh#, nhh#); "small natural";
+ natural (apog_fact, 0);
+endchar;
+
+%%%%%%%
+message ("<rests>");
+%%%%%%%
+
+beginchar(59, .5nhw#, 0, 0); "ddp";% doubledouble (4) pause
+ fill_square (.5nhw, 2nhh, (0, nhh));
+endchar;
+
+beginchar(58, .5nhw#, 0, 0); "dp";% double (2) pause
+ fill_square (.5nhw, nhh, (0, 2nhh));
+ savepic;
+endchar;
+
+beginchar(60, 5/4nhw#, .5nhh#, 0); "half rest";
+ fill_square (5/4nhw, .5nhh, (0, 0));
+ savepic;
+endchar;
+
+beginchar(10, 0, .5nhh#, 0); "half rest outside a staff";
+ callpic;
+ fill_square (2nhw, lthick, (-.375nhw, -hlthick));
+ savepic;
+endchar;
+
+beginchar(11, 0, 0, .5nhh#); "full rest outside a staff";
+ call_mirror(origin,right);
+endchar;
+
+beginchar(61, 5/4nhw#, 0, .5nhh#); "full rest";
+ fill_square (5/4nhw, .5nhh, (0, -.5nhh));
+endchar;
+
+beginchar(62, 0, 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 = 4nhh - 1/2nhh;
+ x1l = 1/2nhh;
+ z2r = z1 +(nhh* right) rotated alpha;
+ z3 = 1/2[z2,z4];
+ z4 = (nhw,4nhh) scaled .55;
+ z5 = z4l+(nhh* right) rotated alpha;
+ x6l = x4l; y6r = 1.45nhh;
+ x7 = .9nhw; y7= nhh-1/8nhh;
+ 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);
+ shift_pic (-.2nhw, 0);
+endchar;
+
+%%%
+% Draw the crook needed for quaver rests and shorter.
+% The crook extends left from the point z.i on the stem.
+%%%
+def crook(text i)=
+ forsuffixes $=i:
+ x3:=x.$-6.5fact; y3:=top y.$- 3fact;
+ x4:=x.$-6fact; y4:= y.$+.5fact;
+ draw z.${dir 240}..{dir 160}z3;
+ filldraw z3{dir 160}..z4{dir-20}..{dir 160}z3..cycle;
+ endfor
+enddef;
+
+beginchar(63, 0, 3.25nhh#, 0); "8th 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);
+ shift_pic (-.35nhw, 0);
+ penlabels (1,2,3,4);
+endchar;
+
+beginchar(64, 0, 3.25nhh#, 0); "16th 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,5);
+ shift_pic (-.35nhw, 0);
+ penlabels (1,2,3,4,5);
+endchar;
+
+beginchar(65, 0, 4nhh#, 0); "32th 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,5,6);
+ shift_pic (-.35nhw, 0);
+ penlabels (1,2,3,4,5,6);
+endchar;
+
+beginchar(66, 0, 4.75nhh#, 0); "64th 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,5,6,7);
+ shift_pic (-.35nhw, 0);
+ penlabels (1,2,3,4,5,6,7);
+endchar;
+
+%%%%%%%
+message ("<clefs>");
+%%%%%%%
+
+def violin(expr reduction) =
+ gx:=reduction*-nhw;
+ gy:=reduction*nhh;
+ gthick:=1.5reduction*thick;
+ gthin:=.75reduction*med;
+
+ x1=31/24gx+w; x4=23/24gx+w; x2=x10=3/4gx+w; x3r=w; x8l=15/16gx+w;
+ x5=x11r=15/8gx+w; x6=gx+w; x7=5/8gx+w; x9=5/4gx+w;
+ y1=5/8gy; y2r=y5r=2gy; y3=gy; y4r=0; y6=27/8gy;
+ y7l=5gy; y8l=11/2gy; y9=17/4gy; y10=y11=-7/8gy;
+ penpos1(gthin,160);
+ penpos2(gthick,90);
+ penpos3(gthick,0);
+ penpos4(5/4gthin,-90);
+ penpos5(3/2gthick,110);
+ penpos6(17/16gthick,130);
+ penpos7(gthin,-140);
+ penpos8(5/4gthick,-80);
+ penpos9(3/8gthick,0);
+ penpos10(gthin,0);
+ penpos11(1/2gthick,180);
+ penstroke z1e{nw}..z2e..z3e..z4e..z5e{up+ne}..z6e..{up+nw}z7e
+ ..z8e{sw}..{down}z9e{down}..{down}z10e..z11e;
+%{{{
+ currentpen:= pencircle;
+ draw z1{nw}..z2..z3..z4..z5{up+ne}..z6..{up+nw}z7
+ ..z8{sw}..{down}z9{down}..{down}z10..z11;
+%}}}
+ fill_circle ((3(x2-x4)), (x11+11/40gy, y11));
+ penlabels(range 1 thru 11)
+enddef;
+
+%beginchar(71, 8/3nhw#, 5.5nhh#, 1.5nhh#); "G-clef";
+beginchar(71, 8/3nhw#, 4.5nhh#, 2.5nhh#); "G-clef";
+ violin(1);
+% shift_pic (-.2nhw, 0); % T.59
+ shift_pic (-.2nhw, -nhh); % T.60
+endchar;
+
+%beginchar(72, 7/3nhw#, 3nhh#, 2nhh#); "small G-clef";
+beginchar(72, 7/3nhw#, 3nhh#, 3nhh#); "small G-clef";
+ violin(.8);
+% shift_pic (-.3nhw, 0); %T.59
+ shift_pic (-.3nhw, -nhh); %T.60
+endchar;
+
+def bass (expr reduction) =
+ fx:=reduction*nhw;
+ fy:=reduction*nhh;
+ fthick:=reduction*thick;
+
+ x2=.8fx; y2=3nhh;
+ x1=x2r+.26fx; y1=y2;
+ x3=x2+.71fx; y3r=y2+1fy;
+ x4=x3+.71fx; y4=y2-.2fy;
+ x6=x2-6reduction*thinwidth; y6=y2-2.2fy;
+ x7=x4+.50fx; y7=y2+.38fy;
+
+ penpos2(.6fthick,180);
+ penpos3(.6fthick, 90);
+ penpos4(2fthick,0);
+ penpos6(.4fthick,-10);
+
+ fill_circle (.35fx, z7);
+ add_mirror ((0,y2), (1,y2));
+ fill_circle ((2(x2r-x1)), z1);
+
+ penstroke z2e{up}..{right}z3e{right}..{down}z4e{down}..{left+.1down}z6e;
+%{{{
+ currentpen:= pencircle;
+ draw z2{up}..{right}z3{right}..{down}z4{down}..{left+.1down}z6;
+%}}}
+ penlabels(1,2,3,4,6)
+enddef;
+
+beginchar(73, 8/3nhw#, 4nhh#, 0); "F-clef";
+ bass(1);
+% shift_pic (-.35nhw, 0); % T.59
+ shift_pic (-.35nhw, -3nhh); % T.60
+endchar;
+
+beginchar(74, 7/3nhw#, 4nhh#, 0); "small F-clef";
+ bass(.8);
+% shift_pic (-4/15nhw, 0); % T.59
+ shift_pic (-4/15nhw, -3nhh); % T.59
+endchar;
+
+def alt(expr reduction, yshift) =
+ nh:=h*reduction;
+ athick:=1/10nh;
+ ahigh:=1/2nh;
+ radius:=5/4thick*reduction;
+
+ 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_circle (2radius, (z11l+(radius, -.05nhh)));
+ fill_square (athick, ahigh, (5/16nh-1/2athick,yshift));
+ fill_square (.25athick, ahigh, (x6l-.25athick,yshift));
+ add_mirror ((0,yshift),(1,yshift));
+ penlabels(4,5,6,9,10,11)
+enddef;
+
+beginchar(75, 8/3nhw#, 4nhh#, 0); "Alto clef";
+ alt(1, 2nhh);
+% shift_pic (-.45nhw, 0); % T.59
+ shift_pic (-.45nhw, -2nhh); % T.60
+endchar;
+
+beginchar(76, 7/3nhw#, 4nhh#, 0); "small Alto clef";
+ alt(.8 ,2nhh);
+% shift_pic (-.3nhw, 0); % T.59
+ shift_pic (-.3nhw, -2nhh); % T.60
+endchar;
+
+beginchar(77, 8/3nhw#, 4nhh#, 0); "drum clef";
+ fill_square (.3nhw, .5h, (.85nhw,1nhh));
+ add_mirror ((w/2,0),(w/2,1));
+% shift_pic (.2nhw, 0); % T.59
+ shift_pic (.2nhw, -2nhh); % T.60
+endchar;
+
+beginchar(103, 8/3nhw#, 4nhh#, nhh#); "oldstyle G-clef";
+ def penslopeI= (.35nhh/cosd45)+blacker,45 enddef;
+ def penslopeII= (.35nhh/cosd32.5)+blacker,32.5 enddef;
+ def penslopeIII= (.4nhh/cosd32.5)+blacker,32.5 enddef;
+ def penslopeIV= (max(1,lthick/cosd32.5)),122.5 enddef;
+
+ x1l=1.5nhw; x2l=x3l=x4r=x1l+2/5nhw;
+ x1l-x5l=x3r-x1l; x6l=x15r=x5l; x7r=x1=x14r; x8=x2;
+ y1l=y2l=1.45nhh; y3l=y4r;
+ y4l=0; y5=y3r; y6l=y15r; y7l=y8r=3nhh; y14r=y7r;
+ z15r-z14r=whatever*dir(180+32.5);
+ penpos1(penslopeI);
+ penpos2(penslopeI); % /7\ 6(15)
+ penpos3(penslopeII); % 6 8 7(14)
+ penpos4(penslopeIII); % |
+ penpos5(penslopeII); % | 1-2
+ penpos6(penslopeII); % | |
+ penpos7(penslopeII); % 5 3
+ penpos8(.35nhh,90); % \4/
+ penpos14(penslopeIV);
+ penpos15(penslopeIV);
+ penstroke z1e--z2e--z3e;
+ fill unitsquare xscaled (x3r-x4l) yscaled lthick
+ shifted z4l rotatedaround (z4l,32.5);
+ penstroke z4e--z5e{dir85}..z6e;
+ penstroke z7e--z8e; penstroke z14e--z15e;
+
+ x9=x5l=x16-.25nhw; x10l=x1l; x11=x10-.1nhw; x12=x8;
+ x17l=x2r+.05nhw; x13r=x2l-.1nhw;
+ y9r=-nhh; y16l=y9l-.01nhh; y10=0;
+ y11=3.5nhh; y12r=y8r; y17r=y8r+.2nhh; y13r=4nhh;
+ % 13
+ penpos12(2lthick,90); % / \
+ penpos17(3hlthick,180); % 11 17
+ penpos13(.35nhh+blacker,-90); % | 12
+ penpos11(max(lthick,1),0); % |
+ penpos10(max(lthick,1),0); % 10
+ penpos16(.475nhh+blacker,-90); % /
+ penpos9(.5nhh+blacker,-90); % 9-16
+
+ penstroke z12e..z17e{dir80}..z13e..{down}z11e..{down}z10e{down}..
+ {left}z16e..z9e;
+ shift_pic (-.25nhw,0);
+ penlabels (range 1 thru 12);
+ shift_pic (0, -nhh); % T.60
+endchar;
+
+beginchar(98, 8/3nhw#, 3.25nhh#, 0); "gregorian C clef";
+ x1=x4=0; x2=x3=gregwidth; y1=y2=-y3=-y4=.5gregwidth-lthick;
+ fill z1{dir 15}..z2--z3{dir 165}..z4--cycle;
+ save_elempic;
+ pickup med_pen; draw bot rt z1..{down}(-.01nhw,-.5nhh);
+ shift_pic(nhw,2.5nhh);
+ add_mirror ((0,2nhh),(1,2nhh));
+ savepic;
+ shift_pic (0,-2nhh);
+endchar;
+
+beginchar(122, 8/3nhw#, 4.25nhh#, 0); "gregorian F clef";
+ callpic;
+ add_elempic (.1nhw,2nhh);
+ fill_square (med, 1.5nhh, (.75nhw,.8nhh));
+ shift_pic (1/3nhw,-2nhh);
+endchar;
+
+%%%%%%%
+message ("<special signs>");
+%%%%%%%
+
+beginchar(14, 0, nhh#, 0); "song system limit up";
+ x1=y1=0; x2=1.5nhw; y2=nhh;
+ penpos1(thick, 90); penpos2(thin, 90);
+ penstroke z1e{right}..{dir80}z2e;
+%{{{
+ currentpen:=pencircle; draw z1{right}..{dir80}z2;
+%}}}
+ savepic;
+endchar;
+
+beginchar(15, 0, 0, nhh#); "song system limit down";
+ call_mirror (origin, right);
+endchar;
+
+beginchar(16, 0, 0, 0); "used for volta";
+ fill_square (lthick, 2.5nhh, (0,-.5nhh));
+endchar;
+
+beginchar(17, 0, 0, 0); "used for volta";
+ fill_square (lthick, 2.5nhh, (0,-2.5nhh));
+endchar;
+
+% 'polyrhythmik' {\meterfrac{3+2+3}8}, e.g. Bart\'ok
+beginchar(57, 2nhh#, 1.5nhh#, 0); "big plus sign";
+ pickup pencircle scaled .3nhh;
+ draw lft(.5nhh,.9nhh)..rt(1.5nhh,.9nhh);
+ draw bot(nhh,.4nhh)..top(nhh,1.4nhh);
+endchar;
+
+beginchar(79, 0, 4nhh#, 0); "caesura";% other breathmark
+ pickup penrazor scaled thick;
+ draw (.3nhw+thick, 3.4nhh)--(.7nhw+thick, 4.6nhh);
+endchar;
+
+beginchar(80, 0, 2.25nhh#, 0); "fermata up";
+ x1 = -.5nhw; x2=.5(x1+x3); x3 = 1.5nhw;
+ y1 = y3 = nhh; y2 = 2.3nhh;
+ penpos1(thinwidth,165);
+ penpos2(.9beamht+thin,90);
+ penpos3(thinwidth,15);
+ penstroke z1e{dir75}..z2e..{dir-75}z3e;
+ fill_circle (beamht, (x2, y1+.5beamht));
+%{{{
+ currentpen:= pencircle; draw z1{dir 75}..z2..{dir-75}z3;
+ add_mirror ((x2, 0),(x2, 1));
+%}}}
+ savepic;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(81, 0, 0, 2.25nhh#); "fermata down";
+ call_mirror (origin, right);
+endchar;
+
+beginchar(82, 5/3nhw#, 4nhh#, 0); "allabreve";
+ fit:= .025nhw;
+ 2x2 = 2x4 = x1 + 1/2nhh = w;
+ x3r = 0; 2y1 = 3y2 = y4r = 3nhh;
+ y3r = 2nhh; x5 = w -1/2nhh; y5 = 3nhh -1/2nhh;
+ z6r = z5r + (-1/40nhh, 1/20nhh);
+ penpos1(max(1,med), 0);
+ penpos2(max(1,med), -90);
+ penpos3(1/4nhh+thick,180);
+ penpos4(max(1,med), 90);
+ penpos5(max(1,med), 0);
+ penpos6(1/4nhh+med,45);
+ penstroke z1e..z2e..z3e..z4e..z5e;
+ fill rt z1r..lft z1l..cycle;
+ fill_circle (.35nhw+blacker, (z6 + (-2fit, fit)));
+ shift_pic (.5nhh,0);
+ savepic;
+
+ pickup med_pen;
+ draw (4/5nhw+.5nhh, y2r-3/8nhh)--(4/5nhw+.5nhh, y4r+3/8nhh);
+ penlabels(1,2,3,4,5,6);
+ save_elempic;
+ shift_pic (0,-2nhh);
+endchar;
+
+beginchar(83, 5/3nhw#, 3.25nhh#, 0); "C";
+ callpic;
+ shift_pic (0,-2nhh);
+endchar;
+
+beginchar(84, 10/3nhw#, 3.25nhh#, 0); "reverseC";
+ callpic;
+ add_mirror ((11/6nhw,0),(11/6nhw,1));
+ shift_pic (0,-2nhh);
+endchar;
+
+beginchar(123, 5/3nhw#, 3.25nhh#, 0); "reverseallabreve";
+ add_elempic (0,0);
+ mirror ((13/12nhw,0),(13/12nhw,1));
+ shift_pic (0,-2nhh);
+endchar;
+
+beginchar(121, 0, 0, 0); "double thumb bracket";
+ mh:=0.625nhh;
+ fill_square (lthick, mh, origin);
+ fill_square (.55nhw, lthick, origin);
+ add_mirror ((0,mh),(1,mh));
+ shift_pic (-.75nhw, -mh);
+endchar;
+
+%%%%%%%
+message ("<repeat symbols>");
+%%%%%%%
+
+beginchar(55, 0, 4nhh#, 0); "repeat colons";
+ fill_circle (1/3nhw+blacker, (0, 3/2nhh));
+ add_mirror ((0, 2nhh),(1, 2nhh));
+ shift_pic(0,-2nhh);
+endchar;
+
+beginchar(78, 0, 4nhh#, 0); "due volte";
+ fill_circle ((1/3nhw+blacker),(-.75nhh,2.5nhh));
+ addto currentpicture also currentpicture rotatedaround ((0,2nhh), 180);
+ pickup penrazor scaled (1/3nhw+blacker);
+ draw (-nhh, nhh)--(nhh, 3nhh);
+endchar;
+
+beginchar(85, 0, 3.25nhh#, 0); "coda";
+ mh:=3nhh;
+ x2 = 2nhw-x4 = 1/6mh; y2 = y4 = 1/2mh;
+ x3 = x5 = nhw; y3 = mh-y5 = 5/6mh;
+ pickup thin_pen;
+ draw (0,mh/2)--(2nhw,mh/2); draw (nhw,0)--(nhw,mh);
+ savepic;
+ pickup coda_pen;
+ draw z2..z3..z4..z5..cycle;
+ shift_pic (-nhw, 0);
+ labels (1,2,3,4);
+endchar;
+
+beginchar(105, 0, 3.25nhh#, 0); "coda II";
+ mh:=3nhh;
+ callpic;
+ x2 = x5 = 1/6mh; y2 = y3 = 5/6mh;
+ x3 = x4 = 2nhw-x2; y4 = y5 = 1/6mh;
+ pickup coda_pen;
+ draw z2--z3--z4--z5--cycle;
+ shift_pic (-nhw, 0);
+ labels (1,2,3,4);
+endchar;
+
+beginchar(86, 0, 3.25nhh#, 0); "segno";
+ x1= .5nhw; y1 = 1.75nhh; x4=-.5x1; y4=.4nhh;
+ x5=.7x1; y5=y6=3.05nhh; x6=x5-x1;
+ z1'= (x1+1,y1);
+ penpos1'(.5nhh+blacker, 80);
+ penpos5(max(1,thin), -110);
+ penpos6(max(1,1.2thin), -70);
+ fill_circle (.5nhh, (x5-.2nhh,y5l-.13nhh));
+ fill_circle (thick+.1nhh, (x4, y4+.9nhh));
+ penstroke z1'e{dir170}..{ne}z6e..z5e;
+ pickup penrazor scaled max(1,thin);
+ draw z4--z1;
+ penlabels (1,5,6);
+ addto currentpicture also currentpicture rotatedaround (z1, 180);
+endchar;
+
+beginchar(110, 0, 5.5nhh#, 2nhh#); "segno II";
+ mw:=2.5nhh;
+ gamma:=36.9;
+ dist:=1nhh+.75beamht;
+ gthick:=beamht+blacker;
+
+ x1'=x3'=x7=x16=2x1=2x10=2x13=.5mw; x9=x14=x2; x3r=mw-.2nhh;
+ x11=x5; x15=x3; mw-x8=x12=1/3nhh;
+ y1'=dist; y3'=y1'-.5dist; y4'+dist=y9-2dist=y2; y10-2dist=y13+dist=y1;
+ y11=y5+2dist; y14=y2-dist; y8=y6-.1dist+2dist; y12=y3+.1dist-dist;
+ y15=y3-dist; y16r=-d; y7l=3.25nhh+2dist;
+ z1-z1'=z1'-z2=whatever*dir-gamma;
+ z3-z3'=whatever*dir-gamma; z2-z4=whatever*dir(-90-gamma);
+ z2-z4'=whatever*dir-90; z4-z4'=whatever*dir-gamma;
+ z5=z3 rotatedaround (z1',180); z6=z4 rotatedaround (z1',180);
+
+ penpos1(gthick, gamma); penpos2(gthick, gamma);
+ penpos3(max(1,thin),-90+gamma); penpos4(.9gthick,-180+gamma);
+ penpos5(max(1,thin),-90+gamma); penpos6(.9gthick,-180+gamma);
+ penpos7(.3gthick,-90-gamma); penpos8(.5gthick,-180+gamma);
+ penpos9(gthick, gamma); penpos10(gthick, gamma);
+ penpos11(.5gthick,-90+gamma); penpos12(.5gthick,-180+gamma);
+ penpos13(gthick, gamma); penpos14(gthick, gamma);
+ penpos15(.5gthick,-90+gamma); penpos16(.3gthick+1,-90-gamma);
+
+ penstroke z6e{dir(180-gamma)}..z5e..z1e---z2e..z3e..{dir(180-gamma)}z4e;
+ add_shift (0,2dist);
+ add_shift (0,-dist);
+ unfill (0,-nhh)--(mw,-nhh)--(mw,-d)--(0,-d)--cycle;
+ unfill (0,5nhh)--(mw,5nhh)--(mw,6nhh)--(0,6nhh)--cycle; cullit;
+
+ penstroke z9e---z10e..z11e..z7e..z8e;
+ penstroke z13e---z14e..z15e..z16e..z12e;
+
+ dotthick:=.65nhh+blacker; fit:=.15nhh;
+ fill_circle(dotthick,(x8-fit,y8-.5dotthick+fit+.02nhh));
+ fill_circle(dotthick,(x12+fit,y12+.5dotthick-fit-.02nhh));
+
+ pickup thin_pen;
+ draw (3/8mw,1/3nhh)--(3/8mw,4nhh+1/3nhh);
+ draw (5/8mw,-1/3nhh)--(5/8mw,4nhh-1/3nhh);
+ penlabels (range 1 thru 16);
+ shift_pic(-mw,0);
+endchar;
+
+%%%%%%%
+message ("<trills>");
+%%%%%%%
+
+beginchar (67, 0, nhh#, 0); "turn";
+ x1=2nhw-x6=.4nhw; y1r=h; y6=h-y1;
+ x2r=0; y2=.5h; x5=2nhw-x2; y5=h-y2;
+ x3=.44nhw; y3r=0; x4=2nhw-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_circle ((1/4nhh+thick), (x1,y1r-thick));
+ fill_circle ((1/4nhh+thick), (x6,y6l+thick));
+ shift_pic (-.5nhw, 0);
+ penlabels(1,2,3,4,5,6);
+ savepic;
+endchar;
+
+beginchar (68, 0, nhh#, 0); "backturn";
+ call_mirror ((.5nhw,0), (.5nhw,1));
+endchar;
+
+def setpar =
+ off:= .3nhw; x2=x1+off; x3=x2+off; x4=x3+off;
+ y1= y3=.75nhh-y2=.75nhh-y4=.15nhh;
+enddef;
+
+beginchar(87, 0, nhh#, 0); "shake";
+ x1=-.15nhw; setpar;
+ pickup pensquare xscaled (thick+.15nhh) yscaled med rotated 52;
+ draw z1--z2--z3--z4;
+ save_elempic;
+ add_elempic (2off,0);
+ savepic;
+endchar;
+
+beginchar(88, 0, nhh#, 0); "(long or double) shake";
+ callpic;
+ add_elempic (2*2off,0);
+ shift_pic (-.3nhw, 0);
+ save_elempic;
+endchar;
+
+beginchar(89, 0, nhh#, 0); "mordent";
+ callpic;
+ fill_square (med, 1.5nhh, (.5nhw,-.375nhh));
+endchar;
+
+beginchar(119, 0, nhh#, 0); "(long or double) mordent";
+ currentpicture:= elem_pic; savepic;
+ fill_square (med, 1.5nhh, (.5nhw,-.375nhh));
+endchar;
+
+beginchar(106, 0, 1.5nhh#, 0); "Pince with line";
+ callpic;
+ pickup med_pen;
+ draw (-.55nhw, 0)--(-.55nhw, h);
+endchar;
+
+beginchar(107, 0, 1.5nhh#, 0); "Pince with hook nw";
+ callpic;
+ x1=-.45nhw; setpar;
+ pickup med_pen;
+ z5=1.75[z3,z2]-(x3-x1,0); z6=z1 rotatedaround (z5,90);
+ draw (z1..z5{z2-z3}..{z3-z2}z6) shifted -(.5thick, .15nhh);
+endchar;
+
+beginchar(108, 0, nhh#, 0); "Pince with hook sw";
+ callpic;
+ x1=-.45nhw; setpar;
+ pickup med_pen;
+ z5=1.5[z2,z1]-.75(.5thick,.15nhh); z6=z2 rotatedaround (z5,-90);
+ draw (z1..z5{z1-z2}..{z2-z1}z6);
+endchar;
+
+beginchar(109, 0, 1.5nhh#, 0); "Pince with hook ne";
+ callpic;
+ x1=1.35nhw; setpar;
+ pickup med_pen;
+ z5=1.5[z1,z2]; z6=z1 rotatedaround (z5,-90);
+ draw (z1..z5{z2-z1}..{z1-z2}z6);
+endchar;
+
+beginchar(69, nhw#, .5nhh#, 0); "trille-element";
+ x1=-1; y1=y2=y3=.5h; x3=2x2=nhw;
+ pickup penrazor scaled 1.5thick rotated 50;
+ draw z1{ne}..{se}z2{se}..{ne}z3;
+endchar;
+
+beginchar(70, 0, nhh#, 0); "arpeggio-element";
+ x1=x2=x3=.2nhw-1; y1=0; y3=2y2=nhh+1;
+ pickup penrazor scaled (thick+.16nhh) rotated 45;
+ draw z1{ne}..{nw}z2{nw}..{ne}z3;
+ shift_pic (-nhw, 0);
+endchar;
+
+%%%%%%%
+message ("<pedal signs>");
+%%%%%%%
+
+def pedalstar (text rot)=
+ x4=-x1=min(.05nhh,0.35pt); y1=y4=0; x3=-x2=.14nhh;
+ y3=y2=2y5=2y6=.4nhh; x6=-x5=1.1x4;
+ p:=(z1..z5..z2..z3..z6..z4--cycle) shifted (0, .2nhh);
+ forsuffixes $=rot: fill p rotated $; endfor
+ pickup med_pen;
+ draw quartercircle scaled .4nhh;
+ add_mirror (origin, up);
+ add_mirror (origin, right);
+ labels (1,2,3,4);
+ shift_pic (.5nhw, .8nhh);
+enddef;
+
+beginchar(33, 0, 1.5nhh#, 0); "pedal (release) star I";
+ pedalstar (0,60);
+endchar;
+
+beginchar(104, 0, 1.5nhh#, 0); "pedal star II";
+ pedalstar (0,45,90);
+endchar;
+
+beginchar(34, 0, 1.5nhh#, 0); "pedal I";
+ mw:= 1.25nhw; mh:=1.7nhh;
+
+ x1=.425mw; y1=4/18mh;
+ x2=.2mw; y2=4/18mh;
+ x3=x1; y3r=0;
+ x4=.65mw; y4=.35mh;
+ x5=.475mw; y5=.83mh;
+ penpos1(.75thin,0); penpos4(.275nhh+thin,60);
+ penpos2(.15nhh+thin,135); penpos5(.025nhh+med,0);
+ penpos3(.025nhh+med,-90);
+
+ penstroke z1e{up}..z2e..z3e..z4e..{up+.5right}z5e;
+
+ fill lft z1l{up+ne}..{down+se}rt z1r{down+sw}..{up+nw}cycle;
+ fill rt z5l{up+ne}..{down+se}lft z5r{down+sw}..{up+nw}cycle;
+%{{{
+ currentpen:= pencircle; draw z1{up}..z2..z3..z4..{up+.5right}z5;
+%}}}
+
+ x6=mw-x12; y6=.75mh;
+ x7=mw-x11; y7=.65mh;
+ x8=.25mw; y8=y10;
+ x9=x8+(x10-x8)/2; y9r=mh;
+ x10=.8mw; y10=.9mh;
+ x11=.88mw; y11=y7;
+ x12=.7mw; y12=.7mh;
+ penpos6(thin,-80); penpos10(1.2med,90);
+ penpos7(.25nhh+thin,-110); penpos11(.25nhh+thin,-70);
+ penpos8(med,90); penpos12(thin,-100);
+ penpos9(.9med,90);
+
+ penstroke z6e..z7e..z8e..z9e..z10e..z11e..z12e;
+%{{{
+ currentpen:=pencircle; draw z6..z7..z8..z9..z10..z11..z12;
+%}}}
+ penlabels (range 1 thru 12);
+ savepic;
+ shift_pic (-.125nhw, 0);
+endchar;
+
+beginchar(35, 0, 1.5nhh#, 0); "pedal II";
+ callpic; %%% ->P
+ mw:=3nhw; mh:=1.7nhh;
+ fill_circle (.15mh, (.945mw-.15mh/2, .15mh/2));%%% ->.
+
+ x1=.5mw; y1=.9mh;
+ x2=.77mw; y2=.58mh;
+ x3=.815mw; y3=.2mh;
+ x4= x2; y4r=0;
+ x5=.63mw; y5=.22mh;
+ x6= x2; y6=y2;
+ penpos1(.75med,90); penpos4(.025nhh+med,-90);
+ penpos2(.1125nhh+med,30); penpos5(.1125nhh+thin,-135);
+ penpos3(.05nhh+med,0); penpos6(med,100);
+
+ penstroke (z1e{right}..z2e..z3e..z4e..z5e{dir 110}..z6e);%%% ->d
+ fill lft z1l{ne}..{nw}rt z1r{sw}..{se}cycle;
+
+ x7=x5; y7=y5;
+ x8=.55mw; y8r=0;
+ x9=x1; y9=.56mh;
+ x10=x11+.1mw; y10=y11+.1mh;
+ x11=.375mw; y11r=0;
+ x12=.28mw; y12=.25mh;
+ penpos7(thin,-75); penpos10(1.2thin,-45);
+ penpos8(.05nhh+med,-90); penpos11(.225nhh,-100);
+ penpos9(.0625nhh+thin,80); penpos12(thin,-125);
+
+ penstroke z7e..z8e..z9e & z9e{dir-30}..{dir-150}z10e..z11e;%%% ->e
+ penstroke z12e..z11e;
+ penlabels (range 1 thru 12);
+ shift_pic (-(.125nhw+.25nhw), 0);
+endchar;
+
+%^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+%%%%%%%
+message ("<beam elements>");
+%%%%%%%
+
+pen beam_pen;
+beam_pen:= penrazor scaled beamht rotated 90;
+
+for LOOP=0 upto 9:
+ longueur:= 2;
+ for loop=0 upto 5:
+ beginchar(LOOP*6+loop+128, longueur, 0, 0);
+ pickup beam_pen;
+ draw origin--(lft w, w*(.05*(LOOP+1)));
+ savepic;
+ endchar;
+
+ beginchar(LOOP*6+loop+64+128, longueur, 0, 0);
+ call_mirror (origin,right);
+ endchar;
+
+ longueur:= 2*longueur;
+ endfor
+endfor;
+end
diff --git a/fonts/musixtex-fonts/source/musixsps.mf b/fonts/musixtex-fonts/source/musixsps.mf
new file mode 100644
index 0000000000..a298fdf676
--- /dev/null
+++ b/fonts/musixtex-fonts/source/musixsps.mf
@@ -0,0 +1,314 @@
+%
+% This file is part of MusiXTeX
+%
+% MusiXTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% MusiXTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with MusiXTeX; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+
+font_identifier := "music_special_symbols";
+
+% Here are two types of pianobrackets available, they are absolute compatible,
+% so choose this one you prefer (search for '%!!!')
+
+% free pos: 196-255
+
+mode_setup;
+
+font_size 20pt#;
+
+nhh#:=5pt#;
+nhw#:=6pt#;
+
+qqs#=.4pt#; %width of lines
+qqw#=10pt#; %length of horizontal stroke.
+
+med#:=1/33designsize;
+thick#:=1/16designsize;
+
+thinwidth:=0.125pt;
+
+define_pixels(qqw,nhh,nhw);
+define_blacker_pixels(med,thick);
+
+qqs:=ceiling(qqs#*hppp); % the way rule widths are calculated
+
+pair sw;
+sw = down+left;
+
+path p;
+picture save_pic;
+
+pen line_pen;
+line_pen:= pencircle scaled qqs;
+
+%%%%%%%
+message ("<glissandi-elements>");
+%%%%%%%
+
+def glissando (expr theta)=
+ x1=-1; y1=0; z2=z1+(.5nhw,0); z3=z1+(nhw+1,0);
+ p:= z1{1.25up+right}..{1.25down+right}z2{1.25down+right}..{1.25up+right}z3;
+ pickup penrazor scaled (.075nhw+thick) rotated (theta+65);
+ draw p rotated theta;
+ labels (1,2,3);
+enddef;
+
+for slope=1 upto 8:
+
+ beginchar(slope-1, (cosd(10slope))*nhw#,(sind(10slope))*nhw#, 0);
+ " glissando element slope "&decimal (10slope)&" degree";
+ glissando (10slope);
+ save_pic:= currentpicture;
+ endchar;
+
+ beginchar(8+slope-1, (cosd(10slope))*nhw#, (sind(10slope))*nhw#, 0);
+ " glissando element slope "&decimal (-10slope)&" degree";
+ currentpicture:= save_pic reflectedabout (origin, right);
+ endchar;
+
+endfor;
+
+%%%%%%%
+message ("<guitar chords>");
+%%%%%%%
+
+def tabulatur (expr nd)=
+ hwidth:=1/5w;
+ x1=x2=y2=y3=0; x3=w; y1=-nd;
+ fill unitsquare xscaled (w+2thinwidth) yscaled (med+.2pt)
+ shifted(-thinwidth,0);
+ pickup pencircle scaled max(1,.2pt+blacker);
+ for v=1 upto 5 :
+ draw (z2--z3) shifted (0,v*-hwidth);
+ endfor;
+
+ for v=0 upto 5 :
+ draw (z1--z2) shifted (v*hwidth,0);
+ endfor;
+ labels (1,2,3);
+enddef;
+
+shift:=.15nhh;
+def Circle (expr nh)=
+ x1l=.1w; x2=x4=.5w; x3l=.9w;
+ y1=y3=.5nh+shift; y2=.1nh+shift; y4=.9nh+shift;
+ penpos1(med, 0);
+ penpos2(thinwidth,90);
+ penpos3(med,180);
+ penpos4(thinwidth, 270);
+ penstroke z1e..z2e..z3e..z4e..cycle;
+ pickup pencircle; draw z1..z2..z3..z4..cycle;
+enddef;
+
+def Cross (expr nh)=
+ x1=x3=.2w; x2=x4=.8w;
+ y1=y4=.2nh+shift; y2=y3=nh-.2nh+shift;
+ pickup pencircle scaled med;
+ draw z1--z2; draw z3--z4;
+ labels (1,2,3,4);
+enddef;
+
+beginchar(16, 3nhw#, 0, 0);" small grid";
+ tabulatur (108/25nhh);
+endchar;
+
+beginchar(17, 3/2nhw#, 0, 0); " small dot";
+ fill fullcircle scaled .54nhh shifted (w,-.36nhh);
+endchar;
+
+beginchar(18, 3nhw#, 0, 0); " small bar";
+ fill unitsquare xscaled w yscaled .24nhh shifted (0,-.48nhh);
+endchar;
+
+beginchar(19, 3/5nhw#, 0, 0); " small circle";
+ Circle (.72nhh);
+endchar;
+
+beginchar(20, 3/5nhw#, 0, 0); " small cross";
+ Cross (.72nhh);
+endchar;
+
+% the next seems to be senseless, but it isn't
+
+beginchar(28, 3/5nhw#, 0, 0); " small blank";
+endchar;
+
+%%%%%%%
+message ("<several lines>");
+%%%%%%%
+
+hooklength:=4.5pt;
+
+beginchar(21, 0, 0, 0);" bracket hook up";
+ pickup line_pen;
+ draw origin--(0, hooklength);
+endchar;
+
+beginchar(22, 0, 0, 0);" bracket hook down";
+ pickup line_pen;
+ draw origin--(0, -hooklength);
+endchar;
+
+beginchar(23, nhw#, 0, 0);" upper octaveline";
+ pickup line_pen;
+ draw (.33w, 1.1nhw)--(.66w, 1.1nhw);
+endchar;
+
+beginchar(24, 0, 0, 0);" final hook for upper octaveline";
+ pickup line_pen;
+ draw (1.1nhw,0)--(1.1nhw, 1.1nhw);
+ draw (.33nhw, 1.1nhw)--(1.1nhw, 1.1nhw);
+endchar;
+
+beginchar(25, nhw#, 0, 0);" lower octaveline";
+ pickup line_pen;
+ draw (.33w, 0)--(.66w, 0);
+endchar;
+
+beginchar(26, 0, 0, 0);" final hook for lower octaveline";
+ pickup line_pen;
+ draw (1.1nhw,0)--(1.1nhw, 1.1nhw);
+ draw (.33nhw,0)--(1.1nhw, 0);
+endchar;
+
+beginchar(27, .75nhw#, 0, 0);" used for \bracket";
+ pickup line_pen;
+ draw origin--(.5nhw, 0);
+endchar;
+
+beginchar(29, qqw#, 0, 0);" line ydim 0pt";
+ pickup line_pen;
+ draw origin--(w,0);
+endchar;
+
+% lines length xdim 10pt, ydim (-).25 to (-)5pt
+
+for j=1 upto 20:
+ beginchar(29+j, qqw#, 0, 0); " line ydim "&decimal .25j&"pt";
+ pickup line_pen;
+ draw origin--(w, .25pt*j);
+ save_pic:= currentpicture;
+ endchar;
+
+ beginchar(49+j, qqw#, 0, 0); " line ydim -"&decimal .25j&"pt";
+ currentpicture:= save_pic reflectedabout (origin, right);
+ endchar;
+endfor;
+
+%%%%%%%
+message ("<circles>");
+%%%%%%%
+
+for n:=1 upto 14:
+ beginchar(70+n-1, 0, 0, 0);
+ " fullcircle diameter "&decimal ((n+2)*2)&" pt";
+ diameter:=(n+2)*2pt;
+ pickup line_pen;
+ draw fullcircle scaled diameter;
+ endchar;
+endfor;
+
+%%%%%%%
+message ("<(de-)crescendi>");
+%%%%%%%
+
+widthstep:=nhw;
+crescendowidth:=.5nhh; % \Internote
+
+for n:=1 upto 32:
+ beginchar(84+n-1, 0, 3pt#, 3pt#);
+ " crescendo length "&decimal n&" noteheadwidths";
+ pickup line_pen;
+ draw (n*widthstep, crescendowidth+.0075n*crescendowidth)--(0,0);
+ addto currentpicture also currentpicture reflectedabout (origin,right);
+ save_pic:= currentpicture;
+ endchar;
+
+ beginchar(116+n-1, 0, 3pt#, 3pt#);
+ " decrescendo length "&decimal n&" noteheadwidths";
+ currentpicture:= save_pic reflectedabout(origin, up) shifted (n*widthstep,0);
+ endchar;
+endfor;
+
+%%%%%%%
+message ("<piano brackets>");
+%%%%%%%
+
+% lastbrace is adjustable (originally 99)
+
+firstbrace:=20; % smallest brace is 2*20 pt (\simeq 14mm)
+lastbrace:=67; % largest brace is 2*67 pt (\simeq 47mm)
+
+%%% from Stanislav Kneifl
+
+def drawpianobracket (expr height) =
+ u# := 1nhh#/5pt# * 1pt#;
+ v# := (height/40) * 1pt#;
+ define_pixels (u, v);
+% beginchar (height-firstbrace, 1.25nhh#, 0, 0);
+ beginchar (height-firstbrace+148, 0, 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;
+% inserted
+ currentpicture:=currentpicture shifted (round(-1.75nhh), 0);
+%
+ endchar;
+enddef;
+
+def bigbrace(expr v) =
+ beginchar (v-firstbrace+148, 0, 0, 0);
+ " brace vsize "&decimal round(2v*pt#)&"pt";
+ vwidth:=v*pt;
+ hwidth:=max(.1vwidth,3.25pt);
+ hwidth:=min(hwidth,6.5pt);
+ actwidth:=.035vwidth;
+ x1=.25nhw; y1=vwidth;
+ x2l=-.8hwidth; y2=2/3vwidth;
+ x3r=.2hwidth; y3=1/3vwidth;
+ x4=-hwidth; y4=0;
+ penpos1(max(1,.25pt),-35);
+ penpos2(1.5med+actwidth,40);
+ penpos3(1.75med+actwidth,45);
+ penpos4(max(1,.2pt),-90);
+ penstroke z1e..z2e..z3e..{left+sw}z4e;
+ currentpen:= pencircle; draw z1..z2..z3..{left+sw}z4;
+ addto currentpicture also currentpicture reflectedabout (origin, right);
+ penlabels(1,2,3,4);
+ currentpicture:= currentpicture shifted (round(-.75nhh), 0);
+ endchar;
+enddef;
+
+%!!! comment the line 'bigbrace' and uncomment the line 'drawpianobracket'
+
+for v=firstbrace upto lastbrace :
+ bigbrace (v);
+% drawpianobracket (v);
+endfor;
+
+end
diff --git a/fonts/musixtex-fonts/source/musixspx.mf b/fonts/musixtex-fonts/source/musixspx.mf
new file mode 100644
index 0000000000..3f28010683
--- /dev/null
+++ b/fonts/musixtex-fonts/source/musixspx.mf
@@ -0,0 +1,314 @@
+%
+% This file is part of MusiXTeX
+%
+% MusiXTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% MusiXTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with MusiXTeX; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+
+font_identifier := "music_special_symbols";
+
+% Here are two types of pianobrackets available, they are absolute compatible,
+% so choose this one you prefer (search for '%!!!')
+
+% free pos: 196-255
+
+mode_setup;
+
+font_size 20pt#;
+
+nhh#:=5pt#;
+nhw#:=6pt#;
+
+qqs#=.4pt#; %width of lines
+qqw#=10pt#; %length of horizontal stroke.
+
+med#:=1/33designsize;
+thick#:=1/16designsize;
+
+thinwidth:=0.125pt;
+
+define_pixels(qqw,nhh,nhw);
+define_blacker_pixels(med,thick);
+
+qqs:=ceiling(qqs#*hppp); % the way rule widths are calculated
+
+pair sw;
+sw = down+left;
+
+path p;
+picture save_pic;
+
+pen line_pen;
+line_pen:= pencircle scaled qqs;
+
+%%%%%%%
+message ("<glissandi-elements>");
+%%%%%%%
+
+def glissando (expr theta)=
+ x1=-1; y1=0; z2=z1+(.5nhw,0); z3=z1+(nhw+1,0);
+ p:= z1{1.25up+right}..{1.25down+right}z2{1.25down+right}..{1.25up+right}z3;
+ pickup penrazor scaled (.075nhw+thick) rotated (theta+65);
+ draw p rotated theta;
+ labels (1,2,3);
+enddef;
+
+for slope=1 upto 8:
+
+ beginchar(slope-1, (cosd(10slope))*nhw#,(sind(10slope))*nhw#, 0);
+ " glissando element slope "&decimal (10slope)&" degree";
+ glissando (10slope);
+ save_pic:= currentpicture;
+ endchar;
+
+ beginchar(8+slope-1, (cosd(10slope))*nhw#, (sind(10slope))*nhw#, 0);
+ " glissando element slope "&decimal (-10slope)&" degree";
+ currentpicture:= save_pic reflectedabout (origin, right);
+ endchar;
+
+endfor;
+
+%%%%%%%
+message ("<guitar chords>");
+%%%%%%%
+
+def tabulatur (expr nd)=
+ hwidth:=1/5w;
+ x1=x2=y2=y3=0; x3=w; y1=-nd;
+ fill unitsquare xscaled (w+2thinwidth) yscaled (med+.2pt)
+ shifted(-thinwidth,0);
+ pickup pencircle scaled max(1,.2pt+blacker);
+ for v=1 upto 5 :
+ draw (z2--z3) shifted (0,v*-hwidth);
+ endfor;
+
+ for v=0 upto 5 :
+ draw (z1--z2) shifted (v*hwidth,0);
+ endfor;
+ labels (1,2,3);
+enddef;
+
+shift:=.15nhh;
+def Circle (expr nh)=
+ x1l=.1w; x2=x4=.5w; x3l=.9w;
+ y1=y3=.5nh+shift; y2=.1nh+shift; y4=.9nh+shift;
+ penpos1(med, 0);
+ penpos2(thinwidth,90);
+ penpos3(med,180);
+ penpos4(thinwidth, 270);
+ penstroke z1e..z2e..z3e..z4e..cycle;
+ pickup pencircle; draw z1..z2..z3..z4..cycle;
+enddef;
+
+def Cross (expr nh)=
+ x1=x3=.2w; x2=x4=.8w;
+ y1=y4=.2nh+shift; y2=y3=nh-.2nh+shift;
+ pickup pencircle scaled med;
+ draw z1--z2; draw z3--z4;
+ labels (1,2,3,4);
+enddef;
+
+beginchar(16, 3nhw#, 0, 0);" small grid";
+ tabulatur (108/25nhh);
+endchar;
+
+beginchar(17, 3/2nhw#, 0, 0); " small dot";
+ fill fullcircle scaled .54nhh shifted (w,-.36nhh);
+endchar;
+
+beginchar(18, 3nhw#, 0, 0); " small bar";
+ fill unitsquare xscaled w yscaled .24nhh shifted (0,-.48nhh);
+endchar;
+
+beginchar(19, 3/5nhw#, 0, 0); " small circle";
+ Circle (.72nhh);
+endchar;
+
+beginchar(20, 3/5nhw#, 0, 0); " small cross";
+ Cross (.72nhh);
+endchar;
+
+% the next seems to be senseless, but it isn't
+
+beginchar(28, 3/5nhw#, 0, 0); " small blank";
+endchar;
+
+%%%%%%%
+message ("<several lines>");
+%%%%%%%
+
+hooklength:=4.5pt;
+
+beginchar(21, 0, 0, 0);" bracket hook up";
+ pickup line_pen;
+ draw origin--(0, hooklength);
+endchar;
+
+beginchar(22, 0, 0, 0);" bracket hook down";
+ pickup line_pen;
+ draw origin--(0, -hooklength);
+endchar;
+
+beginchar(23, nhw#, 0, 0);" upper octaveline";
+ pickup line_pen;
+ draw (.33w, 1.1nhw)--(.66w, 1.1nhw);
+endchar;
+
+beginchar(24, 0, 0, 0);" final hook for upper octaveline";
+ pickup line_pen;
+ draw (1.1nhw,0)--(1.1nhw, 1.1nhw);
+ draw (.33nhw, 1.1nhw)--(1.1nhw, 1.1nhw);
+endchar;
+
+beginchar(25, nhw#, 0, 0);" lower octaveline";
+ pickup line_pen;
+ draw (.33w, 0)--(.66w, 0);
+endchar;
+
+beginchar(26, 0, 0, 0);" final hook for lower octaveline";
+ pickup line_pen;
+ draw (1.1nhw,0)--(1.1nhw, 1.1nhw);
+ draw (.33nhw,0)--(1.1nhw, 0);
+endchar;
+
+beginchar(27, .75nhw#, 0, 0);" used for \bracket";
+ pickup line_pen;
+ draw origin--(.5nhw, 0);
+endchar;
+
+beginchar(29, qqw#, 0, 0);" line ydim 0pt";
+ pickup line_pen;
+ draw origin--(w,0);
+endchar;
+
+% lines length xdim 10pt, ydim (-).25 to (-)5pt
+
+for j=1 upto 20:
+ beginchar(29+j, qqw#, 0, 0); " line ydim "&decimal .25j&"pt";
+ pickup line_pen;
+ draw origin--(w, .25pt*j);
+ save_pic:= currentpicture;
+ endchar;
+
+ beginchar(49+j, qqw#, 0, 0); " line ydim -"&decimal .25j&"pt";
+ currentpicture:= save_pic reflectedabout (origin, right);
+ endchar;
+endfor;
+
+%%%%%%%
+message ("<circles>");
+%%%%%%%
+
+for n:=1 upto 14:
+ beginchar(70+n-1, 0, 0, 0);
+ " fullcircle diameter "&decimal ((n+2)*2)&" pt";
+ diameter:=(n+2)*2pt;
+ pickup line_pen;
+ draw fullcircle scaled diameter;
+ endchar;
+endfor;
+
+%%%%%%%
+message ("<(de-)crescendi>");
+%%%%%%%
+
+widthstep:=nhw;
+crescendowidth:=.5nhh; % \Internote
+
+for n:=1 upto 32:
+ beginchar(84+n-1, 0, 3pt#, 3pt#);
+ " crescendo length "&decimal n&" noteheadwidths";
+ pickup line_pen;
+ draw (n*widthstep, crescendowidth+.0075n*crescendowidth)--(0,0);
+ addto currentpicture also currentpicture reflectedabout (origin,right);
+ save_pic:= currentpicture;
+ endchar;
+
+ beginchar(116+n-1, 0, 3pt#, 3pt#);
+ " decrescendo length "&decimal n&" noteheadwidths";
+ currentpicture:= save_pic reflectedabout(origin, up) shifted (n*widthstep,0);
+ endchar;
+endfor;
+
+%%%%%%%
+message ("<piano brackets>");
+%%%%%%%
+
+% lastbrace is adjustable (originally 99)
+
+firstbrace:=20; % smallest brace is 2*20 pt (\simeq 14mm)
+lastbrace:=67+48; % largest brace is 2*67 pt (\simeq 47mm)
+
+%%% from Stanislav Kneifl
+
+def drawpianobracket (expr height) =
+ u# := 1nhh#/5pt# * 1pt#;
+ v# := (height/40) * 1pt#;
+ define_pixels (u, v);
+% beginchar (height-firstbrace, 1.25nhh#, 0, 0);
+ beginchar (height-firstbrace+148, 0, 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;
+% inserted
+ currentpicture:=currentpicture shifted (round(-1.75nhh), 0);
+%
+ endchar;
+enddef;
+
+def bigbrace(expr v) =
+ beginchar (v-firstbrace+148, 0, 0, 0);
+ " brace vsize "&decimal round(2v*pt#)&"pt";
+ vwidth:=v*pt;
+ hwidth:=max(.1vwidth,3.25pt);
+ hwidth:=min(hwidth,6.5pt);
+ actwidth:=.035vwidth;
+ x1=.25nhw; y1=vwidth;
+ x2l=-.8hwidth; y2=2/3vwidth;
+ x3r=.2hwidth; y3=1/3vwidth;
+ x4=-hwidth; y4=0;
+ penpos1(max(1,.25pt),-35);
+ penpos2(1.5med+actwidth,40);
+ penpos3(1.75med+actwidth,45);
+ penpos4(max(1,.2pt),-90);
+ penstroke z1e..z2e..z3e..{left+sw}z4e;
+ currentpen:= pencircle; draw z1..z2..z3..{left+sw}z4;
+ addto currentpicture also currentpicture reflectedabout (origin, right);
+ penlabels(1,2,3,4);
+ currentpicture:= currentpicture shifted (round(-.75nhh), 0);
+ endchar;
+enddef;
+
+%!!! comment the line 'bigbrace' and uncomment the line 'drawpianobracket'
+
+for v=firstbrace upto lastbrace :
+ bigbrace (v);
+% drawpianobracket (v);
+endfor;
+
+end
diff --git a/fonts/musixtex-fonts/source/mxsk.mf b/fonts/musixtex-fonts/source/mxsk.mf
new file mode 100644
index 0000000000..e667476d9d
--- /dev/null
+++ b/fonts/musixtex-fonts/source/mxsk.mf
@@ -0,0 +1,100 @@
+font_identifier:="mxsk";
+
+mode_setup;
+
+font_size 20pt#;
+
+nhh#:=5pt#;
+nhw#:=6pt#;
+
+define_pixels(nhh,nhw,beamht,gregwidth);
+define_blacker_pixels(thin,med,thick);
+
+font_x_height nhh#;
+font_quad nhw#;
+
+
+%%% terribly written, I know, but this is not a final solution...
+
+%%% 20pt stuff
+
+slurendpen:=max(0.12nhh, 1);
+slurmiddlehalfpen:=max(0.18nhh,1.5);
+
+beginchar(0, 0, 0, 0);
+ z1l = (-12pt, 4pt); z2l = (0, 0);
+ penpos1(slurmiddlehalfpen,90);
+ penpos2(slurendpen,90);
+ penstroke (z1e{right}..{dir-45}z2e);
+endchar;
+
+beginchar(1, 0, 0, 0);
+ z1l = (-12pt, -4pt); z2l = (0, 0);
+ penpos1(slurmiddlehalfpen,90);
+ penpos2(slurendpen,90);
+ penstroke (z1e{right}..{dir45}z2e);
+endchar;
+
+
+%%% 16pt stuff
+
+slurendpen:=max(0.48pt, 1);
+slurmiddlehalfpen:=max(0.72pt,1.5);
+
+beginchar(64, 0, 0, 0);
+ z1l = (-9.6pt, 3.2pt); z2l = (0, 0);
+ penpos1(slurmiddlehalfpen,90);
+ penpos2(slurendpen,90);
+ penstroke (z1e{right}..{dir-45}z2e);
+endchar;
+
+beginchar(65, 0, 0, 0);
+ z1l = (-9.6pt, -3.2pt); z2l = (0, 0);
+ penpos1(slurmiddlehalfpen,90);
+ penpos2(slurendpen,90);
+ penstroke (z1e{right}..{dir45}z2e);
+endchar;
+
+
+
+%%% 13pt stuff
+
+slurendpen:=max(0.4pt, 1);
+slurmiddlehalfpen:=max(0.585pt,1.5);
+
+beginchar(128, 0, 0, 0);
+ z1l = (-7.8pt, 2.6pt); z2l = (0, 0);
+ penpos1(slurmiddlehalfpen,90);
+ penpos2(slurendpen,90);
+ penstroke (z1e{right}..{dir-45}z2e);
+endchar;
+
+beginchar(129, 0, 0, 0);
+ z1l = (-7.8pt, -2.6pt); z2l = (0, 0);
+ penpos1(slurmiddlehalfpen,90);
+ penpos2(slurendpen,90);
+ penstroke (z1e{right}..{dir45}z2e);
+endchar;
+
+
+
+%%% 11pt stuff
+
+slurendpen:=max(0.33pt, 1);
+slurmiddlehalfpen:=max(0.5pt,1.5);
+
+beginchar(192, 0, 0, 0);
+ z1l = (-6.6pt, 2.2pt); z2l = (0, 0);
+ penpos1(slurmiddlehalfpen,90);
+ penpos2(slurendpen,90);
+ penstroke (z1e{right}..{dir-45}z2e);
+endchar;
+
+beginchar(193, 0, 0, 0);
+ z1l = (-6.6pt, -2.2pt); z2l = (0, 0);
+ penpos1(slurmiddlehalfpen,90);
+ penpos2(slurendpen,90);
+ penstroke (z1e{right}..{dir45}z2e);
+endchar;
+
+end;
diff --git a/fonts/musixtex-fonts/source/xadf11.mf b/fonts/musixtex-fonts/source/xadf11.mf
new file mode 100644
index 0000000000..42023aa6ca
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xadf11.mf
@@ -0,0 +1,28 @@
+
+font_identifier:="xadf11";
+
+mode_setup;
+
+font_size 10.24pt#;
+
+nhh#:=2.56pt#;
+nhw#:=3.072pt#;
+gregwidth#:=0.5*sqrt(2)*nhw#;
+
+thin#:=1/50designsize;
+med#:=1/33designsize;
+thick#:=1/16designsize;
+
+thinwidth := 0.064pt;
+beamht#:=0.48nhh#;
+
+define_pixels(nhh,nhw,beamht,gregwidth);
+define_blacker_pixels(thin,med,thick);
+
+pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
+ne = up+right; se = down+right; sw = down+left; nw = up+left;
+
+font_x_height nhh#;
+font_quad nhw#;
+
+input xadfgen
diff --git a/fonts/musixtex-fonts/source/xadf13.mf b/fonts/musixtex-fonts/source/xadf13.mf
new file mode 100644
index 0000000000..ab371ef2fa
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xadf13.mf
@@ -0,0 +1,28 @@
+
+font_identifier:="xadf13";
+
+mode_setup;
+
+font_size 12.8pt#;
+
+nhh#:=3.2pt#;
+nhw#:=3.84pt#;
+gregwidth#:=0.5*sqrt(2)*nhw#;
+
+thin#:=1/50designsize;
+med#:=1/33designsize;
+thick#:=1/16designsize;
+
+thinwidth := 0.08pt;
+beamht#:=0.48nhh#;
+
+define_pixels(nhh,nhw,beamht,gregwidth);
+define_blacker_pixels(thin,med,thick);
+
+pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
+ne = up+right; se = down+right; sw = down+left; nw = up+left;
+
+font_x_height nhh#;
+font_quad nhw#;
+
+input xadfgen
diff --git a/fonts/musixtex-fonts/source/xadf16.mf b/fonts/musixtex-fonts/source/xadf16.mf
new file mode 100644
index 0000000000..a2140ca960
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xadf16.mf
@@ -0,0 +1,28 @@
+
+font_identifier:="xadf16";
+
+mode_setup;
+
+font_size 16pt#;
+
+nhh#:=4pt#;
+nhw#:=4.8pt#;
+gregwidth#:=0.5*sqrt(2)*nhw#;
+
+thin#:=1/50designsize;
+med#:=1/33designsize;
+thick#:=1/16designsize;
+
+thinwidth := 0.1pt;
+beamht#:=0.48nhh#;
+
+define_pixels(nhh,nhw,beamht,gregwidth);
+define_blacker_pixels(thin,med,thick);
+
+pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
+ne = up+right; se = down+right; sw = down+left; nw = up+left;
+
+font_x_height nhh#;
+font_quad nhw#;
+
+input xadfgen
diff --git a/fonts/musixtex-fonts/source/xadf20.mf b/fonts/musixtex-fonts/source/xadf20.mf
new file mode 100644
index 0000000000..7244f34243
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xadf20.mf
@@ -0,0 +1,28 @@
+
+font_identifier:="xadf20";
+
+mode_setup;
+
+font_size 20pt#;
+
+nhh#:=5pt#;
+nhw#:=1.2*nhh#;
+gregwidth#:=0.5*sqrt(2)*nhw#;
+
+thin#:=1/50designsize;
+med#:=1/33designsize;
+thick#:=1/16designsize;
+
+thinwidth := 0.125pt;
+beamht#:=0.48nhh#;
+
+define_pixels(nhh,nhw,beamht,gregwidth);
+define_blacker_pixels(thin,med,thick);
+
+pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
+ne = up+right; se = down+right; sw = down+left; nw = up+left;
+
+font_x_height nhh#;
+font_quad nhw#;
+
+input xadfgen
diff --git a/fonts/musixtex-fonts/source/xadf24.mf b/fonts/musixtex-fonts/source/xadf24.mf
new file mode 100644
index 0000000000..afad47b565
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xadf24.mf
@@ -0,0 +1,28 @@
+
+font_identifier:="xadf24";
+
+mode_setup;
+
+font_size 24pt#;
+
+nhh#:=6pt#;
+nhw#:=1.2nhh#;
+gregwidth#:=0.5*sqrt(2)*nhw#;
+
+thin#:=1/50designsize;
+med#:=1/33designsize;
+thick#:=1/16designsize;
+
+thinwidth := 0.15pt;
+beamht#:=0.48nhh#;
+
+define_pixels(nhh,nhw,beamht,gregwidth);
+define_blacker_pixels(thin,med,thick);
+
+pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
+ne = up+right; se = down+right; sw = down+left; nw = up+left;
+
+font_x_height nhh#;
+font_quad nhw#;
+
+input xadfgen
diff --git a/fonts/musixtex-fonts/source/xadf29.mf b/fonts/musixtex-fonts/source/xadf29.mf
new file mode 100644
index 0000000000..5ee0dd54f6
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xadf29.mf
@@ -0,0 +1,28 @@
+
+font_identifier:="xadf29";
+
+mode_setup;
+
+font_size 29pt#;
+
+nhh#:=7.2pt#;
+nhw#:=1.2*nhh#;
+gregwidth#:=0.5*sqrt(2)*nhw#;
+
+thin#:=1/50designsize;
+med#:=1/33designsize;
+thick#:=1/16designsize;
+
+thinwidth := 0.15pt;
+beamht#:=0.48nhh#;
+
+define_pixels(nhh,nhw,beamht,gregwidth);
+define_blacker_pixels(thin,med,thick);
+
+pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
+ne = up+right; se = down+right; sw = down+left; nw = up+left;
+
+font_x_height nhh#;
+font_quad nhw#;
+
+input xadfgen
diff --git a/fonts/musixtex-fonts/source/xadfgen.mf b/fonts/musixtex-fonts/source/xadfgen.mf
new file mode 100644
index 0000000000..51a5375374
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xadfgen.mf
@@ -0,0 +1,236 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% basic def's -- taken from musixgen.mf %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+pair pone, ptwo;
+transform t;
+path p;
+
+hlthick=.2pt;
+lthick=.4pt;
+
+pen line_pen, med_pen, coda_pen, thin_pen;
+med_pen:= pencircle scaled med;
+line_pen:= pencircle scaled lthick;
+coda_pen:= pencircle xscaled 1.25thick yscaled max(1,.75med);
+%thin_pen:= pencircle scaled max(1,.25pt);
+thin_pen:= pencircle scaled max(1,.4pt);
+
+apog_fact=.75;
+apog_nhw#=apog_fact*nhw#;
+
+picture save_pic, elem_pic;
+
+def savepic = save_pic:= currentpicture enddef;
+def save_elempic = elem_pic:= currentpicture enddef;
+def callpic = currentpicture:= save_pic enddef;
+
+def mirror (expr pone, ptwo) =
+ currentpicture:=currentpicture reflectedabout(round(pone),round(ptwo))
+enddef;
+
+def add_mirror (expr pone, ptwo) =
+ addto currentpicture also currentpicture
+ reflectedabout (round(pone), round(ptwo))
+enddef;
+
+def call_mirror (expr pone, ptwo) = callpic; mirror (pone, ptwo) enddef;
+
+def add_shift (expr pone, ptwo) =
+ addto currentpicture also currentpicture shifted (pone, ptwo)
+enddef;
+
+def call_add_shift (expr pone, ptwo) =
+ callpic; add_shift (pone, ptwo)
+enddef;
+
+def add_elempic (expr pone, ptwo) =
+ addto currentpicture also elem_pic shifted (pone, ptwo)
+enddef;
+
+def call_add_save_elempic (expr pone, ptwo) =
+ callpic; add_elempic(pone, ptwo); savepic
+enddef;
+
+def shift_pic (expr pone, ptwo) =
+ currentpicture:=currentpicture shifted (round(pone),round(ptwo))
+enddef;
+
+def fill_circle (expr diameter, zshift) =
+ fill fullcircle scaled diameter shifted zshift
+enddef;
+
+def fill_square (expr xwidth, ywidth, zshift) =
+ fill unitsquare xscaled xwidth yscaled ywidth shifted zshift
+enddef;
+
+%
+
+def staff=
+ for i=0 upto 4:
+ pickup pencircle yscaled lthick;
+ draw (-5nhw,i*nhh)--(5nhw,i*nhh);
+ endfor
+enddef;
+
+def Staff=
+ for i=0 upto 4:
+ pickup pencircle yscaled lthick;
+ draw (-5nhw,(i*nhh-.5nhh))--(5nhw,(i*nhh-.5nhh));
+ endfor
+enddef;
+
+def upstem=
+ fill_square (lthick, 5nhh, (0,-5nhh))
+enddef;
+
+def downstem=
+ fill_square (lthick, 5nhh, (nhw-hlthick,0))
+enddef;
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% character definitions %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%
+% so-called Miyoshi accent ...something like <>
+% (give me the true name of this!)
+%
+beginchar(30, 0, 2.25nhh#, 0); "upper Miyoshi accent";
+ pickup med_pen;
+ draw (.15nhw, 1.9nhh)--(1.15nhw, 1.5nhh)--(.15nhw, 1.1nhh);
+ add_mirror (origin, down);
+ shift_pic (.5nhw, 0);
+ savepic;
+endchar;
+
+beginchar(31, 0, 0, 2.25nhh#); "lower Miyoshi accent";
+ call_mirror (origin, right);
+endchar;
+
+%
+% size-balanced (a little large) sforzato
+%
+beginchar(20, 0, 2.25nhh#, 0); "upper sforzato (size-balanced)";
+ x1=-.05nhw; x2=.5nhw; x3=nhw-x1; x3=x4+.28nhw; x6=x1+med;
+ y1=y6=y4=y3=nhh; y2=y1+1.4nhh;
+ z5-z6=whatever*(z2-z1);
+ z5-z4=whatever*(z2-z3);
+ fill z1--z2--z3--z4--z5--z6--cycle;
+ savepic;
+endchar;
+
+beginchar(21, 0, 0, 2.25nhh#); "lower sforzato (size-balanced)";
+ call_mirror (origin, right);
+endchar;
+
+%
+% coda with serif
+%
+beginchar(85, 0, 3.25nhh#, 0); "coda with serif";
+ mh:=3nhh;
+ x2 = 2nhw-x4 = 1/6mh; y2 = y4 = 1/2mh;
+ x3 = x5 = nhw; y3 = mh-y5 = 5/6mh;
+% pickup thin_pen;
+ pickup thin_pen;
+ draw (0,mh/2)--(2nhw,mh/2);
+ draw (nhw-.3nhw,0 )--(nhw+.3nhw,0 );
+ draw (nhw-.3nhw,mh)--(nhw+.3nhw,mh);
+ draw (nhw,0)--(nhw,mh);
+ draw (0 ,mh/2-.3nhw)--(0 ,mh/2+.3nhw);
+ draw (2nhw,mh/2-.3nhw)--(2nhw,mh/2+.3nhw);
+ savepic;
+ pickup coda_pen;
+ draw z2..z3..z4..z5..cycle;
+ shift_pic (-nhw, 0);
+ labels (1,2,3,4);
+endchar;
+
+%
+% upright segno
+%
+beginchar(86, 0, 3.25nhh#, 0); "upright segno";
+ x1:= 0; y1:=0;
+ x4:=-.69nhw; y4:=y1;
+ x5:=.36nhw; y5:=.9nhh;
+ x6:=-.28nhw; y6:=.97nhh;
+ x7:=-x5; y7:=-y5;
+ x8:=-x6; y8:=-y6;
+ z1'= (x1+1,y1);
+ penpos1'(.5nhh+blacker, 75);
+ penpos6(max(1,thin), -45);
+ penpos5(max(1,thin), -180);
+ penpos8(max(1,thin), -45);
+ penpos7(max(1,thin), -180);
+ fill_circle (.45nhh, (x5-.15nhh, y5l-.12nhh));
+ fill_circle (.42nhh, (x4, y4));
+% pickup thin_pen;
+ pickup thin_pen;
+ draw ( ( (x4-.2nhh)+(2x1-x5) )/2, y1-(y5l-y4)/2-.05nhh)--z1;
+ addto currentpicture also currentpicture rotatedaround (z1, 180);
+ penstroke z7e..{ne}z8e..z1'e{dir135}..{ne}z6e..z5e;
+% penlabels (1,4,5,6,7,8);
+ shift_pic (.5nhw, 1.5nhh);
+endchar;
+
+%
+% V-shaped breath
+%
+beginchar(33, 0, 1.5nhh#, 0); "V-shaped breath (up)";
+ pickup thin_pen;
+ draw (.1nhw, 1.5nhh)--(.5nhw, .05nhh);
+ add_mirror ((.5nhw,0),(.5nhw,1));
+ savepic;
+endchar;
+beginchar(34, 0, 0, 1.5nhh#); "V-shaped breath (down)";
+ call_mirror (origin, right);
+endchar;
+
+
+%%%%%%%
+message ("<noteheads>");
+%%%%%%%
+
+NHW=nhw+hlthick;
+
+beginchar(7, 0, .5nhh#, .5nhh#); "quarter note";
+% makeshift, expedience
+ corNHW=1.065*NHW;
+ fill fullcircle xscaled corNHW yscaled 1.85h
+ rotated 20 shifted (.5NHW, 0);
+endchar;
+
+beginchar(8, 0, .5nhh#, .5nhh#); "half note";
+ penpos1(max(1,2hlthick), 0);
+ penpos3(max(1,2hlthick), 180);
+ penpos2(thick,-90);
+ penpos4(thick, 90);
+ -x1l = .53NHW;
+ x3l = .5NHW;
+ x2 = x4 = y1 = y3 = 0;
+ y2l =-y4l = h;
+ penstroke (z1e{up}..z2e{right}..z3e{down}..z4e{left}..cycle)
+ rotated 20 shifted (.5NHW, 0);
+endchar;
+
+beginchar(9, 0, .5nhh#, .5nhh#); "whole note";
+ x1= y1 = y3 = y5 = y7 = 0;
+ x3= 2x2 = 2x4 = 2x6 = 2x8 = 5/4nhw;
+ y2=-y4 = h;
+ x5= x3-x7 = x1+.375nhw-blacker;
+ y6=-y8 = y2-.1thin;
+ fill z1{curl3}..z2..{curl3}z3{curl3}..z4..{curl3}cycle;
+ unfill (z5..z6..z7..z8..cycle) rotatedaround ((x2,0), 45) shifted (.5,.5);
+%{{{
+ currentpen:= pencircle;
+ draw rt z1{curl3}..bot z2..{curl3}lft z3{curl3}..top z4..{curl3}cycle;
+%}}}
+ labels(range 1 thru 8);
+ savepic;
+endchar;
+
+
+
+end.
diff --git a/fonts/musixtex-fonts/source/xdrawsl.mf b/fonts/musixtex-fonts/source/xdrawsl.mf
new file mode 100644
index 0000000000..fe8c5ec0b8
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xdrawsl.mf
@@ -0,0 +1,39 @@
+%(c)
+
+min_bow:= .5nhh;
+max_bow:= 1.5nhh;
+slope:=17.5/100;
+
+code=-1;
+
+for iht=1 upto 8:
+ for iwd=0 upto 15:
+ beginchar(incr code, 0, 0, 0);
+ mw#:=(minwidth+iwd*delwidth)*pt#;
+ define_pixels(mw);
+ x1 = y1= 0; x3= mw; y3= 2y2'= iht*delheight; x2'= .5x3;
+ mheight:=y3;
+ z2-z2'= whatever*dir(angle(z3-z1)+90);
+ my_bow:=min(max_bow, slope*mw);
+ my_bow:=max(my_bow, min_bow);
+ z1'=(z1-(0,my_bow)) rotated angle(z3-z1);
+ (z1'-z2)=whatever*(z1-z2');
+ penpos1(.15thick,(angle(z3-z1)+90));
+ penpos2(thick,(angle(z3-z1)+90));
+ penpos3(.15thick,(angle(z3-z1)+90));
+ penstroke (flex(z1e,z2e,z3e));
+%{{{
+ currentpen:= pencircle;
+ draw (flex(z1,z2,z3));% draw z1--z3; draw z2'--z2--z1'--z1;
+%}}}
+ currentpicture:=currentpicture t;
+ p:=currentpicture;
+ endchar;
+
+ beginchar(code+128, 0, 0, 0);
+ currentpicture:=p T;
+ endchar;
+
+ endfor
+endfor
+end
diff --git a/fonts/musixtex-fonts/source/xdrawzl.mf b/fonts/musixtex-fonts/source/xdrawzl.mf
new file mode 100644
index 0000000000..50ef6cfd6f
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xdrawzl.mf
@@ -0,0 +1,25 @@
+%(c)
+
+min_bow:= .4nhh;
+max_bow:= 1.75nhh;
+slope:= 10/100;
+
+code=-1;
+
+for i=1 upto numslurs:
+ beginchar(incr code, 0, 0, 0);
+ mw:=(minwidth+code*delwidth)*pt;
+ x3= -x1= .5mw; x2= y1= y3 = 0;
+ y2= max(min_bow, slope*mw);
+ y2:= min(y2, max_bow);
+ penpos1(.15thick,90); penpos2(thick,90); penpos3(.15thick,90);
+ penstroke (flex(z1e,z2e,z3e));
+ currentpen:= pencircle; draw (flex(z1,z2,z3));
+ p:=currentpicture;
+ endchar;
+
+ beginchar(code+54, 0, 0, 0);
+ currentpicture:=p reflectedabout (origin, right);
+ endchar;
+endfor
+end
diff --git a/fonts/musixtex-fonts/source/xgreg11.mf b/fonts/musixtex-fonts/source/xgreg11.mf
new file mode 100644
index 0000000000..e5f3dc4b4c
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xgreg11.mf
@@ -0,0 +1,10 @@
+
+font_identifier:="xgreg11";
+
+mode_setup;
+
+font_size 10.24pt#;
+
+nhh#:=2.56pt#;
+
+input xgreggen
diff --git a/fonts/musixtex-fonts/source/xgreg13.mf b/fonts/musixtex-fonts/source/xgreg13.mf
new file mode 100644
index 0000000000..49a78be6e7
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xgreg13.mf
@@ -0,0 +1,10 @@
+
+font_identifier:="xgreg13";
+
+mode_setup;
+
+font_size 12.8pt#;
+
+nhh#:=3.2pt#;
+
+input xgreggen
diff --git a/fonts/musixtex-fonts/source/xgreg16.mf b/fonts/musixtex-fonts/source/xgreg16.mf
new file mode 100644
index 0000000000..bc5d554686
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xgreg16.mf
@@ -0,0 +1,10 @@
+
+font_identifier:="xgreg16";
+
+mode_setup;
+
+font_size 16pt#;
+
+nhh#:=4pt#;
+
+input xgreggen
diff --git a/fonts/musixtex-fonts/source/xgreg20.mf b/fonts/musixtex-fonts/source/xgreg20.mf
new file mode 100644
index 0000000000..f0ba509ead
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xgreg20.mf
@@ -0,0 +1,10 @@
+
+font_identifier:="xgreg20";
+
+mode_setup;
+
+font_size 20pt#;
+nhh#:=5pt#;
+
+
+input xgreggen
diff --git a/fonts/musixtex-fonts/source/xgreg24.mf b/fonts/musixtex-fonts/source/xgreg24.mf
new file mode 100644
index 0000000000..9f4dbfbd9b
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xgreg24.mf
@@ -0,0 +1,10 @@
+
+font_identifier:="xgreg24";
+
+mode_setup;
+
+font_size 24pt#;
+
+nhh#:=6pt#;
+
+input xgreggen
diff --git a/fonts/musixtex-fonts/source/xgreg25.mf b/fonts/musixtex-fonts/source/xgreg25.mf
new file mode 100644
index 0000000000..529c7ec7ad
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xgreg25.mf
@@ -0,0 +1,28 @@
+
+font_identifier:="musix25";
+
+mode_setup;
+
+font_size 25pt#;
+
+nhh#:=6.25pt#;
+nhw#:=7.5pt#;
+gregwidth#:=0.5*sqrt(2)*nhw#;
+
+thin#:=1/50designsize;
+med#:=1/33designsize;
+thick#:=1/16designsize;
+
+thinwidth := 0.15pt;
+beamht#:=0.48nhh#;
+
+define_pixels(nhh,nhw,beamht,gregwidth);
+define_blacker_pixels(thin,med,thick);
+
+pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
+ne = up+right; se = down+right; sw = down+left; nw = up+left;
+
+font_x_height nhh#;
+font_quad nhw#;
+
+input musixgen
diff --git a/fonts/musixtex-fonts/source/xgreg29.mf b/fonts/musixtex-fonts/source/xgreg29.mf
new file mode 100644
index 0000000000..3a2293e7d4
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xgreg29.mf
@@ -0,0 +1,10 @@
+
+font_identifier:="xgreg29";
+
+mode_setup;
+
+font_size 29pt#;
+
+nhh#:=7.2pt#;
+
+input xgreggen
diff --git a/fonts/musixtex-fonts/source/xgreggen.mf b/fonts/musixtex-fonts/source/xgreggen.mf
new file mode 100644
index 0000000000..6954eaa538
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xgreggen.mf
@@ -0,0 +1,369 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% this is xgreggen.mf (c)
+%
+% Version T.67 [January 97]
+%
+%
+% This file is part of MusiXTeX
+%
+% MusiXTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% MusiXTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with MusiXTeX; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+
+nhw#:=1.2*nhh#;
+
+thin#:=1/50designsize;
+med#:=1/33designsize;
+thick#:=1/16designsize;
+
+thinwidth := 0.125pt;
+beamht#:=0.48nhh#;
+%gregwidth#:=0.5*sqrt(2)*nhh#;
+gregwidth#:=0.6*nhh#;
+smallgreg:=0.5;
+
+define_pixels(nhh,nhw,beamht,gregwidth);
+define_blacker_pixels(thin,med,thick);
+
+pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
+ne = up+right; se = down+right; sw = down+left; nw = up+left;
+
+font_x_height nhh#;
+font_quad nhw#;
+
+pair pone, ptwo;
+transform t;
+path p;
+
+hlthick=.2pt;
+lthick=.4pt;
+
+greglangle:=18; gregrlangle:=180+greglangle;
+greguangle:=26; gregruangle:=180+greguangle;
+orisuangle:=40; orisruangle:=180+orisuangle;
+
+diamwidth:=.96 gregwidth; greg_min_diam:=gregwidth-diamwidth;
+diamheight:=1.33 gregwidth;
+deminutae:=0.66; gregwidth_dem:=gregwidth*deminutae;
+aucta_fact:=0.33gregwidth;
+shave:=.3gregwidth;
+
+pen line_pen, med_pen, coda_pen, thin_pen;
+med_pen:= pencircle scaled med;
+line_pen:= pencircle scaled lthick;
+coda_pen:= pencircle xscaled 1.25thick yscaled max(1,.75med);
+thin_pen:= pencircle scaled max(1,.25pt);
+
+picture save_pic, elem_pic;
+
+%%%%%%%%%%%%%%%
+% basic def's %
+%%%%%%%%%%%%%%%
+
+def savepic = save_pic:= currentpicture enddef;
+def save_elempic = elem_pic:= currentpicture enddef;
+def callpic = currentpicture:= save_pic enddef;
+
+def mirror (expr pone, ptwo) =
+ currentpicture:=currentpicture reflectedabout(round(pone),round(ptwo))
+enddef;
+
+def add_mirror (expr pone, ptwo) =
+ addto currentpicture also currentpicture
+ reflectedabout (round(pone), round(ptwo))
+enddef;
+
+def call_mirror (expr pone, ptwo) = callpic; mirror (pone, ptwo) enddef;
+
+def add_shift (expr pone, ptwo) =
+ addto currentpicture also currentpicture shifted (pone, ptwo)
+enddef;
+
+def call_add_shift (expr pone, ptwo) =
+ callpic; add_shift (pone, ptwo)
+enddef;
+
+def add_elempic (expr pone, ptwo) =
+ addto currentpicture also elem_pic shifted (pone, ptwo)
+enddef;
+
+def call_add_save_elempic (expr pone, ptwo) =
+ callpic; add_elempic(pone, ptwo); savepic
+enddef;
+
+def shift_pic (expr pone, ptwo) =
+ currentpicture:=currentpicture shifted (round(pone),round(ptwo))
+enddef;
+
+def fill_circle (expr diameter, zshift) =
+ fill fullcircle scaled diameter shifted zshift
+enddef;
+
+def fill_square (expr xwidth, ywidth, zshift) =
+ fill unitsquare xscaled xwidth yscaled ywidth shifted zshift
+enddef;
+
+%
+
+% eobasicdefs ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+%%%%%%%
+message ("<noteheads>");
+%%%%%%%
+
+NHW=nhw+hlthick;
+
+beginchar(0, gregwidth#, .5nhh#, .5nhh#); "dummy square";
+endchar;
+
+beginchar(18, smallgreg*gregwidth#, .5nhh#, .5nhh#); "small dummy square";
+endchar;
+
+
+beginchar(1, 0, .5nhh#, .5nhh#); "filled diamond";
+ x1:=0.5greg_min_diam+hlthick; x3=gregwidth-x1; x2=x4=0.5gregwidth;
+ y1=y3=0; y2=-y4=0.5diamheight;
+ pickup pencircle scaled lthick;
+ fill z1--z2--z3--z4--cycle;
+ draw z1--z2--z3--z4--cycle;
+ penlabels (1,2,3,4);
+endchar;
+
+beginchar(2, 0, .5nhh#, .5nhh#); "filled diamond aucta";
+ x1:=0.5greg_min_diam+hlthick; x3=gregwidth-x1; x2=x4=0.5gregwidth;
+ y1=y3=0; y2=-y4=0.5diamheight;
+ x5=x1+hlthick; y5=1.5y4;
+ pickup pencircle scaled lthick;
+ fill z1--z2--z3{sw+down}..{left+0.3up}z5--z5{right}..z4--cycle;
+ draw z1--z2--z3{sw+down}..{left+0.3up}z5--z5{right}..z4--cycle;
+ penlabels (1,2,3,4,5);
+endchar;
+
+beginchar(3, 0, .5nhh#, .5nhh#); "apostropha";
+ x1:=0.5greg_min_diam+hlthick; x3=gregwidth-x1; x2=x4+0.1gregwidth=0.5gregwidth;
+ y1=y3=0; y2=0.5gregwidth+0.5greg_min_diam-hlthick;
+ y4=-y2-0.2gregwidth;
+ pickup pencircle scaled lthick;
+ fill z1--z2--z3{left+1.5down}..{left+0.6down}z4--z4{right+2up}..{left+0.1up}cycle;
+ draw z1--z2--z3{left+1.5down}..{left+0.6down}z4--z4{right+2up}..{left+0.1up}cycle;
+ penlabels (1,2,3,4);
+endchar;
+
+beginchar(4, 0, .5nhh#, .5nhh#); "filled diamond deminutae";
+ x1:=0.5greg_min_diam*deminutae+hlthick;
+ x3=gregwidth_dem-x1; x2=x4=0.5gregwidth_dem;
+ y1=y3=0; y2=-y4=0.5diamheight*deminutae;
+ pickup pencircle scaled lthick;
+ fill z1--z2--z3--z4--cycle;
+ draw z1--z2--z3--z4--cycle;
+ penlabels (1,2,3,4);
+endchar;
+
+beginchar(5, 0, .5nhh#, .5nhh#); "gregorian punctum";
+ x1=x4=hlthick; x2=x3=gregwidth+hlthick; y1=y2=-y3=-y4=.5gregwidth-hlthick;
+ pickup pencircle scaled lthick;
+ fill z1{dir greguangle}..z2--z3..{dir gregrlangle}z4--cycle;
+ draw z1{dir greguangle}..z2--z3..{dir gregrlangle}z4--cycle;
+ shift_pic(0,-hlthick);
+ savepic;
+ penlabels (1,2,3,4);
+endchar;
+
+beginchar(13, 0, .5nhh#, .5nhh#); "mirrored gregorian punctum";
+ callpic;
+ mirror(origin, right);
+endchar;
+
+beginchar(6, 0, .5nhh#, .5nhh#); "gregorian virga left";
+ callpic;
+ fill_square (lthick, 1.5nhh,(0, -1.5nhh));
+endchar;
+
+beginchar(7, 0, .5nhh#, .5nhh#); "gregorian virga right";
+ callpic;
+ fill_square (lthick, 1.5nhh,(gregwidth, -1.5nhh));
+endchar;
+
+beginchar(8, 0, .5nhh#, .5nhh#); "gregorian punctum aucta down";
+ x1=x4=hlthick; x2=x3=gregwidth+hlthick;
+ y1=y2+aucta_fact=-y3-aucta_fact=-y4=.5gregwidth-hlthick;
+ pickup pencircle scaled lthick;
+ fill z1{dir greguangle}..z2--z3..{dir gregrlangle}z4--cycle;
+ draw z1{dir greguangle}..z2--z3..{dir gregrlangle}z4--cycle;
+ shift_pic(0,-hlthick);
+ savepic;
+ penlabels (1,2,3,4);
+endchar;
+
+beginchar(9, 0, .5nhh#, .5nhh#); "gregorian punctum aucta up";
+callpic;
+mirror(origin,right);
+endchar;
+
+beginchar(10, 0, .5nhh#, .5nhh#); "oriscus";
+ x1=x4=hlthick; x2=x3=gregwidth+hlthick; y1=y2=-y3=-y4=.5gregwidth-hlthick;
+ pickup pencircle scaled lthick;
+ fill z1{dir orisuangle}..{dir orisuangle}z2--z3{dir orisruangle}..{dir orisruangle}z4--cycle;
+ draw z1{dir orisuangle}..{dir orisuangle}z2--z3{dir orisruangle}..{dir orisruangle}z4--cycle;
+ penlabels (1,2,3,4);
+endchar;
+
+beginchar(11, 0, .5nhh#, .5nhh#); "apostropha aucta";
+ x1:=0.5greg_min_diam+hlthick; x3=gregwidth-x1; x2=x4=0.5gregwidth;
+ y1=y3=0; y2=0.5gregwidth+0.5greg_min_diam-hlthick;
+ y4=-y2-0.2gregwidth; y5=y4; x5=x1;
+ pickup pencircle scaled lthick;
+ fill z1--z2--z3{left+1.5down}..{left+0.6down}z4..z5--z5{right}..{left+0.1up}cycle;
+ draw z1--z2--z3{left+1.5down}..{left+0.6down}z4..z5--z5{right}..{left+0.1up}cycle;
+ penlabels (1,2,3,4,5);
+endchar;
+
+beginchar(12, 0, .5nhh#, .5nhh#); "small gregorian punctum";
+ x1=x4=hlthick; x2=x3=smallgreg*gregwidth+hlthick;
+ y1=y2=-y3=-y4=.5smallgreg*gregwidth-hlthick;
+ pickup pencircle scaled lthick;
+ fill z1{dir greguangle}..z2--z3..{dir gregrlangle}z4--cycle;
+ draw z1{dir greguangle}..z2--z3..{dir gregrlangle}z4--cycle;
+ shift_pic(0,-hlthick);
+ savepic;
+endchar;
+
+beginchar(14, 0, .5nhh#, .5nhh#); "mirrored small gregorian punctum";
+ callpic;
+ mirror(origin, right);
+endchar;
+
+beginchar(15, gregwidth#, .5nhh#, .5nhh#); "podatus bottom";
+ fill_square(gregwidth+lthick, gregwidth, (0, -0.5gregwidth));
+endchar;
+
+beginchar(16, gregwidth#, .5nhh#, .5nhh#); "small podatus bottom";
+ fill_square(gregwidth+lthick, gregwidth-shave, (0, -0.5gregwidth));
+endchar;
+
+beginchar(17, 0, .5nhh#, .5nhh#); "gregorian punctum shaved bottom";
+ x1=x4=hlthick; x2=x3=gregwidth+hlthick; y1=y2=-y3+shave=-y4+shave=.5gregwidth-hlthick;
+ pickup pencircle scaled lthick;
+ fill z1{dir greguangle}..z2--z3..{dir gregrlangle}z4--cycle;
+ draw z1{dir greguangle}..z2--z3..{dir gregrlangle}z4--cycle;
+ shift_pic(0,-hlthick);
+ savepic;
+ penlabels (1,2,3,4);
+endchar;
+
+def square (expr mw)=
+ fill_square (sqrt(2)*.5mw, max(1,thin), origin) rotated -45;
+ fill_square (sqrt(2)*.5mw, .15nhw, (0,-.15nhw)) rotated 45;
+ save_elempic;
+ mirror (origin,up);
+ mirror (origin,left);
+ shift_pic (mw+.5,0);
+ add_elempic(0,0);
+% mirror (origin,right);% I've seen this too, somewhere ...
+enddef;
+
+beginchar(118, 0, .5nhh#, .5nhh#); "deep porrectus";
+ x1=x4=0; x2=x3=3*gregwidth+lthick;
+ y1=-y4=.5gregwidth-lthick; y2=y1-2nhh; y3=y4-2nhh;
+ z5=z1+(0,0.3gregwidth);
+ fill z5..{right+0.4down}z2--z3{left+0.4up}..z4--cycle; shift_pic(0,hlthick);
+ fill_square (med, 1.5nhh,(0, -2nhh));
+ penlabels (1,2,3,4,5);
+endchar;
+
+beginchar(119, 0, .5nhh#, .5nhh#); "low porrectus";
+ x1=x4=0; x2=x3=3*gregwidth+lthick;
+ y1=-y4=.5gregwidth-lthick; y2=y1-1.5nhh; y3=y4-1.5nhh;
+ z5=z1+(0,0.2gregwidth);
+ fill z1..{right+0.4down}z2--z3{left+0.4up}..z4--cycle; shift_pic(0,hlthick);
+ fill_square (med, 1.5nhh,(0, -2nhh));
+ penlabels (1,2,3,4,5);
+endchar;
+
+beginchar(120, 0, .5nhh#, .5nhh#); "porrectus";
+ x1=x4=0; x2=x3=3*gregwidth+lthick;
+ y1=-y4=.5gregwidth-lthick; y2=y1-nhh; y3=y4-nhh;
+ z5=z1+(0,0.1gregwidth);
+ fill z5..{right}z2--z3{left}..z4--cycle; shift_pic(0,hlthick);
+ fill_square (med, 1.5nhh,(0, -1.5nhh));
+ penlabels (1,2,3,4,5);
+endchar;
+
+beginchar(121, 0, .5nhh#, .5nhh#); "soft porrectus";
+ x1=x4=0; x2=x3=3*gregwidth+lthick;
+ y1=-y4=.5gregwidth-lthick; y2=y1-0.5nhh; y3=y4-0.5nhh;
+ z5=z1+(0,0.1gregwidth);
+ fill z5..{right}z2--z3{left}..z4--cycle; shift_pic(0,hlthick);
+ fill_square (med, 1.5nhh,(0, -1.5nhh));
+ penlabels (1,2,3,4,5);
+endchar;
+
+def quilisma(expr ymidtop, ymidbot) =
+ ydiff:=0.15gregwidth;
+ qdecalage:=.2*gregwidth;
+ ydepth:=0.25gregwidth;
+ x1=x14=-qdecalage+hlthick;
+ x7=x8=gregwidth+hlthick;
+ y1+ydiff-0.5ydepth=ymidtop=y7-ydiff-0.5ydepth;
+ y14+ydiff-0.5ydepth=ymidbot=y8-ydiff-0.5ydepth;
+ 3x3=2x1+x7; 3x5=x1+2x7;
+ 3y3=2y1+y7; 3y5=y1+2y7;
+ 2x2=x1+x3; 2x4=x3+x5; 2x6=x5+x7;
+ 2y2=y1+y3-2ydepth; 2y4=y3+y5-2ydepth; 2y6=y5+y7-2ydepth;
+ 3x12=2x14+x8; 3x10=x14+2x8;
+ 3y12=2y14+y8; 3y10=y14+2y8;
+ 2x13=x14+x12; 2x11=x12+x10; 2x9=x10+x8;
+ 2y13=y14+y12-2ydepth; 2y11=y12+y10-2ydepth; 2y9=y10+y8-2ydepth;
+
+ pickup line_pen;
+
+
+ draw z1{down+0.1right}..z2..z3..z4..z5..z6..{up+0.1right}z7--z8{down}..z9..z10..z11..z12..z13..{up+0.1left}z14--cycle;
+ fill z1{down+0.1right}..z2..z3..z4..z5..z6..{up+0.1right}z7--z8{down}..z9..z10..z11..z12..z13..{up+0.1left}z14--cycle;
+ shift_pic(0,-hlthick);
+enddef;
+
+beginchar(125, 0, .5nhh#, .5nhh#); "quilisma";
+ quilisma(0.5gregwidth-hlthick, -0.5gregwidth+hlthick);
+endchar;
+
+beginchar(126, 0, .5nhh#, .5nhh#); "bottom quilisma";
+ quilisma(0.5gregwidth-hlthick-0.8shave, -0.5gregwidth+hlthick);
+endchar;
+
+%%%%%%%
+message ("<clefs>");
+%%%%%%%
+keygregwidth:=0.5*sqrt(2)*nhw;
+
+beginchar(98, 8/3nhw#, 3.25nhh#, 0); "gregorian C clef";
+ x1=x4=0; x2=x3=keygregwidth; y1=y2=-y3=-y4=.5keygregwidth-lthick;
+ fill z1{dir 15}..z2--z3{dir 165}..z4--cycle;
+ save_elempic;
+ pickup med_pen; draw bot rt z1..{down}(-.01nhw,-.5nhh);
+ shift_pic(nhw,2.5nhh);
+ add_mirror ((0,2nhh),(1,2nhh));
+ savepic;
+ shift_pic (0,-2nhh);
+endchar;
+
+beginchar(122, 8/3nhw#, 4.25nhh#, 0); "gregorian F clef";
+ callpic;
+ add_elempic (.1nhw+0.5med,2nhh);
+ fill_square (med, 1.5nhh, (.75nhw,.8nhh));
+ shift_pic (1/3nhw,-2nhh);
+endchar;
+
+end
diff --git a/fonts/musixtex-fonts/source/xppff10.mf b/fonts/musixtex-fonts/source/xppff10.mf
new file mode 100644
index 0000000000..141db0c237
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xppff10.mf
@@ -0,0 +1,86 @@
+%%
+%% xppff10.mf - an alternative font for MusiXTeX \ppff
+%% font source code, parameters definition
+%%
+%% Modified from official cmbxti10.mf cmbase.mf textit.mf itall.mf
+%% (Computer Modern Text Italic family)
+%%
+%% by Hiroaki MORIMOTO <CQX05646@nifty.com>
+%%
+%% August, 2004.
+%%
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="XPPFF"; font_size 10pt#;
+
+u#:=1.1*21.2/36pt#; % unit width
+width_adj#:=1.1*11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=1.1*7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=1.1*11/36pt#; % extra space added to all sidebars
+
+body_height#:=1.1*270/36pt#; % height of tallest characters 270
+asc_height#:=1.1*250/36pt#; % height of lowercase ascenders 250
+cap_height#:=1.1*247/36pt#; % height of caps 247
+fig_height#:=1.1*232/36pt#; % height of numerals 232
+x_height#:=1.1*160/36pt#; % height of lowercase without ascenders 160
+math_axis#:=1.1*90/36pt#; % axis of symmetry for math symbols
+bar_height#:=1.1*85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=1.1*70/36pt#; % depth of comma below baseline
+desc_depth#:=1.1*70/36pt#; % depth of lowercase descenders
+
+crisp#:=0/36pt#; % diameter of serif corners
+tiny#:=0/36pt#; % diameter of rounded corners
+fine#:=0/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details 10
+hair#:=16/36pt#; % lowercase hairline breadth 20
+stem#:=52/36pt#; % lowercase stem breadth 38
+curve#:=50/36pt#; % lowercase curve breadth 43
+ess#:=32/36pt#; % breadth in middle of lowercase s 35 ( stem of m )
+flare#:=42/36pt#; % diameter of bulbs or breadth of terminals 42
+dot_size#:=53/36pt#; % diameter of dots 53
+cap_hair#:=22/36pt#; % uppercase hairline breadth 22
+cap_stem#:=49/36pt#; % uppercase stem breadth 49
+cap_curve#:=52/36pt#; % uppercase curve breadth 52
+cap_ess#:=50/36pt#; % breadth in middle of uppercase s 50
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs 1
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=19/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.36; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate xppffgen % switch to the driver file
diff --git a/fonts/musixtex-fonts/source/xppffgen.mf b/fonts/musixtex-fonts/source/xppffgen.mf
new file mode 100644
index 0000000000..df847f5119
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xppffgen.mf
@@ -0,0 +1,261 @@
+%%
+%% xppffgen.mf - an alternative font for MusiXTeX \ppff
+%% font source code, letter figure definition
+%%
+%% Modified from official cmbxti10.mf cmbase.mf textit.mf itall.mf
+%% (Computer Modern Text Italic family)
+%%
+%% by Hiroaki MORIMOTO <CQX05646@nifty.com>
+%%
+%% August, 2004.
+%%
+
+mode_setup; font_setup;
+
+%----patches for cmbase--------------------------------------------------------
+def bulb(suffix $,$$,$$$) =
+pair uprevsl, dnrevsl;
+uprevsl := (0,y$r-y$$r) slanted -slant;
+dnrevsl := (0,y$$r-y$r) slanted -slant;
+ z$$$r=z$$r;
+% path_.l:=z$l{x$$r-x$r,0}...{0,y$$r-y$r}z$$l;
+ path_.l:=z$l{x$$r-x$r,0}...{dnrevsl}z$$l;
+% draw path_.l--z$$r{0,y$r-y$$r}...{x$r-x$$r,0}z$r--cycle; % link
+ filldraw path_.l--z$$r{uprevsl}...{x$r-x$$r,0}z$r--cycle; % link
+% path_.r:=z$$$l{0,y$r-y$$r}..z$$$r{0,y$$r-y$r}; % near-circle
+ path_.r:=z$$$l{uprevsl}..z$$$r{dnrevsl}; % near-circle
+% filldraw subpath(0,xpart(path_.r intersectiontimes path_.l)) of path_.r
+% --z$$r{0,y$$r-y$r}..cycle; % bulb
+ filldraw path_.r--z$$r{dnrevsl}..cycle; % bulb
+ enddef;
+
+def hook_out(suffix $,$$,$$$)suffix modifier= % |x$| and |x$$$| (only) are known
+ pos$(stem,0); pos$$(vair,90);
+ x$$$:=hround(x$$$+.5hair-eps)-.5hair; pos$$$(hair,180);
+ y$=1/4x_height; bot y$$l=-oo; y$$$=1/3x_height;
+% if skewed.modifier: x$$=x$+1.25u;
+% filldraw stroke z$e{-u,-x_height}...z$$e{right}...{up}z$$$e; % hook
+% else: x$$=x$+1.5u;
+% filldraw stroke z$e{down}...z$$e{right}
+% ...{x$$$-(x$+2.5u),x_height}z$$$e; fi enddef; % hook
+ x$$=x$$$-u;
+ filldraw stroke z$e{down}...z$$e{right}
+ ...{up slanted .5slant}z$$$e; % hook
+enddef;
+
+def hook_in(suffix $,$$,$$$)suffix modifier= % |x$| and |x$$$| (only) are known
+ x$:=hround(x$-.5hair)+.5hair; pos$(hair,180);
+% x$:=hround(x$-.5hair)+.5hair; pos$(vair,180);
+ pos$$(vair,90); pos$$$(stem,0);
+% pos$$(hair,90); pos$$$(stem,0);
+% y$=2/3x_height; top y$$r=x_height+oo; y$$$=3/4x_height;
+ y$=.55x_height; top y$$r=x_height+.9oo; y$$$=3/4x_height;
+% if skewed.modifier: x$$=x$$$-1.25u;
+ x$$=x$+u;
+% filldraw stroke z$e{up}..z$$e{right}...{-u,-x_height}z$$$e; % hook
+ filldraw stroke z$e{up slanted .5slant}...z$$e{right}...{down}z$$$e; % hook
+% else: x$$=x$$$-1.5u;
+% filldraw stroke z$e{x$$$-2.5u-x$,x_height}
+% ...z$$e{right}...{down}z$$$e; fi enddef; % hook
+enddef;
+
+%----letter f------------------------------------------------------------------
+cmchar "Italic letter f";
+%beginchar("f",max(1.5u#,stem#)+max(3.5u#,2flare#),asc_height#,desc_depth#);
+beginchar("f",max(1.5u#,stem#)+max(3.5u#,2flare#)-.6u#,asc_height#,desc_depth#);
+%italcorr asc_height#*slant+.75u#;
+italcorr asc_height#*slant;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+%numeric theta; z88=(.5w-.5u,h); z89=(.5w+.5u,-d); theta=angle(z88-z89);
+numeric theta; z88=(.5w,h); z89=(.5w,-d); theta=angle(z88-z89);
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+%pos3(.5[hair,stem],180); pos4(stem,theta+90);
+%pos3(.5[hair,stem],180); pos4(stem,270-theta);
+pos3(.5[hair,stem],180); pos4(stem,180);
+%pos5(stem,theta-90); pos6(.5[hair,stem],0);
+%pos5(stem,90-theta); pos6(.5[hair,stem],0);
+pos5(stem,0); pos6(.5[hair,stem],0);
+%pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+pos7(vair,-75); pos8(hair,-180); pos9(flare,-180);
+%rt x1r=hround(w+.25u); lft x8r=hround-.35u; x2=.6[x1,x4]; x7=.6[x8,x5];
+rt x1r=hround(w+.25u)+.9u; lft x8r=hround-1.4u; x2=.6[x1,x4]; x7=.6[x8,x5];
+%y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
+y9-.5flare=vround -d; y2-y0=y9-y7; top y2r=h+oo+.2hair; bot y7r=-d-oo-.2hair;
+%y4=.25[x_height,h]; y5=.5[-d,y4];
+y4=.2[x_height,h]; y5=.47[-d,y4];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+%x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
+x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.7[y4,y2]; y6=.7[y5,y7];
+bulb(2,1,0); bulb(7,8,9); % bulbs
+filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper arc
+filldraw z4r--z5l--z5r--z4l--cycle; % stem
+filldraw stroke z5e{z89-z88}...z6e...{left}z7e; % lower arc
+pickup crisp.nib; pos20(bar,90); pos21(bar,90);
+%top y20r=top y21r=x_height;
+top y20r=top y21r=x_height;
+%lft x20=lft x4r-.5stem-u; rt x21=rt x4l+.5stem+1.5u;
+lft x20=lft x4r-.5stem-1.1u; rt x21=rt x4l+.5stem+1.1u;
+filldraw stroke z20e--z21e; % crossbar
+math_fit(desc_depth#*slant+u#,x_height#*slant);
+penlabels(0,1,2,3,4,5,6,7,8,9,20,21,88,89);
+currentpicture:=currentpicture shifted (.3u,.025x_height);
+endchar;
+
+
+%----letter p------------------------------------------------------------------
+cmchar "Italic letter p";
+%beginchar("p",9u#,x_height#,desc_depth#);
+%beginchar("p",6.7u#,x_height#,desc_depth#);
+beginchar("p",7u#,x_height#,desc_depth#);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+x0=0-.1u; x2-.5stem=hround(2.5u-.5stem); hook_in(0,1,2); % opening hook
+pos4(hair,-180); pos5(vair,-90); pos6(curve,0); pos7(vair,90);
+%x4=x2; rt x6r=hround(w-1.5u+.5curve); x5=x7=.5[x4,x6];
+%x4=.4[x2,x2r]; rt x6r=hround(w+.25u+.5curve); x5=.55[x4,x6]; x7=.4[x4,x6];
+x4=.4[x2,x2r]; rt x6r=hround(w-.05u+.5curve); x5=.55[x4,x6]; x7=.4[x4,x6];
+%bot y5r=-oo+.5hair; top y7r=h+oo+.25hair; y4=.55[y5,y7]; y6=.45[y5,y7];
+bot y5r=-oo+hair; top y7r=h+oo+.1hair; y4=.55[y5,y7]; y6=.45[y5,y7];
+filldraw stroke super_arc.e(4,5) & pulled_arc.e(5,6)
+ & pulled_arc.e(6,7) & super_arc.e(7,4); % bowl
+filldraw stroke super_arc.e(4,5) & super_arc.e(5,6)
+ & super_arc.e(6,7) & super_arc.e(7,4); % bowl
+pickup tiny.nib; pos2'(stem,0); pos3(stem,0);
+z2=z2'; x3=x2; bot y3=-d; filldraw stroke z2'e--z3e; % stem
+dish_serif(3,2',a,1/3,.75jut,b,1/3,jut); % serif
+math_fit(-min(2/3x_height#*slant-.5hair#-.5u#,
+ 2u#-.5stem#-desc_depth#*slant),ic#);
+penlabels(0,1,2,3,4,5,6,7);
+currentpicture:=currentpicture shifted (.25u,.025x_height);
+endchar;
+
+
+%----letter m------------------------------------------------------------------
+cmchar "Italic letter m";
+beginchar("m",9u#,x_height#,0);
+%italcorr 1/3x_height#*slant;
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+x_height_o:=x_height; x_height:=.8x_height;
+adjust_fit(if monospace:-1.5u#,-2u# else: 0,0 fi); pickup fine.nib;
+%w := .9w;
+numeric shaved_stem; %shaved_stem=mfudged.stem;
+shaved_stem=.2[ess,stem];
+save stem; stem=shaved_stem;
+pos2(stem,0); x1=x2;
+%if monospace: pos1(stem,0); lft x1l=hround(2.5u-.5stem); top y1=h;
+%else:% x0=0; lft x2l=hround(2.5u-.5stem);
+% x0=0; lft x2l=hround(2.5u-.5stem);
+% x0=0+.08w; lft x2l=hround(2.5u-.5stem);
+ x0=0-.5hair+.5stem; lft x2l=hround(2.5u-.5stem);
+ hook_in(0,a,1);% fi % opening hook
+y2-.5stem=-oo; filldraw circ_stroke z2e--z1e; % left stem
+%x4+.5stem=hround(.5w+.5stem); ital_arch(2,3,4); % left arch
+%x4+.5stem=hround(.675w+.5stem); ital_arch(2,3,4); % left arch
+x4+.5stem=hround(.58w+.5stem); ital_arch(2,3,4); % left arch
+pos5(stem,0); y5=y2; x5=x4;
+filldraw circ_stroke z5e--z4e; % middle stem
+%x7+.5stem=hround(w-2.5u+.5stem);
+%x7+.5stem=hround(1.35w-2.5u+.5stem);
+x7+.5stem=hround(1.16w-2.5u+.5stem);
+%x8=x7-.25u; ital_arch(5,6,7); % right arch
+x8=x7; ital_arch(5,6,7); % right arch
+%if monospace: pos9(vair,90); x9=good.x .5[x8,w]; bot y9l=0; y8=1/3h;
+% pos8(stem,0); filldraw stroke z8e{-u,-x_height}...{right}z9e; % terminal
+%else:% x9=w; hook_out(8,b,9)(skewed); fi % closing hook
+%x9=1.25w; hook_out(8,b,9)(skewed);% fi % closing hook
+x9=w+1u; hook_out(8,b,9)(skewed);% fi % closing hook
+%filldraw stroke z7e{down}..{-u,-x_height}z8e; % right stem
+%filldraw stroke z7e{down}--{down}z8e; % right stem
+filldraw stroke z7e--z8e; % right stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,a,1,2,3,4,5,6,7,8,b,9);
+x_height:=x_height_o;
+currentpicture:=currentpicture shifted (.6u,.19x_height);
+endchar;
+
+
+%----letter s------------------------------------------------------------------
+cmchar "Italic letter s";
+%beginchar("s",5.25u#+max(1.75u#,flare#),x_height#,0);
+beginchar("s",4.8u#,x_height#,0);
+%italcorr x_height#*slant-.5u#;
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+%numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
+numeric theta; theta=90-angle(16u,h); slope:=-h/16u; % angle at middle
+pos2(vair,-90); pos0(max(fine.breadth,ess),theta); pos7(vair,-90);
+%x2l=x0=x7=.5w; top y2l=h+oo; bot y7r=-oo;
+%x2l+.08w=x0=x7-.08w=.5w; top y2l=h+oo-.1x_height; bot y7r=-oo+.1x_height;
+x0=.5w; top y2l=h+oo-.1x_height; bot y7r=-oo+.1x_height;
+x2=.4w; x7=.6w;
+y0-.5ess=y7l+.55(y2r-y7l-ess);
+%lft x3l=hround u-eps; rt x6r=hround(w-.5u)+eps;
+%lft x3l=hround u-eps+.2u; rt x6r=hround(w-.5u)+eps-.2u;
+lft x3l=0-.1u; rt x6r=w+.2u;
+x3r-x3l=x6r-x6l=hround .5[vair,ess]-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+pos1(hair,0); pos10(hround .75[hair,flare],0);
+pos2'(vair,90); z2'=z2;
+pos8(hair,-180); pos9(flare,-180);
+%rt x10r=hround(w-u)+2eps; lft x9r=hround .5u-2eps; y10=.78h; y9=.25h;
+%rt x10r=hround(w-u)+2eps-.5u; lft x9r=hround 1u-2eps+.5u; y10=.78h; y9=.25h;
+lft x9r=+.35u; rt x10r=w-.55u; y9=.25h; y10=.75h;
+bulb(2',1,10); bulb(7,8,9); % bulbs
+math_fit(0,ic#); penlabels(0,1,2,3,4,5,6,7,8,9,10);
+currentpicture:=currentpicture shifted (u,.09x_height);
+endchar;
+
+%----letter z------------------------------------------------------------------
+cmchar "Italic letter z";
+%beginchar("z",5.5u#+max(1.5u#,stem#),x_height#,0);
+beginchar("z",5.2u#,x_height#,0);
+%italcorr x_height#*slant+.5hair#;
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:.5u#,.5u# else: 0,0 fi); pickup fine.nib;
+%pos1(hair,0); pos2(stem,-90); pos3(vair,-90); pos4(hair,0);
+%pos1(hair,0); pos2(ess,-90); pos3(vair,-90); pos4(hair,0);
+pos1(hair,-0); pos2(.3[ess,stem],-80); pos3(.7[vair,ess],-90); pos4(hair,-30);
+%lft x1l=hround(u-.5hair); x2=2.5u; x3=w-2u; rt x4r=hround(w-.5u);
+%lft x1l=hround(.5u-.5hair); x2=2.2u; x3=w-2u; rt x4r=hround(w-.5u);
+lft x1l=hround(.0u-.5hair); x2=1.2u; x3=2.9u; rt x4r=hround(1.1w-.6u)-.2u;
+%top y1=.78h; top y2l=top y4=h+oo; y3=.825h;
+%top y1=.78h-.1x_height; top y2l=top y4=h+oo-.1x_height; y3=.825h-.1x_height;
+%top y1=.78h-.1x_height; top y2l=top y4=h+oo-.1x_height; y3=.825h-.04x_height;
+top y1=.76h-.1x_height; top y2l=top h+oo-.1x_height; y4l=h-.1x_height; y3=.85h-.1x_height;
+%pos5(hair,0); pos6(vair,-90); pos7(stem,-90); pos8(hair,0);
+%pos5(hair,0); pos6(vair,-90); pos7(ess,-90); pos8(hair,0);
+pos5(hair,-30); pos6(.7[vair,ess],-90); pos7(.5[ess,stem],-80); pos8(hair,-0);
+%x5=x1; x6=2.5u; x7=w-2u; x8+.5hair=hround(w+.5hair-eps);
+%x5=x1+u; x6=3.5u; x7=w-1u; x8+.5hair=hround(w+.5hair-eps)+u;
+%x5=x1+.5u; x6=2.5u; x7=.87w; x8+.5hair=hround(1.1w+.5hair-eps);
+x5=x1+.5u; x6=2.5u; x7=.95w; x8+.5hair=hround(1.1w+.5hair-eps);
+%bot y5=bot y7r=-oo; y6=.175h; bot y8=.31h;
+%bot y5=.1x_height; y7r=-oo; y6=.175h+.1x_height; bot y8=.31h;
+bot y5=.1x_height; y7r=-oo; y6=.175h+.03x_height; bot y8=.31h;
+pair p; p=(z4-z5) yscaled 2;
+filldraw stroke z1e{up}...z2e{right}..z3e{right}...{p}z4e; % upper bar
+filldraw stroke z5e{p}...z6e{right}..{right}z7e...{up}z8e; % lower bar
+filldraw stroke z5e{p}..{p}z4e; % diagonal
+math_fit(0,1/3x_height#*slant+.5hair#+.5u#);
+penlabels(1,2,3,4,5,6,7,8);
+currentpicture:=currentpicture shifted (.7u,.09x_height);
+endchar;
+
+
+%----font dimensions-----------------------------------------------------------
+font_slant slant; font_x_height x_height#;
+% font_normal_space 6u#+2letter_fit#;
+font_normal_space 4u#+2letter_fit#;
+font_normal_stretch 3u#; font_normal_shrink 2u#;
+font_quad 18u#+4letter_fit#;
+font_extra_space 2u#;
+
+ligtable "f": "f" kern -.7u#;
+ligtable "p": "f" kern +.5u#;
+
+bye.
+
diff --git a/fonts/musixtex-fonts/source/xsld11.mf b/fonts/musixtex-fonts/source/xsld11.mf
new file mode 100644
index 0000000000..4b9142ae10
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xsld11.mf
@@ -0,0 +1,20 @@
+font_identifier:="xsld11";
+mode_setup;
+font_size 10.24pt#;
+thick#:=1pt#;
+internote#:=1.28pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= reflectedabout (origin,right) shifted (-.5mw,0) enddef;
+def T= rotated 180 shifted (0,-mheight) enddef;
+
+input xslgen;
diff --git a/fonts/musixtex-fonts/source/xsld11d.mf b/fonts/musixtex-fonts/source/xsld11d.mf
new file mode 100644
index 0000000000..c98d2ba07a
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xsld11d.mf
@@ -0,0 +1,21 @@
+font_identifier:="xsld11d";
+mode_setup;
+font_size 10.24pt#;
+makedotted=1;
+thick#:=1pt#;
+internote#:=1.28pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= reflectedabout (origin,right) shifted (-.5mw,0) enddef;
+def T= rotated 180 shifted (0,-mheight) enddef;
+
+input xslgen;
diff --git a/fonts/musixtex-fonts/source/xsld13.mf b/fonts/musixtex-fonts/source/xsld13.mf
new file mode 100644
index 0000000000..c612d42a63
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xsld13.mf
@@ -0,0 +1,20 @@
+font_identifier:="xsld13";
+mode_setup;
+font_size 12.8pt#;
+thick#:=1pt#;
+internote#:=1.6pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= reflectedabout (origin,right) shifted (-.5mw,0) enddef;
+def T= rotated 180 shifted (0,-mheight) enddef;
+
+input xslgen;
diff --git a/fonts/musixtex-fonts/source/xsld13d.mf b/fonts/musixtex-fonts/source/xsld13d.mf
new file mode 100644
index 0000000000..00411b4cb0
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xsld13d.mf
@@ -0,0 +1,21 @@
+font_identifier:="xsld13d";
+mode_setup;
+font_size 12.8pt#;
+makedotted=1;
+thick#:=1pt#;
+internote#:=1.6pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= reflectedabout (origin,right) shifted (-.5mw,0) enddef;
+def T= rotated 180 shifted (0,-mheight) enddef;
+
+input xslgen;
diff --git a/fonts/musixtex-fonts/source/xsld16.mf b/fonts/musixtex-fonts/source/xsld16.mf
new file mode 100644
index 0000000000..38720a75ac
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xsld16.mf
@@ -0,0 +1,20 @@
+font_identifier:="xsld16";
+mode_setup;
+font_size 16pt#;
+thick#:=1pt#;
+internote#:=2pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= reflectedabout (origin,right) shifted (-.5mw,0) enddef;
+def T= rotated 180 shifted (0,-mheight) enddef;
+
+input xslgen;
diff --git a/fonts/musixtex-fonts/source/xsld16d.mf b/fonts/musixtex-fonts/source/xsld16d.mf
new file mode 100644
index 0000000000..f278901837
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xsld16d.mf
@@ -0,0 +1,21 @@
+font_identifier:="xsld16d";
+mode_setup;
+font_size 16pt#;
+makedotted=1;
+thick#:=1pt#;
+internote#:=2pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= reflectedabout (origin,right) shifted (-.5mw,0) enddef;
+def T= rotated 180 shifted (0,-mheight) enddef;
+
+input xslgen;
diff --git a/fonts/musixtex-fonts/source/xsld20.mf b/fonts/musixtex-fonts/source/xsld20.mf
new file mode 100644
index 0000000000..c36089fcf9
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xsld20.mf
@@ -0,0 +1,20 @@
+font_identifier:="xsld20";
+mode_setup;
+font_size 20pt#;
+thick#:=1pt#;
+internote#:=2.5pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= reflectedabout (origin,right) shifted (-.5mw,0) enddef;
+def T= rotated 180 shifted (0,-mheight) enddef;
+
+input xslgen;
diff --git a/fonts/musixtex-fonts/source/xsld20d.mf b/fonts/musixtex-fonts/source/xsld20d.mf
new file mode 100644
index 0000000000..4820d2adee
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xsld20d.mf
@@ -0,0 +1,21 @@
+font_identifier:="xsld20d";
+mode_setup;
+font_size 20pt#;
+makedotted=1;
+thick#:=1pt#;
+internote#:=2.5pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= reflectedabout (origin,right) shifted (-.5mw,0) enddef;
+def T= rotated 180 shifted (0,-mheight) enddef;
+
+input xslgen;
diff --git a/fonts/musixtex-fonts/source/xsld24.mf b/fonts/musixtex-fonts/source/xsld24.mf
new file mode 100644
index 0000000000..5a03c91cac
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xsld24.mf
@@ -0,0 +1,20 @@
+font_identifier:="xsld24";
+mode_setup;
+font_size 24pt#;
+thick#:=1pt#;
+internote#:=3pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= reflectedabout (origin,right) shifted (-.5mw,0) enddef;
+def T= rotated 180 shifted (0,-mheight) enddef;
+
+input xslgen;
diff --git a/fonts/musixtex-fonts/source/xsld24d.mf b/fonts/musixtex-fonts/source/xsld24d.mf
new file mode 100644
index 0000000000..2d303dbb6e
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xsld24d.mf
@@ -0,0 +1,21 @@
+font_identifier:="xsld24d";
+mode_setup;
+font_size 24pt#;
+makedotted=1;
+thick#:=1pt#;
+internote#:=3pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= reflectedabout (origin,right) shifted (-.5mw,0) enddef;
+def T= rotated 180 shifted (0,-mheight) enddef;
+
+input xslgen;
diff --git a/fonts/musixtex-fonts/source/xsld29.mf b/fonts/musixtex-fonts/source/xsld29.mf
new file mode 100644
index 0000000000..766cb83ffc
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xsld29.mf
@@ -0,0 +1,20 @@
+font_identifier:="xsld29";
+mode_setup;
+font_size 28.8pt#;
+thick#:=1pt#;
+internote#:=3.6pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= reflectedabout (origin,right) shifted (-.5mw,0) enddef;
+def T= rotated 180 shifted (0,-mheight) enddef;
+
+input xslgen;
diff --git a/fonts/musixtex-fonts/source/xsld29d.mf b/fonts/musixtex-fonts/source/xsld29d.mf
new file mode 100644
index 0000000000..820b07c921
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xsld29d.mf
@@ -0,0 +1,21 @@
+font_identifier:="xsld29d";
+mode_setup;
+font_size 28.8pt#;
+makedotted=1;
+thick#:=1pt#;
+internote#:=3.6pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= reflectedabout (origin,right) shifted (-.5mw,0) enddef;
+def T= rotated 180 shifted (0,-mheight) enddef;
+
+input xslgen;
diff --git a/fonts/musixtex-fonts/source/xsldd20.mf b/fonts/musixtex-fonts/source/xsldd20.mf
new file mode 100644
index 0000000000..f45dfc8d3f
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xsldd20.mf
@@ -0,0 +1,20 @@
+font_identifier:="xsld20";
+mode_setup;
+font_size 20pt#;
+thick#:=1pt#;
+internote#:=2.5pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= reflectedabout (origin,right) shifted (-.5mw,0) enddef;
+def T= rotated 180 shifted (0,-mheight) enddef;
+
+input xslgend;
diff --git a/fonts/musixtex-fonts/source/xsldu20.mf b/fonts/musixtex-fonts/source/xsldu20.mf
new file mode 100644
index 0000000000..1c9409458d
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xsldu20.mf
@@ -0,0 +1,20 @@
+font_identifier:="xsld20";
+mode_setup;
+font_size 20pt#;
+thick#:=1pt#;
+internote#:=2.5pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= reflectedabout (origin,right) shifted (-.5mw,0) enddef;
+def T= rotated 180 shifted (0,-mheight) enddef;
+
+input xslgenu;
diff --git a/fonts/musixtex-fonts/source/xslgen.mf b/fonts/musixtex-fonts/source/xslgen.mf
new file mode 100644
index 0000000000..36096f1055
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslgen.mf
@@ -0,0 +1,94 @@
+%
+% This file is part of MusiXTeX
+%
+% MusiXTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% MusiXTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with MusiXTeX; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+% WpH May, 19, 1997 modified to be dashed.
+%
+
+min_bow:= internote;
+max_bow:=3internote;
+slope:=17.5/100;
+gap:=thick; %Wph length of space between dashes.
+dash:=1.6thick; %Wph Length of each rising or falling dash.
+pointendl:=dash; %WpH length of first and last dash.
+centerdashl:=-dash; %WpH length of center dash.
+if unknown makedotted: makedotted:=0; fi % WpH
+path outerpath, innerpath; %Wph declaration of path variables.
+
+code=-1;
+
+for iht=1 upto 8:
+ for iwd=0 upto 15:
+ beginchar(incr code, 0, 0, 0);
+ mw#:=(minwidth+iwd*delwidth)*pt#;
+ define_pixels(mw);
+ x1 = y1= 0; x3= mw; y3= 2y2'= iht*internote; x2'= .5x3;
+ mheight:=y3;
+ z2-z2'= whatever*dir(angle(z3-z1)+90);
+ my_bow:=min(max_bow, slope*mw);
+ my_bow:=max(my_bow, min_bow);
+ z1'=(z1-(0,my_bow)) rotated angle(z3-z1);
+ (z1'-z2)=whatever*(z1-z2');
+ penpos1(.15thick,(angle(z3-z1)+90));
+ penpos2(thick,(angle(z3-z1)+90));
+ penpos3(.15thick,(angle(z3-z1)+90));
+ penstroke (flex(z1e,z2e,z3e));
+%{{{
+ currentpen:= pencircle;
+ draw (flex(z1,z2,z3));% draw z1--z3; draw z2'--z2--z1'--z1;
+%}}}
+ %
+ % WpH start of added block to make gaps.
+ if makedotted<>1:
+ % variable makedotted has not been given a value.
+ % Dotted lines will not be made.
+ else:
+ cullit;
+ outerpath:= flex(z1r,z2r,z3r);
+ innerpath:= flex(z1l,z2l,z3l);
+ cl:=abs(z2-z1); %apporximate curve length/2
+ tcount:=(cl-pointendl-0.5centerdashl)/(gap+dash); % number of gaps on rise or fall.
+ tcount:=floor(tcount + .5); %round to nearest int number
+ tinc:=((cl-pointendl-.5centerdashl)/tcount);
+ pickup pencircle scaled gap;
+ for k=0 upto tcount-1:
+ tt:=((pointendl + .5gap) + k*tinc)/(cl);
+ undraw (point tt of outerpath)..(point tt of innerpath);
+ undraw (point (2-tt) of outerpath)..(point (2-tt) of innerpath);
+%
+% I expected the undraw statements to be the following. If the
+% other code fails on your version of metafont, try this:
+%
+% undraw (point .5tt of outerpath)..(point .5tt of innerpath);
+% undraw (point (1-.5tt) of outerpath)..(point (1-.5tt) of innerpath);
+%
+ endfor;
+ cullit;
+ fi
+ % Wph End of added block to make gaps.
+ %
+ currentpicture:=currentpicture t;
+ p:=currentpicture;
+ endchar;
+
+ beginchar(code+128, 0, 0, 0);
+ currentpicture:=p T;
+ endchar;
+
+ endfor
+endfor
+end
diff --git a/fonts/musixtex-fonts/source/xslgend.mf b/fonts/musixtex-fonts/source/xslgend.mf
new file mode 100644
index 0000000000..57440d6904
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslgend.mf
@@ -0,0 +1,34 @@
+min_bow:= internote;
+max_bow:=3internote;
+slope:=17.5/100;
+
+code=-1;
+
+for iht=1 upto 16:
+ for iwd=0 upto 15:
+ beginchar(incr code, 0, 0, 0);
+ mw#:=(minwidth+iwd*delwidth)*pt#;
+ define_pixels(mw);
+ x1 = y1= 0; x3= mw; y3= 2y2'= iht*internote; x2'= .5x3;
+ mheight:=y3;
+ z2-z2'= whatever*dir(angle(z3-z1)+90);
+ my_bow:=min(max_bow, slope*mw);
+ my_bow:=max(my_bow, min_bow);
+ z1'=(z1-(0,my_bow)) rotated angle(z3-z1);
+ (z1'-z2)=whatever*(z1-z2');
+ penpos1(.15thick,(angle(z3-z1)+90));
+ penpos2(thick,(angle(z3-z1)+90));
+ penpos3(.15thick,(angle(z3-z1)+90));
+ penstroke (flex(z1e,z2e,z3e));
+%{{{
+ currentpen:= pencircle;
+ draw (flex(z1,z2,z3));% draw z1--z3; draw z2'--z2--z1'--z1;
+%}}}
+ currentpicture:=currentpicture t;
+ p:=currentpicture;
+ currentpicture:=p T;
+ endchar;
+
+ endfor
+endfor
+end
diff --git a/fonts/musixtex-fonts/source/xslgenu.mf b/fonts/musixtex-fonts/source/xslgenu.mf
new file mode 100644
index 0000000000..d7193a4a80
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslgenu.mf
@@ -0,0 +1,33 @@
+min_bow:= internote;
+max_bow:=3internote;
+slope:=17.5/100;
+
+code=-1;
+
+for iht=1 upto 16:
+ for iwd=0 upto 15:
+ beginchar(incr code, 0, 0, 0);
+ mw#:=(minwidth+iwd*delwidth)*pt#;
+ define_pixels(mw);
+ x1 = y1= 0; x3= mw; y3= 2y2'= iht*internote; x2'= .5x3;
+ mheight:=y3;
+ z2-z2'= whatever*dir(angle(z3-z1)+90);
+ my_bow:=min(max_bow, slope*mw);
+ my_bow:=max(my_bow, min_bow);
+ z1'=(z1-(0,my_bow)) rotated angle(z3-z1);
+ (z1'-z2)=whatever*(z1-z2');
+ penpos1(.15thick,(angle(z3-z1)+90));
+ penpos2(thick,(angle(z3-z1)+90));
+ penpos3(.15thick,(angle(z3-z1)+90));
+ penstroke (flex(z1e,z2e,z3e));
+%{{{
+ currentpen:= pencircle;
+ draw (flex(z1,z2,z3));% draw z1--z3; draw z2'--z2--z1'--z1;
+%}}}
+ currentpicture:=currentpicture t;
+ p:=currentpicture;
+ endchar;
+
+ endfor
+endfor
+end
diff --git a/fonts/musixtex-fonts/source/xslhd.mf b/fonts/musixtex-fonts/source/xslhd.mf
new file mode 100644
index 0000000000..c20d3e84e9
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslhd.mf
@@ -0,0 +1,69 @@
+%=== xslhd.mf ============================================================
+% ick 96-08-24 modified to be "dashed" (each modification marked with WpH or ick ).
+% mods a la mods in xslhu.mf by WpH
+% ick 98-05-22 changed constants for gap, dash, pointendl, bluntendl
+%
+
+thick#:=1pt#;
+stepwidth#:=designsize/8;
+define_pixels(stepwidth);
+define_blacker_pixels(thick);
+picture save_pic;
+numheights:=16;
+numlengths:=8;%(12-96pt)
+gap:=thick; %was 1.5; WpH length of space between dashes. ick
+dash:=1.6thick; % 2.5; WpH length of each middle dash. ick
+pointendl:=-0.00dash; % -1.0; WpH length of first dash near point end.
+bluntendl:=-0.00thick; % -0.5; WpH length of last dash near blunt end.
+if unknown makedotted: makedotted:=0; fi % WpH
+path outerpath, innerpath;
+
+code=-1;
+for j=1 upto numlengths:
+ slength#:=j*12pt#;
+ define_pixels(slength);
+
+ for i=1 upto numheights:
+ beginchar(incr code, slength#, 0, 0);
+ x1=y1=0;x2=slength;y2= i*stepwidth;
+ end_angle:=min(2angle(z2-z1),90);
+ penpos1(thick,90);
+ penpos2(max(1,.15thick),min(2angle(z2-z1)+90,180));
+ outerpath:=z1r{dir(1)}..{dir(end_angle-1)}z2r; %ick
+ innerpath:=z2l{dir(end_angle-180)}..z1l{left}; %ick
+ fill outerpath--innerpath--cycle; %WpH created names for
+ % outer and inner paths.
+ %
+ % WpH start of added block to make gaps.
+ if makedotted<>1:
+ % variable makedotted has not been given a value.
+ % Dotted lines will not be made.
+ else:
+ cullit;
+ mw:=abs(x2,y2); %approximate length of curve.
+ tcount:=(mw-pointendl-bluntendl)/(gap+dash); % number of gaps.
+ tcount:=floor(tcount + .5); %round to nearest int number.
+ tinc:=((mw-pointendl-bluntendl)/tcount)/mw;
+ pickup pencircle scaled gap;
+ for k=0 upto tcount-1:
+ t:= (pointendl + .5gap)/mw + k*tinc;
+ undraw (point t of outerpath)..
+ (point (1-t) of innerpath); % for "90 degree" dash edges.
+% undraw ((point t of outerpath)+(0,1.5pt))..
+% ((point t of outerpath)-(0,1.5pt)); % for vertical edges.
+ endfor;
+ cullit;
+ fi
+ % WpH end of added block to make gaps.
+ %
+ save_pic:=currentpicture;
+ endchar;
+
+ beginchar(128+code, slength#, 0, 0);
+ currentpicture:=save_pic reflectedabout((.5slength,0),(.5slength, 1));
+ endchar;
+ endfor
+
+endfor
+end
+
diff --git a/fonts/musixtex-fonts/source/xslhd11.mf b/fonts/musixtex-fonts/source/xslhd11.mf
new file mode 100644
index 0000000000..215a47fbee
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslhd11.mf
@@ -0,0 +1,5 @@
+font_identifier:="xslhd11";
+mode_setup;
+font_size 10.24pt#;
+input xslhd;
+
diff --git a/fonts/musixtex-fonts/source/xslhd11d.mf b/fonts/musixtex-fonts/source/xslhd11d.mf
new file mode 100644
index 0000000000..025fffdf3a
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslhd11d.mf
@@ -0,0 +1,6 @@
+font_identifier:="xslhd11d";
+mode_setup;
+font_size 10.24pt#;
+makedotted=1;
+input xslhd;
+
diff --git a/fonts/musixtex-fonts/source/xslhd13.mf b/fonts/musixtex-fonts/source/xslhd13.mf
new file mode 100644
index 0000000000..930c0aef58
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslhd13.mf
@@ -0,0 +1,4 @@
+font_identifier:="xslhd13";
+mode_setup;
+font_size 12.8pt#;
+input xslhd;
diff --git a/fonts/musixtex-fonts/source/xslhd13d.mf b/fonts/musixtex-fonts/source/xslhd13d.mf
new file mode 100644
index 0000000000..ae7769c908
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslhd13d.mf
@@ -0,0 +1,5 @@
+font_identifier:="xslhd13d";
+mode_setup;
+font_size 12.8pt#;
+makedotted=1;
+input xslhd;
diff --git a/fonts/musixtex-fonts/source/xslhd16.mf b/fonts/musixtex-fonts/source/xslhd16.mf
new file mode 100644
index 0000000000..aacbd5ac1a
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslhd16.mf
@@ -0,0 +1,5 @@
+font_identifier:="xslhd16";
+mode_setup;
+font_size 16pt#;
+input xslhd;
+
diff --git a/fonts/musixtex-fonts/source/xslhd16d.mf b/fonts/musixtex-fonts/source/xslhd16d.mf
new file mode 100644
index 0000000000..9d93fb88d9
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslhd16d.mf
@@ -0,0 +1,6 @@
+font_identifier:="xslh16d";
+mode_setup;
+font_size 16pt#;
+makedotted=1;
+input xslhd;
+
diff --git a/fonts/musixtex-fonts/source/xslhd20.mf b/fonts/musixtex-fonts/source/xslhd20.mf
new file mode 100644
index 0000000000..d0bb66a5d2
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslhd20.mf
@@ -0,0 +1,4 @@
+font_identifier:="xslhd20";
+mode_setup;
+font_size 20pt#;
+input xslhd;
diff --git a/fonts/musixtex-fonts/source/xslhd20d.mf b/fonts/musixtex-fonts/source/xslhd20d.mf
new file mode 100644
index 0000000000..cb24d30d82
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslhd20d.mf
@@ -0,0 +1,5 @@
+font_identifier:="xslhd20d";
+mode_setup;
+font_size 20pt#;
+makedotted=1;
+input xslhd;
diff --git a/fonts/musixtex-fonts/source/xslhd24.mf b/fonts/musixtex-fonts/source/xslhd24.mf
new file mode 100644
index 0000000000..650eba1aa9
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslhd24.mf
@@ -0,0 +1,4 @@
+font_identifier:="xslhd24";
+mode_setup;
+font_size 24pt#;
+input xslhd;
diff --git a/fonts/musixtex-fonts/source/xslhd24d.mf b/fonts/musixtex-fonts/source/xslhd24d.mf
new file mode 100644
index 0000000000..e7a65633e9
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslhd24d.mf
@@ -0,0 +1,5 @@
+font_identifier:="xslhd24d";
+mode_setup;
+font_size 24pt#;
+makedotted=1;
+input xslhd;
diff --git a/fonts/musixtex-fonts/source/xslhd29.mf b/fonts/musixtex-fonts/source/xslhd29.mf
new file mode 100644
index 0000000000..db52074175
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslhd29.mf
@@ -0,0 +1,4 @@
+font_identifier:="xslhd24";
+mode_setup;
+font_size 28.8pt#;
+input xslhd;
diff --git a/fonts/musixtex-fonts/source/xslhd29d.mf b/fonts/musixtex-fonts/source/xslhd29d.mf
new file mode 100644
index 0000000000..3bd7e2c2d7
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslhd29d.mf
@@ -0,0 +1,5 @@
+font_identifier:="xslhd29d";
+mode_setup;
+font_size 28.8pt#;
+makedotted=1;
+input xslhd;
diff --git a/fonts/musixtex-fonts/source/xslhu.mf b/fonts/musixtex-fonts/source/xslhu.mf
new file mode 100644
index 0000000000..7c7ff1d524
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslhu.mf
@@ -0,0 +1,68 @@
+%=== xslhu.mf ============================================================
+% WpH 6-19-96 modified to be "dashed" (each modification marked with WpH).
+% 96-08-24 constants fixed (ick)
+% ick 98-05-22 changed constants for gap, dash, pointendl, bluntendl
+%
+
+thick#:=1pt#;
+stepwidth#:=designsize/8;
+define_pixels(stepwidth);
+define_blacker_pixels(thick);
+picture save_pic;
+numheights:=16;
+numlengths:=8;%(12-96pt)
+gap:=thick; %was 1.5; WpH length of space between dashes. ick
+dash:=1.6thick; % 2.5; WpH length of each middle dash. ick
+pointendl:=-0.00dash; % -1.0; WpH length of first dash near point end.
+bluntendl:=-0.00thick; % -0.5; WpH length of last dash near blunt end.
+if unknown makedotted: makedotted:=0; fi % WpH
+path outerpath, innerpath;
+
+code=-1;
+for j=1 upto numlengths:
+ slength#:=j*12pt#;
+ define_pixels(slength);
+
+ for i=1 upto numheights:
+ beginchar(incr code, slength#, 0, 0);
+ x1=y1=0;x2=slength;y2=-i*stepwidth;
+ end_angle:=max(2angle(z2-z1),-90);
+ penpos1(thick,90);
+ penpos2(max(1,.15thick),end_angle+90);
+ outerpath:=z1r{dir(1)}..{dir(end_angle-1)}z2r; %WpH
+ innerpath:=z2l{dir(end_angle+180)}..z1l{left}; %WpH
+ fill outerpath--innerpath--cycle; %WpH created names for
+ % outer and inner paths.
+ %
+ % WpH start of added block to make gaps.
+ if makedotted<>1:
+ % variable makedotted has not been given a value.
+ % Dotted lines will not be made.
+ else:
+ cullit;
+ mw:=abs(x2,y2); %approximate length of curve.
+ tcount:=(mw-pointendl-bluntendl)/(gap+dash); % number of gaps.
+ tcount:=floor(tcount + .5); %round to nearest int number.
+ tinc:=((mw-pointendl-bluntendl)/tcount)/mw;
+ pickup pencircle scaled gap;
+ for k=0 upto tcount-1:
+ t:= (pointendl + .5gap)/mw + k*tinc;
+ undraw (point t of outerpath)..
+ (point (1-t) of innerpath); % for "90 degree" dash edges.
+% undraw ((point t of outerpath)+(0,1.5pt))..
+% ((point t of outerpath)-(0,1.5pt)); % for vertical edges.
+ endfor;
+ cullit;
+ fi
+ % WpH end of added block to make gaps.
+ %
+ save_pic:=currentpicture;
+ endchar;
+
+ beginchar(128+code, slength#, 0, 0);
+ currentpicture:=save_pic reflectedabout((.5slength,0),(.5slength, 1));
+ endchar;
+ endfor
+
+endfor
+end
diff --git a/fonts/musixtex-fonts/source/xslhu11.mf b/fonts/musixtex-fonts/source/xslhu11.mf
new file mode 100644
index 0000000000..f1b0c69998
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslhu11.mf
@@ -0,0 +1,4 @@
+font_identifier:="xslhu11";
+mode_setup;
+font_size 10.24pt#;
+input xslhu.mf
diff --git a/fonts/musixtex-fonts/source/xslhu11d.mf b/fonts/musixtex-fonts/source/xslhu11d.mf
new file mode 100644
index 0000000000..cb4bc57836
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslhu11d.mf
@@ -0,0 +1,5 @@
+font_identifier:="xslhu11d";
+mode_setup;
+font_size 10.24pt#;
+makedotted=1;
+input xslhu;
diff --git a/fonts/musixtex-fonts/source/xslhu13.mf b/fonts/musixtex-fonts/source/xslhu13.mf
new file mode 100644
index 0000000000..162c503770
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslhu13.mf
@@ -0,0 +1,4 @@
+font_identifier:="xslhu13";
+mode_setup;
+font_size 12.8pt#;
+input xslhu.mf
diff --git a/fonts/musixtex-fonts/source/xslhu13d.mf b/fonts/musixtex-fonts/source/xslhu13d.mf
new file mode 100644
index 0000000000..cbee8026ad
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslhu13d.mf
@@ -0,0 +1,5 @@
+font_identifier:="xslhu13d";
+mode_setup;
+font_size 12.8pt#;
+makedotted=1;
+input xslhu;
diff --git a/fonts/musixtex-fonts/source/xslhu16.mf b/fonts/musixtex-fonts/source/xslhu16.mf
new file mode 100644
index 0000000000..6cfc184d8e
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslhu16.mf
@@ -0,0 +1,5 @@
+font_identifier:="xslhu16";
+mode_setup;
+font_size 16pt#;
+input xslhu.mf
+
diff --git a/fonts/musixtex-fonts/source/xslhu16d.mf b/fonts/musixtex-fonts/source/xslhu16d.mf
new file mode 100644
index 0000000000..0dc847a411
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslhu16d.mf
@@ -0,0 +1,6 @@
+font_identifier:="xslhu16d";
+mode_setup;
+font_size 16pt#;
+makedotted=1;
+input xslhu;
+
diff --git a/fonts/musixtex-fonts/source/xslhu20.mf b/fonts/musixtex-fonts/source/xslhu20.mf
new file mode 100644
index 0000000000..94c6f00d1b
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslhu20.mf
@@ -0,0 +1,4 @@
+font_identifier:="xslhu20";
+mode_setup;
+font_size 20pt#;
+input xslhu.mf
diff --git a/fonts/musixtex-fonts/source/xslhu20d.mf b/fonts/musixtex-fonts/source/xslhu20d.mf
new file mode 100644
index 0000000000..d9e6991c0d
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslhu20d.mf
@@ -0,0 +1,5 @@
+font_identifier:="xslhu20d";
+mode_setup;
+font_size 20pt#;
+makedotted=1;
+input xslhu;
diff --git a/fonts/musixtex-fonts/source/xslhu24.mf b/fonts/musixtex-fonts/source/xslhu24.mf
new file mode 100644
index 0000000000..399813c110
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslhu24.mf
@@ -0,0 +1,4 @@
+font_identifier:="xslhu24";
+mode_setup;
+font_size 24pt#;
+input xslhu.mf
diff --git a/fonts/musixtex-fonts/source/xslhu24d.mf b/fonts/musixtex-fonts/source/xslhu24d.mf
new file mode 100644
index 0000000000..9752354b88
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslhu24d.mf
@@ -0,0 +1,5 @@
+font_identifier:="xslhu24d";
+mode_setup;
+font_size 24pt#;
+makedotted=1;
+input xslhu
diff --git a/fonts/musixtex-fonts/source/xslhu29.mf b/fonts/musixtex-fonts/source/xslhu29.mf
new file mode 100644
index 0000000000..f5155abdc7
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslhu29.mf
@@ -0,0 +1,4 @@
+font_identifier:="xslhu29";
+mode_setup;
+font_size 28.8pt#;
+input xslhu.mf
diff --git a/fonts/musixtex-fonts/source/xslhu29d.mf b/fonts/musixtex-fonts/source/xslhu29d.mf
new file mode 100644
index 0000000000..c8224bc391
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslhu29d.mf
@@ -0,0 +1,5 @@
+font_identifier:="xslhu29d";
+mode_setup;
+font_size 28.8pt#;
+makedotted=1;
+input xslhu \ No newline at end of file
diff --git a/fonts/musixtex-fonts/source/xslhz-o.mf b/fonts/musixtex-fonts/source/xslhz-o.mf
new file mode 100644
index 0000000000..850c084e4b
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslhz-o.mf
@@ -0,0 +1,51 @@
+%=== xslhz.mf======================================================
+% WpH May 19, 1997 modified to be dashed
+% ick 98-05-22 modified constants for gap, dash, endlen.
+%
+
+thick#:=1pt#;
+stepwidth#:=4pt#;
+define_pixels(stepwidth);
+define_blacker_pixels(thick);
+picture pic;
+
+gap=thick; %was 1.5; WpH new parameter: gap length. ick
+dash=1.6thick; % 2.5; WpH new parameter: dash length. ick
+endlen=-0.0thick; % -1.0; WpH new: length of dash at ends measured to center of gap. ick
+if unknown makedotted: makedotted:=0; fi % WpH
+slope=1/100;
+
+for i=1 upto 100:
+ beginchar((i-1),0,0,0);
+ x3=-x1=.5i*stepwidth; x2=y1=y3=0; y2=slope*i*stepwidth;
+ penpos1(thick,90); penpos2(thick,90); penpos3(thick,90);
+ penstroke z1e..z2e..z3e;
+ %
+ % wph start of added block to make gaps.
+ if makedotted<>1:
+ % variable makedotted has not been given a value.
+ % Dotted lines will not be made.
+ else:
+ cullit;
+ pickup pencircle scaled gap;
+ cl:=abs(z3-z1);
+ xcount:=(cl-2endlen)/(gap+dash); % number of gaps.
+ xcount:=floor(xcount + .5); %round to nearest int number.
+ xinc:=(cl-2endlen)/xcount;
+ for j=0 upto xcount-1:
+ xcur:=x1+endlen+j*xinc;
+ undraw (xcur,y1)..(xcur,y2+.6thick);
+ endfor;
+ cullit;
+ fi
+ % wph end of added block to make gaps.
+ %
+ pic:= currentpicture;
+ endchar;
+
+ beginchar((128+i-1),0,0,0);
+ currentpicture:= pic reflectedabout(origin,right);
+ endchar;
+endfor
+end
+
diff --git a/fonts/musixtex-fonts/source/xslhz.mf b/fonts/musixtex-fonts/source/xslhz.mf
new file mode 100644
index 0000000000..00b1efd909
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslhz.mf
@@ -0,0 +1,52 @@
+%=== xslhz.mf======================================================
+% WpH May 19, 1997 modified to be dashed
+% ick 98-05-22 modified constants for gap, dash, endlen.
+%
+
+thick#:=1pt#;
+stepwidth#:=4pt#;
+define_pixels(stepwidth);
+define_blacker_pixels(thick);
+picture pic;
+
+gap=thick; %was 1.5; WpH new parameter: gap length. ick
+dash=1.6thick; % 2.5; WpH new parameter: dash length. ick
+endlen=-0.0thick; % -1.0; WpH new: length of dash at ends measured to center of gap. ick
+if unknown makedotted: makedotted:=0; fi % WpH
+slope=1/100;
+
+for i=1 upto 100:
+ beginchar((i-1),0,0,0);
+% x3=-x1=.5i*stepwidth; x2=y1=y3=0; y2=slope*i*stepwidth;
+ x3=-x1=good.x(.5i*stepwidth); x2=y1=y3=0; y2=slope*i*stepwidth;
+ penpos1(thick,90); penpos2(thick,90); penpos3(thick,90);
+ penstroke z1e..z2e..z3e;
+ %
+ % wph start of added block to make gaps.
+ if makedotted<>1:
+ % variable makedotted has not been given a value.
+ % Dotted lines will not be made.
+ else:
+ cullit;
+ pickup pencircle scaled gap;
+ cl:=abs(z3-z1);
+ xcount:=(cl-2endlen)/(gap+dash); % number of gaps.
+ xcount:=floor(xcount + .5); %round to nearest int number.
+ xinc:=(cl-2endlen)/xcount;
+ for j=0 upto xcount-1:
+ xcur:=x1+endlen+j*xinc;
+ undraw (xcur,y1)..(xcur,y2+.6thick);
+ endfor;
+ cullit;
+ fi
+ % wph end of added block to make gaps.
+ %
+ pic:= currentpicture;
+ endchar;
+
+ beginchar((128+i-1),0,0,0);
+ currentpicture:= pic reflectedabout(origin,right);
+ endchar;
+endfor
+end
+
diff --git a/fonts/musixtex-fonts/source/xslhz20.mf b/fonts/musixtex-fonts/source/xslhz20.mf
new file mode 100644
index 0000000000..e0f713c40d
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslhz20.mf
@@ -0,0 +1,5 @@
+font_identifier:="xslhz20";
+mode_setup;
+font_size 20pt#;
+input xslhz;
+
diff --git a/fonts/musixtex-fonts/source/xslhz20d.mf b/fonts/musixtex-fonts/source/xslhz20d.mf
new file mode 100644
index 0000000000..6e42e4ad92
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslhz20d.mf
@@ -0,0 +1,6 @@
+font_identifier:="xslhz20d";
+mode_setup;
+font_size 20pt#;
+makedotted=1;
+input xslhz;
+
diff --git a/fonts/musixtex-fonts/source/xslu11.mf b/fonts/musixtex-fonts/source/xslu11.mf
new file mode 100644
index 0000000000..0a11e6012f
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslu11.mf
@@ -0,0 +1,20 @@
+font_identifier:="xslu11";
+mode_setup;
+font_size 10.24pt#;
+thick#:=1pt#;
+internote#:=1.28pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= rotated 180 shifted (.5mw, mheight) enddef;
+def T= rotated 180 shifted (0,mheight) enddef;
+
+input xslgen;
diff --git a/fonts/musixtex-fonts/source/xslu11d.mf b/fonts/musixtex-fonts/source/xslu11d.mf
new file mode 100644
index 0000000000..60bb5cab98
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslu11d.mf
@@ -0,0 +1,21 @@
+font_identifier:="xslu11d";
+mode_setup;
+font_size 10.24pt#;
+makedotted=1;
+thick#:=1pt#;
+internote#:=1.28pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= rotated 180 shifted (.5mw, mheight) enddef;
+def T= rotated 180 shifted (0,mheight) enddef;
+
+input xslgen;
diff --git a/fonts/musixtex-fonts/source/xslu13.mf b/fonts/musixtex-fonts/source/xslu13.mf
new file mode 100644
index 0000000000..b9f9fb1720
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslu13.mf
@@ -0,0 +1,20 @@
+font_identifier:="xslu13";
+mode_setup;
+font_size 12.8pt#;
+thick#:=1pt#;
+internote#:=1.6pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= rotated 180 shifted (.5mw, mheight) enddef;
+def T= rotated 180 shifted (0,mheight) enddef;
+
+input xslgen;
diff --git a/fonts/musixtex-fonts/source/xslu13d.mf b/fonts/musixtex-fonts/source/xslu13d.mf
new file mode 100644
index 0000000000..f3cb4d62c6
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslu13d.mf
@@ -0,0 +1,21 @@
+font_identifier:="xslu13d";
+mode_setup;
+font_size 12.8pt#;
+makedotted=1;
+thick#:=1pt#;
+internote#:=1.6pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= rotated 180 shifted (.5mw, mheight) enddef;
+def T= rotated 180 shifted (0,mheight) enddef;
+
+input xslgen;
diff --git a/fonts/musixtex-fonts/source/xslu16.mf b/fonts/musixtex-fonts/source/xslu16.mf
new file mode 100644
index 0000000000..37d07d99ff
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslu16.mf
@@ -0,0 +1,20 @@
+font_identifier:="xslu16";
+mode_setup;
+font_size 16pt#;
+thick#:=1pt#;
+internote#:=2pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= rotated 180 shifted (.5mw, mheight) enddef;
+def T= rotated 180 shifted (0,mheight) enddef;
+
+input xslgen;
diff --git a/fonts/musixtex-fonts/source/xslu16d.mf b/fonts/musixtex-fonts/source/xslu16d.mf
new file mode 100644
index 0000000000..b7e2cdfdf1
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslu16d.mf
@@ -0,0 +1,21 @@
+font_identifier:="xslu16d";
+mode_setup;
+font_size 16pt#;
+makedotted=1;
+thick#:=1pt#;
+internote#:=2pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= rotated 180 shifted (.5mw, mheight) enddef;
+def T= rotated 180 shifted (0,mheight) enddef;
+
+input xslgen;
diff --git a/fonts/musixtex-fonts/source/xslu20.mf b/fonts/musixtex-fonts/source/xslu20.mf
new file mode 100644
index 0000000000..0a741c0f54
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslu20.mf
@@ -0,0 +1,20 @@
+font_identifier:="xslu20";
+mode_setup;
+font_size 20pt#;
+thick#:=1pt#;
+internote#:=2.5pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= rotated 180 shifted (.5mw, mheight) enddef;
+def T= rotated 180 shifted (0,mheight) enddef;
+
+input xslgen;
diff --git a/fonts/musixtex-fonts/source/xslu20d.mf b/fonts/musixtex-fonts/source/xslu20d.mf
new file mode 100644
index 0000000000..dee694e5b3
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslu20d.mf
@@ -0,0 +1,21 @@
+font_identifier:="xslu20d";
+mode_setup;
+font_size 20pt#;
+makedotted=1;
+thick#:=1pt#;
+internote#:=2.5pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= rotated 180 shifted (.5mw, mheight) enddef;
+def T= rotated 180 shifted (0,mheight) enddef;
+
+input xslgen;
diff --git a/fonts/musixtex-fonts/source/xslu24.mf b/fonts/musixtex-fonts/source/xslu24.mf
new file mode 100644
index 0000000000..f7ce9d6561
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslu24.mf
@@ -0,0 +1,20 @@
+font_identifier:="xslu24";
+mode_setup;
+font_size 24pt#;
+thick#:=1pt#;
+internote#:=3pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= rotated 180 shifted (.5mw, mheight) enddef;
+def T= rotated 180 shifted (0,mheight) enddef;
+
+input xslgen;
diff --git a/fonts/musixtex-fonts/source/xslu24d.mf b/fonts/musixtex-fonts/source/xslu24d.mf
new file mode 100644
index 0000000000..8afa8b7ec7
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslu24d.mf
@@ -0,0 +1,21 @@
+font_identifier:="xslu24d";
+mode_setup;
+font_size 24pt#;
+makedotted=1;
+thick#:=1pt#;
+internote#:=3pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= rotated 180 shifted (.5mw, mheight) enddef;
+def T= rotated 180 shifted (0,mheight) enddef;
+
+input xslgen;
diff --git a/fonts/musixtex-fonts/source/xslu29.mf b/fonts/musixtex-fonts/source/xslu29.mf
new file mode 100644
index 0000000000..68383431b3
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslu29.mf
@@ -0,0 +1,20 @@
+font_identifier:="xslu29";
+mode_setup;
+font_size 28.8pt#;
+thick#:=1pt#;
+internote#:=3.6pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= rotated 180 shifted (.5mw, mheight) enddef;
+def T= rotated 180 shifted (0,mheight) enddef;
+
+input xslgen;
diff --git a/fonts/musixtex-fonts/source/xslu29d.mf b/fonts/musixtex-fonts/source/xslu29d.mf
new file mode 100644
index 0000000000..991569d29a
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslu29d.mf
@@ -0,0 +1,21 @@
+font_identifier:="xslu29d";
+mode_setup;
+font_size 28.8pt#;
+makedotted=1;
+thick#:=1pt#;
+internote#:=3.6pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= rotated 180 shifted (.5mw, mheight) enddef;
+def T= rotated 180 shifted (0,mheight) enddef;
+
+input xslgen;
diff --git a/fonts/musixtex-fonts/source/xslud20.mf b/fonts/musixtex-fonts/source/xslud20.mf
new file mode 100644
index 0000000000..752ae989cb
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslud20.mf
@@ -0,0 +1,20 @@
+font_identifier:="xslu20";
+mode_setup;
+font_size 20pt#;
+thick#:=1pt#;
+internote#:=2.5pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= rotated 180 shifted (.5mw, mheight) enddef;
+def T= rotated 180 shifted (0,mheight) enddef;
+
+input xslgend;
diff --git a/fonts/musixtex-fonts/source/xslup20.mf b/fonts/musixtex-fonts/source/xslup20.mf
new file mode 100644
index 0000000000..2ba77fcd90
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslup20.mf
@@ -0,0 +1,20 @@
+font_identifier:="xslu20";
+mode_setup;
+font_size 20pt#;
+thick#:=1pt#;
+internote#:=2.5pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= rotated 180 shifted (.5mw, mheight) enddef;
+def T= rotated 180 shifted (0,mheight) enddef;
+
+input xslgenu;
diff --git a/fonts/musixtex-fonts/source/xslz.mf b/fonts/musixtex-fonts/source/xslz.mf
new file mode 100644
index 0000000000..7f051027ff
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslz.mf
@@ -0,0 +1,67 @@
+%=== xslz.mf=======================================================
+% WpH modified to be "dashed" (each modification marked with WpH.
+% 96-08-24 WpH-constants set (ick)
+% ick 98-05-22 modified constants for gap, dash, endlen.
+%
+thick#:=1pt#;
+nhh#:=5pt#;
+define_pixels(nhh);
+define_blacker_pixels(thick);
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+numslurs:=54;
+maxwidth:=minwidth+(numslurs-1)*delwidth;
+
+fontdimen 5: maxwidth;
+
+picture p;
+
+min_bow:= .4nhh;
+max_bow:= 1.75nhh;
+slope:= 10/100;
+
+code=-1;
+gap=thick; %was 1.5; WpH new parameter: gap length. ick
+dash=1.6thick; % 2.5; WpH new parameter: dash length. ick
+endlen=-0.0thick; % -1.0; WpH new: length of dash at ends measured to center of gap. ick
+if unknown makedotted: makedotted:=0; fi % WpH
+
+for i=1 upto numslurs:
+
+ beginchar(incr code, 0, 0, 0);
+ mw:=(minwidth+code*delwidth)*pt;
+ x3= -x1= .5mw; x2= y1= y3 = 0;
+ y2= max(min_bow, slope*mw);
+ y2:= min(y2, max_bow);
+ penpos1(.15thick,90); penpos2(thick,90); penpos3(.15thick,90);
+ penstroke (flex(z1e,z2e,z3e));
+ currentpen:= pencircle; draw (flex(z1,z2,z3));
+ %
+ % wph start of added block to make gaps.
+ if makedotted<>1:
+ % variable makedotted has not been given a value.
+ % Dotted lines will not be made.
+ else:
+ cullit;
+ pickup penrazor scaled gap;
+ xcount:=(mw-2endlen)/(gap+dash); % number of gaps.
+ xcount:=floor(xcount + .5); %round to nearest int number.
+ xinc:=(mw-2endlen)/xcount;
+ for j=0 upto xcount-1:
+ xcur:=x1+endlen+j*xinc;
+ undraw (xcur,y1)..(xcur,y2+.6thick);
+ endfor;
+ cullit;
+ fi
+ % wph end of added block to make gaps.
+ %
+ p:=currentpicture;
+ endchar;
+
+ beginchar(code+54, 0, 0, 0);
+ currentpicture:=p reflectedabout (origin, right);
+ endchar;
+
+endfor
+end
diff --git a/fonts/musixtex-fonts/source/xslz20.mf b/fonts/musixtex-fonts/source/xslz20.mf
new file mode 100644
index 0000000000..b91160db76
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslz20.mf
@@ -0,0 +1,5 @@
+font_identifier:="xslz20";
+mode_setup;
+font_size 20pt#;
+input xslz;
+
diff --git a/fonts/musixtex-fonts/source/xslz20d.mf b/fonts/musixtex-fonts/source/xslz20d.mf
new file mode 100644
index 0000000000..f1e9794d52
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xslz20d.mf
@@ -0,0 +1,6 @@
+font_identifier:="xslz20d";
+mode_setup;
+font_size 20pt#;
+makedotted=1;
+input xslz;
+
diff --git a/fonts/musixtex-fonts/source/xtie20.mf b/fonts/musixtex-fonts/source/xtie20.mf
new file mode 100644
index 0000000000..99f2454842
--- /dev/null
+++ b/fonts/musixtex-fonts/source/xtie20.mf
@@ -0,0 +1,24 @@
+font_identifier:="xtie20";
+mode_setup;
+font_size 20pt#;
+thick#:=1pt#;
+stepwidth#:=4pt#;
+define_pixels(stepwidth);
+define_blacker_pixels(thick);
+picture pic;
+
+slope=.009;
+
+for i=1 upto 100:
+ beginchar((i-1),0,0,0);
+ x3=-x1=.5i*stepwidth; x2=y1=y3=0; y2=slope*i*stepwidth;
+ penpos1(thick,90); penpos2(thick,90); penpos3(thick,90);
+ penstroke z1e..z2e..z3e;
+ pic:= currentpicture;
+ endchar;
+
+ beginchar((128+i-1),0,0,0);
+ currentpicture:= pic reflectedabout(origin,right);
+ endchar;
+endfor
+end
diff --git a/fonts/musixtex-fonts/tfm/musix11.tfm b/fonts/musixtex-fonts/tfm/musix11.tfm
new file mode 100644
index 0000000000..d0af7b6321
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/musix11.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/musix13.tfm b/fonts/musixtex-fonts/tfm/musix13.tfm
new file mode 100644
index 0000000000..2396861ee1
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/musix13.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/musix16.tfm b/fonts/musixtex-fonts/tfm/musix16.tfm
new file mode 100644
index 0000000000..67e876d904
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/musix16.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/musix20.tfm b/fonts/musixtex-fonts/tfm/musix20.tfm
new file mode 100644
index 0000000000..5c1ba81a6c
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/musix20.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/musix24.tfm b/fonts/musixtex-fonts/tfm/musix24.tfm
new file mode 100644
index 0000000000..55526535db
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/musix24.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/musix25.tfm b/fonts/musixtex-fonts/tfm/musix25.tfm
new file mode 100644
index 0000000000..9fb5688451
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/musix25.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/musix29.tfm b/fonts/musixtex-fonts/tfm/musix29.tfm
new file mode 100644
index 0000000000..6819f13ac5
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/musix29.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/musixsps.tfm b/fonts/musixtex-fonts/tfm/musixsps.tfm
new file mode 100644
index 0000000000..fcfbff6806
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/musixsps.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/musixspx.tfm b/fonts/musixtex-fonts/tfm/musixspx.tfm
new file mode 100644
index 0000000000..5bce7a2ba5
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/musixspx.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/mxsk.tfm b/fonts/musixtex-fonts/tfm/mxsk.tfm
new file mode 100644
index 0000000000..b676bdf2bc
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/mxsk.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xadf11.tfm b/fonts/musixtex-fonts/tfm/xadf11.tfm
new file mode 100644
index 0000000000..3919b04350
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xadf11.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xadf13.tfm b/fonts/musixtex-fonts/tfm/xadf13.tfm
new file mode 100644
index 0000000000..905fe83472
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xadf13.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xadf16.tfm b/fonts/musixtex-fonts/tfm/xadf16.tfm
new file mode 100644
index 0000000000..90ba8ca50f
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xadf16.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xadf20.tfm b/fonts/musixtex-fonts/tfm/xadf20.tfm
new file mode 100644
index 0000000000..766e5ad1b2
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xadf20.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xadf24.tfm b/fonts/musixtex-fonts/tfm/xadf24.tfm
new file mode 100644
index 0000000000..21a03fe8c7
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xadf24.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xadf29.tfm b/fonts/musixtex-fonts/tfm/xadf29.tfm
new file mode 100644
index 0000000000..3d0fbafe4a
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xadf29.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xgreg11.tfm b/fonts/musixtex-fonts/tfm/xgreg11.tfm
new file mode 100644
index 0000000000..c52519567a
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xgreg11.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xgreg13.tfm b/fonts/musixtex-fonts/tfm/xgreg13.tfm
new file mode 100644
index 0000000000..d074359ce2
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xgreg13.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xgreg16.tfm b/fonts/musixtex-fonts/tfm/xgreg16.tfm
new file mode 100644
index 0000000000..f81cc3d920
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xgreg16.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xgreg20.tfm b/fonts/musixtex-fonts/tfm/xgreg20.tfm
new file mode 100644
index 0000000000..0b6b7f73f4
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xgreg20.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xgreg24.tfm b/fonts/musixtex-fonts/tfm/xgreg24.tfm
new file mode 100644
index 0000000000..d09cebd82d
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xgreg24.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xgreg29.tfm b/fonts/musixtex-fonts/tfm/xgreg29.tfm
new file mode 100644
index 0000000000..1868419b2c
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xgreg29.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xppff10.tfm b/fonts/musixtex-fonts/tfm/xppff10.tfm
new file mode 100644
index 0000000000..a76a51cb9d
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xppff10.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xsld11.tfm b/fonts/musixtex-fonts/tfm/xsld11.tfm
new file mode 100644
index 0000000000..1981af1945
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xsld11.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xsld11d.tfm b/fonts/musixtex-fonts/tfm/xsld11d.tfm
new file mode 100644
index 0000000000..681a6db92c
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xsld11d.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xsld13.tfm b/fonts/musixtex-fonts/tfm/xsld13.tfm
new file mode 100644
index 0000000000..20aad4866c
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xsld13.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xsld13d.tfm b/fonts/musixtex-fonts/tfm/xsld13d.tfm
new file mode 100644
index 0000000000..b1fec66d64
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xsld13d.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xsld16.tfm b/fonts/musixtex-fonts/tfm/xsld16.tfm
new file mode 100644
index 0000000000..7cb2357dc0
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xsld16.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xsld16d.tfm b/fonts/musixtex-fonts/tfm/xsld16d.tfm
new file mode 100644
index 0000000000..d2309da112
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xsld16d.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xsld20.tfm b/fonts/musixtex-fonts/tfm/xsld20.tfm
new file mode 100644
index 0000000000..c1400fb85e
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xsld20.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xsld20d.tfm b/fonts/musixtex-fonts/tfm/xsld20d.tfm
new file mode 100644
index 0000000000..9625ceae3f
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xsld20d.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xsld24.tfm b/fonts/musixtex-fonts/tfm/xsld24.tfm
new file mode 100644
index 0000000000..1382ccc753
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xsld24.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xsld24d.tfm b/fonts/musixtex-fonts/tfm/xsld24d.tfm
new file mode 100644
index 0000000000..78e49ba127
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xsld24d.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xsld29.tfm b/fonts/musixtex-fonts/tfm/xsld29.tfm
new file mode 100644
index 0000000000..fe3da0d6fb
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xsld29.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xsld29d.tfm b/fonts/musixtex-fonts/tfm/xsld29d.tfm
new file mode 100644
index 0000000000..405f6835f7
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xsld29d.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xsldd20.tfm b/fonts/musixtex-fonts/tfm/xsldd20.tfm
new file mode 100644
index 0000000000..c1400fb85e
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xsldd20.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xsldu20.tfm b/fonts/musixtex-fonts/tfm/xsldu20.tfm
new file mode 100644
index 0000000000..c1400fb85e
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xsldu20.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslhd11.tfm b/fonts/musixtex-fonts/tfm/xslhd11.tfm
new file mode 100644
index 0000000000..eb3dec6fc5
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslhd11.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslhd11d.tfm b/fonts/musixtex-fonts/tfm/xslhd11d.tfm
new file mode 100644
index 0000000000..8732dbc3d7
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslhd11d.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslhd13.tfm b/fonts/musixtex-fonts/tfm/xslhd13.tfm
new file mode 100644
index 0000000000..c63011b4db
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslhd13.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslhd13d.tfm b/fonts/musixtex-fonts/tfm/xslhd13d.tfm
new file mode 100644
index 0000000000..8892da232b
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslhd13d.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslhd16.tfm b/fonts/musixtex-fonts/tfm/xslhd16.tfm
new file mode 100644
index 0000000000..ef845f9c9a
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslhd16.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslhd16d.tfm b/fonts/musixtex-fonts/tfm/xslhd16d.tfm
new file mode 100644
index 0000000000..fd3b88d6b2
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslhd16d.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslhd20.tfm b/fonts/musixtex-fonts/tfm/xslhd20.tfm
new file mode 100644
index 0000000000..73c15ec016
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslhd20.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslhd20d.tfm b/fonts/musixtex-fonts/tfm/xslhd20d.tfm
new file mode 100644
index 0000000000..6eab1483bd
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslhd20d.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslhd24.tfm b/fonts/musixtex-fonts/tfm/xslhd24.tfm
new file mode 100644
index 0000000000..4d13d66a3d
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslhd24.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslhd24d.tfm b/fonts/musixtex-fonts/tfm/xslhd24d.tfm
new file mode 100644
index 0000000000..ff8cf965ca
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslhd24d.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslhd29.tfm b/fonts/musixtex-fonts/tfm/xslhd29.tfm
new file mode 100644
index 0000000000..63bafecdfa
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslhd29.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslhd29d.tfm b/fonts/musixtex-fonts/tfm/xslhd29d.tfm
new file mode 100644
index 0000000000..1a6c7efcc3
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslhd29d.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslhu11.tfm b/fonts/musixtex-fonts/tfm/xslhu11.tfm
new file mode 100644
index 0000000000..820ed0df21
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslhu11.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslhu11d.tfm b/fonts/musixtex-fonts/tfm/xslhu11d.tfm
new file mode 100644
index 0000000000..745e42842c
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslhu11d.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslhu13.tfm b/fonts/musixtex-fonts/tfm/xslhu13.tfm
new file mode 100644
index 0000000000..f3dc8d5954
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslhu13.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslhu13d.tfm b/fonts/musixtex-fonts/tfm/xslhu13d.tfm
new file mode 100644
index 0000000000..05430710ee
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslhu13d.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslhu16.tfm b/fonts/musixtex-fonts/tfm/xslhu16.tfm
new file mode 100644
index 0000000000..039f2593ef
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslhu16.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslhu16d.tfm b/fonts/musixtex-fonts/tfm/xslhu16d.tfm
new file mode 100644
index 0000000000..3182a985e4
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslhu16d.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslhu20.tfm b/fonts/musixtex-fonts/tfm/xslhu20.tfm
new file mode 100644
index 0000000000..0d2c90aead
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslhu20.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslhu20d.tfm b/fonts/musixtex-fonts/tfm/xslhu20d.tfm
new file mode 100644
index 0000000000..992cd58283
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslhu20d.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslhu20m.tfm b/fonts/musixtex-fonts/tfm/xslhu20m.tfm
new file mode 100644
index 0000000000..0d2c90aead
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslhu20m.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslhu24.tfm b/fonts/musixtex-fonts/tfm/xslhu24.tfm
new file mode 100644
index 0000000000..d86b23ecd0
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslhu24.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslhu24d.tfm b/fonts/musixtex-fonts/tfm/xslhu24d.tfm
new file mode 100644
index 0000000000..5cb882fc70
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslhu24d.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslhu29.tfm b/fonts/musixtex-fonts/tfm/xslhu29.tfm
new file mode 100644
index 0000000000..fcaec5a8d7
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslhu29.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslhu29d.tfm b/fonts/musixtex-fonts/tfm/xslhu29d.tfm
new file mode 100644
index 0000000000..0dfd0a99fd
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslhu29d.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslhz20.tfm b/fonts/musixtex-fonts/tfm/xslhz20.tfm
new file mode 100644
index 0000000000..27b2fa72fb
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslhz20.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslhz20d.tfm b/fonts/musixtex-fonts/tfm/xslhz20d.tfm
new file mode 100644
index 0000000000..067292620b
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslhz20d.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslu11.tfm b/fonts/musixtex-fonts/tfm/xslu11.tfm
new file mode 100644
index 0000000000..8f3631b5ac
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslu11.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslu11d.tfm b/fonts/musixtex-fonts/tfm/xslu11d.tfm
new file mode 100644
index 0000000000..741152761f
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslu11d.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslu13.tfm b/fonts/musixtex-fonts/tfm/xslu13.tfm
new file mode 100644
index 0000000000..b4f7580f35
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslu13.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslu13d.tfm b/fonts/musixtex-fonts/tfm/xslu13d.tfm
new file mode 100644
index 0000000000..565cccf04b
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslu13d.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslu16.tfm b/fonts/musixtex-fonts/tfm/xslu16.tfm
new file mode 100644
index 0000000000..69084ccedd
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslu16.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslu16d.tfm b/fonts/musixtex-fonts/tfm/xslu16d.tfm
new file mode 100644
index 0000000000..937fd08279
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslu16d.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslu20.tfm b/fonts/musixtex-fonts/tfm/xslu20.tfm
new file mode 100644
index 0000000000..f347e04018
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslu20.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslu20d.tfm b/fonts/musixtex-fonts/tfm/xslu20d.tfm
new file mode 100644
index 0000000000..f3f6666f5f
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslu20d.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslu24.tfm b/fonts/musixtex-fonts/tfm/xslu24.tfm
new file mode 100644
index 0000000000..0472b35da0
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslu24.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslu24d.tfm b/fonts/musixtex-fonts/tfm/xslu24d.tfm
new file mode 100644
index 0000000000..3c372f4226
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslu24d.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslu29.tfm b/fonts/musixtex-fonts/tfm/xslu29.tfm
new file mode 100644
index 0000000000..dc0b323494
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslu29.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslu29d.tfm b/fonts/musixtex-fonts/tfm/xslu29d.tfm
new file mode 100644
index 0000000000..62239ffe85
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslu29d.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslud20.tfm b/fonts/musixtex-fonts/tfm/xslud20.tfm
new file mode 100644
index 0000000000..f347e04018
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslud20.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslup20.tfm b/fonts/musixtex-fonts/tfm/xslup20.tfm
new file mode 100644
index 0000000000..f347e04018
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslup20.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslz20.tfm b/fonts/musixtex-fonts/tfm/xslz20.tfm
new file mode 100644
index 0000000000..b550040181
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslz20.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xslz20d.tfm b/fonts/musixtex-fonts/tfm/xslz20d.tfm
new file mode 100644
index 0000000000..30214b20c9
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xslz20d.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/tfm/xtie20.tfm b/fonts/musixtex-fonts/tfm/xtie20.tfm
new file mode 100644
index 0000000000..352c547658
--- /dev/null
+++ b/fonts/musixtex-fonts/tfm/xtie20.tfm
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/musix11.pfb b/fonts/musixtex-fonts/type1/musix11.pfb
new file mode 100644
index 0000000000..ee7ea3346d
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/musix11.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/musix13.pfb b/fonts/musixtex-fonts/type1/musix13.pfb
new file mode 100644
index 0000000000..578cea7d53
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/musix13.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/musix16.pfb b/fonts/musixtex-fonts/type1/musix16.pfb
new file mode 100644
index 0000000000..442f47ca72
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/musix16.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/musix20.pfb b/fonts/musixtex-fonts/type1/musix20.pfb
new file mode 100644
index 0000000000..4c2386d67b
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/musix20.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/musix24.pfb b/fonts/musixtex-fonts/type1/musix24.pfb
new file mode 100644
index 0000000000..1eaf913a47
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/musix24.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/musix29.pfb b/fonts/musixtex-fonts/type1/musix29.pfb
new file mode 100644
index 0000000000..7dc711eee9
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/musix29.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/musixsps.pfb b/fonts/musixtex-fonts/type1/musixsps.pfb
new file mode 100644
index 0000000000..de32e03c2a
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/musixsps.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/musixspx.pfb b/fonts/musixtex-fonts/type1/musixspx.pfb
new file mode 100644
index 0000000000..675ec6cc9d
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/musixspx.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/mxsk.pfb b/fonts/musixtex-fonts/type1/mxsk.pfb
new file mode 100644
index 0000000000..b3c36734e4
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/mxsk.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xadf11.pfb b/fonts/musixtex-fonts/type1/xadf11.pfb
new file mode 100644
index 0000000000..8ce16e3bcc
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xadf11.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xadf13.pfb b/fonts/musixtex-fonts/type1/xadf13.pfb
new file mode 100644
index 0000000000..9982f83e17
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xadf13.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xadf16.pfb b/fonts/musixtex-fonts/type1/xadf16.pfb
new file mode 100644
index 0000000000..669c62a735
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xadf16.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xadf20.pfb b/fonts/musixtex-fonts/type1/xadf20.pfb
new file mode 100644
index 0000000000..243438fc9f
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xadf20.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xadf24.pfb b/fonts/musixtex-fonts/type1/xadf24.pfb
new file mode 100644
index 0000000000..5a8241ba89
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xadf24.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xadf29.pfb b/fonts/musixtex-fonts/type1/xadf29.pfb
new file mode 100644
index 0000000000..f36f397965
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xadf29.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xgreg11.pfb b/fonts/musixtex-fonts/type1/xgreg11.pfb
new file mode 100644
index 0000000000..6f59c7a5a4
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xgreg11.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xgreg13.pfb b/fonts/musixtex-fonts/type1/xgreg13.pfb
new file mode 100644
index 0000000000..83056be86d
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xgreg13.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xgreg16.pfb b/fonts/musixtex-fonts/type1/xgreg16.pfb
new file mode 100644
index 0000000000..bb4e16a256
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xgreg16.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xgreg20.pfb b/fonts/musixtex-fonts/type1/xgreg20.pfb
new file mode 100644
index 0000000000..b3014eadc3
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xgreg20.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xgreg24.pfb b/fonts/musixtex-fonts/type1/xgreg24.pfb
new file mode 100644
index 0000000000..f6e5ce685c
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xgreg24.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xgreg29.pfb b/fonts/musixtex-fonts/type1/xgreg29.pfb
new file mode 100644
index 0000000000..815f7f8d74
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xgreg29.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xppff10.pfb b/fonts/musixtex-fonts/type1/xppff10.pfb
new file mode 100644
index 0000000000..19286194b2
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xppff10.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xsld11.pfb b/fonts/musixtex-fonts/type1/xsld11.pfb
new file mode 100644
index 0000000000..87d2d369b1
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xsld11.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xsld11d.pfb b/fonts/musixtex-fonts/type1/xsld11d.pfb
new file mode 100644
index 0000000000..6668c55dc8
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xsld11d.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xsld13.pfb b/fonts/musixtex-fonts/type1/xsld13.pfb
new file mode 100644
index 0000000000..d06bb67e12
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xsld13.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xsld13d.pfb b/fonts/musixtex-fonts/type1/xsld13d.pfb
new file mode 100644
index 0000000000..9b02654f5c
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xsld13d.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xsld16.pfb b/fonts/musixtex-fonts/type1/xsld16.pfb
new file mode 100644
index 0000000000..4860e4edaa
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xsld16.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xsld16d.pfb b/fonts/musixtex-fonts/type1/xsld16d.pfb
new file mode 100644
index 0000000000..9a3630fe72
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xsld16d.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xsld20.pfb b/fonts/musixtex-fonts/type1/xsld20.pfb
new file mode 100644
index 0000000000..8e5673c5e3
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xsld20.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xsld20d.pfb b/fonts/musixtex-fonts/type1/xsld20d.pfb
new file mode 100644
index 0000000000..1df4d7bf70
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xsld20d.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xsld24.pfb b/fonts/musixtex-fonts/type1/xsld24.pfb
new file mode 100644
index 0000000000..dbe2b2095a
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xsld24.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xsld24d.pfb b/fonts/musixtex-fonts/type1/xsld24d.pfb
new file mode 100644
index 0000000000..724a65c6f5
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xsld24d.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xsld29.pfb b/fonts/musixtex-fonts/type1/xsld29.pfb
new file mode 100644
index 0000000000..258fbbba10
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xsld29.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xsld29d.pfb b/fonts/musixtex-fonts/type1/xsld29d.pfb
new file mode 100644
index 0000000000..c5d2a2d66c
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xsld29d.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xsldd20.pfb b/fonts/musixtex-fonts/type1/xsldd20.pfb
new file mode 100644
index 0000000000..4679de4053
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xsldd20.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xsldu20.pfb b/fonts/musixtex-fonts/type1/xsldu20.pfb
new file mode 100644
index 0000000000..964114affa
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xsldu20.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslhd11.pfb b/fonts/musixtex-fonts/type1/xslhd11.pfb
new file mode 100644
index 0000000000..101bc9c1ca
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslhd11.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslhd11d.pfb b/fonts/musixtex-fonts/type1/xslhd11d.pfb
new file mode 100644
index 0000000000..b686a2512a
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslhd11d.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslhd13.pfb b/fonts/musixtex-fonts/type1/xslhd13.pfb
new file mode 100644
index 0000000000..bf1b6ea275
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslhd13.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslhd13d.pfb b/fonts/musixtex-fonts/type1/xslhd13d.pfb
new file mode 100644
index 0000000000..4cc4a28c66
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslhd13d.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslhd16.pfb b/fonts/musixtex-fonts/type1/xslhd16.pfb
new file mode 100644
index 0000000000..e1fe1e4278
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslhd16.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslhd16d.pfb b/fonts/musixtex-fonts/type1/xslhd16d.pfb
new file mode 100644
index 0000000000..7059a6d48a
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslhd16d.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslhd20.pfb b/fonts/musixtex-fonts/type1/xslhd20.pfb
new file mode 100644
index 0000000000..95467167ad
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslhd20.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslhd20d.pfb b/fonts/musixtex-fonts/type1/xslhd20d.pfb
new file mode 100644
index 0000000000..aa8b1443e2
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslhd20d.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslhd24.pfb b/fonts/musixtex-fonts/type1/xslhd24.pfb
new file mode 100644
index 0000000000..4846777eac
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslhd24.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslhd24d.pfb b/fonts/musixtex-fonts/type1/xslhd24d.pfb
new file mode 100644
index 0000000000..f5ffb74bdb
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslhd24d.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslhd29.pfb b/fonts/musixtex-fonts/type1/xslhd29.pfb
new file mode 100644
index 0000000000..656b1deba1
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslhd29.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslhd29d.pfb b/fonts/musixtex-fonts/type1/xslhd29d.pfb
new file mode 100644
index 0000000000..3e7965715f
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslhd29d.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslhu11.pfb b/fonts/musixtex-fonts/type1/xslhu11.pfb
new file mode 100644
index 0000000000..f7b99aabb1
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslhu11.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslhu11d.pfb b/fonts/musixtex-fonts/type1/xslhu11d.pfb
new file mode 100644
index 0000000000..32021a2659
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslhu11d.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslhu13.pfb b/fonts/musixtex-fonts/type1/xslhu13.pfb
new file mode 100644
index 0000000000..905daea948
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslhu13.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslhu13d.pfb b/fonts/musixtex-fonts/type1/xslhu13d.pfb
new file mode 100644
index 0000000000..6d9c5c304d
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslhu13d.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslhu16.pfb b/fonts/musixtex-fonts/type1/xslhu16.pfb
new file mode 100644
index 0000000000..95df3794ef
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslhu16.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslhu16d.pfb b/fonts/musixtex-fonts/type1/xslhu16d.pfb
new file mode 100644
index 0000000000..884065dfc4
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslhu16d.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslhu20.pfb b/fonts/musixtex-fonts/type1/xslhu20.pfb
new file mode 100644
index 0000000000..511a62085e
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslhu20.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslhu20d.pfb b/fonts/musixtex-fonts/type1/xslhu20d.pfb
new file mode 100644
index 0000000000..1a20c33440
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslhu20d.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslhu24.pfb b/fonts/musixtex-fonts/type1/xslhu24.pfb
new file mode 100644
index 0000000000..3a82fd6c77
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslhu24.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslhu24d.pfb b/fonts/musixtex-fonts/type1/xslhu24d.pfb
new file mode 100644
index 0000000000..091be8841b
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslhu24d.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslhu29.pfb b/fonts/musixtex-fonts/type1/xslhu29.pfb
new file mode 100644
index 0000000000..63eda2e3b6
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslhu29.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslhu29d.pfb b/fonts/musixtex-fonts/type1/xslhu29d.pfb
new file mode 100644
index 0000000000..6d1b510953
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslhu29d.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslhz20.pfb b/fonts/musixtex-fonts/type1/xslhz20.pfb
new file mode 100644
index 0000000000..10109395d4
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslhz20.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslhz20d.pfb b/fonts/musixtex-fonts/type1/xslhz20d.pfb
new file mode 100644
index 0000000000..ba1e1db87f
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslhz20d.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslu11.pfb b/fonts/musixtex-fonts/type1/xslu11.pfb
new file mode 100644
index 0000000000..0e8e459025
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslu11.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslu11d.pfb b/fonts/musixtex-fonts/type1/xslu11d.pfb
new file mode 100644
index 0000000000..0496e57590
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslu11d.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslu13.pfb b/fonts/musixtex-fonts/type1/xslu13.pfb
new file mode 100644
index 0000000000..b4975a48d6
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslu13.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslu13d.pfb b/fonts/musixtex-fonts/type1/xslu13d.pfb
new file mode 100644
index 0000000000..f9fbaaa9f2
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslu13d.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslu16.pfb b/fonts/musixtex-fonts/type1/xslu16.pfb
new file mode 100644
index 0000000000..e49660ae2d
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslu16.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslu16d.pfb b/fonts/musixtex-fonts/type1/xslu16d.pfb
new file mode 100644
index 0000000000..89d83399b3
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslu16d.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslu20.pfb b/fonts/musixtex-fonts/type1/xslu20.pfb
new file mode 100644
index 0000000000..96650b5e9d
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslu20.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslu20d.pfb b/fonts/musixtex-fonts/type1/xslu20d.pfb
new file mode 100644
index 0000000000..e28edd6ec0
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslu20d.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslu24.pfb b/fonts/musixtex-fonts/type1/xslu24.pfb
new file mode 100644
index 0000000000..09636aa36f
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslu24.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslu24d.pfb b/fonts/musixtex-fonts/type1/xslu24d.pfb
new file mode 100644
index 0000000000..f1a22cefff
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslu24d.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslu29.pfb b/fonts/musixtex-fonts/type1/xslu29.pfb
new file mode 100644
index 0000000000..26d2084792
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslu29.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslu29d.pfb b/fonts/musixtex-fonts/type1/xslu29d.pfb
new file mode 100644
index 0000000000..b1130bb4dc
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslu29d.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslud20.pfb b/fonts/musixtex-fonts/type1/xslud20.pfb
new file mode 100644
index 0000000000..f48ecfbd37
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslud20.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslup20.pfb b/fonts/musixtex-fonts/type1/xslup20.pfb
new file mode 100644
index 0000000000..6bc5c2d486
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslup20.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslz20.pfb b/fonts/musixtex-fonts/type1/xslz20.pfb
new file mode 100644
index 0000000000..10ccbe5ff7
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslz20.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xslz20d.pfb b/fonts/musixtex-fonts/type1/xslz20d.pfb
new file mode 100644
index 0000000000..95ce432008
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xslz20d.pfb
Binary files differ
diff --git a/fonts/musixtex-fonts/type1/xtie20.pfb b/fonts/musixtex-fonts/type1/xtie20.pfb
new file mode 100644
index 0000000000..2751424a62
--- /dev/null
+++ b/fonts/musixtex-fonts/type1/xtie20.pfb
Binary files differ