chiark / gitweb /
Import upstream version 5.3. arkkra
authorMark Wooding <mdw@distorted.org.uk>
Mon, 22 Jan 2007 12:35:19 +0000 (12:35 +0000)
committerMark Wooding <mdw@distorted.org.uk>
Mon, 22 Jan 2007 12:35:19 +0000 (12:35 +0000)
294 files changed:
mup/docs/README0 [new file with mode: 0644]
mup/docs/faq.txt [new file with mode: 0644]
mup/docs/license.txt [new file with mode: 0644]
mup/docs/mkmupfnt.1 [new file with mode: 0644]
mup/docs/mkmupfnt.ps [new file with mode: 0644]
mup/docs/mup.1 [new file with mode: 0644]
mup/docs/mup.ps [new file with mode: 0644]
mup/docs/mupdisp.1 [new file with mode: 0644]
mup/docs/mupdisp.ps [new file with mode: 0644]
mup/docs/mupfeat.txt [new file with mode: 0644]
mup/docs/mupmate.1 [new file with mode: 0644]
mup/docs/mupmate.ps [new file with mode: 0644]
mup/docs/mupprnt.1 [new file with mode: 0644]
mup/docs/mupprnt.ps [new file with mode: 0644]
mup/docs/mupqref.ps [new file with mode: 0644]
mup/docs/overview.txt [new file with mode: 0644]
mup/docs/register.txt [new file with mode: 0644]
mup/docs/sample.mup [new file with mode: 0644]
mup/docs/sample.ps [new file with mode: 0644]
mup/docs/star.mup [new file with mode: 0644]
mup/docs/star.ps [new file with mode: 0644]
mup/docs/template.mup [new file with mode: 0644]
mup/docs/uguide.ps [new file with mode: 0644]
mup/docs/uguide/adjust.html [new file with mode: 0644]
mup/docs/uguide/altinp.html [new file with mode: 0644]
mup/docs/uguide/bars.html [new file with mode: 0644]
mup/docs/uguide/basics.html [new file with mode: 0644]
mup/docs/uguide/brackmac.html [new file with mode: 0644]
mup/docs/uguide/breathmk.html [new file with mode: 0644]
mup/docs/uguide/cadenza.html [new file with mode: 0644]
mup/docs/uguide/chant.html [new file with mode: 0644]
mup/docs/uguide/chordinp.html [new file with mode: 0644]
mup/docs/uguide/chrdattr.html [new file with mode: 0644]
mup/docs/uguide/cmdargs.html [new file with mode: 0644]
mup/docs/uguide/contexts.html [new file with mode: 0644]
mup/docs/uguide/cres.html [new file with mode: 0644]
mup/docs/uguide/crossbar.html [new file with mode: 0644]
mup/docs/uguide/crossst.html [new file with mode: 0644]
mup/docs/uguide/debug.html [new file with mode: 0644]
mup/docs/uguide/fontfile.html [new file with mode: 0644]
mup/docs/uguide/gensyn.html [new file with mode: 0644]
mup/docs/uguide/headfoot.html [new file with mode: 0644]
mup/docs/uguide/heeltoe.html [new file with mode: 0644]
mup/docs/uguide/ichdattr.html [new file with mode: 0644]
mup/docs/uguide/ifclause.html [new file with mode: 0644]
mup/docs/uguide/include.html [new file with mode: 0644]
mup/docs/uguide/index.html [new file with mode: 0644]
mup/docs/uguide/intro.html [new file with mode: 0644]
mup/docs/uguide/invisbar.html [new file with mode: 0644]
mup/docs/uguide/linecurv.html [new file with mode: 0644]
mup/docs/uguide/lyrics.html [new file with mode: 0644]
mup/docs/uguide/macros.html [new file with mode: 0644]
mup/docs/uguide/mantup.html [new file with mode: 0644]
mup/docs/uguide/manual.html [new file with mode: 0644]
mup/docs/uguide/midi.html [new file with mode: 0644]
mup/docs/uguide/midmeas.html [new file with mode: 0644]
mup/docs/uguide/mixtsig.html [new file with mode: 0644]
mup/docs/uguide/mugex10.gif [new file with mode: 0644]
mup/docs/uguide/mugex100.gif [new file with mode: 0644]
mup/docs/uguide/mugex101.gif [new file with mode: 0644]
mup/docs/uguide/mugex11.gif [new file with mode: 0644]
mup/docs/uguide/mugex12.gif [new file with mode: 0644]
mup/docs/uguide/mugex13.gif [new file with mode: 0644]
mup/docs/uguide/mugex14.gif [new file with mode: 0644]
mup/docs/uguide/mugex15.gif [new file with mode: 0644]
mup/docs/uguide/mugex16.gif [new file with mode: 0644]
mup/docs/uguide/mugex17.gif [new file with mode: 0644]
mup/docs/uguide/mugex18.gif [new file with mode: 0644]
mup/docs/uguide/mugex19.gif [new file with mode: 0644]
mup/docs/uguide/mugex2.gif [new file with mode: 0644]
mup/docs/uguide/mugex20.gif [new file with mode: 0644]
mup/docs/uguide/mugex21.gif [new file with mode: 0644]
mup/docs/uguide/mugex22.gif [new file with mode: 0644]
mup/docs/uguide/mugex23.gif [new file with mode: 0644]
mup/docs/uguide/mugex24.gif [new file with mode: 0644]
mup/docs/uguide/mugex25.gif [new file with mode: 0644]
mup/docs/uguide/mugex26.gif [new file with mode: 0644]
mup/docs/uguide/mugex27.gif [new file with mode: 0644]
mup/docs/uguide/mugex28.gif [new file with mode: 0644]
mup/docs/uguide/mugex29.gif [new file with mode: 0644]
mup/docs/uguide/mugex3.gif [new file with mode: 0644]
mup/docs/uguide/mugex30.gif [new file with mode: 0644]
mup/docs/uguide/mugex31.gif [new file with mode: 0644]
mup/docs/uguide/mugex32.gif [new file with mode: 0644]
mup/docs/uguide/mugex33.gif [new file with mode: 0644]
mup/docs/uguide/mugex34.gif [new file with mode: 0644]
mup/docs/uguide/mugex35.gif [new file with mode: 0644]
mup/docs/uguide/mugex36.gif [new file with mode: 0644]
mup/docs/uguide/mugex37.gif [new file with mode: 0644]
mup/docs/uguide/mugex38.gif [new file with mode: 0644]
mup/docs/uguide/mugex39.gif [new file with mode: 0644]
mup/docs/uguide/mugex4.gif [new file with mode: 0644]
mup/docs/uguide/mugex40.gif [new file with mode: 0644]
mup/docs/uguide/mugex41.gif [new file with mode: 0644]
mup/docs/uguide/mugex42.gif [new file with mode: 0644]
mup/docs/uguide/mugex43.gif [new file with mode: 0644]
mup/docs/uguide/mugex44.gif [new file with mode: 0644]
mup/docs/uguide/mugex45.gif [new file with mode: 0644]
mup/docs/uguide/mugex46.gif [new file with mode: 0644]
mup/docs/uguide/mugex47.gif [new file with mode: 0644]
mup/docs/uguide/mugex48.gif [new file with mode: 0644]
mup/docs/uguide/mugex49.gif [new file with mode: 0644]
mup/docs/uguide/mugex5.gif [new file with mode: 0644]
mup/docs/uguide/mugex50.gif [new file with mode: 0644]
mup/docs/uguide/mugex51.gif [new file with mode: 0644]
mup/docs/uguide/mugex52.gif [new file with mode: 0644]
mup/docs/uguide/mugex53.gif [new file with mode: 0644]
mup/docs/uguide/mugex54.gif [new file with mode: 0644]
mup/docs/uguide/mugex55.gif [new file with mode: 0644]
mup/docs/uguide/mugex56.gif [new file with mode: 0644]
mup/docs/uguide/mugex57.gif [new file with mode: 0644]
mup/docs/uguide/mugex58.gif [new file with mode: 0644]
mup/docs/uguide/mugex59.gif [new file with mode: 0644]
mup/docs/uguide/mugex6.gif [new file with mode: 0644]
mup/docs/uguide/mugex60.gif [new file with mode: 0644]
mup/docs/uguide/mugex61.gif [new file with mode: 0644]
mup/docs/uguide/mugex62.gif [new file with mode: 0644]
mup/docs/uguide/mugex63.gif [new file with mode: 0644]
mup/docs/uguide/mugex64.gif [new file with mode: 0644]
mup/docs/uguide/mugex65.gif [new file with mode: 0644]
mup/docs/uguide/mugex66.gif [new file with mode: 0644]
mup/docs/uguide/mugex67.gif [new file with mode: 0644]
mup/docs/uguide/mugex68.gif [new file with mode: 0644]
mup/docs/uguide/mugex69.gif [new file with mode: 0644]
mup/docs/uguide/mugex7.gif [new file with mode: 0644]
mup/docs/uguide/mugex70.gif [new file with mode: 0644]
mup/docs/uguide/mugex71.gif [new file with mode: 0644]
mup/docs/uguide/mugex72.gif [new file with mode: 0644]
mup/docs/uguide/mugex73.gif [new file with mode: 0644]
mup/docs/uguide/mugex74.gif [new file with mode: 0644]
mup/docs/uguide/mugex75.gif [new file with mode: 0644]
mup/docs/uguide/mugex76.gif [new file with mode: 0644]
mup/docs/uguide/mugex77.gif [new file with mode: 0644]
mup/docs/uguide/mugex78.gif [new file with mode: 0644]
mup/docs/uguide/mugex79.gif [new file with mode: 0644]
mup/docs/uguide/mugex8.gif [new file with mode: 0644]
mup/docs/uguide/mugex80.gif [new file with mode: 0644]
mup/docs/uguide/mugex81.gif [new file with mode: 0644]
mup/docs/uguide/mugex82.gif [new file with mode: 0644]
mup/docs/uguide/mugex83.gif [new file with mode: 0644]
mup/docs/uguide/mugex84.gif [new file with mode: 0644]
mup/docs/uguide/mugex85.gif [new file with mode: 0644]
mup/docs/uguide/mugex86.gif [new file with mode: 0644]
mup/docs/uguide/mugex87.gif [new file with mode: 0644]
mup/docs/uguide/mugex88.gif [new file with mode: 0644]
mup/docs/uguide/mugex89.gif [new file with mode: 0644]
mup/docs/uguide/mugex9.gif [new file with mode: 0644]
mup/docs/uguide/mugex90.gif [new file with mode: 0644]
mup/docs/uguide/mugex91.gif [new file with mode: 0644]
mup/docs/uguide/mugex92.gif [new file with mode: 0644]
mup/docs/uguide/mugex93.gif [new file with mode: 0644]
mup/docs/uguide/mugex94.gif [new file with mode: 0644]
mup/docs/uguide/mugex95.gif [new file with mode: 0644]
mup/docs/uguide/mugex96.gif [new file with mode: 0644]
mup/docs/uguide/mugex97.gif [new file with mode: 0644]
mup/docs/uguide/mugex98.gif [new file with mode: 0644]
mup/docs/uguide/mugex99.gif [new file with mode: 0644]
mup/docs/uguide/multirst.html [new file with mode: 0644]
mup/docs/uguide/multsong.html [new file with mode: 0644]
mup/docs/uguide/muschar.gif [new file with mode: 0644]
mup/docs/uguide/music.html [new file with mode: 0644]
mup/docs/uguide/muspaper.html [new file with mode: 0644]
mup/docs/uguide/mussym.html [new file with mode: 0644]
mup/docs/uguide/newscore.html [new file with mode: 0644]
mup/docs/uguide/noteattr.html [new file with mode: 0644]
mup/docs/uguide/octave.html [new file with mode: 0644]
mup/docs/uguide/oddeven.html [new file with mode: 0644]
mup/docs/uguide/param.html [new file with mode: 0644]
mup/docs/uguide/pedal.html [new file with mode: 0644]
mup/docs/uguide/phrase.html [new file with mode: 0644]
mup/docs/uguide/pianored.html [new file with mode: 0644]
mup/docs/uguide/prnttext.html [new file with mode: 0644]
mup/docs/uguide/pstools.html [new file with mode: 0644]
mup/docs/uguide/register.html [new file with mode: 0644]
mup/docs/uguide/roll.html [new file with mode: 0644]
mup/docs/uguide/running.html [new file with mode: 0644]
mup/docs/uguide/shaped.html [new file with mode: 0644]
mup/docs/uguide/sharehd.html [new file with mode: 0644]
mup/docs/uguide/slashmrk.html [new file with mode: 0644]
mup/docs/uguide/stuff.html [new file with mode: 0644]
mup/docs/uguide/tabstaff.html [new file with mode: 0644]
mup/docs/uguide/tags.html [new file with mode: 0644]
mup/docs/uguide/tempochg.html [new file with mode: 0644]
mup/docs/uguide/textmark.html [new file with mode: 0644]
mup/docs/uguide/textstr.html [new file with mode: 0644]
mup/docs/uguide/trnspose.html [new file with mode: 0644]
mup/docs/uguide/tuplets.html [new file with mode: 0644]
mup/docs/uguide/utilpgms.html [new file with mode: 0644]
mup/docs/uguide/verses.html [new file with mode: 0644]
mup/docs/whatsnew.html [new file with mode: 0644]
mup/docs/whatsnew.txt [new file with mode: 0644]
mup/makefile [new file with mode: 0644]
mup/mkmupfnt/mkmupfnt.c [new file with mode: 0644]
mup/mup/abshorz.c [new file with mode: 0644]
mup/mup/absvert.c [new file with mode: 0644]
mup/mup/assign.c [new file with mode: 0644]
mup/mup/beaming.c [new file with mode: 0644]
mup/mup/beamstem.c [new file with mode: 0644]
mup/mup/brac.c [new file with mode: 0644]
mup/mup/charinfo.c [new file with mode: 0644]
mup/mup/check.c [new file with mode: 0644]
mup/mup/debug.c [new file with mode: 0644]
mup/mup/defines.h [new file with mode: 0644]
mup/mup/errors.c [new file with mode: 0644]
mup/mup/extchar.h [new file with mode: 0644]
mup/mup/extchtbl.c [new file with mode: 0644]
mup/mup/font.c [new file with mode: 0644]
mup/mup/fontdata.c [new file with mode: 0644]
mup/mup/globals.c [new file with mode: 0644]
mup/mup/globals.h [new file with mode: 0644]
mup/mup/grpsyl.c [new file with mode: 0644]
mup/mup/ifgram.c [new file with mode: 0644]
mup/mup/lex.c [new file with mode: 0644]
mup/mup/locvar.c [new file with mode: 0644]
mup/mup/lyrics.c [new file with mode: 0644]
mup/mup/macros.c [new file with mode: 0644]
mup/mup/main.c [new file with mode: 0644]
mup/mup/mainlist.c [new file with mode: 0644]
mup/mup/map.c [new file with mode: 0644]
mup/mup/midi.c [new file with mode: 0644]
mup/mup/midiutil.c [new file with mode: 0644]
mup/mup/mkchords.c [new file with mode: 0644]
mup/mup/muschar.h [new file with mode: 0644]
mup/mup/muschtbl.c [new file with mode: 0644]
mup/mup/nxtstrch.c [new file with mode: 0644]
mup/mup/parstssv.c [new file with mode: 0644]
mup/mup/parstuff.c [new file with mode: 0644]
mup/mup/phrase.c [new file with mode: 0644]
mup/mup/plutils.c [new file with mode: 0644]
mup/mup/print.c [new file with mode: 0644]
mup/mup/prntdata.c [new file with mode: 0644]
mup/mup/prntmisc.c [new file with mode: 0644]
mup/mup/prnttab.c [new file with mode: 0644]
mup/mup/prolog.c [new file with mode: 0644]
mup/mup/range.c [new file with mode: 0644]
mup/mup/rational.c [new file with mode: 0644]
mup/mup/rational.h [new file with mode: 0644]
mup/mup/relvert.c [new file with mode: 0644]
mup/mup/restsyl.c [new file with mode: 0644]
mup/mup/roll.c [new file with mode: 0644]
mup/mup/setgrps.c [new file with mode: 0644]
mup/mup/setnotes.c [new file with mode: 0644]
mup/mup/ssv.c [new file with mode: 0644]
mup/mup/ssvused.h [new file with mode: 0644]
mup/mup/structs.h [new file with mode: 0644]
mup/mup/stuff.c [new file with mode: 0644]
mup/mup/symtbl.c [new file with mode: 0644]
mup/mup/tie.c [new file with mode: 0644]
mup/mup/trantab.c [new file with mode: 0644]
mup/mup/trnspose.c [new file with mode: 0644]
mup/mup/undrscre.c [new file with mode: 0644]
mup/mup/utils.c [new file with mode: 0644]
mup/mup/ytab.c [new file with mode: 0644]
mup/mup/ytab.h [new file with mode: 0644]
mup/mupdisp/at386.c [new file with mode: 0644]
mup/mupdisp/dispttyp.h [new file with mode: 0644]
mup/mupdisp/do_cmd.c [new file with mode: 0644]
mup/mupdisp/dos.c [new file with mode: 0644]
mup/mupdisp/genfile.c [new file with mode: 0644]
mup/mupdisp/help.bm [new file with mode: 0644]
mup/mupdisp/init.c [new file with mode: 0644]
mup/mupdisp/linvga.c [new file with mode: 0644]
mup/mupdisp/mupdisp.c [new file with mode: 0644]
mup/mupdisp/mupdisp.h [new file with mode: 0644]
mup/mupdisp/waitmsg.bm [new file with mode: 0644]
mup/mupdisp/xterm.c [new file with mode: 0644]
mup/mupmate/Config.C [new file with mode: 0644]
mup/mupmate/Config.H [new file with mode: 0644]
mup/mupmate/Edit.C [new file with mode: 0644]
mup/mupmate/Edit.H [new file with mode: 0644]
mup/mupmate/File.C [new file with mode: 0644]
mup/mupmate/File.H [new file with mode: 0644]
mup/mupmate/Help.C [new file with mode: 0644]
mup/mupmate/Help.H [new file with mode: 0644]
mup/mupmate/Main.C [new file with mode: 0644]
mup/mupmate/Main.H [new file with mode: 0644]
mup/mupmate/Preferences.C [new file with mode: 0644]
mup/mupmate/Preferences.H [new file with mode: 0644]
mup/mupmate/Run.C [new file with mode: 0644]
mup/mupmate/Run.H [new file with mode: 0644]
mup/mupmate/globals.H [new file with mode: 0644]
mup/mupmate/license.C [new file with mode: 0644]
mup/mupmate/mup16.xpm [new file with mode: 0644]
mup/mupmate/mup32.xpm [new file with mode: 0644]
mup/mupmate/mup48.xpm [new file with mode: 0644]
mup/mupmate/mupicons.ico [new file with mode: 0644]
mup/mupmate/mupmate.rc [new file with mode: 0644]
mup/mupmate/regform.C [new file with mode: 0644]
mup/mupmate/resource.h [new file with mode: 0644]
mup/mupmate/template.C [new file with mode: 0644]
mup/mupmate/utils.C [new file with mode: 0644]
mup/mupmate/utils.H [new file with mode: 0644]
mup/mupprnt [new file with mode: 0755]
mup_5.3.orig.tar.gz [new file with mode: 0644]

diff --git a/mup/docs/README0 b/mup/docs/README0
new file mode 100644 (file)
index 0000000..81a78c3
--- /dev/null
@@ -0,0 +1,172 @@
+
+                          Compiling Mup for UNIX
+
+       1.  Compiling Mup for UNIX
+
+       Mup has been compiled successfully on a wide variety of
+       UNIX-type systems, including Linux, UNIX SV_R4, and Solaris.
+       We cannot guarantee that it will work on your system, but it
+       generally ports with no more than minimal changes.
+
+       Download the mup53src.tar.gz Mup source package file and
+       unpack it:
+          gunzip mup53src.tar.gz
+          tar xf mup53src.tar
+
+       Alternately, you can download the RPM format Mup source
+       package and install it as you would any RPM package:
+          rpm -i mup-5.3-0.src.rpm
+
+       Installing the source package will create a mup-5.3
+       directory.  Go to that directory.
+          cd mup-5.3
+       There is a simple makefile provided, which should work on
+       most systems, so all you need to do is:
+          make install
+       You can edit the makefile if necessary for your environment.
+       Comments at the top of the makefile describe suggested
+       modifications if it doesn't work for you as is.  Note that
+       if you want to install in a system directory (like the
+       default location /usr/bin) you will need to be root for the
+       installation step. Otherwise building Mup requires no
+       special privileges.
+
+       If for some reason the makefile doesn't work, you can
+       compile Mup and any of the optional utility programs
+       (mupdisp, mkmupfnt, and mupmate) manually.  For compling Mup
+       itself, generally, something like the following will work:
+          cd mup
+          cc -o mup *.c -lm
+       For most UNIX-like compilers, the "-o mup" will cause the
+       program to be put into a file called "mup," and the "-lm"
+       will cause the math library to be included (That's a lower-
+       case letter "el" not a one).  You may also want to use other
+       options. For example, for many compilers "-O" (that's a
+       capital letter "oh" not a zero) will run the optimizer, and
+       "-s" will strip the resulting program to save disk space.
+
+       Copy mup into your $HOME/bin or a similar directory in your
+       $PATH.
+          cp mup $HOME/bin/mup
+
+       If you already have a means of displaying PostScript files,
+       such as gv, ghostview, or pageview, you can simply pipe the
+       output of Mup into your display program.  Or you can use the
+       mupdisp program in connection with Ghostscript, which is
+       free. You can download Ghostscript from
+       http://www.cs.wisc.edu/~ghost, or
+       http://www.ghostscript.com/.  We've found that on some
+       systems, Ghostscript compiles with lots of warnings, but it
+       works okay anyway.
+
+       Once you have installed Ghostscript, compile the mupdisp
+       program for displaying Mup output on screen. See the comment
+       at the top of mupdisp.c for suggestions on compiler options
+       to try.
+
+       Copy mupdisp into your $HOME/bin or similar directory.
+          cp mupdisp $HOME/bin/mupdisp
+
+       The mupdisp program works on the AT386 $TERM type under UNIX
+       x86 or under X-windows. If you have a different display
+       type, you may need to write your own display functions. In
+       most cases, you'll only need to write 6 short functions, and
+       you can use the examples in at386.c, dos.c, or xterm.c for a
+       general template of the functions. You will also need to
+       update dispttyp.h and init.c appropriately.
+
+       If you want to supply your own fonts to override the
+       standard Mup fonts, you can compile the mkmupfnt program:
+          cd mkmupfnt cc -o mkmupfnt mkmupfnt.c
+
+       The Mupmate program provide a menu-driven interface on top
+       of Mup.  It is built on top of the FLTK library, so you will
+       need to have the FLTK development package. You can get this
+       from http://www.fltk.org Get the latest version in the 1.1.x
+       series (we built with 1.1.7); don't get from the 2.x series.
+       Mupmate is written in C++, so you will need a C++ compiler,
+       such as g++.  See the top level makefile for typical
+       compilation options. FLTK normally comes with its own copies
+       of libjpg, libpng, and libz (compression) libraries, but it
+       will usually work with the generic versions of those
+       libraries as well.  You will also need standard X-windows
+       libraries: libX11, libXext, and libXpm.
+
+       A shell script called "mupprnt" is included for printing Mup
+       files using Ghostscript.  Copy mupprnt to your $HOME/bin or
+       other appropriate directory.
+          cp mupprnt $HOME/bin/mupprnt
+       You will need to set the GS_DEVICE shell variable to the
+       proper value for your printer. If you don't know what to set
+       it to, the comment at the top of mupprnt may help, or check
+       your Ghostscript documentation.  You could also just use the
+       print option on your PostScript viewer such as gv.
+
+       Once you have everything installed, you can remove the .tar
+       file if you wish, to free up disk space.
+          rm mup53src.tar
+
+       Please let us know if you need any workarounds for compiling
+       on your system. We want to try to make Mup as portable as
+       possible.
+
+       2.  Getting Mup running for the first time
+
+       Once you get Mup to compile successfully, try running it.
+       The first time you run Mup, it should give you a message
+       indicating Mup is shareware, and asking you to read the Mup
+       license agreement. It will then tell you to create a
+       particular file.  By creating this file, you agree to abide
+       by the Mup license, and Mup will be turned on for normal
+       operation.
+
+       Try running Mup on the sample input files (sample.mup and
+       star.mup ).  Verify that the output you get matches the
+       corresponding sample output files (sample.ps and star.ps ).
+       You will find differences in some of the numbers, comments,
+       timestamp, filenames, etc, but otherwise, in general the
+       PostScript output you get should be similar to the sample
+       output files provided, and if you display them, the results
+       should look pretty much identical.
+
+       If Mup fails to run properly on the sample files, either
+       your system has uncovered a bug that we haven't seen yet or
+       your machine has some incompatibility. You can turn on
+       debugging, by running with the -dN option, where N is a
+       bitmap of debugging flags, to help pinpoint where bugs may
+       be. The Mup User's Guide explains the bits of the debugging
+       flags. If you get stuck, you may contact us at
+       support@arkkra.com and we will try to help.
+
+       If you need to make any changes in order to get Mup to
+       compile and run successfully, please let us know.  If you
+       find anything confusing, we'd like to know that too.  We
+       want Mup to be as solid, portable, useful, and easy to use
+       as possible.
+
+       Also, please let us know if there are ways we can improve
+       the Mup documentation.
+
+       If you receive messages beginning with "internal error" this
+       usually indicates a program bug, so we'd like to know about
+       them. An exception is when you get a message about being
+       unable to allocate memory when there really isn't any memory
+       left. If you get other internal errors, please send us a
+       copy of an input file and any other information that may
+       help us reproduce the problem, so we can try to fix it in
+       the next Mup release.
+
+       Mup is shareware. Once you get Mup up and running, you can
+       try it out for free to decide whether you want to use it or
+       not. If you like it, execute
+          mup -r
+       to get a copy of the shareware registration form.  The
+       registration fee is $29.  See the license file for license
+       details.
+
+       Provide feedback (bugs reports, comments, suggestions,
+       questions) to:  support@arkkra.com
+
+       --------------------------------------------------
+
+       Arkkra Enterprises
diff --git a/mup/docs/faq.txt b/mup/docs/faq.txt
new file mode 100644 (file)
index 0000000..fd7cff2
--- /dev/null
@@ -0,0 +1,307 @@
+
+                   Mup Frequently Asked Questions (FAQ)
+
+       1.  Frequent questions for those who have not yet used Mup
+
+       1.1  Q: What makes Mup unique? Why should I consider using
+            Mup?
+
+         1.  Mup provides high quality music output at very low
+             cost. You can download Mup and try it out for
+             yourself.
+
+         2.  Mup is available ready-to-run for several computer
+             operating systems, and is also available in source
+             form, so that it can be run on almost any kind of
+             computers, including Windows, Apple, Linux or Unix.
+
+         3.  If you prefer a command line interface, Mup provides
+             that, and doesn't require using a mouse or learning a
+             new editor; you can just create a Mup input file using
+             any text editor of your choice.  However, if you
+             prefer an interface with menus and integrated editor,
+             the companion Mupmate program provides that.
+
+         4.  Mup input can be easily generated or manipulated by
+             another program.  Input files are typically small, so
+             it doesn't take a long time to create them. Since they
+             are ordinary text they can easily be moved to other
+             systems, even if the other system uses a different
+             operating system. For example, it would be easy to
+             email a song in Mup format to a friend, and if they
+             had Mup, they could then print it out or play it via
+             MIDI.  Since Mup output is standard PostScript or
+             standard MIDI, output files are also portable to
+             almost any operating system.
+
+         5.  Mup handles page layout details, but provides ways to
+             alter the layout if you wish. It has the power to
+             handle complicated scores, and can produce
+             professional-quality output quickly.
+
+         6.  Mup's ability to produce MIDI output can be very
+             helpful for "proof listening" to your music, which is
+             usually a very effective way to spot errors that you
+             might miss by just looking at the score,
+
+       1.2  Q: Will Mup run on my computer?
+
+       We currently provide Mup in ready-to-run form for Windows
+       and Linux x86 systems. A port of Mup for the Macintosh is
+       available from
+       http://www.uni-paderborn.de/cs/Michael.Thies.html and a
+       version for OS/2 is available from http://homepages.tu-
+       darmstadt.de/~st002279/os2/html/mup.html
+
+       If you use a different operating system, Mup source code is
+       also available, so if you have a C compiler, you can
+       probably compile and run Mup. It has been run using several
+       versions of UNIX on x86, Sun, Digital, Silicon Graphics, and
+       other systems.  It has also been run under OS/2, as well as
+       on an Amiga.  An ANSI-C compiler is recommended, but not
+       required.  Under MS-DOS, you will need a memory extender,
+       and at least a 32-bit compiler is strongly recommended.  Mup
+       will run on a 386, but at least a 486 is recommended for
+       best performance.  If you try to compile Mup and have
+       problems, please let us know at support@arkkra.com We'd like
+       to make it portable to as many computer system types as
+       possible.  The companion Mupmate program requires a C++
+       compiler and the FLTK toolkit.
+
+       1.3  Q: How long will it take to learn how to use Mup?
+
+       This will vary from person to person. A person who has
+       experience with computer languages will probably pick up Mup
+       more quickly, but such knowledge is not necessary.  Mup has
+       a broad array of features, so if you want to learn how to
+       use every feature that Mup has to offer, this may take
+       several days. (The Mup User's Guide, which explains all the
+       features, and includes many examples, is about 150 pages
+       long.) However, once you get Mup installed, you can start
+       experimenting with Mup after reading the first few pages of
+       the User's Guide, and it should take no more than a few
+       hours to feel comfortable with the basics, enough to enter
+       simple songs and get professional-looking output.  The
+       User's Guide includes many examples, and is provided both as
+       a PostScript file that you can print out on paper, and as
+       HTML files with hundreds of hypertext links, that you can
+       view with your Web browser.  The Mup installation package
+       contains several sample files and a template file to help
+       you get started.  You can also download sample songs from
+       ftp://ftp.arkkra.com/pub/music
+
+       1.4  Q: How long will it take to enter music?
+
+       This will vary greatly, depending on a number of factors,
+       such as how complicated the music is, how much experience
+       you have had with using Mup, how fast you type, etc. An
+       experienced Mup user can typically enter simple music in
+       less than 15 minutes per page, but very complex music can
+       often take over an hour, especially if you like to make a
+       lot of adjustments to make things look just exactly the way
+       you want.
+
+       1.5  Q: How did Mup and Arkkra Enterprises come about?
+
+       We are musicians and computer programmers who wanted a music
+       publication program that would produce very high-quality
+       output with a minimum amount of fuss. We wrote the Mup
+       program for our own use, and continue to use it for all our
+       own compositions. When other people expressed an interest in
+       getting a copy of Mup, we formed Arkkra Enterprises to set
+       up a Web site to make Mup available as shareware to anyone
+       who wants it.  We rely on the shareware registration fee
+       that you pay to cover the cost of maintaining a Web site and
+       providing support to answer questions. We add new features
+       based on user suggestions, and once you register, we will
+       notify you of any future free upgrades.
+
+       1.6  Q: How do I pay for Mup?
+
+       Fill out the registration form and send the form and (US)
+       $29 in cash, check, or money order to the address given on
+       the form.  If you are writing a check from a bank outside
+       the United States, please make it out in the bank's local
+       currency in an amount equivalent to 29 U.S. dollars; our
+       bank will not accept US-dollar-denominated checks from non-
+       US banks.  If you wish to pay via credit card, we have an
+       arrangement with setSystems to handle paying for Mup with a
+       credit card.  They are able to handle transactions in many
+       different currencies.  setSystems is part of Digital River,
+       a well-known e-commerce company.  As soon as we receive your
+       payment, we will email the registration information to you.
+       Once you register, we will notify you via email of future
+       Mup versions, and you can upgrade to any future versions of
+       Mup for free.  Once you have registered, you also can join
+       the Mup users mailing list if you wish, at no additional
+       charge.  We only use your address to send you information
+       about Mup; it is our policy to not give out names, email, or
+       street addresses to anyone else.
+
+       --------------------------------------------------
+
+       2.  Frequent questions from Mup users
+
+       2.1  Q. Is there a mailing list for Mup users?
+
+       Yes. There is a "majordomo" mailing list available
+       exclusively to registered Mup users.  It provides a forum
+       where you can ask or answer questions, get tips on how other
+       people are using Mup, etc.
+
+       2.2  Q. Can I put Mup output into some other document?
+
+       There is a tool that comes with Ghostscript, called
+       "ps2epsi" that converts a PostScript file to an Encapsulated
+       PostScript file, which can then be imported into other
+       documents.
+
+       2.3  Q: Can Mup produce PDF files?
+
+       Not directly, but since Mup produces PostScript output, you
+       can easily convert the output to PDF format using the ps2pdf
+       utility that comes with Ghostscript.
+
+       2.4  Q. Why is the first score indented differently than the
+            others?
+
+       The first score of a piece of music is traditionally
+       indented somewhat more than subsequent scores, so that's
+       what Mup does by default.  It does that by setting the
+       default label parameter to a few spaces, whereas it sets the
+       default for the label2 parameter to an empty string.  If you
+       don't want the indentation, you can set
+            label=""
+
+       2.5  Q: Is is possible to specify a pickup measure?
+
+       Yes. You use "space" on all voices. For example,
+          1: 2.s; 4e;
+          2: 2.s; 4c;
+       will produce a pickup measure with just a quarter note in
+       it.
+
+       2.6  Q: Is it possible to display a tempo marking of the
+            form '(N = 120)' where N is a note symbol, like a
+            quarter note?
+
+       Yes. Try something like
+          rom above all: 1 "( \(sm4n) = 120 )";
+
+       2.7  Q: Can Mup take a MIDI file as input?
+
+       No. However, it is possible to write a program that reads a
+       MIDI file and outputs a file that can be input to Mup. Two
+       programs that do this, called "mtm" and "midi2mup" have been
+       donated by Mup users.  They are limited, and not supported
+       by Arkkra Enterprises, but may be useful for some people.
+       Check out the programs donated by Mup users.
+
+       2.8  Q: What are some of the shorthands that can be used to
+            reduce typing?
+
+       There are many shorthands available. Some of the most useful
+       are:
+
+          - When the time value of a chord is the same as that of
+            the previous chord in the measure, it can be omitted.
+            If all pitch values of a chord are the same as the
+            previous chord, they can be omitted. For example:
+               1: 4c; 4c; 4ceg; 4ceg;
+            is the same as
+               1: 4c; ; ceg; ;
+
+          - If several voices have the same music data, they can be
+            given on a single line.
+               1-3 1-2: mr;
+            is equivalent to
+               1 1: mr;
+               1 2: mr;
+               2 1: mr;
+               2 2: mr;
+               3 1: mr;
+               3 2: mr;
+            A similar shorthand works for text and music symbols:
+               rom above 1-4: 3 "mf";   // staffs 1 through 4
+               < below 2-3: 4 til 3m+2; // staffs 2 and 3
+               mussym 1-5: 1 "ferm";   // staffs 1 through 5
+
+          - If several chords in a row have the same items in
+            square brackets before the chords, only the first must
+            have everything included. By giving an ellipsis after
+            the ] the items in brackets will be repeated for the
+            rest of the measure or until cancelled.  Thus the
+            following lines are equivalent:
+               1: [with .] c; [with .] d; [with .] e;
+               1: [with .]... c; d; e;
+
+       2.9  Q: The Mupprnt command doesn't seem to work right. What
+            do I do?
+
+       You may need to edit the mupprnt file to make sure the
+       variables and paths are set to match where things are
+       installed on your system.  In particular,
+
+          - GS_DIR needs to be set to the directory which contains
+            the Ghostscript font files (*.gsf) and the other
+            Ghostscript setup files (gs_*.ps).
+
+          - GS_DEVICE needs to be set to the proper type to match
+            your printer type.
+
+          - The path to Mup must be correct
+
+          - The path to Ghostscript (gs or gs386 on MS-DOS/Windows
+            system) must be correct.
+
+          - On MS-DOS/Windows systems, dos4gw.exe must be in your
+            PATH.
+       If you are using a viewer such as GSview or gv, you may want
+       to use its print feature rather than using mupprnt.
+
+       2.10  Q: On MS-DOS, the Mupdisp command comes back with
+             ghostscript error 1. What do I do?
+
+       Check your config.sys file. You need to have a line like
+          files=10
+       where the number after the equals sign is greater than or
+       equal to 9.
+
+       Also, make sure gs386.exe exists and is in your PATH. If you
+       are running Mup from MS-DOS directly or from a DOS prompt
+       under Windows, make sure you installed the DOS version of
+       Ghostscript, not the Windows version.  If you are using
+       Mupmate, or Winmup, make sure you installed the Windows
+       version of Ghostscript, not the MS-DOS version.
+
+       2.11  Q: If I use Mup for a language other than English,
+             will it handle the letters that are not used in
+             English?
+
+       Mup handles most common non-ASCII characters.  If your
+       keyboard does not allow you to enter them directly, you can
+       enter them by name, such as \(a:) for an 'a' with 2 dots
+       over it. The User's Guide section on text strings gives a
+       complete list of supported non-ASCII characters.
+
+       2.12  Q: Under Linux, Mupdisp says it can't open
+             /dev/console. What do I do?
+
+       The svga library used by Mupdisp in non-X-windows mode
+       requires write permission to the console. To allow this:
+
+          - Make Mupdisp setuid to root:
+               chown root mupdisp
+               chmod 4755 mupdisp
+
+       2.13  Q: What if I have more questions about Mup?
+
+       Send us email at support@arkkra.com We welcome any comments
+       and questions about Mup. Normally, you should have no
+       problem contacting us this way. In the unlikely event you
+       get a "rejected" reply when sending email, this is because
+       excessive "spam" (junk mail) has been received from your
+       domain at some time in the past, and our Internet service
+       provider has installed a "spam blocker."  In this case, you
+       will have to send email from another address or send paper
+       mail.
diff --git a/mup/docs/license.txt b/mup/docs/license.txt
new file mode 100644 (file)
index 0000000..8aa2155
--- /dev/null
@@ -0,0 +1,82 @@
+
+                               Mup License
+
+       At Arkkra Enterprises, we'd like all our customers to be
+       delighted with our products. To ensure that Mup and any
+       other products or services we provide are readily available
+       at the lowest possible cost to you, we need to establish
+       licensing terms.
+
+       While there are other music publication programs on the
+       market, we believe Mup has unique features that you may find
+       very useful.  Since different people may want different
+       things in a music publication program, you do not have to
+       pay for Mup until after you've had a chance to try it out
+       and evaluate it for yourself.  If you have problems with
+       Mup, let us know and we will try to resolve them.  If you
+       have paid your registration fee and we cannot resolve
+       problems to your satisfaction, we will gladly refund your
+       money.
+
+       1.  Mup License
+
+       Arkkra Enterprises disclaims all warranties relating to this
+       software, whether expressed or implied, including but not
+       limited to any implied warranties of merchantability and
+       fitness for a particular purpose, and all such warranties
+       are expressly and specifically disclaimed.  Neither Arkkra
+       Enterprises nor anyone else who has been involved in the
+       creation, production, or delivery of this software shall be
+       liable for any indirect, consequential, or incidental
+       damages arising out of the use of or inability to use such
+       software even if Arkkra Enterprises has been advised of the
+       possibility of such damages of claims.  In no event shall
+       Arkkra Enterprises' liability for any damages ever exceed
+       the price paid for the license to use the software,
+       regardless of the form of the claim.  The person using the
+       software bears all risk as to the quality and performance of
+       the software.
+
+       Some states do not allow the exclusion of the limit of
+       liability for consequential damages, so the above limitation
+       may not apply to you.
+
+       This agreement shall be governed by the laws of the state of
+       Illinois and shall inure to the benefit of Arkkra
+       Enterprises, and any successors, administrators, heirs and
+       assigns. Any action or proceeding brought by either party
+       against the other arising out of or related to this
+       agreement shall be brought only in the state or federal
+       court of competent jurisdiction located in DuPage County,
+       Illinois. The parties hereby consent to in personam
+       jurisdiction of said courts.
+
+       This software is licensed to you, for your own use. This is
+       copyrighted software. You are not obtaining title to the
+       software or any copyright rights.  You may not sublicense,
+       rent, lease, convey, modify, or translate this software for
+       any purpose.
+
+       You may make as many copies as you need for back-up
+       purposes.  You may use this software on more than one
+       computer, provided there is no chance it will be used
+       simultaneously on more than one computer.  If you need to
+       use this software on more than one computer simultaneously,
+       you will need to obtain a license for each copy or a site
+       license.
+
+       You may make copies of this software for other parties under
+       the following terms:
+
+          - The copy must be an exact copy as would be obtained
+            directly from Arkkra Enterprises, including this
+            license.  It must clearly state that it is a copy, and
+            must give the address of Arkkra Enterprises.
+
+          - The copy must be used by the obtaining party only for
+            the purpose of trialing the software. If after trialing
+            the software, the receiving party wishes to continue to
+            use the software, they must submit their license fee.
+
+          - All limitations and disclaimers of this license apply
+            to the copy.
diff --git a/mup/docs/mkmupfnt.1 b/mup/docs/mkmupfnt.1
new file mode 100644 (file)
index 0000000..f2438d3
--- /dev/null
@@ -0,0 +1,106 @@
+.TH mkmupfnt 1 "July 31, 1999" "Arkkra Enterprises"
+.SH NAME
+.PP
+mkmupfnt - create fontfile for overriding Mup fonts
+.SH SYNOPSIS
+.PP
+mkmupfnt \fIPostScript_font_name Mup_font_name outfile [file]\fP
+.SH DESCRIPTION
+.PP
+The \fBmkmupfnt\fP program creates an \fIoutfile\fP that can be used
+with the Mup "fontfile" statement to override a Mup font.
+.PP
+The \fIPostScript_font_name\fP is the name of the font you want Mup
+to use. This would be something that could be given as a name
+to the PostScript \fBfindfont\fP procedure.
+.PP
+The \fIMup_font_name\fP is the name of the Mup font you want to
+override, either an abbreviated name, like "PR" or a full
+name, like "palatino rom".
+.PP
+The \fIoutfile\fP is the file that will be generated, which will
+contain character size and other information, to use with
+Mup's "fontfile" statement.
+.PP
+The final optional \fIfile\fP argument is the name of a file that
+contains PostScript to be placed at the end of the Mup PostScript prolog.
+This might be useful if you have a font whose implementation PostScript could
+not find on its own. For example, if you've written your own font
+implementation, you could put it in the given \fIfile\fP.
+The actual characters produced by the font need not be similar to those
+in the font being replaced; they could be in some other alphabet,
+or hieroglyphics or whatever you wish. However, see the CAVEATS section
+for limitations.
+.PP
+An an example, suppose you want Mup to use the Helvetica-Narrow font
+rather than the plain Helvetica font. You could use:
+.br
+.in +0.5i
+mkmupfnt Helvetica-Narrow HR helvnarr
+.in -0.5i
+.br
+to generate a Mup fontfile, then in your Mup program put:
+.br
+.in +0.5i
+fontfile "helvnarr"
+.in -0.5i
+.br
+Then anything that would normally be printed in Helvetica will come out
+in Helvetica-Narrow instead.
+.SH "FILE FORMAT"
+.PP
+Mup requires a \fIfontfile\fP to be in a fairly rigid format.
+This section describes the format of the file that is produced by
+mkmupfnt.
+The file can contain comment lines, which have a '#' in column 1.
+Otherwise the format is:
+.br
+.nf
+.na
+.in +0.3i
+\fBMup font name:\fP \fIMup_font_name\fP
+\fBPostScript font name:\fP \fIPostScript_font_name\fP
+\fBSize data:\fP
+\fB32\fP   \fIwidth   height   ascent\fP
+\fB33\fP   \fIwidth   height   ascent\fP
+       \fI... similar lines for ASCII codes 34-126.
+       Dimension are given in 1/1000ths of an inch for a 12-point character.
+       All codes must be specified, and they must be in order.\fP
+\fBPostScript:\fP
+       \fIZero or more lines of PostScript that will be copied
+       exactly as is to the end of the Mup PostScript prolog.\fP
+.br
+.in -0.3i
+.fi
+.ad
+.SH FILES
+.P
+mkmupfnt.ps    PostScript program that extracts font size information
+.SH "SEE ALSO"
+.PP
+gs(1), mup(1).
+.br
+Mup \(em Music Publisher User's Guide
+.SH "CAVEATS"
+.PP
+You must have ghostscript (gs or gs386.exe) in your PATH
+and it must be built to include the "bit" device.
+.PP
+Mup uses certain fonts for certain things, such as
+time signatures, octave marks, endings, tuplet numbers, etc.
+(The fonts used include all the Times fonts and New Century bold, plus
+Helvetica roman and Helvetica bold for tablature.)
+If your override one of the fonts used for those things, they will
+come out in your new font. On the one hand, if you don't like Mup's
+choices, this provides you a way to get your own. On the other hand,
+if you want to change most, but not all uses of a particular font,
+it may not be possible to do that.
+.PP
+Only the ASCII characters 32-126 can be overridden. The non-ASCII
+characters can not be overridden.
+.PP
+Mup only allows width values up to 1/2 inch for
+a 12-point character. This program does not enforce that limitation.
+.PP
+This program has been tested with various Ghostscript fonts,
+but may not work on just any arbitrary PostScript font.
diff --git a/mup/docs/mkmupfnt.ps b/mup/docs/mkmupfnt.ps
new file mode 100644 (file)
index 0000000..3527c5f
--- /dev/null
@@ -0,0 +1,314 @@
+%!PS-Adobe-3.0
+%%Creator: groff version 1.17.2
+%%CreationDate: Sat Dec  9 16:59:22 2006
+%%DocumentNeededResources: font Times-Roman
+%%+ font Times-Bold
+%%+ font Times-Italic
+%%DocumentSuppliedResources: procset grops 1.17 2
+%%Pages: 2
+%%PageOrder: Ascend
+%%Orientation: Portrait
+%%EndComments
+%%BeginProlog
+%%BeginResource: procset grops 1.17 2
+/setpacking where{
+pop
+currentpacking
+true setpacking
+}if
+/grops 120 dict dup begin
+/SC 32 def
+/A/show load def
+/B{0 SC 3 -1 roll widthshow}bind def
+/C{0 exch ashow}bind def
+/D{0 exch 0 SC 5 2 roll awidthshow}bind def
+/E{0 rmoveto show}bind def
+/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def
+/G{0 rmoveto 0 exch ashow}bind def
+/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/I{0 exch rmoveto show}bind def
+/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def
+/K{0 exch rmoveto 0 exch ashow}bind def
+/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/M{rmoveto show}bind def
+/N{rmoveto 0 SC 3 -1 roll widthshow}bind def
+/O{rmoveto 0 exch ashow}bind def
+/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/Q{moveto show}bind def
+/R{moveto 0 SC 3 -1 roll widthshow}bind def
+/S{moveto 0 exch ashow}bind def
+/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/SF{
+findfont exch
+[exch dup 0 exch 0 exch neg 0 0]makefont
+dup setfont
+[exch/setfont cvx]cvx bind def
+}bind def
+/MF{
+findfont
+[5 2 roll
+0 3 1 roll
+neg 0 0]makefont
+dup setfont
+[exch/setfont cvx]cvx bind def
+}bind def
+/level0 0 def
+/RES 0 def
+/PL 0 def
+/LS 0 def
+/MANUAL{
+statusdict begin/manualfeed true store end
+}bind def
+/PLG{
+gsave newpath clippath pathbbox grestore
+exch pop add exch pop
+}bind def
+/BP{
+/level0 save def
+1 setlinecap
+1 setlinejoin
+72 RES div dup scale
+LS{
+90 rotate
+}{
+0 PL translate
+}ifelse
+1 -1 scale
+}bind def
+/EP{
+level0 restore
+showpage
+}bind def
+/DA{
+newpath arcn stroke
+}bind def
+/SN{
+transform
+.25 sub exch .25 sub exch
+round .25 add exch round .25 add exch
+itransform
+}bind def
+/DL{
+SN
+moveto
+SN
+lineto stroke
+}bind def
+/DC{
+newpath 0 360 arc closepath
+}bind def
+/TM matrix def
+/DE{
+TM currentmatrix pop
+translate scale newpath 0 0 .5 0 360 arc closepath
+TM setmatrix
+}bind def
+/RC/rcurveto load def
+/RL/rlineto load def
+/ST/stroke load def
+/MT/moveto load def
+/CL/closepath load def
+/FL{
+currentgray exch setgray fill setgray
+}bind def
+/BL/fill load def
+/LW/setlinewidth load def
+/RE{
+findfont
+dup maxlength 1 index/FontName known not{1 add}if dict begin
+{
+1 index/FID ne{def}{pop pop}ifelse
+}forall
+/Encoding exch def
+dup/FontName exch def
+currentdict end definefont pop
+}bind def
+/DEFS 0 def
+/EBEGIN{
+moveto
+DEFS begin
+}bind def
+/EEND/end load def
+/CNT 0 def
+/level1 0 def
+/PBEGIN{
+/level1 save def
+translate
+div 3 1 roll div exch scale
+neg exch neg exch translate
+0 setgray
+0 setlinecap
+1 setlinewidth
+0 setlinejoin
+10 setmiterlimit
+[]0 setdash
+/setstrokeadjust where{
+pop
+false setstrokeadjust
+}if
+/setoverprint where{
+pop
+false setoverprint
+}if
+newpath
+/CNT countdictstack def
+userdict begin
+/showpage{}def
+}bind def
+/PEND{
+clear
+countdictstack CNT sub{end}repeat
+level1 restore
+}bind def
+end def
+/setpacking where{
+pop
+setpacking
+}if
+%%EndResource
+%%IncludeResource: font Times-Roman
+%%IncludeResource: font Times-Bold
+%%IncludeResource: font Times-Italic
+grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
+def/PL PLG def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron
+/scaron/zcaron/Ydieresis/trademark/quotesingle/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
+/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen
+/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
+/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O
+/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex
+/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y
+/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft
+/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl
+/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut
+/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash
+/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen
+/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft
+/logicalnot/minus/registered/macron/degree/plusminus/twosuperior
+/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior
+/ordmasculine/guilsinglright/onequarter/onehalf/threequarters
+/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE
+/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn
+/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
+/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
+/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash
+/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
+/Times-Italic@0 ENC0/Times-Italic RE/Times-Bold@0 ENC0/Times-Bold RE
+/Times-Roman@0 ENC0/Times-Roman RE
+%%EndProlog
+%%Page: 1 1
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 358.84(mkmupfnt\(1\) mkmupfnt\(1\))72 48 R/F1
+10.95/Times-Bold@0 SF -.219(NA)72 84 S(ME).219 E F0
+(mkmupfnt - create font\214le for o)108 96 Q -.15(ve)-.15 G
+(rriding Mup fonts).15 E F1(SYNOPSIS)72 112.8 Q F0(mkmupfnt)108 124.8 Q
+/F2 10/Times-Italic@0 SF -.8(Po)2.5 G
+(stScript_font_name Mup_font_name out\214le [\214le]).8 E F1
+(DESCRIPTION)72 141.6 Q F0(The)108 153.6 Q/F3 10/Times-Bold@0 SF
+(mkmupfnt)2.862 E F0 .362(program creates an)2.862 F F2(out\214le)2.862
+E F0 .362(that can be used with the Mup "font\214le" statement to o)
+2.862 F -.15(ve)-.15 G .361(rride a).15 F(Mup font.)108 165.6 Q(The)108
+182.4 Q F2 -.8(Po)3.854 G(stScript_font_name).8 E F0 1.354
+(is the name of the font you w)3.854 F 1.354(ant Mup to use. This w)-.1
+F 1.355(ould be something that)-.1 F(could be gi)108 194.4 Q -.15(ve)
+-.25 G 2.5(na).15 G 2.5(san)-2.5 G(ame to the PostScript)-2.5 E F3
+(\214ndf)2.5 E(ont)-.25 E F0(procedure.)2.5 E(The)108 211.2 Q F2
+(Mup_font_name)3.5 E F0 1(is the name of the Mup font you w)3.5 F .999
+(ant to o)-.1 F -.15(ve)-.15 G .999(rride, either an abbre).15 F .999
+(viated name, lik)-.25 F(e)-.1 E("PR" or a full name, lik)108 223.2 Q
+2.5(e")-.1 G(palatino rom".)-2.5 E(The)108 240 Q F2(out\214le)2.831 E F0
+.331(is the \214le that will be generated, which will contain character\
+ size and other information, to use)2.831 F(with Mup')108 252 Q 2.5(s")
+-.55 G(font\214le" statement.)-2.5 E .49(The \214nal optional)108 268.8
+R F2(\214le)2.99 E F0(ar)2.99 E .489(gument is the name of a \214le tha\
+t contains PostScript to be placed at the end of the)-.18 F .077
+(Mup PostScript prolog.)108 280.8 R .077(This might be useful if you ha)
+5.077 F .378 -.15(ve a f)-.2 H .078
+(ont whose implementation PostScript could not).15 F .233
+(\214nd on its o)108 292.8 R .233(wn. F)-.25 F .233(or e)-.15 F .233
+(xample, if you')-.15 F .533 -.15(ve w)-.5 H .233(ritten your o).15 F
+.232(wn font implementation, you could put it in the gi)-.25 F -.15(ve)
+-.25 G(n).15 E F2(\214le)108 304.8 Q F0 5.103(.T)C .103(he actual chara\
+cters produced by the font need not be similar to those in the font bei\
+ng replaced; the)-5.103 F(y)-.15 E .496
+(could be in some other alphabet, or hieroglyphics or whate)108 316.8 R
+-.15(ve)-.25 G 2.996(ry).15 G .496(ou wish. Ho)-2.996 F(we)-.25 E -.15
+(ve)-.25 G 1.296 -.4(r, s).15 H .496(ee the CA).4 F(VEA)-1.35 E .496
+(TS sec-)-1.11 F(tion for limitations.)108 328.8 Q 1.031(An an e)108
+345.6 R 1.031(xample, suppose you w)-.15 F 1.031
+(ant Mup to use the Helv)-.1 F(etica-Narro)-.15 E 3.531(wf)-.25 G 1.032
+(ont rather than the plain Helv)-3.531 F(etica)-.15 E(font. Y)108 357.6
+Q(ou could use:)-1.1 E(mkmupfnt Helv)144 369.6 Q(etica-Narro)-.15 E 2.5
+(wH)-.25 G 2.5(Rh)-2.5 G(elvnarr)-2.5 E
+(to generate a Mup font\214le, then in your Mup program put:)108 381.6 Q
+(font\214le "helvnarr")144 393.6 Q(Then an)108 405.6 Q(ything that w)
+-.15 E(ould normally be printed in Helv)-.1 E
+(etica will come out in Helv)-.15 E(etica-Narro)-.15 E 2.5(wi)-.25 G
+(nstead.)-2.5 E F1(FILE FORMA)72 422.4 Q(T)-1.04 E F0 .037
+(Mup requires a)108 434.4 R F2(font\214le)2.537 E F0 .037(to be in a f)
+2.537 F .037(airly rigid format.)-.1 F .036
+(This section describes the format of the \214le that is pro-)5.037 F
+.068(duced by mkmupfnt.)108 446.4 R .068
+(The \214le can contain comment lines, which ha)5.068 F .368 -.15
+(ve a ')-.2 H .069(#' in column 1.).15 F .069(Otherwise the for)5.069 F
+(-)-.2 E(mat is:)108 458.4 Q F3(Mup f)129.6 470.4 Q(ont name:)-.25 E F2
+(Mup_font_name)2.5 E F3 -.2(Po)129.6 482.4 S(stScript f).2 E(ont name:)
+-.25 E F2 -.8(Po)2.5 G(stScript_font_name).8 E F3(Size data:)129.6 494.4
+Q(32)129.6 506.4 Q F2 5(width height ascent)7.5 F F3(33)129.6 518.4 Q F2
+5(width height ascent)7.5 F(... similar lines for ASCII codes 34-126.)
+165.6 530.4 Q(Dimension ar)165.6 542.4 Q 2.5(eg)-.37 G
+(iven in 1/1000ths of an inc)-2.5 E 2.5(hf)-.15 G(or a 12-point c)-2.5 E
+(har)-.15 E(acter)-.15 E(.)-1.11 E
+(All codes must be speci\214ed, and the)165.6 554.4 Q 2.5(ym)-.3 G
+(ust be in or)-2.5 E(der)-.37 E(.)-1.11 E F3 -.2(Po)129.6 566.4 S
+(stScript:).2 E F2(Zer)165.6 578.4 Q 2.5(oo)-.45 G 2.5(rm)-2.5 G(or)-2.5
+E 2.5(el)-.37 G(ines of P)-2.5 E(ostScript that will be copied)-.8 E -.2
+(ex)165.6 590.4 S(actly as is to the end of the Mup P).2 E(ostScript pr)
+-.8 E(olo)-.45 E -.15(g.)-.1 G F1(FILES)72 607.2 Q F0 7.5
+(mkmupfnt.ps PostScript)108 619.2 R(program that e)2.5 E
+(xtracts font size information)-.15 E F1(SEE ALSO)72 636 Q F0
+(gs\(1\), mup\(1\).)108 648 Q(Mup \212 Music Publisher User')108 660 Q
+2.5(sG)-.55 G(uide)-2.5 E F1(CA)72 676.8 Q(VEA)-1.588 E(TS)-1.04 E F0
+-1.1(Yo)108 688.8 S 2.5(um)1.1 G(ust ha)-2.5 E .3 -.15(ve g)-.2 H
+(hostscript \(gs or gs386.e).15 E -.15(xe)-.15 G 2.5(\)i).15 G 2.5(ny)
+-2.5 G(our P)-2.5 E -1.11(AT)-.92 G 2.5(Ha)1.11 G(nd it must be b)-2.5 E
+(uilt to include the "bit" de)-.2 E(vice.)-.25 E .79(Mup uses certain f\
+onts for certain things, such as time signatures, octa)108 705.6 R 1.09
+-.15(ve m)-.2 H .79(arks, endings, tuplet numbers,).15 F 2.544
+(etc. \(The)108 717.6 R .044(fonts used include all the T)2.544 F .044
+(imes fonts and Ne)-.35 F 2.544(wC)-.25 G .044(entury bold, plus Helv)
+-2.544 F .045(etica roman and Helv)-.15 F(etica)-.15 E .43
+(bold for tablature.\))108 729.6 R .43(If your o)5.43 F -.15(ve)-.15 G
+.43(rride one of the fonts used for those things, the).15 F 2.93(yw)-.15
+G .43(ill come out in your ne)-2.93 F(w)-.25 E(Arkkra Enterprises)72 768
+Q(July 31, 1999)131.105 E(1)201.915 E EP
+%%Page: 2 2
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 358.84(mkmupfnt\(1\) mkmupfnt\(1\))72 48 R .862
+(font. On the one hand, if you don')108 84 R 3.362(tl)-.18 G(ik)-3.362 E
+3.362(eM)-.1 G(up')-3.362 E 3.362(sc)-.55 G .862(hoices, this pro)-3.362
+F .862(vides you a w)-.15 F .862(ay to get your o)-.1 F .862(wn. On the)
+-.25 F .826(other hand, if you w)108 96 R .826(ant to change most, b)-.1
+F .826
+(ut not all uses of a particular font, it may not be possible to do)-.2
+F(that.)108 108 Q(Only the ASCII characters 32-126 can be o)108 124.8 Q
+-.15(ve)-.15 G(rridden. The non-ASCII characters can not be o).15 E -.15
+(ve)-.15 G(rridden.).15 E .682(Mup only allo)108 141.6 R .682
+(ws width v)-.25 F .682(alues up to 1/2 inch for a 12-point character)
+-.25 F 3.182(.T)-.55 G .683(his program does not enforce that)-3.182 F
+(limitation.)108 153.6 Q 2.064(This program has been tested with v)108
+170.4 R 2.064(arious Ghostscript fonts, b)-.25 F 2.064(ut may not w)-.2
+F 2.063(ork on just an)-.1 F 4.563(ya)-.15 G(rbitrary)-4.563 E
+(PostScript font.)108 182.4 Q(Arkkra Enterprises)72 768 Q(July 31, 1999)
+131.105 E(2)201.915 E EP
+%%Trailer
+end
+%%EOF
diff --git a/mup/docs/mup.1 b/mup/docs/mup.1
new file mode 100644 (file)
index 0000000..39f8645
--- /dev/null
@@ -0,0 +1,219 @@
+.TH mup 1 "Sep 25, 2006" "Arkkra Enterprises"
+.SH NAME
+.PP
+mup - music publisher
+.SH SYNOPSIS
+.PP
+\fBmup\fP [\fB-c\fP\fIN\fP] [-C] [\fB-d\fP\fIN\fP] [\fB-D\fP \fIMACRO[=macro-def\fP]]
+[\fB-e\fP \fIerrfile\fP] [-E]
+[\fB-f\fP \fIoutfile\fP] [\fB-F\fP] [\fB-m\fP \fImidifile\fP] [\fB-M\fP] [\fB-o\fP \fIpagelist\fP] [\fB-p\fP\fIN\fP]
+[\fB-v\fP] [\fB-x\fP \fIN\fP[,\fIM\fP] [\fIfile...\fP]
+.SH DESCRIPTION
+.PP
+Mup is a program for producing printed music.
+There is an optional companion program called Mupmate
+that provides a more graphical user interface on top of Mup,
+but this manual page describes the command line interface.
+The Mup User's Guide should be consulted for details of the format of the
+input file.
+Options include:
+.TP
+\fB-c\fP \fIN\fP
+Combine consecutive measures of all rests or spaces into multirests (multiple
+measures of rest printed as a single measure, with the number of measures of
+rest printed above the staff).
+Any time there
+are \fIN\fP or more measures in a row that consist entirely of rests or spaces,
+they will be replaced by a multirest. The combining of measures 
+stops when there is a visible staff that contains notes,
+lyrics, or other musical symbols,
+when there are parameter changes on a visible staff or in score context, or
+when there is a bar line other than an ordinary or invisible bar.
+This option is most likely to be useful when printing a subset of staffs,
+where the particular staff(s) you are printing have long periods of rests.
+(See the -s option.)
+.TP
+\fB-C\fP
+This option is only used in connection with the -E option.
+It specifies that comments
+are to be passed through rather than deleted.
+.TP
+\fB-d\fP \fIN\fP
+Print debugging information. \fIN\fP is a bitmap.
+.RS 4
+.TP
+1
+parse phase information
+.TP
+2
+high level parse phase tracing
+.TP
+4
+low level parse phase tracing
+.TP
+8
+reserved
+.TP
+16
+high level placement phase tracing
+.TP
+32
+low level placement phase tracing
+.TP
+64
+reserved
+.TP
+128
+contents of the main internal list
+.TP
+256
+high level print phase tracing
+.TP
+512
+low level print phase tracing
+.RE
+.IP
+\fIN\fP can be specified in decimal, octal
+(by using a leading zero), or hex (by using a leading 0x).
+This information is intended for debugging of
+\fBMup\fP itself and thus is not likely to be of use to the average user.
+.TP
+\fB-D\fP \fIMACRO[=macro-def]\fP
+Define the macro \fIMACRO\fP. The
+macro name must consist of upper case letters,
+digits, and underscores, beginning
+with an upper case letter. The \fImacro_def\fP is optional, and gives the
+text of the macro. If it contains any white space or other special characters,
+it must be quoted (if quoting is supported by your operating system or shell).
+.TP
+\fB-e\fP \fIerrfile\fP
+Place error messages into \fIerrfile\fP instead of writing them to the standard
+error output stream.
+.TP
+\fB-E\fP
+Rather than produce PostScript or MIDI output, just expand macros and
+includes, and write the result to the standard output stream.
+Comments in the input are deleted, unless the -C option is also specified.
+.TP
+\fB-f\fP \fIoutfile\fP
+Place the output into \fIoutfile\fP instead of writing it to the
+standard output.
+.TP
+\fB-F\fP
+This is like the \fB-f\fP option, except the name of the output file is
+derived from the name of the Mup input file. If the name of the Mup input
+file ends with a ".mup" suffix, the generated PostScript output
+file will end with a ".ps" suffix instead.
+If the name of the Mup input file ends with
+a ".MUP" suffix, the PostScript file will end with a ".PS" suffix.
+Otherwise, a ".ps" suffix will be appended to the end of the Mup
+input file name. If multiple input files are listed, the last is used.
+If none are specified (input is read from standard input),
+the name "stdin.ps" will be used for the output file.
+.TP
+\fB-m\fP \fImidifile\fP
+Instead of generating PostScript output,
+generate standard MIDI (Musical Instrument Digital Interface) output,
+and put it in \fImidifile\fP.
+This option also causes the macro "MIDI" to become defined.
+.TP
+\fB-M\fP
+This is like the \fB-m\fP option, except the name of the MIDI file is
+derived from the name of the Mup input file. If the name of the Mup input
+file ends with a ".mup" suffix, the generated MIDI file will end with
+a ".mid" suffix instead. If the name of the Mup input file ends with
+a ".MUP" suffix, the MIDI file will end with a ".MID" suffix.
+Otherwise, a ".mid" suffix will be appended to the end of the Mup
+input file name. If multiple input files are listed, the last is used.
+If none are specified (input is read from standard input),
+the name "stdin.mid" will be used for the MIDI file.
+.TP
+\fB-o\fP \fIpagelist\fP
+Print only the pages given in \fIpagelist\fP. The \fIpagelist\fP can be
+a comma-separated list of numbers or ranges, where a range is two numbers
+separated by a dash. For example, -o1,7-9,12-14 would print pages 1, 7, 8,
+9, 12, 13, and 14. Pages will be printed in the order given.
+They need not be in order, and a page
+number may be included more than once.
+Alternately, the \fIpagelist\fP can be the special
+keyword "odd" or "even" which will cause all odd or even numbered pages
+to be printed. This may be useful if you have a printer that only makes
+single-sided copies, but you wish to print Mup output double-sided. You could
+print odd-numbered pages, then turn the paper over and feed the pages
+through again for the even-numbered pages. 
+.TP
+\fB-p\fP\fIN\fP
+Start numbering pages at \fIN\fP instead of at 1.
+If \fB-o\fP and \fB-p\fP are used together, the page numbers given in the
+\fB-o\fP\fIpagelist\fP must be the printed page numbers. For example, if you
+use -p10 and want to print just the second page,
+you would need to specify -o11.
+.TP
+\fB-r\fP
+Print a copy of the Mup shareware registration form to the standard output.
+.TP
+\fB-s\fP\fIstafflist\fP
+Only print the staffs that are included in \fIstafflist\fP. This can be a
+comma-separated list of staff numbers or ranges, such as "1,5" or "1-3,7-8"
+To further restrict to a single voice on a staff, add \fBv\fP\fIN\fP where
+\fIN\fP is the voice number (1, 2, or 3), after the staff, as in "2v1,5v2"
+You can't specify a list or range for voices;
+if you only want to make two out of three voices visible,
+you have to specify them separately, like "1v2,1v3".
+No spaces are allowed in the list.
+.TP
+\fB-v\fP
+Print the Mup version number and exit. This manual page is for version 5.3.
+.TP
+\fB-x\fP\fIM,N\fP
+Extract measures \fIM\fP through \fIN\fP of the song. This allows you to print
+or play a part of a song. The comma and second value are optional;
+if not specified, the default is to go to the end of the piece.
+Positive values specify the number of measures from the beginning of the piece,
+while negative values are relative to the end, with -1 referring to the
+last measure of the song.
+So -x1,-1 means the entire song, if the song doesn't have a pickup measure.
+If the song has a pickup measure, that is specified by 0.
+So for a song with a pickup, -x0,-1 would mean the entire song,
+and -x0,0 would mean just the pickup measure.
+As other examples, -x-1,-1 means just the final measure of the song,
+-x2 means starting after the first full measure, -x3,4 means only
+measures 3 and 4, and -x6,6 means just measure 6.
+The starting measure is not allowed to be inside an ending.
+A common use for this option might be to generate a MIDI file
+for just a few measures. For example, if you were
+trying to tweak tempo values for a ritard in the last 2 measures of a song,
+you could use -x-2 to listen to just those measures.
+.PP
+The options, if any, can be followed by one or more \fIfiles\fP in Mup format.
+If no \fIfiles\fP are specified, standard input is read.
+If several \fIfiles\fP are listed, they are effectively concatenated together
+and treated as one big file. Since there are some things (such as header
+and footer) that are only allowed to occur once, if you have several independent
+pieces, mup should be called on each individually rather than trying to
+print them all with one command.
+If a specified file does not exist, and its name does not already end
+with .mup or .MUP, then Mup will append .mup to the specified name and
+attempt to open that.
+.PP
+On most systems, the environment variable MUPPATH can be set
+to a list of paths in which to look for 'include' files. 
+The components are separated by a colon on Unix or Linux systems, and by a
+semicolon on systems with DOS-like file naming conventions.
+.PP
+For more debugging, in addition to the -d option,
+if the environment variable MUP_BB is set to "bcfghnsu" or any subset
+of those letters, the generated output will include "bounding
+boxes" for the things Mup internally calls bars (b), chords (c), feeds (f),
+grpsyls (g), header/footer and top/bottom (h),
+notes (n), staffs (s), and stuff (u).
+While this is intended for use in debugging Mup itself, it may also
+help you understand why Mup places things the way it does,
+since in general, Mup only allows bounding boxes to overlap according
+to specific rules. If viewed with a color PostScript viewer (not mupdisp),
+these boxes will be in color.
+.SH "SEE ALSO"
+.PP
+gs(1), mkmupfnt(1), mupdisp(1), mupmate(1), mupprnt(1).
+.br
+Mup \(em Music Publisher User's Guide
diff --git a/mup/docs/mup.ps b/mup/docs/mup.ps
new file mode 100644 (file)
index 0000000..3383401
--- /dev/null
@@ -0,0 +1,463 @@
+%!PS-Adobe-3.0
+%%Creator: groff version 1.17.2
+%%CreationDate: Sat Dec  9 16:59:22 2006
+%%DocumentNeededResources: font Times-Roman
+%%+ font Times-Bold
+%%+ font Times-Italic
+%%DocumentSuppliedResources: procset grops 1.17 2
+%%Pages: 3
+%%PageOrder: Ascend
+%%Orientation: Portrait
+%%EndComments
+%%BeginProlog
+%%BeginResource: procset grops 1.17 2
+/setpacking where{
+pop
+currentpacking
+true setpacking
+}if
+/grops 120 dict dup begin
+/SC 32 def
+/A/show load def
+/B{0 SC 3 -1 roll widthshow}bind def
+/C{0 exch ashow}bind def
+/D{0 exch 0 SC 5 2 roll awidthshow}bind def
+/E{0 rmoveto show}bind def
+/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def
+/G{0 rmoveto 0 exch ashow}bind def
+/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/I{0 exch rmoveto show}bind def
+/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def
+/K{0 exch rmoveto 0 exch ashow}bind def
+/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/M{rmoveto show}bind def
+/N{rmoveto 0 SC 3 -1 roll widthshow}bind def
+/O{rmoveto 0 exch ashow}bind def
+/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/Q{moveto show}bind def
+/R{moveto 0 SC 3 -1 roll widthshow}bind def
+/S{moveto 0 exch ashow}bind def
+/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/SF{
+findfont exch
+[exch dup 0 exch 0 exch neg 0 0]makefont
+dup setfont
+[exch/setfont cvx]cvx bind def
+}bind def
+/MF{
+findfont
+[5 2 roll
+0 3 1 roll
+neg 0 0]makefont
+dup setfont
+[exch/setfont cvx]cvx bind def
+}bind def
+/level0 0 def
+/RES 0 def
+/PL 0 def
+/LS 0 def
+/MANUAL{
+statusdict begin/manualfeed true store end
+}bind def
+/PLG{
+gsave newpath clippath pathbbox grestore
+exch pop add exch pop
+}bind def
+/BP{
+/level0 save def
+1 setlinecap
+1 setlinejoin
+72 RES div dup scale
+LS{
+90 rotate
+}{
+0 PL translate
+}ifelse
+1 -1 scale
+}bind def
+/EP{
+level0 restore
+showpage
+}bind def
+/DA{
+newpath arcn stroke
+}bind def
+/SN{
+transform
+.25 sub exch .25 sub exch
+round .25 add exch round .25 add exch
+itransform
+}bind def
+/DL{
+SN
+moveto
+SN
+lineto stroke
+}bind def
+/DC{
+newpath 0 360 arc closepath
+}bind def
+/TM matrix def
+/DE{
+TM currentmatrix pop
+translate scale newpath 0 0 .5 0 360 arc closepath
+TM setmatrix
+}bind def
+/RC/rcurveto load def
+/RL/rlineto load def
+/ST/stroke load def
+/MT/moveto load def
+/CL/closepath load def
+/FL{
+currentgray exch setgray fill setgray
+}bind def
+/BL/fill load def
+/LW/setlinewidth load def
+/RE{
+findfont
+dup maxlength 1 index/FontName known not{1 add}if dict begin
+{
+1 index/FID ne{def}{pop pop}ifelse
+}forall
+/Encoding exch def
+dup/FontName exch def
+currentdict end definefont pop
+}bind def
+/DEFS 0 def
+/EBEGIN{
+moveto
+DEFS begin
+}bind def
+/EEND/end load def
+/CNT 0 def
+/level1 0 def
+/PBEGIN{
+/level1 save def
+translate
+div 3 1 roll div exch scale
+neg exch neg exch translate
+0 setgray
+0 setlinecap
+1 setlinewidth
+0 setlinejoin
+10 setmiterlimit
+[]0 setdash
+/setstrokeadjust where{
+pop
+false setstrokeadjust
+}if
+/setoverprint where{
+pop
+false setoverprint
+}if
+newpath
+/CNT countdictstack def
+userdict begin
+/showpage{}def
+}bind def
+/PEND{
+clear
+countdictstack CNT sub{end}repeat
+level1 restore
+}bind def
+end def
+/setpacking where{
+pop
+setpacking
+}if
+%%EndResource
+%%IncludeResource: font Times-Roman
+%%IncludeResource: font Times-Bold
+%%IncludeResource: font Times-Italic
+grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
+def/PL PLG def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron
+/scaron/zcaron/Ydieresis/trademark/quotesingle/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
+/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen
+/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
+/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O
+/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex
+/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y
+/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft
+/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl
+/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut
+/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash
+/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen
+/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft
+/logicalnot/minus/registered/macron/degree/plusminus/twosuperior
+/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior
+/ordmasculine/guilsinglright/onequarter/onehalf/threequarters
+/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE
+/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn
+/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
+/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
+/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash
+/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
+/Times-Italic@0 ENC0/Times-Italic RE/Times-Bold@0 ENC0/Times-Bold RE
+/Times-Roman@0 ENC0/Times-Roman RE
+%%EndProlog
+%%Page: 1 1
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 406.62(mup\(1\) mup\(1\))72 48 R/F1 10.95
+/Times-Bold@0 SF -.219(NA)72 84 S(ME).219 E F0(mup - music publisher)108
+96 Q F1(SYNOPSIS)72 112.8 Q/F2 10/Times-Bold@0 SF(mup)108 124.8 Q F0([)
+3.88 E F2(-c)A/F3 10/Times-Italic@0 SF(N)A F0 3.88(][)C 1.38(-C] [)-3.88
+F F2(-d)A F3(N)A F0 3.88(][)C F2(-D)-3.88 E F3(MA)3.88 E(CR)-.3 E
+(O[=macr)-.4 E(o-def)-.45 E F0 1.38(]] [)B F2(-e)A F3(err\214le)3.88 E
+F0 3.88(][)C 1.38(-E] [)-3.88 F F2(-f)A F3(out\214le)3.88 E F0 3.88(][)C
+F2(-F)-3.88 E F0 3.88(][)C F2(-m)-3.88 E F3(midi\214le)3.88 E F0 3.88
+(][)C F2(-M)-3.88 E F0 3.88(][)C F2(-o)-3.88 E F3(pa)108 136.8 Q -.1(ge)
+-.1 G(list).1 E F0 2.5(][)C F2(-p)-2.5 E F3(N)A F0 2.5(][)C F2(-v)-2.5 E
+F0 2.5(][)C F2(-x)-2.5 E F3(N)2.5 E F0([,)A F3(M)A F0 2.5(][)C F3
+(\214le)-2.5 E(...)-.15 E F0(])A F1(DESCRIPTION)72 153.6 Q F0 .563
+(Mup is a program for producing printed music.)108 165.6 R .564
+(There is an optional companion program called Mupmate)5.563 F .574
+(that pro)108 177.6 R .574(vides a more graphical user interf)-.15 F
+.574(ace on top of Mup, b)-.1 F .573
+(ut this manual page describes the command)-.2 F 2.022(line interf)108
+189.6 R 4.522(ace. The)-.1 F 2.022(Mup User')4.522 F 4.522(sG)-.55 G
+2.022(uide should be consulted for details of the format of the input \
+\214le.)-4.522 F(Options include:)108 201.6 Q F2(-c)108 218.4 Q F3(N)2.5
+E F0 1.544(Combine consecuti)19.06 F 1.843 -.15(ve m)-.25 H 1.543(easur\
+es of all rests or spaces into multirests \(multiple measures of rest)
+.15 F 1.205(printed as a single measure, with the number of measures of\
+ rest printed abo)144 230.4 R 1.505 -.15(ve t)-.15 H 1.205(he staf).15 F
+3.705(f\). An)-.25 F(y)-.15 E 1.014(time there are)144 242.4 R F3(N)
+3.514 E F0 1.013(or more measures in a ro)3.513 F 3.513(wt)-.25 G 1.013
+(hat consist entirely of rests or spaces, the)-3.513 F 3.513(yw)-.15 G
+1.013(ill be)-3.513 F .967(replaced by a multirest. The combining of me\
+asures stops when there is a visible staf)144 254.4 R 3.468(ft)-.25 G
+.968(hat con-)-3.468 F .718(tains notes, lyrics, or other musical symbo\
+ls, when there are parameter changes on a visible staf)144 266.4 R(f)
+-.25 E .347(or in score conte)144 278.4 R .348
+(xt, or when there is a bar line other than an ordinary or in)-.15 F
+.348(visible bar)-.4 F 5.348(.T)-.55 G .348(his option)-5.348 F 1.046
+(is most lik)144 290.4 R 1.046
+(ely to be useful when printing a subset of staf)-.1 F 1.046
+(fs, where the particular staf)-.25 F 1.045(f\(s\) you are)-.25 F
+(printing ha)144 302.4 Q .3 -.15(ve l)-.2 H(ong periods of rests.).15 E
+(\(See the -s option.\))5 E F2(-C)108 319.2 Q F0 1.154
+(This option is only used in connection with the -E option.)25.45 F
+1.155(It speci\214es that comments are to be)6.155 F
+(passed through rather than deleted.)144 331.2 Q F2(-d)108 348 Q F3(N)
+2.5 E F0(Print deb)17.94 E(ugging information.)-.2 E F3(N)2.5 E F0
+(is a bitmap.)2.5 E 31(1p)128 364.8 S(arse phase information)-31 E 31
+(2h)128 381.6 S(igh le)-31 E -.15(ve)-.25 G 2.5(lp).15 G
+(arse phase tracing)-2.5 E 31(4l)128 398.4 S .5 -.25(ow l)-31 H -2.15
+-.25(ev e).25 H 2.5(lp).25 G(arse phase tracing)-2.5 E 31(8r)128 415.2 S
+(eserv)-31 E(ed)-.15 E 23.5(16 high)128 432 R(le)2.5 E -.15(ve)-.25 G
+2.5(lp).15 G(lacement phase tracing)-2.5 E 23.5(32 lo)128 448.8 R 2.5
+(wl)-.25 G -2.15 -.25(ev e)-2.5 H 2.5(lp).25 G(lacement phase tracing)
+-2.5 E 23.5(64 reserv)128 465.6 R(ed)-.15 E 18.5(128 contents)128 482.4
+R(of the main internal list)2.5 E 18.5(256 high)128 499.2 R(le)2.5 E
+-.15(ve)-.25 G 2.5(lp).15 G(rint phase tracing)-2.5 E 18.5(512 lo)128
+516 R 2.5(wl)-.25 G -2.15 -.25(ev e)-2.5 H 2.5(lp).25 G
+(rint phase tracing)-2.5 E F3(N)144 532.8 Q F0 .108(can be speci\214ed \
+in decimal, octal \(by using a leading zero\), or he)2.608 F 2.608(x\()
+-.15 G .108(by using a leading 0x\).)-2.608 F(This)5.107 E .289
+(information is intended for deb)144 544.8 R .289(ugging of)-.2 F F2
+(Mup)2.789 E F0 .289(itself and thus is not lik)2.789 F .289
+(ely to be of use to the a)-.1 F -.15(ve)-.2 G -.2(r-).15 G(age user)144
+556.8 Q(.)-.55 E F2(-D)108 573.6 Q F3(MA)2.5 E(CR)-.3 E(O[=macr)-.4 E
+(o-def])-.45 E F0 .576(De\214ne the macro)144 585.6 R F3(MA)3.076 E(CR)
+-.3 E(O)-.4 E F0 3.076(.T)C .576
+(he macro name must consist of upper case letters, digits, and under)
+-3.076 F(-)-.2 E 1.023(scores, be)144 597.6 R 1.023
+(ginning with an upper case letter)-.15 F 3.523(.T)-.55 G(he)-3.523 E F3
+(macr)3.523 E(o_def)-.45 E F0 1.023(is optional, and gi)3.523 F -.15(ve)
+-.25 G 3.523(st).15 G 1.023(he te)-3.523 F 1.024(xt of the)-.15 F .807
+(macro. If it contains an)144 609.6 R 3.307(yw)-.15 G .807(hite space o\
+r other special characters, it must be quoted \(if quoting is)-3.307 F
+(supported by your operating system or shell\).)144 621.6 Q F2(-e)108
+638.4 Q F3(err\214le)2.5 E F0(Place error messages into)144 650.4 Q F3
+(err\214le)2.5 E F0
+(instead of writing them to the standard error output stream.)2.5 E F2
+(-E)108 667.2 Q F0 1.078
+(Rather than produce PostScript or MIDI output, just e)26 F 1.078
+(xpand macros and includes, and write the)-.15 F .984
+(result to the standard output stream.)144 679.2 R .984
+(Comments in the input are deleted, unless the -C option is)5.984 F
+(also speci\214ed.)144 691.2 Q(Arkkra Enterprises)72 768 Q(Sep 25, 2006)
+131.94 E(1)202.75 E EP
+%%Page: 2 2
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 406.62(mup\(1\) mup\(1\))72 48 R/F1 10
+/Times-Bold@0 SF(-f)108 84 Q/F2 10/Times-Italic@0 SF(out\214le)2.5 E F0
+(Place the output into)144 96 Q F2(out\214le)2.5 E F0
+(instead of writing it to the standard output.)2.5 E F1(-F)108 112.8 Q
+F0 .598(This is lik)26.56 F 3.098(et)-.1 G(he)-3.098 E F1(-f)3.098 E F0
+.598(option, e)3.098 F .598(xcept the name of the output \214le is deri)
+-.15 F -.15(ve)-.25 G 3.099(df).15 G .599(rom the name of the Mup)-3.099
+F 1.065(input \214le. If the name of the Mup input \214le ends with a "\
+.mup" suf)144 124.8 R 1.065(\214x, the generated PostScript)-.25 F 1.508
+(output \214le will end with a ".ps" suf)144 136.8 R 1.508
+(\214x instead.)-.25 F 1.509
+(If the name of the Mup input \214le ends with a)6.508 F .992
+(".MUP" suf)144 148.8 R .992
+(\214x, the PostScript \214le will end with a ".PS" suf)-.25 F 3.492
+(\214x. Otherwise,)-.25 F 3.492(a")3.492 G .992(.ps" suf)-3.492 F .991
+(\214x will be)-.25 F .609(appended to the end of the Mup input \214le \
+name. If multiple input \214les are listed, the last is used.)144 160.8
+R .71(If none are speci\214ed \(input is read from standard input\), th\
+e name "stdin.ps" will be used for the)144 172.8 R(output \214le.)144
+184.8 Q F1(-m)108 201.6 Q F2(midi\214le)2.5 E F0 .065(Instead of genera\
+ting PostScript output, generate standard MIDI \(Musical Instrument Dig\
+ital Inter)144 213.6 R(-)-.2 E -.1(fa)144 225.6 S
+(ce\) output, and put it in).1 E F2(midi\214le)2.5 E F0 5(.T)C
+(his option also causes the macro "MIDI" to become de\214ned.)-5 E F1
+(-M)108 242.4 Q F0 .488(This is lik)23.23 F 2.988(et)-.1 G(he)-2.988 E
+F1(-m)2.988 E F0 .488(option, e)2.988 F .488
+(xcept the name of the MIDI \214le is deri)-.15 F -.15(ve)-.25 G 2.988
+(df).15 G .488(rom the name of the Mup)-2.988 F .164(input \214le. If t\
+he name of the Mup input \214le ends with a ".mup" suf)144 254.4 R .165
+(\214x, the generated MIDI \214le will)-.25 F .464
+(end with a ".mid" suf)144 266.4 R .464(\214x instead. If the name of t\
+he Mup input \214le ends with a ".MUP" suf)-.25 F .463(\214x, the)-.25 F
+.151(MIDI \214le will end with a ".MID" suf)144 278.4 R 2.651
+(\214x. Otherwise,)-.25 F 2.651(a")2.651 G .151(.mid" suf)-2.651 F .151
+(\214x will be appended to the end of)-.25 F 1.045(the Mup input \214le\
+ name. If multiple input \214les are listed, the last is used.)144 290.4
+R 1.045(If none are speci\214ed)6.045 F(\(input is read from standard i\
+nput\), the name "stdin.mid" will be used for the MIDI \214le.)144 302.4
+Q F1(-o)108 319.2 Q F2(pa)2.5 E -.1(ge)-.1 G(list).1 E F0 .723
+(Print only the pages gi)144 331.2 R -.15(ve)-.25 G 3.223(ni).15 G(n)
+-3.223 E F2(pa)3.223 E -.1(ge)-.1 G(list).1 E F0 3.223(.T)C(he)-3.223 E
+F2(pa)3.223 E -.1(ge)-.1 G(list).1 E F0 .723
+(can be a comma-separated list of numbers or)3.223 F .069
+(ranges, where a range is tw)144 343.2 R 2.569(on)-.1 G .069
+(umbers separated by a dash. F)-2.569 F .068(or e)-.15 F .068
+(xample, -o1,7-9,12-14 w)-.15 F .068(ould print)-.1 F 1.194
+(pages 1, 7, 8, 9, 12, 13, and 14. P)144 355.2 R 1.194
+(ages will be printed in the order gi)-.15 F -.15(ve)-.25 G 3.695
+(n. The).15 F 3.695(yn)-.15 G 1.195(eed not be in)-3.695 F(order)144
+367.2 Q 3.48(,a)-.4 G .98
+(nd a page number may be included more than once.)-3.48 F(Alternately)
+5.979 E 3.479(,t)-.65 G(he)-3.479 E F2(pa)3.479 E -.1(ge)-.1 G(list).1 E
+F0 .979(can be the)3.479 F .664(special k)144 379.2 R -.15(ey)-.1 G -.1
+(wo).15 G .664(rd "odd" or "e).1 F -.15(ve)-.25 G .664
+(n" which will cause all odd or e).15 F -.15(ve)-.25 G 3.165(nn).15 G
+.665(umbered pages to be printed.)-3.165 F .202
+(This may be useful if you ha)144 391.2 R .502 -.15(ve a p)-.2 H .202
+(rinter that only mak).15 F .201(es single-sided copies, b)-.1 F .201
+(ut you wish to print)-.2 F .335(Mup output double-sided. Y)144 403.2 R
+.335(ou could print odd-numbered pages, then turn the paper o)-1.1 F
+-.15(ve)-.15 G 2.835(ra).15 G .335(nd feed)-2.835 F
+(the pages through ag)144 415.2 Q(ain for the e)-.05 E -.15(ve)-.25 G
+(n-numbered pages.).15 E F1(-p)108 432 Q F2(N)A F0 .245
+(Start numbering pages at)20.44 F F2(N)2.745 E F0 .245(instead of at 1.)
+2.745 F(If)5.245 E F1(-o)2.745 E F0(and)2.745 E F1(-p)2.745 E F0 .245
+(are used together)2.745 F 2.744(,t)-.4 G .244(he page numbers gi)-2.744
+F -.15(ve)-.25 G(n).15 E .152(in the)144 444 R F1(-o)2.652 E F2(pa)A -.1
+(ge)-.1 G(list).1 E F0 .153(must be the printed page numbers. F)2.652 F
+.153(or e)-.15 F .153(xample, if you use -p10 and w)-.15 F .153
+(ant to print)-.1 F(just the second page, you w)144 456 Q
+(ould need to specify -o11.)-.1 E F1(-r)108 472.8 Q F0(Print a cop)28.23
+E 2.5(yo)-.1 G 2.5(ft)-2.5 G(he Mup share)-2.5 E -.1(wa)-.25 G(re re).1
+E(gistration form to the standard output.)-.15 E F1(-s)108 489.6 Q F2
+(staf)A(\215ist)-.18 E F0 .299(Only print the staf)144 501.6 R .298
+(fs that are included in)-.25 F F2(staf)2.798 E(\215ist)-.18 E F0 2.798
+(.T)C .298(his can be a comma-separated list of staf)-2.798 F 2.798(fn)
+-.25 G(um-)-2.798 E .974(bers or ranges, such as "1,5" or "1-3,7-8" T)
+144 513.6 R 3.474(of)-.8 G .974(urther restrict to a single v)-3.474 F
+.975(oice on a staf)-.2 F .975(f, add)-.25 F F1(v)3.475 E F2(N)A F0
+(where)144 525.6 Q F2(N)2.828 E F0 .328(is the v)2.828 F .327
+(oice number \(1, 2, or 3\), after the staf)-.2 F .327
+(f, as in "2v1,5v2" Y)-.25 F .327(ou can')-1.1 F 2.827(ts)-.18 G .327
+(pecify a list or)-2.827 F 1.151(range for v)144 537.6 R 1.151
+(oices; if you only w)-.2 F 1.151(ant to mak)-.1 F 3.651(et)-.1 G 1.351
+-.1(wo o)-3.651 H 1.151(ut of three v).1 F 1.151(oices visible, you ha)
+-.2 F 1.452 -.15(ve t)-.2 H 3.652(os).15 G(pecify)-3.652 E
+(them separately)144 549.6 Q 2.5(,l)-.65 G(ik)-2.5 E 2.5(e")-.1 G 2.5
+(1v2,1v3". No)-2.5 F(spaces are allo)2.5 E(wed in the list.)-.25 E F1
+(-v)108 566.4 Q F0(Print the Mup v)27.67 E(ersion number and e)-.15 E
+(xit. This manual page is for v)-.15 E(ersion 5.3.)-.15 E F1(-x)108
+583.2 Q F2(M,N)A F0 .565(Extract measures)10.17 F F2(M)3.065 E F0
+(through)3.065 E F2(N)3.065 E F0 .565(of the song. This allo)3.065 F
+.565(ws you to print or play a part of a song. The)-.25 F .41
+(comma and second v)144 595.2 R .41
+(alue are optional; if not speci\214ed, the def)-.25 F .411
+(ault is to go to the end of the piece.)-.1 F(Positi)144 607.2 Q 1.409
+-.15(ve v)-.25 H 1.109(alues specify the number of measures from the be)
+-.1 F 1.108(ginning of the piece, while ne)-.15 F -.05(ga)-.15 G(ti).05
+E -.15(ve)-.25 G -.25(va)144 619.2 S .775(lues are relati).25 F 1.075
+-.15(ve t)-.25 H 3.275(ot).15 G .775
+(he end, with -1 referring to the last measure of the song.)-3.275 F
+.775(So -x1,-1 means)5.775 F .336(the entire song, if the song doesn')
+144 631.2 R 2.836(th)-.18 G -2.25 -.2(av e)-2.836 H 2.836(ap)3.036 G
+.336(ickup measure.)-2.836 F .336
+(If the song has a pickup measure, that)5.336 F .08
+(is speci\214ed by 0.)144 643.2 R .08
+(So for a song with a pickup, -x0,-1 w)5.08 F .08
+(ould mean the entire song, and -x0,0 w)-.1 F(ould)-.1 E 1.433
+(mean just the pickup measure.)144 655.2 R 1.433(As other e)6.433 F
+1.432(xamples, -x-1,-1 means just the \214nal measure of the)-.15 F .226
+(song, -x2 means starting after the \214rst full measure, -x3,4 means o\
+nly measures 3 and 4, and -x6,6)144 667.2 R .126(means just measure 6.)
+144 679.2 R .125(The starting measure is not allo)5.126 F .125
+(wed to be inside an ending.)-.25 F 2.625(Ac)5.125 G .125(ommon use)
+-2.625 F .363
+(for this option might be to generate a MIDI \214le for just a fe)144
+691.2 R 2.863(wm)-.25 G .363(easures. F)-2.863 F .363(or e)-.15 F .364
+(xample, if you were)-.15 F .089(trying to tweak tempo v)144 703.2 R
+.088(alues for a ritard in the last 2 measures of a song, you could use\
+ -x-2 to lis-)-.25 F(ten to just those measures.)144 715.2 Q
+(Arkkra Enterprises)72 768 Q(Sep 25, 2006)131.94 E(2)202.75 E EP
+%%Page: 3 3
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 406.62(mup\(1\) mup\(1\))72 48 R .448
+(The options, if an)108 84 R 1.748 -.65(y, c)-.15 H .448(an be follo).65
+F .448(wed by one or more)-.25 F/F1 10/Times-Italic@0 SF(\214les)2.948 E
+F0 .448(in Mup format.)2.948 F .448(If no)5.448 F F1(\214les)2.948 E F0
+.448(are speci\214ed, standard)2.948 F .092(input is read.)108 96 R .092
+(If se)5.092 F -.15(ve)-.25 G(ral).15 E F1(\214les)2.592 E F0 .092
+(are listed, the)2.592 F 2.592(ya)-.15 G .092(re ef)-2.592 F(fecti)-.25
+E -.15(ve)-.25 G .091
+(ly concatenated together and treated as one big \214le.).15 F .99(Sinc\
+e there are some things \(such as header and footer\) that are only all\
+o)108 108 R .991(wed to occur once, if you ha)-.25 F -.15(ve)-.2 G(se)
+108 120 Q -.15(ve)-.25 G .777
+(ral independent pieces, mup should be called on each indi).15 F .777
+(vidually rather than trying to print them all)-.25 F .054
+(with one command.)108 132 R .054(If a speci\214ed \214le does not e)
+5.054 F .054(xist, and its name does not already end with .mup or .MUP)
+-.15 F(,)-1.11 E(then Mup will append .mup to the speci\214ed name and \
+attempt to open that.)108 144 Q 1.096(On most systems, the en)108 160.8
+R 1.096(vironment v)-.4 F 1.096(ariable MUPP)-.25 F -1.11(AT)-.92 G
+3.596(Hc)1.11 G 1.096(an be set to a list of paths in which to look for)
+-3.596 F .13('include' \214les.)108 172.8 R .13(The components are sepa\
+rated by a colon on Unix or Linux systems, and by a semicolon on)5.13 F
+(systems with DOS-lik)108 184.8 Q 2.5<658c>-.1 G(le naming con)-2.5 E
+-.15(ve)-.4 G(ntions.).15 E -.15(Fo)108 201.6 S 2.672(rm).15 G .172
+(ore deb)-2.672 F .171(ugging, in addition to the -d option, if the en)
+-.2 F .171(vironment v)-.4 F .171(ariable MUP_BB is set to "bcfghnsu")
+-.25 F .355(or an)108 213.6 R 2.855(ys)-.15 G .356(ubset of those lette\
+rs, the generated output will include "bounding box)-2.855 F .356
+(es" for the things Mup inter)-.15 F(-)-.2 E .465(nally calls bars \(b\
+\), chords \(c\), feeds \(f\), grpsyls \(g\), header/footer and top/bot\
+tom \(h\), notes \(n\), staf)108 225.6 R .465(fs \(s\),)-.25 F .367
+(and stuf)108 237.6 R 2.867(f\()-.25 G 2.867(u\). While)-2.867 F .367
+(this is intended for use in deb)2.867 F .368
+(ugging Mup itself, it may also help you understand wh)-.2 F(y)-.05 E
+.315(Mup places things the w)108 249.6 R .315
+(ay it does, since in general, Mup only allo)-.1 F .314(ws bounding box)
+-.25 F .314(es to o)-.15 F -.15(ve)-.15 G .314(rlap according).15 F
+(to speci\214c rules. If vie)108 261.6 Q
+(wed with a color PostScript vie)-.25 E(wer \(not mupdisp\), these box)
+-.25 E(es will be in color)-.15 E(.)-.55 E/F2 10.95/Times-Bold@0 SF
+(SEE ALSO)72 278.4 Q F0
+(gs\(1\), mkmupfnt\(1\), mupdisp\(1\), mupmate\(1\), mupprnt\(1\).)108
+290.4 Q(Mup \212 Music Publisher User')108 302.4 Q 2.5(sG)-.55 G(uide)
+-2.5 E(Arkkra Enterprises)72 768 Q(Sep 25, 2006)131.94 E(3)202.75 E EP
+%%Trailer
+end
+%%EOF
diff --git a/mup/docs/mupdisp.1 b/mup/docs/mupdisp.1
new file mode 100644 (file)
index 0000000..1be9165
--- /dev/null
@@ -0,0 +1,127 @@
+.TH mupdisp 1 "November 4, 2006" "Arkkra Enterprises"
+.SH NAME
+.PP
+mupdisp - display output from Mup music publisher program
+.SH SYNOPSIS
+.PP
+mupdisp \fI[mup_options] file\fP
+.SH DESCRIPTION
+.PP
+Mupdisp provides a way to view Mup output on your screen.
+The \fIfile\fP is Mup input. Any other Mup options can be given,
+except -f, -m, -M, -r, or -v, which don't produce print output.
+.PP
+Mupdisp will run under MS-DOS or will run under
+UNIX with a TERM of AT386, linux, or xterm (under X windows). 
+.PP
+When running under X windows, several standard X options are
+available:
+.TP
+\fB-geometry\fP \fIXxY+M+N\fP
+Sets the window size and/or location on the screen. The actual window
+width will be determined by the width of the Mup output. The height
+will be adjusted if necessary to be between 400 and the actual height
+of the Mup output. The window placment specifications can be positive
+or negative. The actual placement may be adjusted by your window manager.
+.TP
+\fB-fg\fP \fIcolor\fP or \fB-foreground\fP \fIcolor\fP
+Specifies the foreground color to use.
+.TP
+\fB-bg\fP \fIcolor\fP or \fB-background\fP \fIcolor\fP
+Specifies the background color to use.
+.PP
+These X options can also be set in your .Xdefaults file using resource names of
+mupdisp.geometry, mupdisp.foreground, and mupdisp.background. Command
+line arguments will override values in the .Xdefaults file.
+As an example, you could add these lines to your .Xdefaults file:
+.nf
+.na
+.ft CW
+.in +1i
+
+mupdisp.foreground:   navy
+mupdisp.background:   gray
+mupdisp.geometry:     400x760+100-34
+
+.in -1i
+.ft P
+.fi
+.ad
+.PP
+The Mupdisp program begins in partial page mode,
+which displays output at approximately actual size (depending
+on the size of your monitor). In this mode, most likely
+not all of the page fits on the
+screen, so the scrolling commands can be used to move up and down to view
+different parts of the page. In full page mode, a small version of the
+entire page is displayed.  This is useful
+for seeing overall page layout, but is generally too small to see much detail.
+This mode is now somewhat of a relic of the days when screens were typically
+much smaller than they are today, and is thus becoming less useful.
+.PP
+If the environment variable MUPDISPMODE is set to some value,
+Mupdisp will start in full page rather than partial page mode.
+.PP
+The commands are:
+.TP
+\fInum\fP<Enter>
+Go to page number \fInum\fP.
+.TP
++ or <space> or <control-E> or <control-F>
+move forward on the page by about 1/8 of an inch
+(partial page mode only)
+.TP
+- or <backspace> or <control-Y> or <control-B>
+move backward on the page by about 1/8 of an inch
+(partial page mode only)
+.TP
+b or <control-U> or <control-P> or <up-arrow-key>
+move backward on the page by about an inch
+(partial page mode only)
+.TP
+f or <Enter> or <control-D> or <control-N> or <down-arrow-key>
+move forward on the page by about an inch
+(partial page mode only)
+.TP
+h or ?
+display help screen
+.TP
+m
+toggle between partial page and full page modes.
+.TP
+n or <PageDown>
+go to next page
+.TP
+p or <PageUp>
+go to previous page
+.TP
+q or ZZ
+quit
+.TP
+r
+Repaint the page (useful for exiting help page)
+.PP
+When in X windows, the mouse can be used for scrolling. The left button scrolls
+downward like the f command, while the right button scrolls backwards like
+the b command.
+.PP
+Mupdisp supports page sizes of letter (8.5 x 11.0 inches),
+note (7.5 x 10.0 inches), legal (8.5 x 14.0 inches),
+A4 (8.26 x 11.69 inches), A5 (5.85 x 8.26 inches),
+A6 (4.125 x 5.85 inches), flsa (8.5 x 13.0 inches), and
+halfletter (5.5 x 8.5 inches).
+.SH FILES
+.P
+$HOME/.Xdefaults   default X window resource definitions
+.SH "SEE ALSO"
+.PP
+gs(1), mup(1), mupmate(1), mupprnt(1).
+.br
+Mup \(em Music Publisher User's Guide
+.SH "CAVEATS AND BUGS"
+.PP
+You must have mup in your PATH.
+You must have ghostscript (gs or gs386.exe) in your PATH
+and it must be built to include the "bit" device.
+.PP
+Resizing the window does not resize the full page view.
diff --git a/mup/docs/mupdisp.ps b/mup/docs/mupdisp.ps
new file mode 100644 (file)
index 0000000..fe483c7
--- /dev/null
@@ -0,0 +1,326 @@
+%!PS-Adobe-3.0
+%%Creator: groff version 1.17.2
+%%CreationDate: Sat Dec  9 16:59:22 2006
+%%DocumentNeededResources: font Times-Roman
+%%+ font Times-Bold
+%%+ font Times-Italic
+%%+ font Courier
+%%DocumentSuppliedResources: procset grops 1.17 2
+%%Pages: 2
+%%PageOrder: Ascend
+%%Orientation: Portrait
+%%EndComments
+%%BeginProlog
+%%BeginResource: procset grops 1.17 2
+/setpacking where{
+pop
+currentpacking
+true setpacking
+}if
+/grops 120 dict dup begin
+/SC 32 def
+/A/show load def
+/B{0 SC 3 -1 roll widthshow}bind def
+/C{0 exch ashow}bind def
+/D{0 exch 0 SC 5 2 roll awidthshow}bind def
+/E{0 rmoveto show}bind def
+/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def
+/G{0 rmoveto 0 exch ashow}bind def
+/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/I{0 exch rmoveto show}bind def
+/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def
+/K{0 exch rmoveto 0 exch ashow}bind def
+/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/M{rmoveto show}bind def
+/N{rmoveto 0 SC 3 -1 roll widthshow}bind def
+/O{rmoveto 0 exch ashow}bind def
+/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/Q{moveto show}bind def
+/R{moveto 0 SC 3 -1 roll widthshow}bind def
+/S{moveto 0 exch ashow}bind def
+/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/SF{
+findfont exch
+[exch dup 0 exch 0 exch neg 0 0]makefont
+dup setfont
+[exch/setfont cvx]cvx bind def
+}bind def
+/MF{
+findfont
+[5 2 roll
+0 3 1 roll
+neg 0 0]makefont
+dup setfont
+[exch/setfont cvx]cvx bind def
+}bind def
+/level0 0 def
+/RES 0 def
+/PL 0 def
+/LS 0 def
+/MANUAL{
+statusdict begin/manualfeed true store end
+}bind def
+/PLG{
+gsave newpath clippath pathbbox grestore
+exch pop add exch pop
+}bind def
+/BP{
+/level0 save def
+1 setlinecap
+1 setlinejoin
+72 RES div dup scale
+LS{
+90 rotate
+}{
+0 PL translate
+}ifelse
+1 -1 scale
+}bind def
+/EP{
+level0 restore
+showpage
+}bind def
+/DA{
+newpath arcn stroke
+}bind def
+/SN{
+transform
+.25 sub exch .25 sub exch
+round .25 add exch round .25 add exch
+itransform
+}bind def
+/DL{
+SN
+moveto
+SN
+lineto stroke
+}bind def
+/DC{
+newpath 0 360 arc closepath
+}bind def
+/TM matrix def
+/DE{
+TM currentmatrix pop
+translate scale newpath 0 0 .5 0 360 arc closepath
+TM setmatrix
+}bind def
+/RC/rcurveto load def
+/RL/rlineto load def
+/ST/stroke load def
+/MT/moveto load def
+/CL/closepath load def
+/FL{
+currentgray exch setgray fill setgray
+}bind def
+/BL/fill load def
+/LW/setlinewidth load def
+/RE{
+findfont
+dup maxlength 1 index/FontName known not{1 add}if dict begin
+{
+1 index/FID ne{def}{pop pop}ifelse
+}forall
+/Encoding exch def
+dup/FontName exch def
+currentdict end definefont pop
+}bind def
+/DEFS 0 def
+/EBEGIN{
+moveto
+DEFS begin
+}bind def
+/EEND/end load def
+/CNT 0 def
+/level1 0 def
+/PBEGIN{
+/level1 save def
+translate
+div 3 1 roll div exch scale
+neg exch neg exch translate
+0 setgray
+0 setlinecap
+1 setlinewidth
+0 setlinejoin
+10 setmiterlimit
+[]0 setdash
+/setstrokeadjust where{
+pop
+false setstrokeadjust
+}if
+/setoverprint where{
+pop
+false setoverprint
+}if
+newpath
+/CNT countdictstack def
+userdict begin
+/showpage{}def
+}bind def
+/PEND{
+clear
+countdictstack CNT sub{end}repeat
+level1 restore
+}bind def
+end def
+/setpacking where{
+pop
+setpacking
+}if
+%%EndResource
+%%IncludeResource: font Times-Roman
+%%IncludeResource: font Times-Bold
+%%IncludeResource: font Times-Italic
+%%IncludeResource: font Courier
+grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
+def/PL PLG def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron
+/scaron/zcaron/Ydieresis/trademark/quotesingle/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
+/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen
+/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
+/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O
+/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex
+/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y
+/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft
+/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl
+/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut
+/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash
+/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen
+/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft
+/logicalnot/minus/registered/macron/degree/plusminus/twosuperior
+/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior
+/ordmasculine/guilsinglright/onequarter/onehalf/threequarters
+/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE
+/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn
+/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
+/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
+/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash
+/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
+/Courier@0 ENC0/Courier RE/Times-Italic@0 ENC0/Times-Italic RE
+/Times-Bold@0 ENC0/Times-Bold RE/Times-Roman@0 ENC0/Times-Roman RE
+%%EndProlog
+%%Page: 1 1
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 373.28(mupdisp\(1\) mupdisp\(1\))72 48 R/F1
+10.95/Times-Bold@0 SF -.219(NA)72 84 S(ME).219 E F0
+(mupdisp - display output from Mup music publisher program)108 96 Q F1
+(SYNOPSIS)72 112.8 Q F0(mupdisp)108 124.8 Q/F2 10/Times-Italic@0 SF
+([mup_options] \214le)2.5 E F1(DESCRIPTION)72 141.6 Q F0 .054
+(Mupdisp pro)108 153.6 R .054(vides a w)-.15 F .053(ay to vie)-.1 F
+2.553(wM)-.25 G .053(up output on your screen.)-2.553 F(The)5.053 E F2
+(\214le)2.553 E F0 .053(is Mup input. An)2.553 F 2.553(yo)-.15 G .053
+(ther Mup options)-2.553 F(can be gi)108 165.6 Q -.15(ve)-.25 G(n, e).15
+E(xcept -f, -m, -M, -r)-.15 E 2.5(,o)-.4 G 2.5(r-)-2.5 G 1.3 -.65(v, w)
+-2.5 H(hich don').65 E 2.5(tp)-.18 G(roduce print output.)-2.5 E .453
+(Mupdisp will run under MS-DOS or will run under UNIX with a TERM of A)
+108 182.4 R .453(T386, linux, or xterm \(under)-1.11 F 2.5(Xw)108 194.4
+S(indo)-2.5 E(ws\).)-.25 E(When running under X windo)108 211.2 Q
+(ws, se)-.25 E -.15(ve)-.25 G(ral standard X options are a).15 E -.25
+(va)-.2 G(ilable:).25 E/F3 10/Times-Bold@0 SF(-geometry)108 228 Q F2
+(XxY+M+N)2.5 E F0 .66(Sets the windo)144 240 R 3.16(ws)-.25 G .659
+(ize and/or location on the screen. The actual windo)-3.16 F 3.159(ww)
+-.25 G .659(idth will be determined)-3.159 F .814(by the width of the M\
+up output. The height will be adjusted if necessary to be between 400 a\
+nd)144 252 R .716(the actual height of the Mup output. The windo)144 264
+R 3.216(wp)-.25 G .716(lacment speci\214cations can be positi)-3.216 F
+1.016 -.15(ve o)-.25 H 3.216(rn).15 G -.15(eg)-3.216 G(-).15 E(ati)144
+276 Q -.15(ve)-.25 G 2.5(.T).15 G
+(he actual placement may be adjusted by your windo)-2.5 E 2.5(wm)-.25 G
+(anager)-2.5 E(.)-.55 E F3(-fg)108 292.8 Q F2(color)2.5 E F0(or)2.5 E F3
+(-f)2.5 E(or)-.25 E(egr)-.18 E(ound)-.18 E F2(color)2.5 E F0
+(Speci\214es the fore)144 304.8 Q(ground color to use.)-.15 E F3(-bg)108
+321.6 Q F2(color)2.5 E F0(or)2.5 E F3(-backgr)2.5 E(ound)-.18 E F2
+(color)2.5 E F0(Speci\214es the background color to use.)144 333.6 Q
+2.483(These X options can also be set in your .Xdef)108 350.4 R 2.484
+(aults \214le using resource names of mupdisp.geometry)-.1 F(,)-.65 E
+(mupdisp.fore)108 362.4 Q .468
+(ground, and mupdisp.background. Command line ar)-.15 F .468
+(guments will o)-.18 F -.15(ve)-.15 G .468(rride v).15 F .468
+(alues in the .Xde-)-.25 F -.1(fa)108 374.4 S(ults \214le.).1 E(As an e)
+5 E(xample, you could add these lines to your .Xdef)-.15 E
+(aults \214le:)-.1 E/F4 10/Courier@0 SF 12(mupdisp.foreground: navy)180
+398.4 R 12(mupdisp.background: gray)180 410.4 R 24
+(mupdisp.geometry: 400x760+100-34)180 422.4 R F0 1.565
+(The Mupdisp program be)108 451.2 R 1.566(gins in partial page mode, wh\
+ich displays output at approximately actual size)-.15 F .446
+(\(depending on the size of your monitor\). In this mode, most lik)108
+463.2 R .445(ely not all of the page \214ts on the screen, so)-.1 F .503
+(the scrolling commands can be used to mo)108 475.2 R .803 -.15(ve u)
+-.15 H 3.003(pa).15 G .503(nd do)-3.003 F .504(wn to vie)-.25 F 3.004
+(wd)-.25 G(if)-3.004 E .504(ferent parts of the page. In full page)-.25
+F .684(mode, a small v)108 487.2 R .683
+(ersion of the entire page is displayed.)-.15 F .683
+(This is useful for seeing o)5.683 F -.15(ve)-.15 G .683
+(rall page layout, b).15 F .683(ut is)-.2 F .968
+(generally too small to see much detail.)108 499.2 R .968
+(This mode is no)5.968 F 3.468(ws)-.25 G(ome)-3.468 E .969
+(what of a relic of the days when screens)-.25 F
+(were typically much smaller than the)108 511.2 Q 2.5(ya)-.15 G
+(re today)-2.5 E 2.5(,a)-.65 G(nd is thus becoming less useful.)-2.5 E
+.965(If the en)108 528 R .965(vironment v)-.4 F .965
+(ariable MUPDISPMODE is set to some v)-.25 F .965
+(alue, Mupdisp will start in full page rather)-.25 F
+(than partial page mode.)108 540 Q(The commands are:)108 556.8 Q F2(num)
+108 573.6 Q F0(<Enter>)A(Go to page number)144 585.6 Q F2(num)2.5 E F0
+(.)A 2.5(+o)108 602.4 S 2.5(r<)-2.5 G
+(space> or <control-E> or <control-F>)-2.5 E(mo)144 614.4 Q .3 -.15
+(ve f)-.15 H(orw).15 E
+(ard on the page by about 1/8 of an inch \(partial page mode only\))-.1
+E 2.5(-o)108 631.2 S 2.5(r<)-2.5 G
+(backspace> or <control-Y> or <control-B>)-2.5 E(mo)144 643.2 Q .3 -.15
+(ve b)-.15 H(ackw).15 E
+(ard on the page by about 1/8 of an inch \(partial page mode only\))-.1
+E 2.5(bo)108 660 S 2.5(r<)-2.5 G(control-U> or <control-P> or <up-arro)
+-2.5 E(w-k)-.25 E -.15(ey)-.1 G(>).15 E(mo)144 672 Q .3 -.15(ve b)-.15 H
+(ackw).15 E(ard on the page by about an inch \(partial page mode only\))
+-.1 E 2.5(fo)108 688.8 S 2.5(r<)-2.5 G
+(Enter> or <control-D> or <control-N> or <do)-2.5 E(wn-arro)-.25 E(w-k)
+-.25 E -.15(ey)-.1 G(>).15 E(mo)144 700.8 Q .3 -.15(ve f)-.15 H(orw).15
+E(ard on the page by about an inch \(partial page mode only\))-.1 E 2.5
+(ho)108 717.6 S 5.73 2.5(r? d)-2.5 H(isplay help screen)-2.5 E
+(Arkkra Enterprises)72 768 Q(No)120.985 E -.15(ve)-.15 G(mber 4, 2006)
+.15 E(1)191.795 E EP
+%%Page: 2 2
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 373.28(mupdisp\(1\) mupdisp\(1\))72 48 R 28.22
+(mt)108 84 S(oggle between partial page and full page modes.)-28.22 E
+2.5(no)108 100.8 S 2.5(r<)-2.5 G -.15(Pa)-2.5 G(geDo).15 E(wn>)-.25 E
+(go to ne)144 112.8 Q(xt page)-.15 E 2.5(po)108 129.6 S 2.5(r<)-2.5 G
+-.15(Pa)-2.5 G(geUp>).15 E(go to pre)144 141.6 Q(vious page)-.25 E 2.5
+(qo)108 158.4 S 2.5(rZ)-2.5 G 5.45(Zq)-2.5 G(uit)-5.45 E 32.67(rR)108
+175.2 S(epaint the page \(useful for e)-32.67 E(xiting help page\))-.15
+E .258(When in X windo)108 192 R .258
+(ws, the mouse can be used for scrolling. The left b)-.25 F .259
+(utton scrolls do)-.2 F(wnw)-.25 E .259(ard lik)-.1 F 2.759(et)-.1 G
+.259(he f com-)-2.759 F(mand, while the right b)108 204 Q
+(utton scrolls backw)-.2 E(ards lik)-.1 E 2.5(et)-.1 G(he b command.)
+-2.5 E .119(Mupdisp supports page sizes of letter \(8.5 x 11.0 inches\)\
+, note \(7.5 x 10.0 inches\), le)108 220.8 R -.05(ga)-.15 G 2.619(l\()
+.05 G .119(8.5 x 14.0 inches\),)-2.619 F .658(A4 \(8.26 x 11.69 inches\
+\), A5 \(5.85 x 8.26 inches\), A6 \(4.125 x 5.85 inches\), \215sa \(8.5\
+ x 13.0 inches\), and)108 232.8 R(hal\215etter \(5.5 x 8.5 inches\).)108
+244.8 Q/F1 10.95/Times-Bold@0 SF(FILES)72 261.6 Q F0($HOME/.Xdef)108
+273.6 Q 5(aults def)-.1 F(ault X windo)-.1 E 2.5(wr)-.25 G
+(esource de\214nitions)-2.5 E F1(SEE ALSO)72 290.4 Q F0
+(gs\(1\), mup\(1\), mupmate\(1\), mupprnt\(1\).)108 302.4 Q
+(Mup \212 Music Publisher User')108 314.4 Q 2.5(sG)-.55 G(uide)-2.5 E F1
+(CA)72 331.2 Q(VEA)-1.588 E(TS AND B)-1.04 E(UGS)-.11 E F0 -1.1(Yo)108
+343.2 S 2.814(um)1.1 G .314(ust ha)-2.814 F .614 -.15(ve m)-.2 H .313
+(up in your P).15 F -1.11(AT)-.92 G 2.813(H. Y)1.11 F .313(ou must ha)
+-1.1 F .613 -.15(ve g)-.2 H .313(hostscript \(gs or gs386.e).15 F -.15
+(xe)-.15 G 2.813(\)i).15 G 2.813(ny)-2.813 G .313(our P)-2.813 F -1.11
+(AT)-.92 G 2.813(Ha)1.11 G .313(nd it must)-2.813 F(be b)108 355.2 Q
+(uilt to include the "bit" de)-.2 E(vice.)-.25 E(Resizing the windo)108
+372 Q 2.5(wd)-.25 G(oes not resize the full page vie)-2.5 E -.65(w.)-.25
+G(Arkkra Enterprises)72 768 Q(No)120.985 E -.15(ve)-.15 G(mber 4, 2006)
+.15 E(2)191.795 E EP
+%%Trailer
+end
+%%EOF
diff --git a/mup/docs/mupfeat.txt b/mup/docs/mupfeat.txt
new file mode 100644 (file)
index 0000000..6e22a1e
--- /dev/null
@@ -0,0 +1,115 @@
+
+                Mup - Music Publication Program Highlights
+
+       1.  The Mup Music Publication program
+
+       Mup is a shareware music publication program.  Mup Version
+       5.3 is now available in source form as well as ready-to-run
+       for MS-DOS/Windows and Linux x86.  There is also a Mac
+       version available.
+
+       Music is described by a text file that you can create using
+       your favorite editor or the included Mupmate program.  Mup
+       then determines how to lay out the music, and generates
+       PostScript output for displaying or printing it.  It is a
+       powerful and flexible program, which has been used on
+       thousands of songs in a wide variety of styles, both
+       instrumental and vocal.
+
+       Mup's features include:
+
+          - Up to 40 staffs, which can include 1-line, 5-line, and
+            tablature staffs.  Output can be restricted to any
+            subset of the staffs.  Different staffs can be
+            different sizes.
+
+          - Up to 3 independent voices per staff, up to 70
+            simultaneous notes per voice.
+
+          - Double whole to 256th notes, with any number of dots.
+            Tuplets.
+
+          - Note styles of normal, grace, cue, X, diamond, plus
+            shaped notes.  Optional parentheses around notes and/or
+            accidentals.
+
+          - Cross-staff stems.
+
+          - Time signatures of cut, common, or numerators from 1 to
+            99 and denominators from 1 to 64.  Complicated time
+            signatures, including numerators with two or more
+            numbers added together, or two or more fractions added
+            together, or alternating time signatures.
+
+          - All standard clefs, including treble, treble8, 8treble,
+            French violin, soprano, mezzosoprano, alto, tenor,
+            baritone, and bass, as well as the drum (neutral) clef.
+            Clefs can be changed in the middle of measures.
+
+          - Barline styles of single, double, dashed, dotted, end,
+            repeats, or none.
+
+          - 8th note and shorter notes can have either flags or
+            beams; beams can be cross-staff.
+
+          - Guitar grids
+
+          - Lyrics can be placed above, below, or between staffs.
+            Unlimited number of verses, with control of font and
+            size.
+
+          - Headers and footers.
+
+          - Staffs can be grouped with braces or brackets.
+
+          - Automatic transposition of music and chord marks per
+            staff.
+
+          - First and subsequent endings.
+
+          - Optional rehearsal marks and/or automatic measure
+            numbering.  Rehearsal marks can be boxed, circled, or
+            plain.
+
+          - Crescendo/decrescendo marks.
+
+          - Rolls, ornaments, fermatas, accents.
+
+          - Measure repeats.
+
+          - Ties, slurs, phrase marks, octave marks, piano pedal
+            marks, etc.  Ties, slurs, and phrase marks can be
+            solid, dotted, or dashed.
+
+          - Suport for figured bass, analysis, and chords.
+
+          - Optional MIDI file output. (Very useful for "proof-
+            listening" to your songs to check for input mistakes!)
+
+          - PostScript output for printing on any PostScript
+            compatible output device.  Can be used with
+            Ghostscript.
+
+          - All standard PostScript fonts supported, in 1 to 100
+            point size, including most common non-English
+            characters.
+
+          - Input is a text file, for easy portability between
+            computer systems.
+
+          - Macros and 'include' files.
+
+          - General 'if' clauses that can be used to generate
+            different outputs based on values of parameters.
+
+          - Mup will determine how to lay out the music, but there
+            are numerous user controls available to fine-tune the
+            output to meet your specific needs.
+
+          - Comprehensive User's Guide provided in both PostScript
+            and HTML formats, including many examples.
+
+          - Mup is available via ftp to try out for free.  If you
+            like it and want to keep it, the shareware registration
+            is far lower than the cost of most music publication
+            software.
diff --git a/mup/docs/mupmate.1 b/mup/docs/mupmate.1
new file mode 100644 (file)
index 0000000..b9239cd
--- /dev/null
@@ -0,0 +1,69 @@
+.TH mupmate 1 "November 4, 2006" "Arkkra Enterprises"
+.SH NAME
+.PP
+mupmate - user interface for Mup music publisher
+.SH SYNOPSIS
+.PP
+mupmate [\fIfile\fP]
+.SH DESCRIPTION
+.PP
+.P
+You can create a Mup file using any ordinary text editor.
+On Windows, Notepad is a typical choice; on Linux, editors like
+vim and emacs are commonly used. But if you prefer to be able to
+edit, display, and play from a single integrated and more graphical
+interface, a helper program called "mupmate" is provided. Mupmate is currently
+only supported on Windows and Linux. However, since the source code is
+available, and it is based on the cross-platform FLTK toolkit, it
+can probably be made to run on any system supported by FLTK fairly easily.
+If you prefer to use the Mup program directly rather than via mupmate,
+you can.  The Mupmate program just helps lead you through some of the steps.
+.PP
+Once you have installed Mup and Mupmate on Windows, double clicking
+a .mup file in Windows explorer will run Mupmate on that file.
+Or, you can run Mupmate by going to the Start menu, and choosing
+Programs, then Arkkra, and then Mupmate.  If you would like an icon
+on the desktop, you can create one by right clicking
+the Mupmate choice in the Arkkra menu,
+choosing "copy", right clicking somewhere on the desktop, and choosing "paste."
+.PP
+On Linux, you can just type the mupmate command,
+optionally followed by the name of a Mup input file. 
+Or you can add mupmate to your favorite window manager's menus.
+.P
+Mupmate provides five top level menus: File, Edit, Run, Config, and Help.
+The File menu provides commands for opening new files and saving the
+file you are working on, as well as exit the program. The Edit menu
+provides the kinds of things you would expect in a editor: commands to find
+a pattern, or find and replace; to select text; to copy, cut, and paste;
+to go to a specific line; and to undo the previous operation, if you make
+a mistake or change you mind.
+The Run menu lets you set runtime options,
+and then run the Mup program on your input in various
+ways. You can either just generate a PostScript or MIDI file,
+or display the PostScript or play the MIDI.
+The Config menu lets you specify what application program you want
+to use to view PostScript files and which you want to use to play MIDI files,
+and well as specify locations for other Mup files. Mupmate will try to
+find reasonable default values, but you may want to check that they are
+what you want, and tweak them if they aren't.
+The Config menu also provides a way for you to fill in the Mup registration
+form if you wish to send in a paper form rather than registering online
+via credit card,  as well as a place to entry the registration key you
+will receive once you have paid.
+The Help menu lets you browse the Mup User's Guide, view some startup hints,
+or see the current version number of Mup and Mupmate.
+.SH "SEE ALSO"
+.PP
+gs(1), mup(1).
+.br
+Mup \(em Music Publisher User's Guide
+.SH "CAVEATS"
+.PP
+Mupmate is currently only supported on Windows and Linux or similar.
+.PP
+Mupmate does not directly provide a print facility. Almost any PostScript
+viewer already provides this ability, so you can simply select "Display"
+from the Run menu and use the viewer's print capabilities.
+Alternately you can use the "Write PostScript File" from the Run menu
+and then print the resulting file.
diff --git a/mup/docs/mupmate.ps b/mup/docs/mupmate.ps
new file mode 100644 (file)
index 0000000..e9bd14a
--- /dev/null
@@ -0,0 +1,301 @@
+%!PS-Adobe-3.0
+%%Creator: groff version 1.17.2
+%%CreationDate: Sat Dec  9 16:59:22 2006
+%%DocumentNeededResources: font Times-Roman
+%%+ font Times-Bold
+%%+ font Times-Italic
+%%DocumentSuppliedResources: procset grops 1.17 2
+%%Pages: 1
+%%PageOrder: Ascend
+%%Orientation: Portrait
+%%EndComments
+%%BeginProlog
+%%BeginResource: procset grops 1.17 2
+/setpacking where{
+pop
+currentpacking
+true setpacking
+}if
+/grops 120 dict dup begin
+/SC 32 def
+/A/show load def
+/B{0 SC 3 -1 roll widthshow}bind def
+/C{0 exch ashow}bind def
+/D{0 exch 0 SC 5 2 roll awidthshow}bind def
+/E{0 rmoveto show}bind def
+/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def
+/G{0 rmoveto 0 exch ashow}bind def
+/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/I{0 exch rmoveto show}bind def
+/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def
+/K{0 exch rmoveto 0 exch ashow}bind def
+/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/M{rmoveto show}bind def
+/N{rmoveto 0 SC 3 -1 roll widthshow}bind def
+/O{rmoveto 0 exch ashow}bind def
+/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/Q{moveto show}bind def
+/R{moveto 0 SC 3 -1 roll widthshow}bind def
+/S{moveto 0 exch ashow}bind def
+/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/SF{
+findfont exch
+[exch dup 0 exch 0 exch neg 0 0]makefont
+dup setfont
+[exch/setfont cvx]cvx bind def
+}bind def
+/MF{
+findfont
+[5 2 roll
+0 3 1 roll
+neg 0 0]makefont
+dup setfont
+[exch/setfont cvx]cvx bind def
+}bind def
+/level0 0 def
+/RES 0 def
+/PL 0 def
+/LS 0 def
+/MANUAL{
+statusdict begin/manualfeed true store end
+}bind def
+/PLG{
+gsave newpath clippath pathbbox grestore
+exch pop add exch pop
+}bind def
+/BP{
+/level0 save def
+1 setlinecap
+1 setlinejoin
+72 RES div dup scale
+LS{
+90 rotate
+}{
+0 PL translate
+}ifelse
+1 -1 scale
+}bind def
+/EP{
+level0 restore
+showpage
+}bind def
+/DA{
+newpath arcn stroke
+}bind def
+/SN{
+transform
+.25 sub exch .25 sub exch
+round .25 add exch round .25 add exch
+itransform
+}bind def
+/DL{
+SN
+moveto
+SN
+lineto stroke
+}bind def
+/DC{
+newpath 0 360 arc closepath
+}bind def
+/TM matrix def
+/DE{
+TM currentmatrix pop
+translate scale newpath 0 0 .5 0 360 arc closepath
+TM setmatrix
+}bind def
+/RC/rcurveto load def
+/RL/rlineto load def
+/ST/stroke load def
+/MT/moveto load def
+/CL/closepath load def
+/FL{
+currentgray exch setgray fill setgray
+}bind def
+/BL/fill load def
+/LW/setlinewidth load def
+/RE{
+findfont
+dup maxlength 1 index/FontName known not{1 add}if dict begin
+{
+1 index/FID ne{def}{pop pop}ifelse
+}forall
+/Encoding exch def
+dup/FontName exch def
+currentdict end definefont pop
+}bind def
+/DEFS 0 def
+/EBEGIN{
+moveto
+DEFS begin
+}bind def
+/EEND/end load def
+/CNT 0 def
+/level1 0 def
+/PBEGIN{
+/level1 save def
+translate
+div 3 1 roll div exch scale
+neg exch neg exch translate
+0 setgray
+0 setlinecap
+1 setlinewidth
+0 setlinejoin
+10 setmiterlimit
+[]0 setdash
+/setstrokeadjust where{
+pop
+false setstrokeadjust
+}if
+/setoverprint where{
+pop
+false setoverprint
+}if
+newpath
+/CNT countdictstack def
+userdict begin
+/showpage{}def
+}bind def
+/PEND{
+clear
+countdictstack CNT sub{end}repeat
+level1 restore
+}bind def
+end def
+/setpacking where{
+pop
+setpacking
+}if
+%%EndResource
+%%IncludeResource: font Times-Roman
+%%IncludeResource: font Times-Bold
+%%IncludeResource: font Times-Italic
+grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
+def/PL PLG def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron
+/scaron/zcaron/Ydieresis/trademark/quotesingle/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
+/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen
+/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
+/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O
+/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex
+/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y
+/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft
+/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl
+/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut
+/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash
+/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen
+/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft
+/logicalnot/minus/registered/macron/degree/plusminus/twosuperior
+/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior
+/ordmasculine/guilsinglright/onequarter/onehalf/threequarters
+/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE
+/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn
+/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
+/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
+/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash
+/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
+/Times-Italic@0 ENC0/Times-Italic RE/Times-Bold@0 ENC0/Times-Bold RE
+/Times-Roman@0 ENC0/Times-Roman RE
+%%EndProlog
+%%Page: 1 1
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 367.74(mupmate\(1\) mupmate\(1\))72 48 R/F1
+10.95/Times-Bold@0 SF -.219(NA)72 84 S(ME).219 E F0
+(mupmate - user interf)108 96 Q(ace for Mup music publisher)-.1 E F1
+(SYNOPSIS)72 112.8 Q F0(mupmate [)108 124.8 Q/F2 10/Times-Italic@0 SF
+(\214le)A F0(])A F1(DESCRIPTION)72 141.6 Q F0 -1.1(Yo)108 153.6 S 3.67
+(uc)1.1 G 1.17(an create a Mup \214le using an)-3.67 F 3.67(yo)-.15 G
+1.17(rdinary te)-3.67 F 1.17(xt editor)-.15 F 6.17(.O)-.55 G 3.67(nW)
+-6.17 G(indo)-4.07 E 1.17(ws, Notepad is a typical choice; on)-.25 F
+.084(Linux, editors lik)108 165.6 R 2.584(ev)-.1 G .085(im and emacs ar\
+e commonly used. But if you prefer to be able to edit, display)-2.584 F
+2.585(,a)-.65 G .085(nd play)-2.585 F 1.62(from a single inte)108 177.6
+R 1.619(grated and more graphical interf)-.15 F 1.619
+(ace, a helper program called "mupmate" is pro)-.1 F(vided.)-.15 E .466
+(Mupmate is currently only supported on W)108 189.6 R(indo)-.4 E .467
+(ws and Linux. Ho)-.25 F(we)-.25 E -.15(ve)-.25 G 1.267 -.4(r, s).15 H
+.467(ince the source code is a).4 F -.25(va)-.2 G(ilable,).25 E .164
+(and it is based on the cross-platform FL)108 201.6 R .164
+(TK toolkit, it can probably be made to run on an)-.92 F 2.663(ys)-.15 G
+.163(ystem supported)-2.663 F .98(by FL)108 213.6 R .98(TK f)-.92 F .98
+(airly easily)-.1 F 5.98(.I)-.65 G 3.48(fy)-5.98 G .98(ou prefer to use\
+ the Mup program directly rather than via mupmate, you can.)-3.48 F
+(The Mupmate program just helps lead you through some of the steps.)108
+225.6 Q .38(Once you ha)108 242.4 R .68 -.15(ve i)-.2 H .38
+(nstalled Mup and Mupmate on W).15 F(indo)-.4 E .379
+(ws, double clicking a .mup \214le in W)-.25 F(indo)-.4 E .379(ws e)-.25
+F(xplorer)-.15 E .902(will run Mupmate on that \214le.)108 254.4 R(Or)
+5.902 E 3.402(,y)-.4 G .903
+(ou can run Mupmate by going to the Start menu, and choosing Pro-)-3.402
+F .705(grams, then Arkkra, and then Mupmate.)108 266.4 R .705(If you w)
+5.705 F .705(ould lik)-.1 F 3.205(ea)-.1 G 3.205(ni)-3.205 G .704
+(con on the desktop, you can create one by)-3.205 F .598
+(right clicking the Mupmate choice in the Arkkra menu, choosing "cop)108
+278.4 R .598(y", right clicking some)-.1 F .598(where on the)-.25 F
+(desktop, and choosing "paste.")108 290.4 Q .512
+(On Linux, you can just type the mupmate command, optionally follo)108
+307.2 R .512(wed by the name of a Mup input \214le.)-.25 F
+(Or you can add mupmate to your f)108 319.2 Q -.2(avo)-.1 G(rite windo)
+.2 E 2.5(wm)-.25 G(anager')-2.5 E 2.5(sm)-.55 G(enus.)-2.5 E .665
+(Mupmate pro)108 336 R .665(vides \214v)-.15 F 3.165(et)-.15 G .665
+(op le)-3.165 F -.15(ve)-.25 G 3.165(lm).15 G .665
+(enus: File, Edit, Run, Con\214g, and Help.)-3.165 F .665
+(The File menu pro)5.665 F .665(vides com-)-.15 F .555
+(mands for opening ne)108 348 R 3.055<778c>-.25 G .555(les and sa)-3.055
+F .555(ving the \214le you are w)-.2 F .554(orking on, as well as e)-.1
+F .554(xit the program. The Edit)-.15 F .917(menu pro)108 360 R .917
+(vides the kinds of things you w)-.15 F .917(ould e)-.1 F .918
+(xpect in a editor: commands to \214nd a pattern, or \214nd and)-.15 F
+.232(replace; to select te)108 372 R .232(xt; to cop)-.15 F 1.532 -.65
+(y, c)-.1 H .232
+(ut, and paste; to go to a speci\214c line; and to undo the pre).65 F
+.231(vious operation, if)-.25 F 1.082(you mak)108 384 R 3.582(eam)-.1 G
+(istak)-3.582 E 3.582(eo)-.1 G 3.582(rc)-3.582 G 1.082(hange you mind.)
+-3.582 F 1.083
+(The Run menu lets you set runtime options, and then run the)6.083 F
+.346(Mup program on your input in v)108 396 R .345(arious w)-.25 F .345
+(ays. Y)-.1 F .345
+(ou can either just generate a PostScript or MIDI \214le, or dis-)-1.1 F
+1.273(play the PostScript or play the MIDI.)108 408 R 1.273
+(The Con\214g menu lets you specify what application program you)6.273 F
+-.1(wa)108 420 S .199(nt to use to vie).1 F 2.698(wP)-.25 G .198
+(ostScript \214les and which you w)-2.698 F .198
+(ant to use to play MIDI \214les, and well as specify loca-)-.1 F .859
+(tions for other Mup \214les. Mupmate will try to \214nd reasonable def)
+108 432 R .86(ault v)-.1 F .86(alues, b)-.25 F .86(ut you may w)-.2 F
+.86(ant to check)-.1 F .437(that the)108 444 R 2.937(ya)-.15 G .437
+(re what you w)-2.937 F .437(ant, and tweak them if the)-.1 F 2.937(ya)
+-.15 G(ren')-2.937 E 2.937(t. The)-.18 F .437(Con\214g menu also pro)
+2.937 F .437(vides a w)-.15 F .437(ay for you)-.1 F .95
+(to \214ll in the Mup re)108 456 R .951
+(gistration form if you wish to send in a paper form rather than re)-.15
+F .951(gistering online via)-.15 F .441(credit card,)108 468 R .441
+(as well as a place to entry the re)5.441 F .44(gistration k)-.15 F .74
+-.15(ey y)-.1 H .44(ou will recei).15 F .74 -.15(ve o)-.25 H .44
+(nce you ha).15 F .74 -.15(ve p)-.2 H 2.94(aid. The).15 F(Help)2.94 E
+.243(menu lets you bro)108 480 R .243(wse the Mup User')-.25 F 2.743(sG)
+-.55 G .243(uide, vie)-2.743 F 2.743(ws)-.25 G .244
+(ome startup hints, or see the current v)-2.743 F .244(ersion number of)
+-.15 F(Mup and Mupmate.)108 492 Q F1(SEE ALSO)72 508.8 Q F0
+(gs\(1\), mup\(1\).)108 520.8 Q(Mup \212 Music Publisher User')108 532.8
+Q 2.5(sG)-.55 G(uide)-2.5 E F1(CA)72 549.6 Q(VEA)-1.588 E(TS)-1.04 E F0
+(Mupmate is currently only supported on W)108 561.6 Q(indo)-.4 E
+(ws and Linux or similar)-.25 E(.)-.55 E .159
+(Mupmate does not directly pro)108 578.4 R .159(vide a print f)-.15 F
+(acility)-.1 E 2.659(.A)-.65 G .159(lmost an)-2.659 F 2.659(yP)-.15 G
+.158(ostScript vie)-2.659 F .158(wer already pro)-.25 F .158
+(vides this abil-)-.15 F(ity)108 590.4 Q 3.25(,s)-.65 G 3.25(oy)-3.25 G
+.751(ou can simply select "Display" from the Run menu and use the vie)
+-3.25 F(wer')-.25 E 3.251(sp)-.55 G .751(rint capabilities.)-3.251 F
+(Alter)5.751 E(-)-.2 E(nately you can use the "Write PostScript File" f\
+rom the Run menu and then print the resulting \214le.)108 602.4 Q
+(Arkkra Enterprises)72 768 Q(No)120.985 E -.15(ve)-.15 G(mber 4, 2006)
+.15 E(1)191.795 E EP
+%%Trailer
+end
+%%EOF
diff --git a/mup/docs/mupprnt.1 b/mup/docs/mupprnt.1
new file mode 100644 (file)
index 0000000..0a9141c
--- /dev/null
@@ -0,0 +1,29 @@
+.TH mupprnt 1 "Oct 27, 1995" "Arkkra Enterprises"
+.SH NAME
+.PP
+mupprnt - print output from Mup music publisher
+.SH SYNOPSIS
+.PP
+mupprnt \fI[mup_options] file\fP
+.SH DESCRIPTION
+.PP
+mupprnt provides a way to print Mup output on your printer.
+The \fIfile\fP is Mup input. Any other Mup options can be given,
+except -f, -m, -r, or -v, which don't produce print output.
+.PP
+Under UNIX, if the environment variable COPIES is set to a number,
+that number of copies will be printed. Otherwise only 1 copy will be printed.
+.PP
+.PP
+The GS_DEVICE shell variable must be set to the proper value for your printer
+type.  Mupprnt is a shell script (under UNIX) or batch script (under MS-DOS),
+so you can customize it if you wish.
+.SH "SEE ALSO"
+.PP
+gs(1), mup(1), mupdisp(1).
+.br
+Mup \(em Music Publisher User's Guide
+.SH "CAVEATS AND BUGS"
+.PP
+You must have mup in your PATH.
+You must have ghostscript (gs or gs386.exe) in your PATH.
diff --git a/mup/docs/mupprnt.ps b/mup/docs/mupprnt.ps
new file mode 100644 (file)
index 0000000..d33bf40
--- /dev/null
@@ -0,0 +1,236 @@
+%!PS-Adobe-3.0
+%%Creator: groff version 1.17.2
+%%CreationDate: Sat Dec  9 16:59:22 2006
+%%DocumentNeededResources: font Times-Roman
+%%+ font Times-Bold
+%%+ font Times-Italic
+%%DocumentSuppliedResources: procset grops 1.17 2
+%%Pages: 1
+%%PageOrder: Ascend
+%%Orientation: Portrait
+%%EndComments
+%%BeginProlog
+%%BeginResource: procset grops 1.17 2
+/setpacking where{
+pop
+currentpacking
+true setpacking
+}if
+/grops 120 dict dup begin
+/SC 32 def
+/A/show load def
+/B{0 SC 3 -1 roll widthshow}bind def
+/C{0 exch ashow}bind def
+/D{0 exch 0 SC 5 2 roll awidthshow}bind def
+/E{0 rmoveto show}bind def
+/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def
+/G{0 rmoveto 0 exch ashow}bind def
+/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/I{0 exch rmoveto show}bind def
+/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def
+/K{0 exch rmoveto 0 exch ashow}bind def
+/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/M{rmoveto show}bind def
+/N{rmoveto 0 SC 3 -1 roll widthshow}bind def
+/O{rmoveto 0 exch ashow}bind def
+/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/Q{moveto show}bind def
+/R{moveto 0 SC 3 -1 roll widthshow}bind def
+/S{moveto 0 exch ashow}bind def
+/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/SF{
+findfont exch
+[exch dup 0 exch 0 exch neg 0 0]makefont
+dup setfont
+[exch/setfont cvx]cvx bind def
+}bind def
+/MF{
+findfont
+[5 2 roll
+0 3 1 roll
+neg 0 0]makefont
+dup setfont
+[exch/setfont cvx]cvx bind def
+}bind def
+/level0 0 def
+/RES 0 def
+/PL 0 def
+/LS 0 def
+/MANUAL{
+statusdict begin/manualfeed true store end
+}bind def
+/PLG{
+gsave newpath clippath pathbbox grestore
+exch pop add exch pop
+}bind def
+/BP{
+/level0 save def
+1 setlinecap
+1 setlinejoin
+72 RES div dup scale
+LS{
+90 rotate
+}{
+0 PL translate
+}ifelse
+1 -1 scale
+}bind def
+/EP{
+level0 restore
+showpage
+}bind def
+/DA{
+newpath arcn stroke
+}bind def
+/SN{
+transform
+.25 sub exch .25 sub exch
+round .25 add exch round .25 add exch
+itransform
+}bind def
+/DL{
+SN
+moveto
+SN
+lineto stroke
+}bind def
+/DC{
+newpath 0 360 arc closepath
+}bind def
+/TM matrix def
+/DE{
+TM currentmatrix pop
+translate scale newpath 0 0 .5 0 360 arc closepath
+TM setmatrix
+}bind def
+/RC/rcurveto load def
+/RL/rlineto load def
+/ST/stroke load def
+/MT/moveto load def
+/CL/closepath load def
+/FL{
+currentgray exch setgray fill setgray
+}bind def
+/BL/fill load def
+/LW/setlinewidth load def
+/RE{
+findfont
+dup maxlength 1 index/FontName known not{1 add}if dict begin
+{
+1 index/FID ne{def}{pop pop}ifelse
+}forall
+/Encoding exch def
+dup/FontName exch def
+currentdict end definefont pop
+}bind def
+/DEFS 0 def
+/EBEGIN{
+moveto
+DEFS begin
+}bind def
+/EEND/end load def
+/CNT 0 def
+/level1 0 def
+/PBEGIN{
+/level1 save def
+translate
+div 3 1 roll div exch scale
+neg exch neg exch translate
+0 setgray
+0 setlinecap
+1 setlinewidth
+0 setlinejoin
+10 setmiterlimit
+[]0 setdash
+/setstrokeadjust where{
+pop
+false setstrokeadjust
+}if
+/setoverprint where{
+pop
+false setoverprint
+}if
+newpath
+/CNT countdictstack def
+userdict begin
+/showpage{}def
+}bind def
+/PEND{
+clear
+countdictstack CNT sub{end}repeat
+level1 restore
+}bind def
+end def
+/setpacking where{
+pop
+setpacking
+}if
+%%EndResource
+%%IncludeResource: font Times-Roman
+%%IncludeResource: font Times-Bold
+%%IncludeResource: font Times-Italic
+grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
+def/PL PLG def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron
+/scaron/zcaron/Ydieresis/trademark/quotesingle/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
+/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen
+/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
+/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O
+/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex
+/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y
+/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft
+/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl
+/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut
+/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash
+/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen
+/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft
+/logicalnot/minus/registered/macron/degree/plusminus/twosuperior
+/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior
+/ordmasculine/guilsinglright/onequarter/onehalf/threequarters
+/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE
+/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn
+/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
+/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
+/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash
+/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
+/Times-Italic@0 ENC0/Times-Italic RE/Times-Bold@0 ENC0/Times-Bold RE
+/Times-Roman@0 ENC0/Times-Roman RE
+%%EndProlog
+%%Page: 1 1
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 10/Times-Roman@0 SF 374.4(mupprnt\(1\) mupprnt\(1\))72 48 R/F1 10.95
+/Times-Bold@0 SF -.219(NA)72 84 S(ME).219 E F0
+(mupprnt - print output from Mup music publisher)108 96 Q F1(SYNOPSIS)72
+112.8 Q F0(mupprnt)108 124.8 Q/F2 10/Times-Italic@0 SF
+([mup_options] \214le)2.5 E F1(DESCRIPTION)72 141.6 Q F0 .127
+(mupprnt pro)108 153.6 R .127(vides a w)-.15 F .127
+(ay to print Mup output on your printer)-.1 F 5.127(.T)-.55 G(he)-5.127
+E F2(\214le)2.627 E F0 .127(is Mup input. An)2.627 F 2.626(yo)-.15 G
+.126(ther Mup options)-2.626 F(can be gi)108 165.6 Q -.15(ve)-.25 G
+(n, e).15 E(xcept -f, -m, -r)-.15 E 2.5(,o)-.4 G 2.5(r-)-2.5 G 1.3 -.65
+(v, w)-2.5 H(hich don').65 E 2.5(tp)-.18 G(roduce print output.)-2.5 E
+.095(Under UNIX, if the en)108 182.4 R .095(vironment v)-.4 F .095
+(ariable COPIES is set to a number)-.25 F 2.596(,t)-.4 G .096
+(hat number of copies will be printed.)-2.596 F(Otherwise only 1 cop)108
+194.4 Q 2.5(yw)-.1 G(ill be printed.)-2.5 E .822(The GS_DEVICE shell v)
+108 216 R .821(ariable must be set to the proper v)-.25 F .821
+(alue for your printer type.)-.25 F .821(Mupprnt is a shell)5.821 F(scr\
+ipt \(under UNIX\) or batch script \(under MS-DOS\), so you can customi\
+ze it if you wish.)108 228 Q F1(SEE ALSO)72 244.8 Q F0
+(gs\(1\), mup\(1\), mupdisp\(1\).)108 256.8 Q
+(Mup \212 Music Publisher User')108 268.8 Q 2.5(sG)-.55 G(uide)-2.5 E F1
+(CA)72 285.6 Q(VEA)-1.588 E(TS AND B)-1.04 E(UGS)-.11 E F0 -1.1(Yo)108
+297.6 S 2.5(um)1.1 G(ust ha)-2.5 E .3 -.15(ve m)-.2 H(up in your P).15 E
+-1.11(AT)-.92 G 2.5(H. Y)1.11 F(ou must ha)-1.1 E .3 -.15(ve g)-.2 H
+(hostscript \(gs or gs386.e).15 E -.15(xe)-.15 G 2.5(\)i).15 G 2.5(ny)
+-2.5 G(our P)-2.5 E -1.11(AT)-.92 G(H.)1.11 E(Arkkra Enterprises)72 768
+Q(Oct 27, 1995)132.22 E(1)203.03 E EP
+%%Trailer
+end
+%%EOF
diff --git a/mup/docs/mupqref.ps b/mup/docs/mupqref.ps
new file mode 100644 (file)
index 0000000..e2f1b28
--- /dev/null
@@ -0,0 +1,2896 @@
+%!PS-Adobe-3.0
+%%Creator: groff version 1.17.2
+%%CreationDate: Mon Dec  4 22:55:33 2006
+%%DocumentNeededResources: font Times-Bold
+%%+ font Times-Italic
+%%+ font Times-Roman
+%%+ font Courier
+%%+ font Times-BoldItalic
+%%+ font NewCenturySchlbk-BoldItalic
+%%+ font NewCenturySchlbk-Roman
+%%DocumentSuppliedResources: file extlist.ps
+%%+ file muschar.ps
+%%+ procset grops 1.17 2
+%%Pages: 6
+%%PageOrder: Ascend
+%%Orientation: Portrait
+%%EndComments
+%%BeginProlog
+% Copyright (c) 1995, 1996, 1997, 1998, 1999, 2000, 2003, 2004 by Arkkra Enterprises
+% All rights reserved
+
+% Mup PostScript Prolog 5.3 for use with Mup 5.3
+
+% lwid is used as the width of a standard (thin) line in the music
+% character definitions.
+/lwid 70 def
+/halflwid lwid 2 div def
+
+% Define the following for use in do_upshortnote, do_dnshortnote, and
+% do_shortrest; it has to be done outside of the music font definition.
+/utildict 10 dict def
+utildict begin
+       /setnumflags    {       /numflags       exch def } def
+       /sethooksm1     {       /hooksm1        exch def } def
+       /setoffsets     {       /offsets        exch def } def
+       /setx           {       /x              exch def } def
+       /sety           {       /y              exch def } def
+end
+
+% Define a music character font.  Each music character is defined as if it
+% were a normal ASCII character in a strange font where "A" looks like a
+% treble clef, "B" looks like a bass clef, etc.
+
+/mfont0 100 dict def
+mfont0 begin
+       /FontType 3 def
+       /FontMatrix [ .001 0 0 0.001 0 0 ] def
+       /FontBBox [ -2000 -4030 2000 4030 ] def
+       /FontName (Mfont0) def
+
+       % set up Encoding vector with standard names
+       /Encoding 256 array def
+       StandardEncoding Encoding copy
+       pop
+
+       % the following definitions are used for quarter rests
+       /topx -170 def /topy 950 def
+       /cor1x 250 def /cor1y 450 def
+       /cor2x -300 def /cor2y 200 def
+       /cor3x 250 def /cor3y -400 def
+
+       % the following definitions are used for double sharps
+       /limit 300 halflwid add def
+       /off 70 def
+       /inbendsmall limit 200 sub def
+       /inbendbig limit 20 sub def
+       /outbendsmall 100 def
+       /outbendbig outbendsmall off add def
+
+       %%%%% define routines that will be used by multiple characters %%%%%
+       /do_1n {
+               gsave
+               newpath -10 rotate 1.6 1 scale
+               0 0 325 0 360 arc               %outer ellipse
+               1 1.6 div 1 scale 10 rotate     %back to original
+               35 rotate 0.85 1.1 scale
+               0 0 275 0 360 arc               %inner ellipse
+               eofill
+               grestore
+       } def
+       /do_upflag {
+               -315 0 moveto
+               -300 100 -100 480 0 600 curveto
+               300 960 350 1500 200 1700 curveto
+               130 1700 lineto
+               350 1200 50 650 -315 600 curveto
+               fill
+       } def
+       /do_flat {
+               -250 -400 moveto        %outer edge of loop
+               500 0 350 650 -250 160 curveto
+               -250 160 lwid sub lineto %inner edge of loop
+               100 400 300 0 -250 -400 lwid add curveto
+               fill
+
+               lwid setlinewidth       %stem
+               -250 1100 moveto -250 -400 lineto stroke
+       } def
+       /do_diamond {
+               newpath
+               420 0 moveto 0 300 lineto -420 0 lineto
+               0 -300 lineto closepath
+               259 -29 moveto -41 185 lineto -259 29 lineto
+               41 -185 lineto closepath
+               eofill
+       } def
+       /do_2n {
+               gsave
+               newpath 25 rotate 1.4 1 scale
+               0 0 315 0 360 arc               %outer ellipse
+               1 1.4 div 1 scale               %back to original
+               1.3 0.5 scale
+               0 0 310 0 360 arc               %inner ellipse
+               eofill
+               grestore
+       } def
+       /do_4n {
+               gsave
+               newpath 25 rotate 1.35 1 scale
+               0 0 310 0 360 arc fill
+               grestore
+       } def
+       /do_com {
+               newpath
+               330 250 150 0 360 arc fill      %knob at upper right
+               465 300 moveto                  %outer boundary
+               410 500 200 635 0 635 curveto
+               -750 635 -750 -635 0 -635 curveto
+               350 -635 480 -300 500 -100 curveto
+               430 -100 lineto                 %inner boundary
+               380 -300 250 -565 0 -565 curveto
+               -450 -565 -450 565 0 565 curveto
+               200 565 370 350 395 300 curveto
+               fill
+       } def
+       /do_ferm {
+               0 0 800 lwid sub 0 180 arc      %inner arc
+               -800 0 lineto
+               0 270 lwid sub 800 180 0 arcn   %outer arc
+               800 0 lineto fill
+               0 120 120 0 360 arc fill        %the dot
+       } def
+       /do_mor {
+               gsave
+               0.7 1 scale     %scrunch the following horizontally
+               45 rotate       %to pretend all lines horz or vertical
+               0 1 1 {
+                       pop     %we don't need the loop variable
+                       %one half of the mordent
+                       0 40 moveto 350 40 lineto 350 -460 lineto
+                       750 -460 lineto 750 -540 lineto
+                       150 -540 lineto 150 -40 lineto
+                       0 -40 lineto fill
+                       180 rotate      %to do the other half
+               } for
+               grestore
+       } def
+       /do_turn {
+               gsave
+               0 1 1 {
+                       pop     %we don't need the loop variable
+                       0 -100 moveto   %outer boundary
+                       200 -400 625 -400 625 0 curveto
+                       625 200 500 325 300 325 curveto
+                       300 185 lineto  %inner boundary
+                       450 255 555 150 555 0 curveto
+                       555 -350 250 -250 0 100 curveto
+                       fill
+                       300 255 70 0 360 arc fill %knob on end
+                       180 rotate      %to do the other half
+               } for
+               grestore
+       } def
+
+       /do_upshortnote {
+               utildict begin
+               setnumflags             %set numflags from the stack
+               gsave
+               -330 0 translate        %half a flag width
+               do_4n                   %do a quarter note head
+               lwid setlinewidth
+               370 0 moveto
+               370 2100 numflags 2 sub flagsep mul add lineto stroke
+               670 2100 numflags 2 sub flagsep mul add translate
+               1 -1 scale              %reflect across X axis
+               0 1 numflags 1 sub {
+                       do_upflag       %do an upflag
+                       pop             %we don't need the loop variable
+                       0 flagsep translate
+               } for
+               grestore
+               end
+       } def
+
+       /do_dnshortnote {
+               utildict begin
+               setnumflags             %set numflags from the stack
+               do_4n                   %do a quarter note head
+               lwid setlinewidth
+               -370 0 moveto
+               -370 -2100 numflags 2 sub flagsep mul sub lineto stroke
+               gsave
+               -70 -2100 numflags 2 sub flagsep mul sub translate
+               0 1 numflags 1 sub {
+                       do_upflag       %do an upflag
+                       pop             %we don't need the loop variable
+                       0 flagsep translate
+               } for
+               grestore
+               end
+       } def
+
+       /do_shortrest {
+               utildict begin
+               sety setx setoffsets sethooksm1 %set variable from the stack
+               gsave
+               -105.8 offsets mul -600 offsets mul translate
+               0 1 hooksm1 {           %loop once per hook
+                       newpath
+                       1 setlinewidth
+                       gsave
+                       1 1.2 scale
+                       -150 300 1.2 div 140 0 360 arc fill     %the dot
+                       grestore
+                       lwid setlinewidth
+                       -50 700 550 255 315 arc         %rest of the hook
+                       hooksm1 lt { stroke 105.8 600 translate } if
+               } for
+               x y lineto stroke
+               grestore
+               end
+       } def
+
+
+       % subsidiary dictionary of character definitions
+       /CharStrings 128 dict def
+       CharStrings begin
+
+               /.notdef {} def
+
+               % Here are the definitions of the characters.  A stepsize here
+               % is 300 units (assuming the character is drawn at its default
+               % size).
+
+               % gclef
+               /A {
+                       newpath
+                       %start with inner curl, inside boundary
+                       -50 -300 moveto
+                       -450 600 700 700 750 0 curveto
+                       750 -800 -700 -800 -700 200 curveto
+                       -700 900 500 1400 520 2250 curveto
+                       520 2900 300 3000 200 3000 curveto
+                       100 3000 -400 2500 -200 1800 curveto
+                       350 -600 lineto
+                       720 -1600 0 -1650 -400 -1400 curveto
+
+                       %go back to start, drawing the other boundary
+                       -400 -1480 lineto
+                       0 -1700 800 -1700 430 -600 curveto
+                       -120 1800 lineto
+                       -300 2400 200 2800 250 2800 curveto
+                       400 2800 430 2700 430 2450 curveto
+                       430 1800 -900 1200 -900 300 curveto
+                       -750 -900 800 -900 850 0 curveto
+                       900 1100 -750 900 -120 -300 curveto fill
+
+                       %circle at the bottom
+                       -300 -1250 250 0 360 arc fill
+               } def
+
+               % fclef
+               /B {
+                       newpath
+                       %start with outside boundary, at bottom
+                       -1000 -1700 moveto
+                       100 -1100 500 -600 450 0 curveto
+                       450 850 -1100 850 -950 0 curveto
+
+                       %go back to start, drawing the other boundary
+                       -880 0 lineto
+                       -920 400 -600 560 -300 560 curveto
+                       0 560 150 400 150 0 curveto
+                       150 -400 100 -900 -1000 -1620 curveto fill
+
+                       %circle at the left
+                       newpath
+                       -700 0 250 0 360 arc fill
+
+                       %do the two dots after the main curve
+                       700 -300 100 0 360 arc fill
+                       700 300 100 0 360 arc fill
+               } def
+
+               % cclef
+               /C {
+                       gsave
+                       %do upper curved part, then scale to do mirror image
+                       0 1 1 {
+                               pop     %we don't need the loop variable
+                               %outer boundary of curve
+                               -170 0 moveto 100 300 lineto
+                               400 -200 750 300 750 650 curveto
+                               750 1100 450 1235 250 1235 curveto
+                               0 1235 -143 1100 -143 950 curveto
+
+                               %inner boundary of curve
+                               0 950 lineto
+                               0 1100 30 1165 250 1165 curveto
+                               300 1165 450 1100 450 650 curveto
+                               450 400 400 -100 100 400 curveto
+                               -270 0 lineto fill
+                               %stroke
+                               %-270 0 moveto 100 400 lineto
+                               %400 -100 450 400 450 650 curveto
+                               %450 1100 300 1165 250 1165 curveto
+                               %30 1165 0 1100 0 950 curveto
+                               %stroke
+
+                               %elliptical ball at end of curve
+                               gsave
+                               1.3 1 scale
+                               10 950 120 0 360 arc fill
+                               grestore
+                               1 -1 scale      %reflect across X axis
+                       } for
+                       grestore
+
+                       % two vertical lines on the left
+                       300 setlinewidth -600 -1200 halflwid sub moveto
+                       -600 1200 halflwid add lineto stroke
+                       lwid setlinewidth -300 -1200 halflwid sub moveto
+                       -300 1200 halflwid add lineto stroke
+               } def
+
+               % dblwhole
+               /D {
+                       do_1n           %do a whole note
+                       lwid setlinewidth
+                       -490 -600 moveto -490 600 lineto stroke
+                       490 -600 moveto 490 600 lineto stroke
+               } def
+
+               % 1n
+               /E {
+                       do_1n           %do a whole note
+               } def
+
+               % 2n
+               /F {
+                       do_2n           %do a half note
+               } def
+
+               % 4n
+               /G {
+                       do_4n           %do a quarter note head
+               } def
+
+               % upflag
+               /H {
+                       do_upflag               %do an upflag
+               } def
+
+               % dnflag
+               /I {
+                       gsave
+                       1 -1 scale      %reflect across X axis
+                       do_upflag               %do an upflag
+                       grestore
+               } def
+
+               % dwhrest
+               /J {
+                       300 setlinewidth
+                       0 0 moveto 0 600 lineto stroke
+               } def
+
+               % 1rest
+               /K {
+                       lwid setlinewidth
+                       -750 600 moveto 750 600 lineto stroke
+                       300 setlinewidth
+                       -400 450 moveto 400 450 lineto stroke
+               } def
+
+               % 2rest
+               /L {
+                       lwid setlinewidth
+                       -750 0 moveto 750 0 lineto stroke
+                       300 setlinewidth
+                       -400 150 moveto 400 150 lineto stroke
+               } def
+
+               % 4rest
+               /M {
+                       newpath
+                       cor3x cor3y halflwid add moveto
+                       %-400 -200 -450 -650 50 -950 lwid add curveto
+                       -450 -50 -450 -650 50 -950 lwid add curveto
+                       -150 -650 -100 -250 cor3x cor3y halflwid sub curveto
+                       fill
+
+                       cor1x cor1y moveto cor1x 200 sub cor1y 200 add lineto
+                       cor2x cor2y lineto cor2x 200 add cor2y 200 sub lineto
+                       fill
+
+                       lwid setlinewidth
+                       topx topy moveto cor1x cor1y lineto stroke
+                       cor2x cor2y moveto cor3x cor3y lineto stroke
+               } def
+
+               % 8rest
+               /N {
+                       0 0 0 -600 do_shortrest
+               } def
+
+               % 16rest
+               /O {
+                       1 1 100 -1200 do_shortrest
+               } def
+
+               % 32rest
+               /P {
+                       2 1 0 -1800 do_shortrest
+               } def
+
+               % 64rest
+               /Q {
+                       3 2 -80 -2100 do_shortrest
+               } def
+
+               % 128rest
+               /R {
+                       4 2 -150 -2700 do_shortrest
+               } def
+
+               % 256rest
+               /S {
+                       5 3 -280 -3300 do_shortrest
+               } def
+
+               % dot
+               /T {
+                       newpath
+                       0 0 120 0 360 arc fill
+               } def
+
+               % nat
+               /U {
+                       % fill crossbars so that we can do parallelograms
+                       -235 -470 moveto -235 -270 lineto
+                       235 -130 lineto 235 -330 lineto fill
+                       -235 130 moveto -235 330 lineto
+                       235 470 lineto 235 270 lineto fill
+
+                       % vertical strokes
+                       lwid setlinewidth
+                       -200 -380 moveto -200 850 lineto stroke
+                       200 -850 moveto 200 380 lineto stroke
+               } def
+
+               % sharp
+               /V {
+                       % fill crossbars so that we can do parallelograms
+                       -325 -480 moveto -325 -280 lineto
+                       325 -120 lineto 325 -320 lineto fill
+                       -325 120 moveto -325 320 lineto
+                       325 480 lineto 325 280 lineto fill
+
+                       % vertical strokes
+                       lwid setlinewidth
+                       -150 -930 moveto -150 880 lineto stroke
+                       150 -880 moveto 150 930 lineto stroke
+               } def
+
+               % flat
+               /W {
+                       do_flat         %do a flat
+               } def
+
+               % dblsharp
+               /X {
+                       gsave
+                       0 1 3 {         %loop once for each of 4 sticks
+                               pop     %we don't need the loop variable
+                               0 off neg moveto
+                               outbendbig outbendsmall lineto
+                               inbendbig inbendsmall lineto
+                               limit limit lineto
+                               inbendsmall inbendbig lineto
+                               outbendsmall outbendbig lineto
+                               off neg 0 lineto
+                               fill
+                               -90 rotate
+                       } for
+                       grestore
+               } def
+
+               % dblflat
+               /Y {
+                       -290 580 290 {  %loop once for each flat
+
+                               gsave
+                               1 setlinewidth
+                               0 translate     %translate left/right (loop var)
+                               do_flat         %do a flat
+                               grestore
+
+                       } for
+               } def
+
+               % xnote
+               /Z {
+                       gsave
+                       1.15 1 scale 120 setlinewidth 1 setlinecap      %round
+                       -300 -300 moveto 300 300 lineto stroke
+                       -300 300 moveto 300 -300 lineto stroke
+                       grestore
+               } def
+
+               % dwhdiamond
+               /a {
+                       do_diamond      %do a diamond
+                       lwid setlinewidth
+                       -420 -600 moveto -420 600 lineto stroke
+                       420 -600 moveto 420 600 lineto stroke
+               } def
+
+               % diamond
+               /b {
+                       do_diamond      %do a diamond
+               } def
+
+               % filldiamond
+               /c {
+                       420 0 moveto 0 300 lineto
+                       -420 0 lineto 0 -300 lineto fill
+               } def
+
+               % up2n
+               /d {
+                       lwid setlinewidth
+                       380 0 moveto 380 2100 lineto stroke
+                       do_2n           %do a half note
+               } def
+
+               % dn2n
+               /e {
+                       lwid setlinewidth
+                       -380 0 moveto -380 -2100 lineto stroke
+                       do_2n           %do a half note
+               } def
+
+               % up4n
+               /f {
+                       do_4n           %do a quarter note head
+                       lwid setlinewidth
+                       370 0 moveto 370 2100 lineto stroke
+               } def
+
+               % dn4n
+               /g {
+                       do_4n           %do a quarter note head
+                       lwid setlinewidth
+                       -370 0 moveto -370 -2100 lineto stroke
+               } def
+
+               % up8n
+               /h {
+                       gsave
+                       -330 0 translate        % half a flag width
+                       do_4n           %do a quarter note head
+                       lwid setlinewidth
+                       370 0 moveto 370 2100 lineto stroke
+                       670 2100 translate
+                       1 -1 scale      %reflect across X axis
+                       do_upflag               %do an upflag
+                       grestore
+               } def
+
+               % dn8n
+               /i {
+                       do_4n           %do a quarter note head
+                       lwid setlinewidth
+                       -370 0 moveto -370 -2100 lineto stroke
+                       gsave
+                       -70 -2100 translate
+                       do_upflag               %do an upflag
+                       grestore
+               } def
+
+               % up16n
+               /j {
+                       2 do_upshortnote
+               } def
+
+               % dn16n
+               /k {
+                       2 do_dnshortnote
+               } def
+
+               % up32n
+               /l {
+                       3 do_upshortnote
+               } def
+
+               % dn32n
+               /m {
+                       3 do_dnshortnote
+               } def
+
+               % up64n
+               /n {
+                       4 do_upshortnote
+               } def
+
+               % dn64n
+               /o {
+                       4 do_dnshortnote
+               } def
+
+               % up128n
+               /p {
+                       5 do_upshortnote
+               } def
+
+               % dn128n
+               /q {
+                       5 do_dnshortnote
+               } def
+
+               % up256n
+               /r {
+                       6 do_upshortnote
+               } def
+
+               % dn256n
+               /s {
+                       6 do_dnshortnote
+               } def
+
+               % com
+               /t {
+                       do_com          %do a common time symbol
+               } def
+
+               % cut
+               /u {
+                       do_com          %do a common time symbol
+                       lwid setlinewidth
+                       0 -900 moveto 0 900 lineto stroke
+               } def
+
+               % begped
+               /v {
+                       lwid setlinewidth
+                       -200 600 moveto -200 0 lineto 200 0 lineto stroke
+               } def
+
+               % pedal
+               /w {
+                       lwid setlinewidth
+                       -500 0 moveto -450 0 lineto 0 600 lineto
+                       450 0 lineto 500 0 lineto stroke
+               } def
+
+               % endped
+               /x {
+                       lwid setlinewidth
+                       200 600 moveto 200 0 lineto -200 0 lineto stroke
+               } def
+
+               % dnbow
+               /y {
+                       lwid setlinewidth
+                       -350 0 moveto -350 900 lineto stroke
+                       350 0 moveto 350 900 lineto stroke
+                       200 setlinewidth
+                       -350 800 moveto 350 800 lineto stroke
+               } def
+
+               % upbow
+               /z {
+                       lwid setlinewidth
+                       -300 900 moveto 0 0 lineto 300 900 lineto stroke
+               } def
+
+               % wedge
+               /one {
+                       0 0 moveto -150 500 lineto 150 500 lineto fill
+               } def
+
+               % uwedge
+               /two {
+                       -150 0 moveto 150 0 lineto 0 500 lineto fill
+               } def
+
+               % ferm
+               /three {
+                       newpath
+                       do_ferm         %do a right side up fermata
+               } def
+
+               % uferm
+               /four {
+                       newpath
+                       gsave
+                       0 270 lwid sub 800 add translate %baseline at bottom
+                       180 rotate                      %upside down
+                       do_ferm         %do a right side up fermata
+                       grestore
+               } def
+
+               % sign
+               /five {
+                       gsave
+                       %do upper left curved part, upper right dot;
+                       %then rotate 180 to do other half
+                       0 1 1 {
+                               pop     %we don't need the loop variable
+                               0 100 moveto            %inner boundary
+                               -1000 300 -400 750 -200 700 curveto
+                               -200 800 lineto         %outer boundary
+                               -550 900 -1100 100 0 -100 curveto
+                               fill
+                               %dot at end of curve
+                               -200 700 100 0 360 arc fill
+                               %dot in upper right quadrant
+                               500 200 70 0 360 arc fill
+                               180 rotate
+                       } for
+                       grestore
+
+                       %slash through middle
+                       lwid setlinewidth
+                       -400 -800 moveto 400 800 lineto stroke
+               } def
+
+               % coda
+               /six {
+                       newpath
+                       gsave
+                       0.6 1 scale
+                       0 0 550 0 360 arc       %outside boundary
+                       1 0.6 div 1 scale       %back to original
+                       0.9 1 scale
+                       0 0 650 0 360 arc       %inside boundary
+                       eofill
+                       grestore
+                       lwid setlinewidth
+                       0 -850 moveto 0 850 lineto stroke
+                       -800 0 moveto 800 0 lineto stroke
+               } def
+
+               % mor
+               /seven {
+                       do_mor          %do a mordent
+               } def
+
+               % invmor
+               /eight {
+                       do_mor          %do a mordent
+                       lwid setlinewidth
+                       0 -450 moveto 0 450 lineto stroke
+               } def
+
+               % turn
+               /nine {
+                       do_turn         %do a turn
+               } def
+
+               % invturn
+               /zero {
+                       gsave
+                       1 -1 scale      %reflect across X axis
+                       do_turn         %do a turn
+                       grestore
+               } def
+
+               % acc_gt
+               /numbersign {
+                       lwid setlinewidth
+                       -500 300 moveto 500 0 lineto -500 -300 lineto stroke
+               } def
+
+               % acc_hat
+               /dollar {
+                       newpath
+                       -365 0 moveto 0 860 lineto 365 0 lineto
+                       150 0 lineto -75 530 lineto -300 0 lineto fill
+               } def
+
+               % acc_uhat
+               /quotedbl {
+                       newpath
+                       365 860 moveto 0 0 lineto -365 860 lineto
+                       -150 860 lineto 75 330 lineto 300 860 lineto fill
+               } def
+
+               % tr
+               /asterisk {
+                       %vertical bar of t
+                       -350 1000 moveto -550 200 lineto
+                       -612.5 -50 -212.5 -50 -160 200 curveto
+                       -230 200 lineto
+                       -300 50 -420 50 -400 200 curveto
+                       -200 1000 lineto fill
+
+                       %crossbar of t and vertical bar of r
+                       -700 600 moveto -160 600 lineto
+                       20 600 30 520 60 440 curveto
+                       -50 0 lineto 70 0 lineto 180 440 lineto
+                       190 480 100 670 -150 670 curveto
+                       -690 670 lineto fill
+
+                       %horizontal curve of r
+                       100 480 moveto
+                       300 630 450 700 650 550 curveto
+                       560 480 lineto
+                       450 630 300 560 100 390 curveto
+                       fill
+
+                       %knob at end of r
+                       600 460 100 0 360 arc fill
+               } def
+
+               % leg
+               /comma {
+                       100 setlinewidth
+                       -400 0 moveto 400 0 lineto stroke
+               } def
+
+               % rr
+               /hyphen {
+                       100 setlinewidth
+                       -400 0 moveto 0 1000 lineto stroke
+                       0 0 moveto 400 1000 lineto stroke
+               } def
+
+               % measrpt
+               /period {
+                       newpath -450 400 150 0 360 arc fill
+                       newpath 450 -400 150 0 360 arc fill
+                       200 setlinewidth
+                       -550 -600 moveto 550 600 lineto stroke
+               } def
+
+               % copyright
+               /slash {
+                       lwid setlinewidth
+                       newpath 0 400 400 0 360 arc stroke
+                       newpath 0 400 200 45 315 arc stroke
+               } def
+
+               % dim
+               /quoteleft {
+                       50 setlinewidth
+                       newpath 0 640 220 0 360 arc stroke
+               } def
+
+               % halfdim
+               /quoteright {
+                       50 setlinewidth
+                       newpath 0 640 220 0 360 arc stroke
+                       newpath -340 300 moveto 340 980 lineto stroke
+               } def
+
+               % triangle
+               /asciicircum {
+                       50 setlinewidth
+                       newpath -340 -10 moveto 0 710 lineto
+                       340 -10 lineto closepath stroke
+               } def
+
+               % qwhrest
+               /ampersand {
+                       300 setlinewidth
+                       0 -600 moveto 0 600 lineto stroke
+               } def
+
+               % ll1rest
+               /exclam {
+                       310 setlinewidth
+                       -400 455 moveto 400 450 lineto stroke
+               } def
+
+               % ll2rest
+               /at {
+                       310 setlinewidth
+                       -400 145 moveto 400 150 lineto stroke
+               } def
+       end
+
+       /BuildChar {
+
+               exch begin
+               Encoding exch get
+
+               dup
+               Mcbbox0 exch get
+               aload pop setcachedevice
+
+               CharStrings exch get
+               exec
+               end
+       } def
+end
+
+
+% Define another music character font, since there are too many to fit in one
+% font.  It works the same way as the first one.
+
+/mfont1 100 dict def
+mfont1 begin
+       /FontType 3 def
+       /FontMatrix [ .001 0 0 0.001 0 0 ] def
+       /FontBBox [ -2000 -4030 2000 4030 ] def
+       /FontName (Mfont1) def
+
+       % set up Encoding vector with standard names
+       /Encoding 256 array def
+       StandardEncoding Encoding copy
+       pop
+
+       %%%%% define routines that will be used by multiple characters %%%%%
+
+       /do_dwh_bars {
+               % the two bars surrounding a double whole note
+               lwid setlinewidth
+               -420 -600 moveto -420 600 lineto stroke
+               420 -600 moveto 420 600 lineto stroke
+       } def
+       /do_righttriangle {
+               newpath
+               420 270 moveto -420 270 lineto 350 -300 lineto 420 -300 lineto
+               350 150 moveto -140 150 lineto 350 -213 lineto
+               eofill
+       } def
+       /do_fillrighttriangle {
+               newpath
+               420 270 moveto -420 270 lineto 350 -300 lineto 420 -300 lineto
+               fill
+       } def
+       /do_rectangle {
+               newpath
+               420 270 moveto -420 270 lineto -420 -270 lineto 420 -270 lineto
+               350 150 moveto -350 150 lineto -350 -150 lineto 350 -150 lineto
+               eofill
+       } def
+       /do_isostriangle {
+               newpath
+               0 300 moveto -420 -270 lineto 420 -270 lineto
+               0 182 moveto -245 -150 lineto 245 -150 lineto
+               eofill
+       } def
+       /do_piewedge {
+               newpath
+               0 -300 moveto 0 -244 514 35 145 arc
+               0 -209 moveto 0 -244 394 43 137 arc
+               eofill
+       } def
+       /do_semicircle {
+               newpath
+               gsave
+               1 1.357 scale 420 199 moveto 0 199 420 180 360 arc
+               1 1.09 scale 350 111 moveto 0 199 350 194.1 345.9 arc
+               eofill
+               grestore
+       } def
+       /do_slashhead {
+               newpath
+               lwid setlinewidth
+               -620 -530 moveto -480 -670 lineto 620 530 lineto 480 670 lineto
+               closepath stroke
+       } def
+
+       % subsidiary dictionary of character definitions
+       /CharStrings 128 dict def
+       CharStrings begin
+
+               /.notdef {} def
+
+               % Here are the definitions of the characters.  A stepsize here
+               % is 300 units (assuming the character is drawn at its default
+               % size).
+
+               % dwhrighttriangle
+               /A {
+                       do_righttriangle
+                       do_dwh_bars
+               } def
+
+               % righttriangle
+               /B {
+                       do_righttriangle
+               } def
+
+               % fillrighttriangle
+               /C {
+                       newpath
+                       420 270 moveto -420 270 lineto 350 -300 lineto
+                       420 -300 lineto
+                       fill
+               } def
+
+               % udwhrighttriangle
+               /D {
+                       gsave
+                       180 rotate
+                       do_righttriangle
+                       do_dwh_bars
+                       grestore
+               } def
+
+               % urighttriangle
+               /E {
+                       gsave
+                       180 rotate
+                       do_righttriangle
+                       grestore
+               } def
+
+               % ufillrighttriangle
+               /F {
+                       gsave
+                       180 rotate
+                       do_fillrighttriangle
+                       grestore
+               } def
+
+               % dwhrectangle
+               /G {
+                       do_rectangle
+                       do_dwh_bars
+               } def
+
+               % rectangle
+               /H {
+                       do_rectangle
+               } def
+
+               % fillrectangle
+               /I {
+                       newpath
+                       420 270 moveto -420 270 lineto -420 -270 lineto
+                       420 -270 lineto
+                       fill
+               } def
+
+               % dwhisostriangle
+               /J {
+                       do_isostriangle
+                       do_dwh_bars
+               } def
+
+               % isostriangle
+               /K {
+                       do_isostriangle
+               } def
+
+               % fillisostriangle
+               /L {
+                       newpath
+                       0 300 moveto -420 -270 lineto 420 -270 lineto
+                       fill
+               } def
+
+               % dwhpiewedge
+               /M {
+                       do_piewedge
+                       do_dwh_bars
+               } def
+
+               % piewedge
+               /N {
+                       do_piewedge
+               } def
+
+               % fillpiewedge
+               /O {
+                       newpath
+                       0 -300 moveto 0 -244 514 35 145 arc
+                       fill
+               } def
+
+               % dwhsemicircle
+               /P {
+                       do_semicircle
+                       do_dwh_bars
+               } def
+
+               % semicircle
+               /Q {
+                       do_semicircle
+               } def
+
+               % fillsemicircle
+               /R {
+                       newpath
+                       gsave
+                       1 570 420 div scale
+                       420 199 moveto 0 199 420 180 360 arc
+                       fill
+                       grestore
+               } def
+
+               % dwhslashhead
+               /S {
+                       do_slashhead
+                       lwid setlinewidth
+                       -650 -600 moveto -650 600 lineto stroke
+                       650 -600 moveto 650 600 lineto stroke
+               } def
+
+               % slashhead
+               /T {
+                       do_slashhead
+               } def
+
+               % fillslashhead
+               /U {
+                       newpath
+                       200 setlinewidth
+                       -550 -600 moveto 550 600 lineto stroke
+               } def
+
+               % blankhead
+               /V {
+                       %print nothing
+               } def
+       end
+
+       /BuildChar {
+
+               exch begin
+               Encoding exch get
+
+               dup
+               Mcbbox1 exch get
+               aload pop setcachedevice
+
+               CharStrings exch get
+               exec
+               end
+       } def
+end
+
+
+% General routines for printing any music character, invoked by each music
+% character's specific routine below.  The scaling factor (default 1) needs
+% to be multiplied by 10 to get the actual size.  These routines restore the
+% preexisting current font when they are done.
+
+/printmchar0 {
+       gsave
+       /musicchar exch def
+       /Mfont0 findfont exch 10 mul scalefont setfont moveto 
+       musicchar show
+       grestore
+} def
+/printmchar1 {
+       gsave
+       /musicchar exch def
+       /Mfont1 findfont exch 10 mul scalefont setfont moveto 
+       musicchar show
+       grestore
+} def
+
+% Define each music character name to be a routine that prints the character.
+% Each character is to be invoked as in this example:
+%      100 200 1 gclef         % at (100, 200), scale to default size & print
+
+/gclef                 { (A) printmchar0 } def
+/fclef                 { (B) printmchar0 } def
+/cclef                 { (C) printmchar0 } def
+/dblwhole              { (D) printmchar0 } def
+/1n                    { (E) printmchar0 } def
+/2n                    { (F) printmchar0 } def
+/4n                    { (G) printmchar0 } def
+/upflag                        { (H) printmchar0 } def
+/dnflag                        { (I) printmchar0 } def
+/dwhrest               { (J) printmchar0 } def
+/1rest                 { (K) printmchar0 } def
+/2rest                 { (L) printmchar0 } def
+/4rest                 { (M) printmchar0 } def
+/8rest                 { (N) printmchar0 } def
+/16rest                        { (O) printmchar0 } def
+/32rest                        { (P) printmchar0 } def
+/64rest                        { (Q) printmchar0 } def
+/128rest               { (R) printmchar0 } def
+/256rest               { (S) printmchar0 } def
+/dot                   { (T) printmchar0 } def
+/nat                   { (U) printmchar0 } def
+/sharp                 { (V) printmchar0 } def
+/flat                  { (W) printmchar0 } def
+/dblsharp              { (X) printmchar0 } def
+/dblflat               { (Y) printmchar0 } def
+/xnote                 { (Z) printmchar0 } def
+/dwhdiamond            { (a) printmchar0 } def
+/diamond               { (b) printmchar0 } def
+/filldiamond           { (c) printmchar0 } def
+/up2n                  { (d) printmchar0 } def
+/dn2n                  { (e) printmchar0 } def
+/up4n                  { (f) printmchar0 } def
+/dn4n                  { (g) printmchar0 } def
+/up8n                  { (h) printmchar0 } def
+/dn8n                  { (i) printmchar0 } def
+/up16n                 { (j) printmchar0 } def
+/dn16n                 { (k) printmchar0 } def
+/up32n                 { (l) printmchar0 } def
+/dn32n                 { (m) printmchar0 } def
+/up64n                 { (n) printmchar0 } def
+/dn64n                 { (o) printmchar0 } def
+/up128n                        { (p) printmchar0 } def
+/dn128n                        { (q) printmchar0 } def
+/up256n                        { (r) printmchar0 } def
+/dn256n                        { (s) printmchar0 } def
+/com                   { (t) printmchar0 } def
+/cut                   { (u) printmchar0 } def
+/begped                        { (v) printmchar0 } def
+/pedal                 { (w) printmchar0 } def
+/endped                        { (x) printmchar0 } def
+/dnbow                 { (y) printmchar0 } def
+/upbow                 { (z) printmchar0 } def
+/wedge                 { (1) printmchar0 } def
+/uwedge                        { (2) printmchar0 } def
+/ferm                  { (3) printmchar0 } def
+/uferm                 { (4) printmchar0 } def
+/sign                  { (5) printmchar0 } def
+/coda                  { (6) printmchar0 } def
+/mor                   { (7) printmchar0 } def
+/invmor                        { (8) printmchar0 } def
+/turn                  { (9) printmchar0 } def
+/invturn               { (0) printmchar0 } def
+/acc_gt                        { (#) printmchar0 } def
+/acc_hat               { ($) printmchar0 } def
+/acc_uhat              { (") printmchar0 } def
+/tr                    { (*) printmchar0 } def
+/leg                   { (,) printmchar0 } def
+/rr                    { (-) printmchar0 } def
+/measrpt               { (.) printmchar0 } def
+/copyright             { (/) printmchar0 } def
+/dim                   { (`) printmchar0 } def
+/halfdim               { (') printmchar0 } def
+/triangle              { (^) printmchar0 } def
+/qwhrest               { (&) printmchar0 } def
+/ll1rest               { (!) printmchar0 } def
+/ll2rest               { (@) printmchar0 } def
+/dwhrighttriangle      { (A) printmchar1 } def
+/righttriangle         { (B) printmchar1 } def
+/fillrighttriangle     { (C) printmchar1 } def
+/udwhrighttriangle     { (D) printmchar1 } def
+/urighttriangle                { (E) printmchar1 } def
+/ufillrighttriangle    { (F) printmchar1 } def
+/dwhrectangle          { (G) printmchar1 } def
+/rectangle             { (H) printmchar1 } def
+/fillrectangle         { (I) printmchar1 } def
+/dwhisostriangle       { (J) printmchar1 } def
+/isostriangle          { (K) printmchar1 } def
+/fillisostriangle      { (L) printmchar1 } def
+/dwhpiewedge           { (M) printmchar1 } def
+/piewedge              { (N) printmchar1 } def
+/fillpiewedge          { (O) printmchar1 } def
+/dwhsemicircle         { (P) printmchar1 } def
+/semicircle            { (Q) printmchar1 } def
+/fillsemicircle                { (R) printmchar1 } def
+/dwhslashhead          { (S) printmchar1 } def
+/slashhead             { (T) printmchar1 } def
+/fillslashhead         { (U) printmchar1 } def
+/blankhead             { (V) printmchar1 } def
+
+
+% Define routines for Mup output other than music characters.
+
+/stepsize 3 def           % define a step size as 3 points (at default magnification)
+
+% x1 y1 x2 lines dist staffscale staff
+%              draw a staff starting at x1, y1 and extending to x2 with "lines"
+%              lines, 2*dist*stepsize apart, scaled by staffscale
+/staff {
+       /staffscale exch def
+       /dist exch def
+       /lines exch def
+       /x2 exch def
+       /y1 exch def
+       /x1 exch def
+       0.7 staffscale mul sb setlinewidth
+       1 lines sub  2  lines 1 sub {   % loop from bottom line to top line
+               dup stepsize mul staffscale mul dist mul y1 add x1 exch moveto
+               stepsize mul staffscale mul dist mul y1 add x2 exch lineto stroke
+       } for
+} def
+
+% x y1 y2 bracket      draw a bracket; y1 is the top
+/bracket {
+       /y2 exch def
+       /y1 exch def
+       /x exch def
+       gsave
+       3 setlinewidth
+       x 2 sub y1 1 add moveto
+       x 2 sub y2 1 sub lineto
+       stroke
+       x 2 sub y1 1 add moveto
+       x 1 sub y1 1 add   x 3 add y1 1 add   x 5 add y1 6 add   curveto
+       x 6 add y1 5 add lineto
+       x 5 add y1 2 add   x 1 add y1 2 sub   x 2 sub y1 2 sub   curveto
+       fill
+       x 2 sub y2 1 sub moveto
+       x 1 sub y2 1 sub   x 3 add y2 1 sub   x 5 add y2 6 sub   curveto
+       x 6 add y2 5 sub lineto
+       x 5 add y2 2 sub   x 1 add y2 2 add   x 2 sub y2 2 add   curveto
+       fill
+       grestore
+} def
+
+% x y1 y2 brace                draw a brace; y1 is the top
+/brace {
+       /y2 exch def
+       /y1 exch def
+       /x exch def
+       gsave
+       x 9 sub y1 y2 add 2 div translate
+       /topy y1 y2 sub 2 div 1 sub def
+       0 1 1 {
+               pop
+               %0 topy moveto 0 0 lineto stroke
+               0 0 moveto
+               16 topy 0.2 mul   -11 topy 0.6 mul   8 topy   curveto
+               8.7 topy lineto
+               -7 topy 0.7 mul   20 topy 0.3 mul   1 0   curveto
+               fill
+               1 -1 scale      % flip to do bottom half
+       } for
+       grestore
+} def
+
+% endx endy wavy staffscale    draw a wavy line from current point to here,
+%                              scaled by staffscale
+/wavy {
+       /staffscale exch def
+       /endy exch def          % define the end point of the line
+       /endx exch def
+       currentpoint            % line starts at current point
+       /begy exch def          % define the beginning point of the line
+       /begx exch def
+       gsave
+       /dx endx begx sub def   % find delta x and delta y
+       /dy endy begy sub def
+       /r dx dx mul dy dy mul add sqrt def     % hypotenuse
+       /theta dy dx atan def                   % angle with positive x axis
+       begx begy translate     % change axes so that we can draw the line
+       theta rotate            %   from (0, 0) to (r, 0)
+       staffscale staffscale scale     % scale everything by staffscale
+       /scaledr r staffscale div def   % but scale r in reverse to keep length
+
+       % Each outer loop draws one cycle of the squiggle.  It continues until
+       % we are at or beyond the desired end point.
+       0 0 moveto
+       0 6 scaledr {
+               gsave
+               % first loop draws left half of squiggle; second draws right
+               0 1 1 {
+                       0.0 0.4 moveto
+                       2.0 1.9 3.4 2.3 3.9 0.0 curveto
+                       2.1 0.0 lineto
+                       1.9 0.8 1.4 0.7 0.0 -0.4 curveto
+                       fill
+                       pop 180 rotate -6 0 translate
+               } for
+               grestore
+
+               pop 6 0 translate       % shift axes right one squiggle
+       } for
+
+       grestore
+} def
+
+% x y space frets fretno numvert curvel curver [ f1 f2 f3 ... ] grid
+%                              print a guitar grid diagram
+/grid {
+       /grid_positions exch def % 0="o", -1="x", -2=nothing, positive=dot
+       /curver exch def        % right string for curve, 0 if none
+       /curvel exch def        % left string for curve, 0 if none
+       /numvert exch def       % vertical position to print fretno, 0 if none
+       /fretno exch def        % fret no. to print at right, 0 if none
+       /frets exch def         % number of fret lines
+       /space exch def         % points between two neighboring lines
+       /y exch def             % y coord of top fret line
+       /x exch def             % x coord of left strings
+
+       gsave
+       /strings grid_positions length def      % number of strings
+       /lmarky 0.4 space mul y add def         % lowest Y of a "o" or "x"
+       space 10 div setlinewidth
+       2 setlinecap
+
+       % draw the lines of the grid
+       0  1  strings 1 sub {   % loop from left string to right string
+               dup space mul x add y moveto
+               space mul x add frets 1 sub space mul y exch sub lineto stroke
+       } for
+       0  -1  1 frets sub {    % loop from top fret (nut) to bottom fret
+               dup space mul y add x exch moveto
+               space mul y add strings 1 sub space mul x add exch lineto stroke
+       } for
+
+       % draw the curved line if there is one
+       curvel 0 gt {
+               % within strings curvel to curver, find smallest positive fret
+               /minfret 1000 def
+               curvel 1 curver {
+                       /strno exch def
+                       /grid_p grid_positions strno 1 sub get def
+                       grid_p 0 gt grid_p minfret lt and {
+                               /minfret grid_p def
+                       } if
+               } for
+
+               % if curve goes above top fret, other marks must be higher
+               minfret 1 eq {
+                       /hmarky 1.2 space mul y add def
+               } {
+                       /hmarky lmarky def
+               } ifelse
+
+               /strdiff curver curvel sub def
+               space 8 div setlinewidth
+
+               % set endpoint coords of curve; higher if curve is short
+               /curvex1 curvel 1 sub space mul x add def
+               /curvex2 curver 1 sub space mul x add def
+               /curvey 1 minfret sub space mul y add def
+               strdiff 3 lt {
+                       /curvey 0.2 strdiff div space mul curvey add def
+               } if
+
+               % move to left end, set other points, draw curve
+               curvex1 curvey moveto
+
+               curvex1 curvex2 curvex1 sub 3 div add
+               curvey space 0.4 strdiff sqrt mul mul add
+
+               curvex2 curvex2 curvex1 sub 3 div sub
+               curvey space 0.4 strdiff sqrt mul mul add
+
+               curvex2 curvey curveto stroke
+       } if
+
+       space 10 div setlinewidth
+
+       % draw dots and x and o marks
+       0  1  strings 1 sub {   % loop from left string to right string
+               /strno exch def % first string is 0
+               /grid_p grid_positions strno get def
+               /strx strno space mul x add def
+
+               % set Y of mark higher if curved line covers this string
+               strno 1 add curvel ge  strno 1 add curver le  and {
+                       /marky hmarky def
+               } {
+                       /marky lmarky def
+               } ifelse
+
+               grid_p -1 eq {          % draw an X above the string
+                       /xhwid space 3 div def
+                       strx xhwid sub marky xhwid sub moveto
+                       strx xhwid add marky xhwid add lineto stroke
+                       strx xhwid sub marky xhwid add moveto
+                       strx xhwid add marky xhwid sub lineto stroke
+               } if
+               grid_p 0 eq {           % draw a circle above the string
+                       strx marky space 0.3 mul 0 360 arc stroke
+               } if
+               grid_p 1 ge {           % draw a dot by the proper fret
+                       strx y grid_p space mul sub space 3 div add
+                       space 3 div 0 360 arc fill
+               } if
+       } for
+
+       % print "X fr" if requested
+       fretno 0 gt {
+               /Palatino-Roman findfont space 1.9 mul scalefont setfont
+               x strings 0.5 sub space mul add
+               y space numvert 0.3 add mul sub moveto
+               fretno 2 string cvs show ( fr) show
+       } if
+       grestore
+} def
+
+% x1 y1 x2 y2 whitebox         draw a white rectangle with opposite
+%                              corners of (x1,y1) and (x2,y2)
+/whitebox {
+       /y2 exch def
+       /x2 exch def
+       /y1 exch def
+       /x1 exch def
+       1.0 setgray
+       newpath
+       x1 y1 moveto
+       x1 y2 lineto
+       x2 y2 lineto
+       x2 y1 lineto
+       closepath
+       fill
+       stroke
+       0.0 setgray
+} def
+
+
+/LineNum 0 def
+/InputFile (unknown) def
+
+% n linenum
+/linenum {
+       /LineNum exch def
+} def
+
+% (inputfilename) inputfile
+/inputfile {
+       /InputFile exch def
+} def
+
+% find size of Encoding and make a dictionary
+% that size for bounding box information
+mfont0 begin
+/dictsize Encoding length def
+mfont0 /Mcbbox0 dictsize dict put
+
+% temporarily redefine printmchar0 to get code
+5 dict begin
+/printmchar0 { {} forall } def
+
+Mcbbox0 Encoding 128rest get [ 1140.0 0 -515.0 -1515.0 615.0 1685.0 ] put
+Mcbbox0 Encoding 16rest get [ 830.0 0 -415.0 -1215.0 405.0 485.0 ] put
+Mcbbox0 Encoding 1n get [ 1080.0 0 -535.0 -335.0 535.0 345.0 ] put
+Mcbbox0 Encoding 1rest get [ 1540.0 0 -765.0 -5.0 765.0 645.0 ] put
+Mcbbox0 Encoding 256rest get [ 1250.0 0 -625.0 -2115.0 615.0 1685.0 ] put
+Mcbbox0 Encoding 2n get [ 880.0 0 -435.0 -345.0 435.0 355.0 ] put
+Mcbbox0 Encoding 2rest get [ 1540.0 0 -765.0 -45.0 765.0 315.0 ] put
+Mcbbox0 Encoding 32rest get [ 940.0 0 -415.0 -1215.0 515.0 1085.0 ] put
+Mcbbox0 Encoding 4n get [ 840.0 0 -415.0 -335.0 415.0 345.0 ] put
+Mcbbox0 Encoding 4rest get [ 650.0 0 -345.0 -885.0 295.0 985.0 ] put
+Mcbbox0 Encoding 64rest get [ 1040.0 0 -515.0 -1515.0 515.0 1085.0 ] put
+Mcbbox0 Encoding 8rest get [ 750.0 0 -305.0 -615.0 435.0 485.0 ] put
+Mcbbox0 Encoding acc_gt get [ 1170.0 0 -525.0 -335.0 635.0 345.0 ] put
+Mcbbox0 Encoding acc_hat get [ 780.0 0 -385.0 -5.0 385.0 875.0 ] put
+Mcbbox0 Encoding acc_uhat get [ 780.0 0 -385.0 -5.0 385.0 875.0 ] put
+Mcbbox0 Encoding begped get [ 470.0 0 -245.0 -45.0 215.0 615.0 ] put
+Mcbbox0 Encoding cclef get [ 1540.0 0 -765.0 -1245.0 765.0 1255.0 ] put
+Mcbbox0 Encoding coda get [ 1640.0 0 -815.0 -855.0 815.0 865.0 ] put
+Mcbbox0 Encoding com get [ 1100.0 0 -575.0 -635.0 515.0 655.0 ] put
+Mcbbox0 Encoding copyright get [ 920.0 0 -455.0 -45.0 455.0 855.0 ] put
+Mcbbox0 Encoding cut get [ 1100.0 0 -575.0 -905.0 515.0 915.0 ] put
+Mcbbox0 Encoding dblflat get [ 1170.0 0 -595.0 -405.0 565.0 1115.0 ] put
+Mcbbox0 Encoding dblsharp get [ 720.0 0 -355.0 -345.0 355.0 355.0 ] put
+Mcbbox0 Encoding dblwhole get [ 1090.0 0 -535.0 -605.0 545.0 615.0 ] put
+Mcbbox0 Encoding diamond get [ 880.0 0 -435.0 -305.0 435.0 315.0 ] put
+Mcbbox0 Encoding dim get [ 540.0 0 -265.0 -5.0 265.0 905.0 ] put
+Mcbbox0 Encoding dn128n get [ 840.0 0 -415.0 -3545.0 415.0 345.0 ] put
+Mcbbox0 Encoding dn16n get [ 840.0 0 -415.0 -2105.0 415.0 345.0 ] put
+Mcbbox0 Encoding dn256n get [ 840.0 0 -415.0 -3965.0 415.0 345.0 ] put
+Mcbbox0 Encoding dn2n get [ 880.0 0 -435.0 -2105.0 435.0 355.0 ] put
+Mcbbox0 Encoding dn32n get [ 840.0 0 -415.0 -2585.0 415.0 345.0 ] put
+Mcbbox0 Encoding dn4n get [ 840.0 0 -415.0 -2105.0 415.0 345.0 ] put
+Mcbbox0 Encoding dn64n get [ 840.0 0 -415.0 -3065.0 415.0 345.0 ] put
+Mcbbox0 Encoding dn8n get [ 840.0 0 -415.0 -2105.0 415.0 345.0 ] put
+Mcbbox0 Encoding dnbow get [ 810.0 0 -395.0 -5.0 405.0 915.0 ] put
+Mcbbox0 Encoding dnflag get [ 640.0 0 -335.0 -1705.0 295.0 15.0 ] put
+Mcbbox0 Encoding dot get [ 280.0 0 -135.0 -125.0 135.0 135.0 ] put
+Mcbbox0 Encoding dwhdiamond get [ 950.0 0 -465.0 -605.0 475.0 615.0 ] put
+Mcbbox0 Encoding dwhrest get [ 340.0 0 -165.0 -5.0 165.0 615.0 ] put
+Mcbbox0 Encoding endped get [ 480.0 0 -215.0 -45.0 255.0 615.0 ] put
+Mcbbox0 Encoding fclef get [ 1840.0 0 -1015.0 -1705.0 815.0 655.0 ] put
+Mcbbox0 Encoding ferm get [ 1640.0 0 -815.0 -5.0 815.0 1015.0 ] put
+Mcbbox0 Encoding filldiamond get [ 880.0 0 -435.0 -305.0 435.0 315.0 ] put
+Mcbbox0 Encoding flat get [ 580.0 0 -295.0 -405.0 275.0 1115.0 ] put
+Mcbbox0 Encoding gclef get [ 1790.0 0 -915.0 -1605.0 865.0 3015.0 ] put
+Mcbbox0 Encoding halfdim get [ 760.0 0 -375.0 -5.0 375.0 1015.0 ] put
+Mcbbox0 Encoding invmor get [ 1320.0 0 -655.0 -455.0 655.0 465.0 ] put
+Mcbbox0 Encoding invturn get [ 1300.0 0 -645.0 -335.0 645.0 345.0 ] put
+Mcbbox0 Encoding leg get [ 840.0 0 -415.0 -55.0 415.0 65.0 ] put
+Mcbbox0 Encoding ll1rest get [ 840.0 0 -415.0 -5.0 415.0 625.0 ] put
+Mcbbox0 Encoding ll2rest get [ 840.0 0 -415.0 -15.0 415.0 315.0 ] put
+Mcbbox0 Encoding measrpt get [ 1300.0 0 -645.0 -675.0 645.0 685.0 ] put
+Mcbbox0 Encoding mor get [ 1320.0 0 -655.0 -285.0 655.0 295.0 ] put
+Mcbbox0 Encoding nat get [ 520.0 0 -255.0 -855.0 255.0 865.0 ] put
+Mcbbox0 Encoding pedal get [ 1040.0 0 -515.0 -45.0 515.0 675.0 ] put
+Mcbbox0 Encoding qwhrest get [ 340.0 0 -165.0 -605.0 165.0 615.0 ] put
+Mcbbox0 Encoding rr get [ 940.0 0 -465.0 -25.0 465.0 1035.0 ] put
+Mcbbox0 Encoding sharp get [ 700.0 0 -345.0 -935.0 345.0 945.0 ] put
+Mcbbox0 Encoding sign get [ 1340.0 0 -665.0 -825.0 665.0 835.0 ] put
+Mcbbox0 Encoding tr get [ 1440.0 0 -715.0 -5.0 715.0 1015.0 ] put
+Mcbbox0 Encoding triangle get [ 800.0 0 -395.0 -45.0 395.0 785.0 ] put
+Mcbbox0 Encoding turn get [ 1300.0 0 -645.0 -325.0 645.0 345.0 ] put
+Mcbbox0 Encoding uferm get [ 1640.0 0 -815.0 -5.0 815.0 1015.0 ] put
+Mcbbox0 Encoding up128n get [ 1390.0 0 -745.0 -335.0 635.0 3555.0 ] put
+Mcbbox0 Encoding up16n get [ 1390.0 0 -745.0 -335.0 635.0 2115.0 ] put
+Mcbbox0 Encoding up256n get [ 1390.0 0 -745.0 -335.0 635.0 3975.0 ] put
+Mcbbox0 Encoding up2n get [ 880.0 0 -435.0 -345.0 435.0 2115.0 ] put
+Mcbbox0 Encoding up32n get [ 1390.0 0 -745.0 -335.0 635.0 2595.0 ] put
+Mcbbox0 Encoding up4n get [ 850.0 0 -415.0 -335.0 425.0 2115.0 ] put
+Mcbbox0 Encoding up64n get [ 1390.0 0 -745.0 -335.0 635.0 3075.0 ] put
+Mcbbox0 Encoding up8n get [ 1390.0 0 -745.0 -335.0 635.0 2115.0 ] put
+Mcbbox0 Encoding upbow get [ 720.0 0 -355.0 -115.0 355.0 925.0 ] put
+Mcbbox0 Encoding upflag get [ 640.0 0 -335.0 -5.0 295.0 1715.0 ] put
+Mcbbox0 Encoding uwedge get [ 340.0 0 -165.0 -5.0 165.0 505.0 ] put
+Mcbbox0 Encoding wedge get [ 340.0 0 -165.0 5.0 165.0 515.0 ] put
+Mcbbox0 Encoding xnote get [ 880.0 0 -435.0 -365.0 435.0 375.0 ] put
+
+end
+end
+
+/Mfont0 mfont0 definefont
+
+
+% find size of Encoding and make a dictionary
+% that size for bounding box information
+mfont1 begin
+/dictsize Encoding length def
+mfont1 /Mcbbox1 dictsize dict put
+
+% temporarily redefine printmchar1 to get code
+5 dict begin
+/printmchar1 { {} forall } def
+
+Mcbbox1 Encoding blankhead get [ 880.0 0 -435.0 -275.0 435.0 285.0 ] put
+Mcbbox1 Encoding dwhisostriangle get [ 950.0 0 -465.0 -605.0 475.0 615.0 ] put
+Mcbbox1 Encoding dwhpiewedge get [ 950.0 0 -465.0 -605.0 475.0 615.0 ] put
+Mcbbox1 Encoding dwhrectangle get [ 950.0 0 -465.0 -605.0 475.0 615.0 ] put
+Mcbbox1 Encoding dwhrighttriangle get [ 950.0 0 -465.0 -605.0 475.0 615.0 ] put
+Mcbbox1 Encoding dwhsemicircle get [ 950.0 0 -465.0 -605.0 475.0 615.0 ] put
+Mcbbox1 Encoding dwhslashhead get [ 1410.0 0 -695.0 -725.0 705.0 735.0 ] put
+Mcbbox1 Encoding fillisostriangle get [ 880.0 0 -435.0 -275.0 435.0 315.0 ] put
+Mcbbox1 Encoding fillpiewedge get [ 880.0 0 -435.0 -305.0 435.0 285.0 ] put
+Mcbbox1 Encoding fillrectangle get [ 880.0 0 -435.0 -275.0 435.0 285.0 ] put
+Mcbbox1 Encoding fillrighttriangle get [ 880.0 0 -435.0 -305.0 435.0 285.0 ] put
+Mcbbox1 Encoding fillsemicircle get [ 880.0 0 -435.0 -305.0 435.0 285.0 ] put
+Mcbbox1 Encoding fillslashhead get [ 1300.0 0 -645.0 -675.0 645.0 685.0 ] put
+Mcbbox1 Encoding isostriangle get [ 880.0 0 -435.0 -275.0 435.0 315.0 ] put
+Mcbbox1 Encoding piewedge get [ 880.0 0 -435.0 -305.0 435.0 285.0 ] put
+Mcbbox1 Encoding rectangle get [ 880.0 0 -435.0 -275.0 435.0 285.0 ] put
+Mcbbox1 Encoding righttriangle get [ 880.0 0 -435.0 -305.0 435.0 285.0 ] put
+Mcbbox1 Encoding semicircle get [ 880.0 0 -435.0 -305.0 435.0 285.0 ] put
+Mcbbox1 Encoding slashhead get [ 1380.0 0 -685.0 -725.0 685.0 735.0 ] put
+Mcbbox1 Encoding udwhrighttriangle get [ 950.0 0 -465.0 -605.0 475.0 615.0 ] put
+Mcbbox1 Encoding ufillrighttriangle get [ 880.0 0 -435.0 -275.0 435.0 315.0 ] put
+Mcbbox1 Encoding urighttriangle get [ 880.0 0 -435.0 -275.0 435.0 315.0 ] put
+
+end
+end
+
+/Mfont1 mfont1 definefont
+
+/makeExtEncoding {
+       /extendedencoding 256 array def
+       StandardEncoding extendedencoding copy
+       extendedencoding 32 /exclamdown put
+       extendedencoding 33 /cent put
+       extendedencoding 34 /sterling put
+       extendedencoding 35 /yen put
+       extendedencoding 36 /quotedblleft put
+       extendedencoding 37 /guillemotleft put
+       extendedencoding 38 /guillemotright put
+       extendedencoding 39 /guilsinglleft put
+       extendedencoding 40 /guilsinglright put
+       extendedencoding 41 /dagger put
+       extendedencoding 42 /daggerdbl put
+       extendedencoding 43 /bullet put
+       extendedencoding 44 /quotedblbase put
+       extendedencoding 45 /quotedblright put
+       extendedencoding 46 /questiondown put
+       extendedencoding 47 /grave put
+       extendedencoding 48 /acute put
+       extendedencoding 49 /macron put
+       extendedencoding 50 /breve put
+       extendedencoding 51 /dotaccent put
+       extendedencoding 52 /dieresis put
+       extendedencoding 53 /ring put
+       extendedencoding 54 /cedilla put
+       extendedencoding 55 /hungarumlaut put
+       extendedencoding 56 /ogonek put
+       extendedencoding 57 /caron put
+       extendedencoding 58 /emdash put
+       extendedencoding 59 /AE put
+       extendedencoding 60 /ae put
+       extendedencoding 61 /ordfeminine put
+       extendedencoding 62 /ordmasculine put
+       extendedencoding 63 /Lslash put
+       extendedencoding 64 /lslash put
+       extendedencoding 65 /Oslash put
+       extendedencoding 66 /oslash put
+       extendedencoding 67 /OE put
+       extendedencoding 68 /oe put
+       extendedencoding 69 /dotlessi put
+       extendedencoding 70 /germandbls put
+       extendedencoding 71 /Aacute put
+       extendedencoding 72 /aacute put
+       extendedencoding 73 /Acircumflex put
+       extendedencoding 74 /acircumflex put
+       extendedencoding 75 /Adieresis put
+       extendedencoding 76 /adieresis put
+       extendedencoding 77 /Agrave put
+       extendedencoding 78 /agrave put
+       extendedencoding 79 /Aring put
+       extendedencoding 80 /aring put
+       extendedencoding 81 /Atilde put
+       extendedencoding 82 /atilde put
+       extendedencoding 83 /Ccedilla put
+       extendedencoding 84 /ccedilla put
+       extendedencoding 85 /Eacute put
+       extendedencoding 86 /eacute put
+       extendedencoding 87 /Ecircumflex put
+       extendedencoding 88 /ecircumflex put
+       extendedencoding 89 /Edieresis put
+       extendedencoding 90 /edieresis put
+       extendedencoding 91 /Egrave put
+       extendedencoding 92 /egrave put
+       extendedencoding 93 /Iacute put
+       extendedencoding 94 /iacute put
+       extendedencoding 95 /Icircumflex put
+       extendedencoding 96 /icircumflex put
+       extendedencoding 97 /Idieresis put
+       extendedencoding 98 /idieresis put
+       extendedencoding 99 /Igrave put
+       extendedencoding 100 /igrave put
+       extendedencoding 101 /Ntilde put
+       extendedencoding 102 /ntilde put
+       extendedencoding 103 /Oacute put
+       extendedencoding 104 /oacute put
+       extendedencoding 105 /Ocircumflex put
+       extendedencoding 106 /ocircumflex put
+       extendedencoding 107 /Odieresis put
+       extendedencoding 108 /odieresis put
+       extendedencoding 109 /Ograve put
+       extendedencoding 110 /ograve put
+       extendedencoding 111 /Otilde put
+       extendedencoding 112 /otilde put
+       extendedencoding 113 /Scaron put
+       extendedencoding 114 /scaron put
+       extendedencoding 115 /Uacute put
+       extendedencoding 116 /uacute put
+       extendedencoding 117 /Ucircumflex put
+       extendedencoding 118 /ucircumflex put
+       extendedencoding 119 /Udieresis put
+       extendedencoding 120 /udieresis put
+       extendedencoding 121 /Ugrave put
+       extendedencoding 122 /ugrave put
+       extendedencoding 123 /Ydieresis put
+       extendedencoding 124 /ydieresis put
+       extendedencoding 125 /Zcaron put
+       extendedencoding 126 /zcaron put
+       extendedencoding 127 /space put
+} def
+
+/makeExtendedFont {
+       findfont
+       dup length dict /newdict exch def
+       { 1 index /FID ne
+               { newdict 3 1 roll put }
+               { pop pop }
+               ifelse
+       } forall
+       newdict /Encoding extendedencoding put
+       newdict /UniqueID newdict /UniqueID get 1 add put
+       newdict definefont pop
+} def
+/flagsep 1.60 300 mul def       % 1.60 stepsizes
+/scv 149508 def /sf 962 string def
+/fa {/p 0 def /chr exch -3 bitshift 127 and def {sf exch p add dup /p exch def chr put} forall} def
+[ 74 62 70 54 29 55 36 37 19 26 45 40 41 50 45 52 19 73 11 68 ] 1567304784 fa
+[ 961 ] 1341740116 fa
+[ 12 4 5 4 4 2 4 3 3 7 7 3 5 5 4 5 4 2 5 3 ] 1969419526 fa
+[ 96 4 4 3 2 4 11 2 6 23 13 16 8 3 28 13 8 3 6 11 ] 387152134 fa
+[ 268 4 13 12 5 4 4 5 4 5 3 2 4 3 4 8 3 3 9 2 ] 305899779 fa
+[ 369 3 4 9 3 3 9 2 4 3 4 7 4 4 4 9 5 3 5 4 ] 477458695 fa
+[ 498 4 36 4 37 4 42 4 4 37 4 4 35 4 4 5 13 3 4 4 ] 1130513667 fa
+[ 759 3 5 33 4 5 9 29 5 4 3 5 4 4 5 4 4 5 4 3 ] 1205319942 fa
+[ 902 8 4 2 3 4 3 4 4 3 2 3 9 ] 1708988675 fa
+[ 468 6 4 10 3 30 5 3 24 40 4 3 3 3 3 8 23 1 1 1 ] 123455756 fa
+[ 664 23 4 2 13 66 4 5 9 ] 2061720845 fa
+[ 795 ] 1622189328 fa
+[ 463 45 40 41 50 45 84 ] 304180545 fa
+[ 494 40 41 49 45 43 84 ] 251711819 fa
+[ 149 203 37 144 ] 358262127 fa
+[ 456 142 52 ] 95949173 fa
+[ 0 13 13 10 65 36 6 26 38 17 13 53 4 13 13 25 36 183 7 140 ] 1751712121 fa
+[ 839 5 13 12 13 13 48 ] 1943250302 fa
+[ 30 164 254 7 42 4 36 4 18 1 18 4 46 3 1 41 4 39 4 41 ] 499619205 fa
+[ 798 1 3 1 ] 1277775234 fa
+[ 76 32 135 79 99 8 246 43 30 160 ] 734015880 fa
+[ 265 70 36 12 25 87 4 36 4 37 4 46 4 41 43 83 4 83 41 3 ] 1546658194 fa
+[ 193 49 180 8 17 134 ] 831070621 fa
+[ 353 366 ] 1033403809 fa
+[ 266 1 190 39 40 41 50 45 43 45 ] 1758436783 fa
+[ 423 8 109 ] 508918194 fa
+[ 328 6 30 6 31 6 269 ] 212071871 fa
+[ 390 357 2 ] 1671244225 fa
+[ 500 ] 347047368 fa
+[ 558 ] 1276946910 fa
+[ 651 ] 2109048312 fa
+[ 644 ] 1914352160 fa
+[ 520 ] 471204394 fa
+[ 512 5 2 ] 1930983991 fa
+[ 665 ] 154021439 fa
+[ 513 ] 777103941 fa
+[ 514 ] 260959830 fa
+[ 530 239 ] 1284535922 fa
+[ 510 ] 1982423675 fa
+[ 150 ] 1969948305 fa
+[ 511 7 134 ] 1407991454 fa
+[ 144 371 ] 1896661664 fa
+[ 464 52 ] 1444653737 fa
+[ 509 81 ] 1712172720 fa
+[ 110 11 32 24 22 18 40 12 54 7 17 19 18 19 22 13 377 94 9 11 ] 889612 fa
+[ 954 ] 1802916616 fa
+[ 80 146 51 78 37 84 8 8 73 5 44 45 33 9 73 9 130 9 11 12 ] 1808121621 fa
+[ 19 42 3 22 8 82 63 23 25 13 8 5 176 248 40 73 12 13 13 12 ] 1752602397 fa
+[ 22 10 37 42 1 2 19 26 6 38 17 13 38 11 21 13 16 9 27 9 ] 1598682919 fa
+[ 405 9 13 46 49 50 50 213 18 12 13 13 12 45 10 ] 160257827 fa
+[ 1 8 8 6 10 10 16 11 14 8 23 19 13 19 13 7 15 3 9 8 ] 882894639 fa
+[ 234 40 9 15 6 7 6 25 36 37 19 6 47 16 40 41 50 45 43 6 ] 185215791 fa
+[ 733 19 37 16 12 13 3 3 12 6 6 6 7 6 7 6 6 6 45 10 ] 1706915629 fa
+[ 24 10 37 45 2 17 5 1 15 4 7 5 8 8 17 17 13 11 8 26 ] 1713964852 fa
+[ 284 21 13 25 18 18 19 18 28 1 7 28 2 4 106 24 3 2 32 36 ] 1218620208 fa
+[ 695 62 1 7 13 1 7 2 37 4 8 5 13 12 13 13 12 45 5 1 ] 1317868340 fa
+[ 960 ] 75399990 fa
+[ 45 9 155 6 245 68 21 98 60 109 ] 1430691640 fa
+[ 20 27 15 25 8 33 173 13 45 37 83 170 5 34 8 115 40 12 13 13 ] 841629509 fa
+[ 901 ] 422446918 fa
+[ 27 25 37 13 3 40 12 73 49 77 4 33 4 68 89 219 21 27 3 4 ] 560155470 fa
+[ 466 6 135 41 7 6 36 6 89 ] 803193686 fa
+[ 42 80 1 55 80 1 80 36 37 155 1 263 40 65 ] 189315943 fa
+[ 6 31 36 9 43 21 6 185 36 37 210 ] 1031359337 fa
+[ 44 9 101 4 4 20 8 80 3 23 30 5 19 17 20 17 15 7 7 36 ] 586694517 fa
+[ 552 22 20 16 3 55 42 31 10 33 ] 343336822 fa
+[ 7 4 54 54 10 22 10 20 8 8 53 5 226 12 115 38 17 42 26 13 ] 1808462718 fa
+[ 780 32 ] 847653755 fa
+[ 3 63 31 408 18 4 18 6 22 13 15 3 32 9 17 4 15 5 18 4 ] 1627872128 fa
+[ 724 83 7 ] 1643402114 fa
+[ 228 296 8 25 39 16 159 14 34 ] 670118796 fa
+[ 2 2 47 69 19 34 23 20 35 5 187 10 51 2 38 2 39 2 48 2 ] 888380310 fa
+[ 680 2 41 2 2 5 13 11 10 40 2 50 80 ] 1392580498 fa
+[ 14 25 10 7 22 49 21 22 1 4 10 23 4 13 15 5 16 15 12 3 ] 2114772893 fa
+[ 295 30 24 9 28 9 23 19 13 1 8 24 67 16 3 30 3 3 53 9 ] 453068702 fa
+[ 694 6 9 20 11 23 1 23 23 22 8 5 1 24 41 9 11 4 5 1 ] 1393470366 fa
+[ 944 8 ] 1770206109 fa
+[ 10 5 25 6 4 7 42 39 25 20 4 4 7 2 14 17 126 5 32 5 ] 113705892 fa
+[ 442 25 4 6 114 27 38 42 32 25 20 47 19 112 ] 998588323 fa
+[ 79 19 131 109 36 37 74 70 1 59 8 34 3 25 5 9 3 80 11 27 ] 1221405612 fa
+[ 912 9 11 ] 273962927 fa
+[ 8 230 25 23 6 17 130 31 61 64 16 127 32 ] 1881483187 fa
+[ 130 683 ] 1406620603 fa
+[ 18 10 32 25 5 3 10 3 143 50 13 9 61 93 86 1 1 180 48 58 ] 1980878788 fa
+[ 861 13 9 4 12 8 17 3 ] 1447963591 fa
+[ 67 143 8 128 115 435 19 2 ] 477757388 fa
+[ 490 35 ] 1151262673 fa
+[ 5 70 67 32 37 16 14 7 27 18 142 301 17 90 103 ] 1523362782 fa
+[ 117 14 33 38 17 13 20 26 3 453 89 3 8 113 10 ] 1908448236 fa
+sf cvx exec
+%%BeginResource: procset grops 1.17 2
+/setpacking where{
+pop
+currentpacking
+true setpacking
+}if
+/grops 120 dict dup begin
+/SC 32 def
+/A/show load def
+/B{0 SC 3 -1 roll widthshow}bind def
+/C{0 exch ashow}bind def
+/D{0 exch 0 SC 5 2 roll awidthshow}bind def
+/E{0 rmoveto show}bind def
+/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def
+/G{0 rmoveto 0 exch ashow}bind def
+/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/I{0 exch rmoveto show}bind def
+/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def
+/K{0 exch rmoveto 0 exch ashow}bind def
+/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/M{rmoveto show}bind def
+/N{rmoveto 0 SC 3 -1 roll widthshow}bind def
+/O{rmoveto 0 exch ashow}bind def
+/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/Q{moveto show}bind def
+/R{moveto 0 SC 3 -1 roll widthshow}bind def
+/S{moveto 0 exch ashow}bind def
+/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def
+/SF{
+findfont exch
+[exch dup 0 exch 0 exch neg 0 0]makefont
+dup setfont
+[exch/setfont cvx]cvx bind def
+}bind def
+/MF{
+findfont
+[5 2 roll
+0 3 1 roll
+neg 0 0]makefont
+dup setfont
+[exch/setfont cvx]cvx bind def
+}bind def
+/level0 0 def
+/RES 0 def
+/PL 0 def
+/LS 0 def
+/MANUAL{
+statusdict begin/manualfeed true store end
+}bind def
+/PLG{
+gsave newpath clippath pathbbox grestore
+exch pop add exch pop
+}bind def
+/BP{
+/level0 save def
+1 setlinecap
+1 setlinejoin
+72 RES div dup scale
+LS{
+90 rotate
+}{
+0 PL translate
+}ifelse
+1 -1 scale
+}bind def
+/EP{
+level0 restore
+showpage
+}bind def
+/DA{
+newpath arcn stroke
+}bind def
+/SN{
+transform
+.25 sub exch .25 sub exch
+round .25 add exch round .25 add exch
+itransform
+}bind def
+/DL{
+SN
+moveto
+SN
+lineto stroke
+}bind def
+/DC{
+newpath 0 360 arc closepath
+}bind def
+/TM matrix def
+/DE{
+TM currentmatrix pop
+translate scale newpath 0 0 .5 0 360 arc closepath
+TM setmatrix
+}bind def
+/RC/rcurveto load def
+/RL/rlineto load def
+/ST/stroke load def
+/MT/moveto load def
+/CL/closepath load def
+/FL{
+currentgray exch setgray fill setgray
+}bind def
+/BL/fill load def
+/LW/setlinewidth load def
+/RE{
+findfont
+dup maxlength 1 index/FontName known not{1 add}if dict begin
+{
+1 index/FID ne{def}{pop pop}ifelse
+}forall
+/Encoding exch def
+dup/FontName exch def
+currentdict end definefont pop
+}bind def
+/DEFS 0 def
+/EBEGIN{
+moveto
+DEFS begin
+}bind def
+/EEND/end load def
+/CNT 0 def
+/level1 0 def
+/PBEGIN{
+/level1 save def
+translate
+div 3 1 roll div exch scale
+neg exch neg exch translate
+0 setgray
+0 setlinecap
+1 setlinewidth
+0 setlinejoin
+10 setmiterlimit
+[]0 setdash
+/setstrokeadjust where{
+pop
+false setstrokeadjust
+}if
+/setoverprint where{
+pop
+false setoverprint
+}if
+newpath
+/CNT countdictstack def
+userdict begin
+/showpage{}def
+}bind def
+/PEND{
+clear
+countdictstack CNT sub{end}repeat
+level1 restore
+}bind def
+end def
+/setpacking where{
+pop
+setpacking
+}if
+%%EndResource
+%%IncludeResource: font Times-Bold
+%%IncludeResource: font Times-Italic
+%%IncludeResource: font Times-Roman
+%%IncludeResource: font Courier
+%%IncludeResource: font Times-BoldItalic
+%%IncludeResource: font NewCenturySchlbk-BoldItalic
+%%IncludeResource: font NewCenturySchlbk-Roman
+grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
+def/PL PLG def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron
+/scaron/zcaron/Ydieresis/trademark/quotesingle/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
+/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
+/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen
+/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
+/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O
+/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex
+/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y
+/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft
+/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl
+/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut
+/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash
+/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen
+/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft
+/logicalnot/minus/registered/macron/degree/plusminus/twosuperior
+/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior
+/ordmasculine/guilsinglright/onequarter/onehalf/threequarters
+/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE
+/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
+/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
+/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn
+/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
+/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
+/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash
+/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
+/NewCenturySchlbk-Roman@0 ENC0/NewCenturySchlbk-Roman RE
+/NewCenturySchlbk-BoldItalic@0 ENC0/NewCenturySchlbk-BoldItalic RE
+/Times-BoldItalic@0 ENC0/Times-BoldItalic RE/Courier@0 ENC0/Courier RE
+/Times-Roman@0 ENC0/Times-Roman RE/Times-Italic@0 ENC0/Times-Italic RE
+/Times-Bold@0 ENC0/Times-Bold RE
+%%EndProlog
+%%Page: 1 1
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 11/Times-Bold@0 SF(Mup V)195.888 43 Q(ersion 5.3 Statement Summary)
+-1.1 E/F1 11/Times-Italic@0 SF(conte)36 56 Q(xt)-.22 E(staf)36 69 Q
+(fs voices & staf)-.198 E(fs voices)-.198 E F0(:)A F1 -.165(ch)2.75 G
+(or).165 E(d)-.407 E F0(;)2.75 E F1(....)2.75 E F0([)36 82 Q F1(staf)A
+(fs voices & staf)-.198 E(fs voices)-.198 E F0(;)A F1(staf)2.75 E
+(fs voices)-.198 E F0 2.75(]:)C F1 -.165(ch)C(or).165 E(d)-.407 E F0(;)
+2.75 E F1(....)2.75 E F0(lyrics)36 95 Q F1(place staf)2.75 E(f)-.198 E
+F0(:)2.75 E F1(time_valuelist)2.75 E F0([)2.75 E F1(ver)2.75 E(ses)-.11
+E F0 2.75(]")2.75 G F1(te)-2.75 E(xt)-.22 E F0(";)A F1(...)2.75 E
+(linetype bartype)36 108 Q F0(pad)2.75 E F1(num ending_mark)2.75 E F0
+-.198(re)2.75 G(hearsal).198 E F1(fontfamily font)2.75 E F0(\()2.75 E F1
+(size)A F0(\))A F1 -.407(re)2.75 G(hear).407 E(sal_mark)-.11 E F0(mnum=)
+2.75 E F1(num)A F0(=)2.75 E F1(ta)A(g)-.11 E F0(hidechanges)2.75 E F1
+(par)36 121 Q(ameter)-.165 E F0(=)A F1(value)A F0(multir)36 134 Q(est)
+-.198 E F1(num)2.75 E F0(newscor)36 147 Q 2.75(el)-.198 G(eftmar)-2.75 E
+(gin=)-.11 E F1(num)A F0(rightmar)2.75 E(gin=)-.11 E F1(num)A F0
+(newpage leftmar)36 160 Q(gin=)-.11 E F1(num)A F0(rightmar)2.75 E(gin=)
+-.11 E F1(num)A(fontfamily font)36 173 Q F0(\()2.75 E F1(size)A F0(\))A
+F1(modi\214er place staf)2.75 E(fs)-.198 E F0(dist)2.75 E F1(num)2.75 E
+F0 2.75(!:)2.75 G F1(beat)A F0(")2.75 E F1(te)A(xt)-.22 E F0 2.75("t)C
+(il)-2.75 E F1(num)2.75 E F0(m+)A F1(num)A F0(;)A F1(....)2.75 E F0
+(mussym \()36 186 Q F1(size)A/F2 11/Times-Roman@0 SF(\))A F1(place staf)
+2.75 E(fs)-.198 E F0(:)2.75 E F1(beat)2.75 E F0(")2.75 E F1(mus_symbol)A
+F0 2.75("t)C(il)-2.75 E F1(num)2.75 E F0(m+)A F1(num)A F0(;)A F1(....)
+2.75 E(linetype)36 199 Q F0(phrase)2.75 E F1(place staf)2.75 E(fs)-.198
+E F0(:)2.75 E F1(beat til num)2.75 E F0(m+)A F1(num)A F0(;)A F1(....)
+2.75 E F0(octa)36 212 Q -.11(ve)-.275 G F1(place staf)2.86 E(fs)-.198 E
+F0(:)2.75 E F1(beat)2.75 E F0(")2.75 E F1(te)A(xt)-.22 E F0 2.75("t)C
+(il)-2.75 E F1(num)2.75 E F0(m+)A F1(num)A F0(;)A F1(....)2.75 E F0
+(pedal)36 225 Q F1(place staf)2.75 E(fs)-.198 E F0(:)2.75 E F1(beat)2.75
+E F0 2.75(*;)2.75 G F1(....)A(cr)36 238 Q(es_mark place staf)-.407 E(fs)
+-.198 E F0(:)2.75 E F1(beat til num)2.75 E F0(m+)A F1(num)A F0(;)A F1
+(....)2.75 E F0(midi)36 251 Q F1(staf)2.75 E(fs voices)-.198 E F0(:)2.75
+E F1(beat)2.75 E F0(")2.75 E F1(midi_k)A -.33(ey)-.11 G(wor).33 E(d)
+-.407 E F0(=)A F1(value)A F0(";)A F1(....)2.75 E F0 -.198(ro)36 264 S
+(ll).198 E F1(dir)2.75 E(ection staf)-.407 E(fnum voicenum)-.198 E F0
+(to)2.75 E F1(staf)2.75 E(fnum voicenum)-.198 E F0(:)2.75 E F1(beat)2.75
+E F0(;)2.75 E F1(....)2.75 E(printcmd location)36 277 Q F0(")2.75 E F1
+(te)A(xt)-.22 E F0(")A(title)36 290 Q F1(fontfamily font)2.75 E F0(\()
+2.75 E F1(size)A F0 2.75(\)")C F1(te)-2.75 E(xt)-.22 E F0 2.75("")C F1
+(te)-2.75 E(xt)-.22 E F0 2.75("")C F1(te)-2.75 E(xt)-.22 E F0(")A F1
+(justifytype)36 303 Q F0(paragraph)2.75 E F1(fontfamily font)2.75 E F0
+(\()2.75 E F1(size)A F0 2.75(\)")C F1(te)-2.75 E(xt)-.22 E F0(")A F1
+(linetype)36 316 Q F0(line)2.75 E F1(location)2.75 E F0(to)2.75 E F1
+(location)2.75 E F0(with)2.75 E F1(fontfamily font)2.75 E F0(\()2.75 E
+F1(size)A F0 2.75(\)")C F1(te)-2.75 E(xt)-.22 E F0(")A F1(linetype)36
+329 Q F0(cur)2.75 E -.11(ve)-.11 G F1(location)2.86 E F0(to)2.75 E F1
+(location)2.75 E F0(to)2.75 E F1(location ....)2.75 E(linetype)36 342 Q
+F0(cur)2.75 E -.11(ve)-.11 G F1(location)2.86 E F0(to)2.75 E F1
+(location)2.75 E F0 -.22(bu)2.75 G(lge).22 E F1(num ....)2.75 E F0
+(de\214ne)36 355 Q F1(MA)2.75 E(CR)-.33 E(O_N)-.44 E(AME)-.297 E F0(\()A
+F1(mac_par)A(ams)-.165 E F0(\))A F1(macr)2.75 E(o_de\214nition)-.495 E
+F0(@)2.75 E(ifdef)36 368 Q F1(MA)2.75 E(CR)-.33 E(O_N)-.44 E(AME .....)
+-.297 E F0(else)2.75 E F1(.....)2.75 E F0(endif)2.75 E(ifndef)36 381 Q
+F1(MA)2.75 E(CR)-.33 E(O_N)-.44 E(AME .....)-.297 E F0(else)2.75 E F1
+(.....)2.75 E F0(endif)2.75 E(undef)36 394 Q F1(MA)2.75 E(CR)-.33 E(O_N)
+-.44 E(AME)-.297 E F0(if)36 407 Q F1 -.22(ex)2.75 G(pr).22 E
+(ession .....)-.407 E F0(else)2.75 E F1(.....)2.75 E F0(endif)2.75 E
+(include ")36 420 Q F1(\214lename)A F0(")A -.275(fo)36 433 S(nt\214le ")
+.275 E F1(\214lename)A F0(")A(//)36 446 Q F1(comment\212arbitr)2.75 E
+(ary te)-.165 E(xt that will be ignor)-.22 E(ed.)-.407 E F0 -1.012(Va)
+211.877 472 S(lues used in Mup statements)1.012 E F1(accidental)36 485 Q
+F0(#)40.574 E F2(,)A F0(&)2.75 E F2(,)A F0(x)2.75 E F2(,)A F0(&&)2.75 E
+F2 2.75(,o)C(r)-2.75 E F0(n)2.75 E F1(bartype)36 498 Q F0(bar)52.795 E
+F2(,)A F0(dblbar)2.75 E F2(,)A F0 -.198(re)2.75 G(peatstart).198 E F2(,)
+A F0 -.198(re)2.75 G(peatend).198 E F2(,)A F0 -.198(re)2.75 G(peatboth)
+.198 E F2(,)A F0(endbar)2.75 E F2(,)A F0(in)2.75 E(visbar)-.44 E F2 2.75
+(,o)C(r)-2.75 E F0 -.198(re)2.75 G(start).198 E F1(beat)36 511 Q F2(num\
+ber from 0.0 to time signature denominator plus 1.0, optionally follo)
+67.458 E(wed)-.275 E(by ho)122.4 524 Q 2.75(wm)-.275 G(an)-2.75 E 2.75
+(yg)-.165 G(race notes to back up from there, as a ne)-2.75 E -.055(ga)
+-.165 G(ti).055 E .33 -.165(ve n)-.275 H(umber in parentheses,).165 E
+(and an of)122.4 537 Q(fset as a signed number in square brack)-.275 E
+(ets)-.11 E F1 -.165(ch)36 550 S(or).165 E(d)-.407 E F0(<<)61.309 E F1
+(conte)A(xt par)-.22 E(ameter=value)-.165 E F0(>> [)A F1 -.165(ch)C(or)
+.165 E(d_style)-.407 E F0(])A F1(time_value pitc)2.75 E
+(h\(es\) note_attrib)-.165 E(utes inter)-.22 E(-c)-.22 E(hor)-.165 E
+(d_attr)-.407 E F2 -.495(Tu)122.4 563 S(plets speci\214ed by).495 E F0
+({)8.25 E F1 -.165(ch)2.75 G(or).165 E(d)-.407 E F0(;)2.75 E F1(....)
+2.75 E F0(})2.75 E F1(side num tupstyle)2.75 E 2.75(,t)-.11 G(ime_value)
+-2.75 E F0(;)2.75 E F2(On tablature staf)122.4 576 Q(f, the)-.275 E F1
+(pitc)2.75 E(h)-.165 E F2(is:)2.75 E F1(string fr)2.75 E(et)-.407 E F0
+(")2.75 E F1(bend)A F0(")A F1(bend)36 589 Q F0(full)65.016 E F2 2.75(,o)
+C(r)-2.75 E F1(num)2.75 E F2(and/or a fraction as)2.75 E F1(num)2.75 E
+F0(/)A F1(num)A -.165(ch)36 602 S(or).165 E(d_style)-.407 E F2
+(one or more \(semicolon-separated\) from the follo)35.646 E(wing:)-.275
+E F0(grace)122.4 615 Q F2(,)A F0(cue)2.75 E F2(,)A F0(xnote)2.75 E F2(,)
+A F0(diam)2.75 E F2(,)A F0(with)2.75 E F1(withlist)2.75 E F2(,)A F0(pad)
+2.75 E F1(num)2.75 E F2(,)A F0(slash)2.75 E F1(num)2.75 E F2(,)A F1
+(stemdir)2.75 E F2(,)A F0(len)2.75 E F1(num)2.75 E F2(,)A F0(dist)2.75 E
+F1(num)2.75 E F2(,)A F0(ho)122.4 628 Q F1(num)2.75 E F2(,)A F0(hs ")2.75
+E F1(headshape)A F0(")A F2 2.75(,o)C(r)-2.75 E F0(=)2.75 E F1(ta)A(g)
+-.11 E F2(Putting)122.4 641 Q F0(...)2.75 E F2(after the)2.75 E F0(])
+2.75 E F2(will repeat the)2.75 E F1 -.165(ch)2.75 G(or).165 E(d_style)
+-.407 E F2(until)2.75 E F0([-])2.75 E F2(or end of measure.)2.75 E F1
+(clef)36 654 Q F0(tr)70.516 E(eble)-.198 E F2(,)A F0(soprano)2.75 E F2
+(,)A F0(mezzosoprano)2.75 E F2(,)A F0(alto)2.75 E F2(\(these ha)5.5 E
+.33 -.165(ve d)-.22 H(ef).165 E(ault octa)-.11 E .33 -.165(ve o)-.22 H
+2.75(f4).165 G(\))-2.75 E F0(tr)122.4 667 Q(eble8)-.198 E F2(,)A F0
+(tenor)2.75 E F2(,)A F0(baritone)2.75 E F2(,)A F0(bass)2.75 E F2
+(\(these ha)5.5 E .33 -.165(ve d)-.22 H(ef).165 E(ault octa)-.11 E .33
+-.165(ve o)-.22 H 2.75(f3).165 G(\))-2.75 E F0(fr)122.4 680 Q
+(enchviolin)-.198 E F2(,)A F0(8tr)2.75 E(eble)-.198 E F2(\(these ha)2.75
+E .33 -.165(ve d)-.22 H(ef).165 E(ault octa)-.11 E .33 -.165(ve o)-.22 H
+2.75(f5).165 G(\))-2.75 E F1(conte)36 693 Q(xt)-.22 E F0(scor)54.852 E
+(e)-.198 E F2(,)A F0(staff)2.75 E F1(staf)2.75 E(fnum)-.198 E F2(,)A F0
+-.11(vo)2.75 G(ice).11 E F1(staf)2.75 E(fnum voicenum)-.198 E F2(,)A F0
+(music)2.75 E F2(,)A F0(top)2.75 E F2(,)A F0(bottom)2.75 E F2(,)A F0
+(top2)2.75 E F2(,)A F0(bottom2)2.75 E F2(,)A F0(header)122.4 706 Q F2(,)
+A F0 -.275(fo)2.75 G(oter).275 E F2(,)A F0(header2)2.75 E F2(,)A F0
+-.275(fo)2.75 G(oter2).275 E F2(,)A F0(grids)2.75 E F2 2.75(,o)C(r)-2.75
+E F0(headshapes)2.75 E F1(cr)36 719 Q(es_mark)-.407 E F0(<)40.376 E F2
+(\(crescendo\) or)2.75 E F0(>)2.75 E F2(\(decrescendo\))2.75 E F1(dir)36
+732 Q(ection)-.407 E F0(up)47.086 E F2(or)2.75 E F0(do)2.75 E(wn)-.11 E
+F1(ending_mark)36 745 Q F0(ending ")28.353 E F1(te)A(xt)-.22 E F0(")A F2
+(or)5.5 E F0(endending)2.75 E F1 -.22(ex)36 758 S(pr).22 E(ession)-.407
+E F2(can contain)39.98 E F0 2.75
+(de\214ned\(\) \(\) + - ~ ! * / % ^ & | << >> < > <= >= == != && || ?:)
+2.75 F F1(\214lename)36 771 Q F2
+(path to a \214le on your system; uses MUPP)49.132 E -1.221(AT)-1.012 G
+2.75(Ht)1.221 G 2.75<6f8c>-2.75 G(nd, if not in current directory)-2.75
+E(and not absolute path)122.4 784 Q EP
+%%Page: 2 2
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 9/Times-Roman@0 SF 2.25(-2-)262.503 44.5 S/F1 11/Times-Italic@0 SF
+(font)36 70.5 Q/F2 11/Times-Bold@0 SF -.198(ro)69.284 G(m).198 E/F3 11
+/Times-Roman@0 SF(,)A F2(ital)2.75 E F3(,)A F2(bold)2.75 E F3 2.75(,o)C
+(r)-2.75 E F2(boldital)2.75 E F1(fontfamily)36 83.5 Q F2 -2.31 -.275
+(av a)41.784 H(ntgarde).275 E F3(,)A F2(bookman)2.75 E F3(,)A F2
+(courier)2.75 E F3(,)A F2(helv)2.75 E(etica)-.11 E F3(,)A F2(newcentury)
+2.75 E F3(,)A F2(palatino, or times)2.75 E F1(fr)36 96.5 Q(et)-.407 E F3
+(number from 0 to 99)71.528 E F1(he)36 109.5 Q(x_data)-.22 E F3 -2.365
+-.275(ev e)46.294 H 2.75(nn).275 G(umber of he)-2.75 E(xadecimal digits)
+-.165 E F1(inter)36 122.5 Q(-c)-.22 E(hor)-.165 E 12.942
+(d_attr tieslur_style)-.407 F F2(tie)2.75 E F1(dir)2.75 E(ection)-.407 E
+F3(,)A F1(tieslur_style)2.75 E F2(slur)2.75 E F1(dir)2.75 E(ection)-.407
+E F3(,)A F2(bm)2.75 E F3(,)A F2(bm with staff)2.75 E F1(side)2.75 E F3
+(,)A F2(ebm)2.75 E F3(,)A F2(esbm)2.75 E F3(,)A F2(slope)122.4 135.5 Q
+F1(num)2.75 E F3 2.75(,o)C(r)-2.75 E F2(alt)2.75 E F1(num)2.75 E
+(interval)36 148.5 Q F2(perfect)52.179 E F3(,)A F2(major)2.75 E F3(,)A
+F2(minor)2.75 E F3(,)A F2(augmented)2.75 E F3 2.75(,o)C(r)-2.75 E F2
+(diminished)2.75 E F1(justifytype)36 161.5 Q F2(justi\214ed)41.179 E F3
+2.75(,o)C(r)-2.75 E F2(ragged)2.75 E F1(linetype)36 174.5 Q F2(medium)
+51.574 E F3(,)A F2(wide)2.75 E F3(,)A F2(dashed)2.75 E F3 2.75(,o)C(r)
+-2.75 E F2(dotted)2.75 E F3(\(if omitted,)2.75 E F1(linetype)2.75 E F3
+(is narro)2.75 E(w\))-.275 E F1(location)36 187.5 Q F2(\()50.342 E F1
+(ta)2.75 E(g)-.11 E F2(.)A F1(X)A F2(+)2.75 E F1(steps)2.75 E F2 2.75
+(+t)2.75 G(ime)-2.75 E F1(time_value)2.75 E F2(,)A F1(ta)2.75 E(g)-.11 E
+F2(.)A F1(Y)A F2(+)2.75 E F1(steps)2.75 E F2(\))2.75 E F1(mac_par)36
+200.5 Q(ams)-.165 E F3
+(comma-separated list of parameter names, same naming rules as)29.739 E
+F1(MA)2.75 E(CR)-.33 E(O_N)-.44 E(AME)-.297 E(MA)36 213.5 Q(CR)-.33 E
+(O_N)-.44 E(AME)-.297 E F3
+(upper case letters, digits, and/or underscores, be)14.141 E
+(ginning with a letter)-.165 E F1(macr)36 226.5 Q(o_de\214nition)-.495 E
+F3(arbitrary te)11.732 E(xt that will be used where)-.165 E -.165(ve)
+-.275 G(r).165 E F1(MA)2.75 E(CR)-.33 E(O_N)-.44 E(AME)-.297 E F3
+(appears in input)2.75 E F1(midi_k)36 239.5 Q -.33(ey)-.11 G(wor).33 E
+(d)-.407 E F3(an)24.921 E 2.75(yo)-.165 G 2.75(ft)-2.75 G(he follo)-2.75
+E(wing:)-.275 E F2(tempo=)122.4 252.5 Q F1(num)A F2(pr)46.262 E(ogram=)
+-.198 E F1(num)A F2(parameter=)34.239 E F1(num)A F2(,)A F1(num)A F2
+(port=)4.418 E F1(num)A F2(on)122.4 265.5 Q -.11(ve)-.44 G(locity=).11 E
+F1(num)A F2(offv)28.475 E(elocity=)-.11 E F1(num)A F2(channel=)26.825 E
+F1(num)A F2(chanpr)38.914 E(essur)-.198 E(e=)-.198 E F1(num)A F2
+(seqnum=)122.4 278.5 Q F1(num)A F2(text=)38.914 E F1(te)A(xt)-.22 E F2
+(copyright=)61.156 E F1(te)A(xt)-.22 E F2(name=)33.645 E F1(te)A(xt)-.22
+E F2(instrument=)122.4 291.5 Q F1(num)A F2(mark)23.646 E(er=)-.11 E F1
+(te)A(xt)-.22 E F2(cue=)43.545 E F1(te)A(xt)-.22 E F2(hex=)62.982 E F1
+(he)A(x_data)-.22 E(modi\214er)36 304.5 Q F2(chord)49.737 E F3(,)A F2
+(analysis)2.75 E F3(,)A F2(\214gbass)2.75 E F3 2.75(,o)C 2.75(ro)-2.75 G
+(mitted)-2.75 E F1(mus_symbol)36 317.5 Q F3
+(musical symbol; see chart on page 6 for complete list.)32.016 E F1
+(note_attrib)36 330.5 Q(utes)-.22 E F3(one or more of the follo)20.004 E
+(wing:)-.275 E F1(tieslur_style)2.75 E F2(~)2.75 E F1(dir)2.75 E(ection)
+-.407 E F3(\(tie\),)2.75 E F1(tieslur_style)2.75 E F2 2.75(<>)2.75 G F1
+(dir)A(ection\) \(slur\),)-.407 E F2(?)122.4 343.5 Q F3(\(small\),)2.75
+E F2(^)2.75 E F1(pitc)A(h)-.165 E F3(\(bend\),)2.75 E F2(hs ")2.75 E F1
+(headshape)A F2(")A F3 2.75(,o)C(r)-2.75 E F2(=)2.75 E F1(ta)A(g)-.11 E
+(num)36 356.5 Q F3(some number; v)67.458 E(alid v)-.275 E
+(alues depend on where it appears)-.275 E F1(octave)36 369.5 Q F3
+(number from)57.69 E F2(0)2.75 E F3(to)2.75 E F2(9)2.75 E F3
+(or one or more)2.75 E F2(+)2.75 E F3(or)2.75 E F2(-)2.75 E F3(signs)
+2.75 E F1(par)36 382.5 Q(ameter)-.165 E F3
+(See parameter table on page 5 for complete list)40.739 E F1(pitc)36
+395.5 Q(h)-.165 E F3(letter from)64.565 E F2(a)2.75 E F3(to)2.75 E F2(g)
+2.75 E F3 2.75(,o)C(ptionally follo)-2.75 E(wed by)-.275 E F1
+(accidental)2.75 E F3(and/or)2.75 E F1(octave)2.75 E F3(,)A(or)122.4
+408.5 Q F2(r)2.75 E F3(\(rest\),)2.75 E F2(s)2.75 E F3(\(space\),)2.75 E
+F2(us)2.75 E F3(\(uncollapseable space\), or)2.75 E F2 -.11(rp)2.75 G(t)
+.11 E F3(\(repeat\))2.75 E F1(place)36 421.5 Q F2(abo)62.574 E -.11(ve)
+-.11 G F3(,).11 E F2(belo)2.75 E(w)-.11 E F3 2.75(,o)C(r)-2.75 E F2
+(between)2.75 E F3 2.75(.I)C(f)-2.75 E F2(between)2.75 E F3(,)A F1(staf)
+2.75 E(fs)-.198 E F3(must be of the form)2.75 E F1(num)2.75 E F2(&)A F1
+(num)A(printcmd)36 434.5 Q F2(left)46.679 E F3(,)A F2(right)2.75 E F3(,)
+A F2(center)2.75 E F3(,)A F2(print)2.75 E F3(or)2.75 E F2(postscript)
+2.75 E F1 -.407(re)36 447.5 S(hear).407 E(sal_mark)-.11 E F2(let)16.649
+E F3(,)A F2(num)2.75 E F3(,)A F2(mnum)2.75 E F3 2.75(,o)C(r)-2.75 E F2
+(")2.75 E F1(te)A(xt)-.22 E F2(")A F1(side)36 460.5 Q F2(abo)68.679 E
+-.11(ve)-.11 G F3(or)2.86 E F2(belo)2.75 E(w)-.11 E F1(size)36 473.5 Q
+F3(number from 1 to 100 \(points\))69.9 E F1(staf)36 486.5 Q(fnum)-.198
+E F3(number from 1 to 40)48.703 E F1(staf)36 499.5 Q(fs)-.198 E F3
+(number from 1 to 40, or comma-separated list of dash-separated ranges)
+63.366 E F1(stemdir)36 512.5 Q F2(up)53.4 E F3(or)2.75 E F2(do)2.75 E
+(wn)-.11 E F1(stemlen)36 525.5 Q F3 2.75(an)52.795 G(umber)-2.75 E 2.75
+(,i)-.44 G 2.75(ns)-2.75 G(tepsizes)-2.75 E F1(steps)36 538.5 Q F3 2.75
+(an)64.4 G
+(umber of stepsizes, where a stepsize is 1/2 the distance between tw)
+-2.75 E 2.75(os)-.11 G(taf)-2.75 E 2.75(fl)-.275 G(ines)-2.75 E F1
+(string)36 551.5 Q F3(in tablature chord:)60.726 E F1(pitc)2.75 E 2.75
+(ha)-.165 G(ccidental)-2.75 E F3(follo)2.75 E(wed by zero or more)-.275
+E F2(')2.75 E F3(marks)2.75 E F1(tab_string)36 564.5 Q F3
+(list of tablature strings. Each includes a)41.168 E F1(pitc)2.75 E(h)
+-.165 E F3 2.75(,o)C(ptional)-2.75 E F2(')2.75 E F3(marks, and optional)
+2.75 E F1(octave)2.75 E(.)-.165 E(ta)36 577.5 Q(g)-.11 E F3 2.75(al)
+72.452 G -.275(ow)-2.75 G(er case letter).275 E 2.75(,o)-.44 G 2.75(ra)
+-2.75 G 2.75(nu)-2.75 G(nderscore follo)-2.75 E(wed by lo)-.275 E
+(wer case letters, digits, and/or underscores)-.275 E
+(Each has 6 associated v)122.4 590.5 Q(alues:)-.275 E F2(x)2.75 E F3(,)A
+F2(y)2.75 E F3(,)A F2(n)2.75 E F3(,)A F2(s)2.75 E F3(,)A F2(e)2.75 E F3
+2.75(,a)C(nd)-2.75 E F2(w)2.75 E F3(Prede\214ned tag names are)122.4
+603.5 Q F2(_win)2.75 E F3(,)A F2(_page)2.75 E F3 2.75(,a)C(nd)-2.75 E F2
+(_cur)2.75 E F1(te)36 616.5 Q(xt)-.22 E F3(arbitrary te)70.736 E
+(xt; use)-.165 E F2(\\")2.75 E F3(to include quotes,)2.75 E F2(\\f\()
+2.75 E F1(fontfamily font)A F2(\))A F3(to change font,)2.75 E F2(\\s\()
+2.75 E F1(num)A F2(\))A F3(to change size,)2.75 E F2(\\\()122.4 629.5 Q
+F1(xx)A F2(\))A F3(to include special characters,)2.75 E F2(\\v\()2.75 E
+F1(num)A F2(\))A F3(for v)2.75 E(ertical motion,)-.165 E F2(\\:)2.75 E
+F3(to toggle piling,)2.75 E F2(\\|)2.75 E F3(or)2.75 E F2(\\^)2.75 E F3
+(for alignment)2.75 E F1(time_value)36 642.5 Q F2(1/4)38.132 E F3(,)A F2
+(1/2)2.75 E F3(,)A F2(1)2.75 E F3(,)A F2(2)2.75 E F3(,)A F2(4)2.75 E F3
+(,)A F2(8)2.75 E F3(,)A F2(16)2.75 E F3(,)A F2(32)2.75 E F3(,)A F2(64)
+2.75 E F3(,)A F2(128)2.75 E F3 2.75(,o)C(r)-2.75 E F2(256)2.75 E F3
+(with optional dots,)2.75 E F2(+)2.75 E F3(or)2.75 E F2(-)2.75 E F3 2.75
+(;o)C(r)-2.75 E F2(m)2.75 E F3(\(measure\))2.75 E F1(tieslur_style)36
+655.5 Q F2(dotted)32.621 E F3(,)A F2(dashed)2.75 E F3 2.75(,o)C 2.75(ro)
+-2.75 G(mitted)-2.75 E F1(tuplet)36 668.5 Q F3(See)61.342 E F1 -.165(ch)
+2.75 G(or).165 E(d)-.407 E(tupstyle)36 681.5 Q F2(y)52.179 E F3(\(al)
+2.75 E -.11(wa)-.11 G(ys print brack).11 E(et\),)-.11 E F2(n)2.75 E F3
+(\(no number or brack)2.75 E(et\),)-.11 E F2(num)2.75 E F3
+(\(number only\), or omitted \(def)2.75 E(ault\))-.11 E F1(value)36
+694.5 Q F3(See information about the item to the left of the = for v)
+62.574 E(alid v)-.275 E(alues)-.275 E F1(ver)36 707.5 Q(ses)-.11 E F3
+(number or comma-separated list of dash-separated ranges)59.021 E F1
+(voicenum)36 720.5 Q F2(1)44.248 E F3(,)A F2(2)2.75 E F3 2.75(,o)C(r)
+-2.75 E F2(3)2.75 E F1 56.161(voices comma-separ)36 733.5 R
+(ated list of dash-separ)-.165 E(ated r)-.165 E(ang)-.165 E
+(es of voicenum)-.11 E F3(s)A F1(withlist)36 746.5 Q F3
+(comma-separated list of the follo)53.994 E(wing:)-.275 E F2(.)2.75 E F3
+(\(stacatto\),)2.75 E F2(-)2.75 E F3(\(le)2.75 E -.055(ga)-.165 G(to\),)
+.055 E F2(^)2.75 E F3(\(accent\),)2.75 E F2(>)2.75 E F3(\(accent\), or)
+2.75 E F2(")2.75 E F1(te)A(xt)-.22 E F2(")A F1(X)36 759.5 Q F2(x)79.679
+E F3(,)A F2(w)2.75 E F3 2.75(,o)C(r)-2.75 E F2(e)2.75 E F3
+(\(x, west, or east\))5.5 E F1(Y)36 772.5 Q F2(y)80.284 E F3(,)A F2(n)
+2.75 E F3 2.75(,o)C(r)-2.75 E F2(s)2.75 E F3(\(y)5.5 E 2.75(,n)-.715 G
+(orth, or south\))-2.75 E EP
+%%Page: 3 3
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 9/Times-Roman@0 SF 2.25(-3-)262.503 44.5 S/F1 11/Times-Bold@0 SF
+-.275(Fo)209.985 71.5 S(nt/size changes in text strings).275 E/F2 11
+/Times-Roman@0 SF 1.76 -.88(To c)36 99.5 T
+(hange font inside a quoted te).88 E(xt string, use)-.165 E F1(\\f\()
+2.75 E/F3 11/Times-Italic@0 SF(fontfamily font)A F1(\))A F2(or)2.75 E F1
+(\\f\()2.75 E F3(font_abbr)A F1(\))A F2(from the table:)2.75 E F3
+182.957(font fontfamily)44.558 113.5 R F2 -.22(av)86.732 127.5 S(antg)
+-.055 E 13.75(arde bookman courier helv)-.055 F 13.75(etica ne)-.165 F
+13.75(wcentury palatino times)-.275 F .44 LW 455.397 132.25 36 132.25 DL
+(rom)36 143.5 Q/F4 11/Courier@0 SF 41.025(AR BR)50.264 F 32.048(CR HR)
+39.347 F 39.941(NR PR)48.593 F(TR)32.939 E F1(bold)36 157.5 Q F4 41.025
+(AB BB)47.195 F 32.048(CB HB)39.347 F 39.941(NB PB)48.593 F(TB)32.939 E
+F3(ital)36 171.5 Q F4 41.025(AI BI)53.311 F 32.048(CI HI)39.347 F 39.941
+(NI PI)48.593 F(TI)32.939 E/F5 11/Times-BoldItalic@0 SF(boldital)36
+185.5 Q F4 41.025(AX BX)33.753 F 32.048(CX HX)39.347 F 39.941(NX PX)
+48.593 F(TX)32.939 E F1(\\f\(pr)36 199.5 Q -.165(ev)-.198 G(ious\)).165
+E F2(or)2.75 E F1(\\f\(PV\))2.75 E F2(changes to pre)2.75 E(vious font.)
+-.275 E F1(\\s\()2.75 E F3(num)A F1(\))A F2(changes to point size)2.75 E
+F3(num)2.75 E F2 2.75(,1t)C 2.75(o1)-2.75 G(00.)-2.75 E F1(\\s\(+)36
+213.5 Q F3(num)A F1(\))A F2(increases the size by)2.75 E F3(num)2.75 E
+F2(while)2.75 E F1(\\s\(-)2.75 E F3(num)A F1(\))A F2(decreases it by)
+2.75 E F3(num)2.75 E F2(points.)2.75 E F1(\\s\(PV\))36 227.5 Q F2(or)
+2.75 E F1(\\s\(pr)2.75 E -.165(ev)-.198 G(ious\)).165 E F2(re)2.75 E
+-.165(ve)-.275 G(rts to pre).165 E(vious size.)-.275 E F1
+(Mup command line ar)212.19 255.5 Q(guments)-.11 E(-c)36 283.5 Q F3(num)
+2.75 E F2(combine)113.761 E F3(num)2.75 E F2
+(or more measures of rest into multirest)2.75 E F1(-C)36 297.5 Q F2
+(used with -E, k)132.395 E(eep comments rather than discarding them)-.11
+E F1(-d)36 311.5 Q F3(num)2.75 E F2(turn on deb)112.529 E(ugging le)-.22
+E -.165(ve)-.275 G(l).165 E F3(num)2.75 E F1(-D)36 325.5 Q F3(MA)2.75 E
+(CR)-.33 E(O)-.44 E F1(=)A F3(def)A F2(de\214ne)72.819 E F3(MA)2.75 E
+(CR)-.33 E(O)-.44 E F2(as)2.75 E F3(def)2.75 E F1(-e)36 339.5 Q F3
+(err\214le)2.75 E F2(put error output into)105.819 E F3(err\214le)2.75 E
+F1(-E)36 353.5 Q F2(just e)133 E
+(xpand macros and "include" \214les and write result to standard output)
+-.165 E F1(-f)36 367.5 Q F3(out\214le)2.75 E F2(put output into)106.424
+E F3(out\214le)2.75 E F1(-F)36 381.5 Q F2(put output into \214le, deri)
+133.616 E(ving output \214le name from input \214le name)-.275 E F1(-m)
+36 395.5 Q F3(midi\214le)2.75 E F2(generate MIDI output into)95.424 E F3
+(midi\214le)2.75 E F1(-M)36 409.5 Q F2(generate MIDI output, deri)
+129.953 E .33 -.165(ve \214)-.275 H(le name).165 E F1(-o)36 423.5 Q F3
+(pa)2.75 E -.11(ge)-.11 G(list).11 E F2(only print pages in)97.47 E F3
+(pa)2.75 E -.11(ge)-.11 G(list).11 E F2 2.75(,c)C
+(an be list of numbers, or)-2.75 E F1(odd)2.75 E F2(or)2.75 E F1 -2.53
+-.165(ev e)2.75 H(n).165 E(-p)36 437.5 Q F3(num)2.75 E F2
+(start numbering pages at)112.529 E F3(num)2.75 E F1(-r)36 451.5 Q F2
+(print share)135.453 E -.11(wa)-.275 G(re re).11 E(gistration form)-.165
+E F1(-s)36 465.5 Q F3(staf)2.75 E(\215ist)-.198 E F2
+(print only the staf)101.716 E(fs listed in)-.275 E F3(staf)2.75 E
+(\215ist)-.198 E F2 2.75(;a)C(dd)-2.75 E F1(v)2.75 E F3(N)A F2
+(to restrict to v)2.75 E(oice)-.22 E F3(N)2.75 E F1(-v)36 479.5 Q F2
+(print v)134.837 E(ersion number and e)-.165 E(xit)-.165 E F1(-x)36
+493.5 Q F3(M)2.75 E F1(,)A F3(N)A F2 -.165(ex)112.837 G(tract measures)
+.165 E F3(M)2.75 E F2(through)2.75 E F3(N)2.75 E F2 2.75(,n)C -2.475
+-.165(eg a)-2.75 H(ti).165 E .33 -.165(ve r)-.275 H(elati).165 E .33
+-.165(ve t)-.275 H 2.75(oe).165 G(nd, 0 for pickup)-2.75 E F1
+(Mupdisp commands)236.572 521.5 Q F3(num)36 549.5 Q F2 194.074
+(<Enter> go)B(to page)2.75 E F3(num)2.75 E F1(+)36 563.5 Q F2
+(or <space> or <cntl-E> or <cntl-F>)2.75 E(forw)86.923 E(ard 1/8")-.11 E
+F1(f)36 577.5 Q F2(or <Enter> or <cntl-D> or <cntl-N>)2.75 E(forw)87.088
+E(ard 1")-.11 E F1(-)36 591.5 Q F2
+(or <backspace> or <cntl-Y> or <cntl-B>)2.75 E(backw)66.32 E(ard 1/8")
+-.11 E F1(b)36 605.5 Q F2(or <cntrl-U> or <cntl-P> or <cntl-B>)2.75 E
+(backw)79.124 E(ard 1")-.11 E F1(h)36 619.5 Q F2(or)2.75 E F1(?)2.75 E
+F2(help)225.721 E F1(m)36 633.5 Q F2
+(toggle between full and partial page modes)242.837 E F1(n)36 647.5 Q F2
+(ne)245.884 E(xt page)-.165 E F1(p)36 661.5 Q F2(pre)245.884 E
+(vious page)-.275 E F1(q)36 675.5 Q F2(or)2.75 E F1(ZZ)2.75 E F2(quit)
+216.547 E F1(r)36 689.5 Q F2(repaint the screen)247.116 E EP
+%%Page: 4 4
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 9/Times-Roman@0 SF 2.25(-4-)262.503 44.5 S/F1 11/Times-Bold@0 SF
+(Mup P)244.591 70.5 Q(arameters)-.11 E .32 LW 578.6 74.5 36 74.5 DL/F2 8
+/Times-Roman@0 SF -.12(Pa)57.964 86.5 S 27.964(rameter Score).12 F(Staf)
+12 E 16(fV)-.2 G 10(oice Hd/Ft)-17.032 F -.888(Va)130.812 G(lid V).888 E
+137.96(alues Def)-.888 F(ault)-.08 E 578.6 90.5 36 90.5 DL 578.6 92.5 36
+92.5 DL/F3 8/Times-Bold@0 SF(abo)40 104.5 Q -.08(ve)-.08 G(order).08 E
+F2 27.984<8383>49.004 G F3(mussym,octa)53.036 E -.08(ve)-.2 G
+(,dyn&othertext&chord,lyrics,ending,r).08 E 97.84(eh as)-.144 F(listed)2
+E 578.6 108.5 36 108.5 DL(addtranspose)40 120.5 Q F2 27.984<8383>42.164
+G F3(up)53.036 E F2(or)2 E F3(do)2 E(wn)-.08 E F2 2(,f)C(ollo)-2 E
+(wed by)-.2 E/F4 8/Times-Italic@0 SF(interval)2 E F2(and)2 E F4(num)2 E
+F2(up perfect 1)153.232 E 578.6 124.5 36 124.5 DL F3(barstyle)40 136.5 Q
+F2 111.804<8363>60.396 G(omma-separated lists of staf)-111.804 E
+(fs or dash-separated ranges)-.2 E 578.6 140.5 36 140.5 DL F3(beamslope)
+40 152.5 Q F2 27.984<8383>51.948 G 50.308<8330>-.072 G
+(.0 to 1.0, 0.0 to 45.0)-50.308 E(1.0,20.0)221.392 E 578.6 156.5 36
+156.5 DL F3(beamstyle)40 168.5 Q F2 27.984<8383>53.732 G 50.308<8363>
+-.072 G(omma-separated list of)-50.308 E F4(time_values)2 E F2
+(that add up to a measure)2 E 578.6 172.5 36 172.5 DL F3(belo)40 184.5 Q
+-.08(wo)-.08 G(rder).08 E F2 27.984<8383>49.004 G F3(mussym,octa)53.036
+E -.08(ve)-.2 G 115.696(,dyn&othertext&chord,lyrics,pedal as).08 F
+(listed)2 E 578.6 188.5 36 188.5 DL(betweenorder)40 200.5 Q F2 27.984
+<8383>40.852 G F3 159.856(mussym,dyn&othertext&chord,lyrics as)53.036 F
+(listed)2 E 578.6 204.5 36 204.5 DL(bottommar)40 216.5 Q(gin)-.08 E F2
+111.804<8330>38.7 G(.0 to pageheight minus 0.5 inches)-111.804 E
+(0.5 inches)178.512 E 578.6 220.5 36 220.5 DL F3(brace)40 232.5 Q F2
+111.804<8363>68.844 G(omma-separated list of staf)-111.804 E
+(fs or dash-separated ranges)-.2 E 578.6 236.5 36 236.5 DL F3(brack)40
+248.5 Q(et)-.08 E F2 111.804<8363>61.812 G(omma-separated list of staf)
+-111.804 E(fs or dash-separated ranges)-.2 E 578.6 252.5 36 252.5 DL F3
+(cancelk)40 264.5 Q(ey)-.08 E F2 27.984<8383>54.7 G F3(y)53.036 E F2(or)
+2 E F3(n)2 E F2(n)270.728 E 578.6 268.5 36 268.5 DL F3(chorddist)40
+280.5 Q F2 23.052 27.984<83832030>55.5 H(to 50 \(stepsizes\))-25.984 E
+(3)231.848 E 578.6 284.5 36 284.5 DL F3(clef)40 296.5 Q F2 312.892
+27.984<83832074>75.956 H(reble)-27.984 E F3(tr)242.552 296.5 Q(eble,tr)
+-.144 E(eble8)-.144 E F2(,)A F3(8tr)A(eble)-.144 E F2(,)A F3(fr)A
+(enchviolin)-.144 E F2(,)A F3(soprano)A F2(,)A F3(mezzosoprano)A F2(,)A
+F3(alto)A F2(,)A F3(tenor)A F2(,)A F3(baritone)A F2(,)A F3(bass)A 578.6
+300.5 36 300.5 DL(def)40 312.5 Q(oct)-.2 E F2 27.984<8383>67.268 G
+50.308<8330>-.072 G(to 9)-48.308 E(based on clef)271.616 E 578.6 316.5
+36 316.5 DL F3(dist)40 328.5 Q F2 23.052 27.984<83832030>75.5 H
+(to 50 \(stepsizes\))-25.984 E(2)231.848 E 578.6 332.5 36 332.5 DL F3
+(di)40 344.5 Q(vision)-.08 E F2 111.804<834d>61.348 G(IDI di)-111.804 E
+(vision, 1 to 1536 \(ticks per quarter note\))-.2 E(192)134.728 E 578.6
+348.5 36 348.5 DL F3(dyndist)40 360.5 Q F2 23.052 27.984<83832030>62.604
+H(to 50 \(stepsizes\))-25.984 E(2)231.848 E 578.6 364.5 36 364.5 DL F3
+(endingstyle)40 376.5 Q F2<83>49.276 E F3(top)111.804 E F2(,)A F3(barr)2
+E(ed)-.144 E F2 2(,o)C(r)-2 E F3(gr)2 E(ouped)-.144 E F2(top)210.352 E
+578.6 380.5 36 380.5 DL F3(\214rstpage)40 392.5 Q F2 111.804<8331>58.172
+G(to 5000)-109.804 E(1)259.616 E 578.6 396.5 36 396.5 DL F3 -.2(fo)40
+408.5 S(nt).2 E F2 .316 27.984<83832083>74.372 H F3 -.144(ro)-8.048 G(m)
+.144 E F2(,)A F3(bold)2 E F2(,)A F3(ital)2 E F2 2(,o)C(r)-2 E F3
+(boldital)2 E F2(rom)202.64 E 578.6 412.5 36 412.5 DL F3 -.2(fo)40 424.5
+S(ntfamily).2 E F2 .316 27.984<83832083>52.596 H(times)281.792 E F3
+-1.68 -.2(av a)242.552 424.5 T(ntgarde).2 E F2(,)A F3(bookman)2 E F2(,)A
+F3(courier)2 E F2(,)A F3(helv)2 E(etica)-.08 E F2(,)A F3(newcentury)2 E
+F2(,)A F3(palatino)2 E F2 2(,o)C(r)-2 E F3(times)2 E 578.6 428.5 36
+428.5 DL(gridfr)40 440.5 Q(et)-.144 E F2 23.052 27.984<83832032>61.436 H
+(to 99)-25.984 E(4)267.616 E 578.6 444.5 36 444.5 DL F3(gridsatend)40
+456.5 Q F2<83>51.5 E F3(y)111.804 E F2(or)2 E F3(n)2 E F2(n)270.728 E
+578.6 460.5 36 460.5 DL F3(gridswher)40 472.5 Q(eused)-.144 E F2 27.984
+<8383>34.316 G F3(y)53.036 E F2(or)2 E F3(n)2 E F2(n)270.728 E 578.6
+476.5 36 476.5 DL F3(gridscale)40 488.5 Q F2 23.052 27.984<83832030>
+57.284 H(.1 to 10.0)-27.984 E(1.0)255.616 E 578.6 492.5 36 492.5 DL F3
+-.08(ke)40 504.5 S(y).08 E F2 312.892 27.984<83832063>76.028 H(major)
+-25.984 E F4(pitc)242.552 504.5 Q(h)-.12 E F3(major)2 E F2(or)2 E F3
+(minor)2 E F2 2(;o)C 2(r0t)-2 G 2(o7)-2 G F3(#)A F2(or)2 E F3(&)2 E F2
+(and optional)2 E F3(major)2 E F2(or)2 E F3(minor)2 E 578.6 508.5 36
+508.5 DL(label2)40 520.5 Q F2 27.984<8383>67.5 G F3(")53.036 E F4(te)A
+(xt)-.16 E F3(")A F2("")269.568 E 578.6 524.5 36 524.5 DL F3(label)40
+536.5 Q F2 27.984<8383>71.5 G F3(")53.036 E F4(te)A(xt)-.16 E F3(")A F2
+24("")269.568 G 578.6 540.5 36 540.5 DL F3(leftmar)40 552.5 Q(gin)-.08 E
+F2 111.804<8330>52.036 G(.0 to page)-111.804 E(width minus 0.5 inches)
+-.2 E(0.5 inches)180.488 E 578.6 556.5 36 556.5 DL F3(lyricsalign)40
+568.5 Q F2 23.052 27.984<83832030>52.388 H(.0 to 1.0)-27.984 E(0.25)
+259.616 E 578.6 572.5 36 572.5 DL F3(lyricsf)40 584.5 Q(ont)-.2 E F2
+27.984<8383>55.708 G F3 -.144(ro)53.036 G(m).144 E F2(,)A F3(bold)2 E F2
+(,)A F3(ital)2 E F2 2(,o)C(r)-2 E F3(boldital)2 E F2(rom)202.64 E 578.6
+588.5 36 588.5 DL F3(lyricsf)40 600.5 Q(ontfamily)-.2 E F2 312.892
+27.984<83832074>33.932 H(imes)-27.984 E F3 -1.68 -.2(av a)242.552 600.5
+T(ntgarde).2 E F2(,)A F3(bookman)2 E F2(,)A F3(courier)2 E F2(,)A F3
+(helv)2 E(etica)-.08 E F2(,)A F3(newcentury)2 E F2(,)A F3(palatino)2 E
+F2 2(,o)C(r)-2 E F3(times)2 E 578.6 604.5 36 604.5 DL(lyricssize)40
+616.5 Q F2 23.052 27.984<83832031>56.844 H(to 100 \(points\))-25.984 E
+(12)236.728 E 578.6 620.5 36 620.5 DL F3(measnum)40 632.5 Q F2<83>55.06
+E F3(y)111.804 E F2(or)2 E F3(n)2 E F2(n)270.728 E 578.6 636.5 36 636.5
+DL F3(measnumf)40 648.5 Q(ont)-.2 E F2<83>41.484 E F3 -.144(ro)111.804 G
+(m).144 E F2(,)A F3(bold)2 E F2(,)A F3(ital)2 E F2 2(,o)C(r)-2 E F3
+(boldital)2 E F2(rom)202.64 E 578.6 652.5 36 652.5 DL F3(measnumf)40
+664.5 Q(ontfamily)-.2 E F2 401.644<8374>19.708 G(imes)-401.644 E F3
+-1.68 -.2(av a)242.552 664.5 T(ntgarde).2 E F2(,)A F3(bookman)2 E F2(,)A
+F3(courier)2 E F2(,)A F3(helv)2 E(etica)-.08 E F2(,)A F3(newcentury)2 E
+F2(,)A F3(palatino)2 E F2 2(,o)C(r)-2 E F3(times)2 E 578.6 668.5 36
+668.5 DL(measnumsize)40 680.5 Q F2 111.804<8331>42.62 G
+(to 100 \(points\))-109.804 E(11)236.728 E 578.6 684.5 36 684.5 DL 578.6
+74.5 578.6 684.5 DL 36 74.5 36 684.5 DL 526.392 74.5 526.392 684.5 DL
+236.552 74.5 236.552 684.5 DL 205.88 74.5 205.88 684.5 DL 175.808 74.5
+175.808 684.5 DL 144.456 74.5 144.456 684.5 DL 114.24 74.5 114.24 684.5
+DL EP
+%%Page: 5 5
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 9/Times-Roman@0 SF 2.25(-5-)262.503 47 S .32 LW 545.656 65 36 65 DL
+/F1 8/Times-Roman@0 SF -.12(Pa)48.472 77 S 20.164(rameter Score).12 F
+(Staf)14.816 E 18.888(fV)-.2 G 13.228(oice Hd/Ft)-19.92 F -.888(Va)
+119.356 G(lid V).888 E 124.936(alues Def)-.888 F(ault)-.08 E 545.656 81
+36 81 DL 545.656 83 36 83 DL/F2 8/Times-Bold@0 SF(noteheads)40 95 Q F1
+-8.6 30.8<8383832073>36.432 H(tring containing 1 or 7 headshape names)
+-30.8 E("norm")131.576 E 545.656 99 36 99 DL F2(numbermr)40 111 Q(pt)
+-.08 E F1 30.8<8383>26.296 G F2(y)57.8 E F1(or)2 E F2(n)2 E F1(y)244.888
+E 545.656 115 36 115 DL F2(ontheline)40 127 Q F1 30.8<838383>39.096 G F2
+(y)24.2 E F1(or)2 E F2(n)2 E F1(y)244.888 E 545.656 131 36 131 DL F2
+(pack)40 143 Q(exp)-.08 E F1 122.2<8330>42.288 G(.0 to 1.0)-122.2 E(0.8)
+233.776 E 545.656 147 36 147 DL F2(packfact)40 159 Q F1 122.2<8330>
+41.328 G(.0 to 10.0)-122.2 E(1.0)229.776 E 545.656 163 36 163 DL F2(pad)
+40 175 Q F1 -8.6 30.8<838383202d>57.76 H(5.0 to 50.0)-30.8 E(0.0)227.112
+E 545.656 179 36 179 DL F2(pageheight)40 191 Q F1 122.2<8332>33.32 G
+(.0 to 24.0 inches or 5.0 to 61.0 cm)-122.2 E(11.0 inches)150.672 E
+545.656 195 36 195 DL F2(pagesize)40 207 Q F1<83>42.216 E F2(letter)
+122.2 E 2(,l)-.736 G(egal, \215sa, hal\215etter)-2 E 2(,a)-.736 G
+(4, a5, a6)-2 E F1(then optional)2 E F2(portrait)2 E F1(or)2 E F2
+(landscape)2 E F1(letter)23.048 E 545.656 211 36 211 DL F2(pagewidth)40
+223 Q F1 122.2<8332>35.096 G(.0 to 24.0 inches or 5.0 to 61.0 cm)-122.2
+E(8.5 inches)150.672 E 545.656 227 36 227 DL F2(panelsper)40 239 Q(page)
+-.08 E F1 122.2<8331>21.4 G(or 2)-120.2 E(1)245.336 E 545.656 243 36 243
+DL F2(pedstyle)40 255 Q F1 30.8<8383>42.656 G F2(line)57.8 E F1(,)A F2
+(pedstar)2 E F1 2(,o)C(r)-2 E F2(alt pedstar)2 E F1(line)172.448 E
+545.656 259 36 259 DL F2(printmultnum)40 271 Q F1 30.8<8383>21.76 G F2
+(y)57.8 E F1(or)2 E F2(n)2 E F1(y)244.888 E 545.656 275 36 275 DL F2
+-.144(re)40 287 S(hstyle).144 E F1 30.8<8383>43.696 G F2(boxed)57.8 E F1
+(,)A F2(cir)2 E(cled)-.144 E F1 2(,o)C(r)-2 E F2(plain)2 E F1(box)
+186.584 E(ed)-.12 E 545.656 291 36 291 DL F2 -.144(re)40 303 S(lease)
+.144 E F1 -8.6 30.8<8383832030>47.256 H(to 500 \(milliseconds\))-28.8 E
+(20)190 E 545.656 307 36 307 DL F2 -.144(re)40 319 S(stcombine).144 E F1
+122.2<8332>29.032 G(to 1000)-120.2 E(not set)233.776 E 545.656 323 36
+323 DL F2 -.144(re)40 335 S(stsymmult).144 E F1 30.8<8383>28.144 G F2(y)
+57.8 E F1(or)2 E F2(n)2 E F1(n)244.888 E 545.656 339 36 339 DL F2
+(rightmar)40 351 Q(gin)-.08 E F1 122.2<8330>28.96 G(.0 to page)-122.2 E
+(width minus 0.5 inches)-.2 E(0.5 inches)154.648 E 545.656 355 36 355 DL
+F2(scale)40 367 Q F1 122.2<8330>54.216 G(.1 to 10.0)-122.2 E(1.0)229.776
+E 545.656 371 36 371 DL F2(scor)40 383 Q(epad)-.144 E F1<83>40.136 E/F3
+8/Times-Italic@0 SF(num)122.2 E F1 2(,o)C(r)-2 E F3(num)2 E F2(,)A F3
+(num)A F1 2(,n)C -1.8 -.12(eg a)-2 H(ti).12 E .24 -.12(ve p)-.2 H
+(ageheight to pageheight \(stepsizes\)).12 E(2,2)59.184 E 545.656 387 36
+387 DL F2(scor)40 399 Q(esep)-.144 E F1<83>41.92 E F3(num)122.2 E F1 2
+(,o)C(r)-2 E F3(num)2 E F2(,)A F3(num)A F1 2(,6t)C 2(op)-2 G
+(ageheight \(stepsizes\))-2 E(12,20)118.912 E 545.656 403 36 403 DL F2
+(size)40 415 Q F1 .8 30.8<83832083>58.216 H 2(1t)-9.4 G 2(o1)-2 G
+235.776(00 12)-2 F 545.656 419 36 419 DL F2(staf\215ines)40 431 Q F1
+30.8<8383>40.432 G F2(1)57.8 E F1(,)A F2(1n)2 E F1(,)A F2(5)2 E F1(,)A
+F2(5n)2 E F1(,)A F2 2(5d)2 G(rum)-2 E F1(,)A F2 2(1d)2 G(rum)-2 E F1 2
+(,o)C(r)-2 E F2(tab \()2 E F3(tab_strings)A F2(\))A F1(5)101.768 E
+545.656 435 36 435 DL F2(staffpad)40 447 Q F1 25 30.8<8383206e>42.656 H
+-1.8 -.12(eg a)-30.8 H(ti).12 E .24 -.12(ve p)-.2 H
+(ageheight to pageheight \(stepsizes\)).12 E(0)119.176 E 545.656 451 36
+451 DL F2(staffs)40 463 Q F1 122.2<8331>52.44 G(to 40)-120.2 E(1)241.776
+E 545.656 467 36 467 DL F2(staffscale)40 479 Q F1 25 30.8<83832030>
+39.112 H(.1 to 10.0)-30.8 E(1.0)229.776 E 545.656 483 36 483 DL F2
+(staffsep)40 495 Q F1 25 30.8<83832036>44.44 H
+(to pageheight \(stepsizes\))-28.8 E(10)178.904 E 545.656 499 36 499 DL
+F2(stemlen)40 511 Q F1 -8.6 30.8<8383832030>44.44 H
+(.0 to 100.0 \(stepsizes\))-30.8 E(7.0)190.008 E 545.656 515 36 515 DL
+F2(stemshorten)40 527 Q F1 -8.6 30.8<8383832030>28.888 H
+(.0 to 2.0 \(stepsizes\))-30.8 E(1.0)198.008 E 545.656 531 36 531 DL F2
+(swingunit)40 543 Q F1 -8.6 30.8<8383832074>37.312 H(ime v)-30.8 E
+(alue or nothing)-.2 E(nothing)195.536 E 545.656 547 36 547 DL F2
+(sylposition)40 559 Q F1 25 30.8<8383202d>34.2 H(100 to 100 \(points\))
+-30.8 E(-5)200.224 E 545.656 563 36 563 DL F2(tabwhitebox)40 575 Q F1
+30.8<838383>28.432 G F2(y)24.2 E F1(or)2 E F2(n)2 E F1(n)244.888 E
+545.656 579 36 579 DL F2(time)40 591 Q F1<83>55.552 E F2(common)122.2 E
+F1(,)A F2(cut)2 E F1(or)2 E F3(N)2 E F2(/)A F3(D)A F1(where)2 E F3(N)2 E
+F1(is 1 to 99 and)2 E F3(D)2 E F1(is)2 E F2(1)2 E F1(,)A F2(2)2 E F1(,)A
+F2(4)2 E F1(,)A F2(8)2 E F1(,)A F2(16)2 E F1(,)A F2(32)2 E F1 2(,o)C(r)
+-2 E F2(64)2 E F1(4/4)32.24 E 545.656 595 36 595 DL F2(timeunit)40 607 Q
+F1 30.8<838383>41.768 G F3(time_value)24.2 E F1(\(can include dots\))2 E
+F3(D)169.576 E F1(of time sig)2 E 545.656 611 36 611 DL F2(topmar)40 623
+Q(gin)-.08 E F1 122.2<8330>34.736 G(.0 to pageheight minus 0.5 inches)
+-122.2 E(0.5 inches)152.672 E 545.656 627 36 627 DL F2(transpose)40 639
+Q F1 30.8<8383>37.768 G F2(up)57.8 E F1(or)2 E F2(do)2 E(wn)-.08 E F1 2
+(,f)C(ollo)-2 E(wed by)-.2 E F3(interval)2 E F1(and)2 E F3(num)2 E F1
+(up perfect 1)127.392 E 545.656 643 36 643 DL F2(units)40 655 Q F1<83>
+53.76 E F2(inches)122.2 E F1(or)2 E F2(cm)2 E F1(inches)221.784 E
+545.656 659 36 659 DL F2(visible)40 671 Q F1 30.8<838383>48.872 G F2(y)
+24.2 E F1(,)A F2(n)2 E F1 2(,o)C(r)-2 E F2(wher)2 E(eused)-.144 E F1(y)
+202.592 E 545.656 675 36 675 DL F2(vcombine)40 687 Q F1 25 30.8
+<8383206c>37.768 H(ist of staf)-30.8 E(fs, plus optional)-.2 E F2(noo)2
+E -.08(ve)-.08 G(rlap).08 E F1(,)A F2(shar)2 E(eone)-.144 E F1 2(,o)C(r)
+-2 E F2 -.08(ove)2 G(rlap).08 E F1 2(,o)C 2(rn)-2 G 32.888
+(othing nothing)-2 F 545.656 691 36 691 DL F2(vscheme)40 703 Q F1 30.8
+<8383>41.776 G F2(1)57.8 E F1(,)A F2(2o)2 E F1(,)A F2(2f)2 E F1(,)A F2
+(3o)2 E F1 2(,o)C(r)-2 E F2(3f)2 E F1(1)206.008 E 545.656 707 36 707 DL
+F2(war)40 719 Q(n)-.12 E F1<83>53 E F2(y)122.2 E F1(or)2 E F2(n)2 E F1
+(y)244.888 E 545.656 723 36 723 DL 545.656 65 545.656 723 DL 36 65 36
+723 DL 493.656 65 493.656 723 DL 229.656 65 229.656 723 DL 196.056 65
+196.056 723 DL 162.456 65 162.456 723 DL 128.856 65 128.856 723 DL
+95.256 65 95.256 723 DL EP
+%%Page: 6 6
+%%BeginPageSetup
+BP
+%%EndPageSetup
+/F0 9/Times-Roman@0 SF 2.25(-6-)262.503 47 S/F1 8/Times-Roman@0 SF
+(Music symbols can be used in te)36 61 Q(xt strings by using)-.12 E/F2 8
+/Times-Bold@0 SF(\\\()2 E/F3 8/Times-Italic@0 SF(symbol_name)A F2(\))A
+F1 2(.P)C(re\214x with)-2 E F2(sm)2 E F1(for smaller v)2 E(ersion.)-.12
+E 70 157 443 443 -589 589 14.4 663 PBEGIN
+%%BeginDocument: muschar.ps
+%%BoundingBox: 70 157 513 746
+/boxheight 62 def
+/boxwidth 40 def
+/nameheight 10 def
+/tmpstring 50 string def
+/flagsep 1.6 300 mul def
+
+/Times-Roman findfont nameheight 2 sub scalefont setfont
+/prm {
+       /yoff exch def
+       /xoff exch def
+       /sym exch def
+       /name sym tmpstring cvs def
+       /realboxheight boxheight extra add def
+
+       save
+       xoff yoff translate
+
+       % draw box
+       newpath
+       0 0 moveto
+       boxwidth 0 lineto
+       boxwidth realboxheight lineto
+       0 realboxheight lineto
+       closepath
+       stroke
+
+       % print name of music character
+       gsave
+       nameheight 4 sub
+       realboxheight name stringwidth pop sub 2 div 4 add moveto
+       55 rotate
+       0 0.25 0.75 setrgbcolor
+       name show
+       grestore
+       % display the music character
+       boxwidth 2 div nameheight add
+       realboxheight nameheight sub 2 div
+       1.0 sym cvx exec
+       restore
+} def
+
+/offset 72 def
+/col 0 def
+/row 11 def
+/extra 0 def
+/extraoffset 0 def
+
+% go to next display slot on the page and show one music character
+/showone {
+       col boxwidth mul offset add row boxheight mul
+               extra sub extraoffset sub prm
+       /col col 1 add def
+       % go to next column when current one is full
+       col 11 ge { /col 0 def /row row 1 sub def } if
+       % one row has to be extra tall
+       row 5 eq { /extra 28 def } if
+       row 4 eq { /extraoffset 28 def /extra 0 def } if
+} def
+
+/gclef  showone
+/fclef  showone
+/cclef  showone
+/dblwhole  showone
+/1n  showone
+/2n  showone
+/4n  showone
+/upflag  showone
+/dnflag  showone
+/qwhrest  showone
+/dwhrest  showone
+/1rest  showone
+/2rest  showone
+/4rest  showone
+/8rest  showone
+/16rest  showone
+/32rest  showone
+/64rest  showone
+/128rest  showone
+/256rest  showone
+/ll1rest  showone
+/ll2rest  showone
+/dot  showone
+/nat  showone
+/sharp  showone
+/flat  showone
+/dblsharp  showone
+/dblflat  showone
+/xnote  showone
+/dwhdiamond  showone
+/diamond  showone
+/filldiamond  showone
+/up2n  showone
+/dn2n  showone
+/up4n  showone
+/dn4n  showone
+/com  showone
+/cut  showone
+/begped  showone
+/pedal  showone
+/endped  showone
+/dnbow  showone
+/upbow  showone
+/wedge  showone
+/uwedge  showone
+/ferm  showone
+/uferm  showone
+/sign  showone
+/coda  showone
+/mor  showone
+/invmor  showone
+/turn  showone
+/invturn  showone
+/acc_gt  showone
+/acc_hat  showone
+/acc_uhat  showone
+/tr  showone
+/leg  showone
+/rr  showone
+/dim  showone
+/halfdim  showone
+/triangle  showone
+/measrpt  showone
+/copyright  showone
+/up8n  showone
+/dn8n  showone
+/up16n  showone
+/dn16n  showone
+/up32n  showone
+/dn32n  showone
+/up64n  showone
+/dn64n  showone
+/up128n  showone
+/dn128n  showone
+/up256n  showone
+/dn256n  showone
+/dwhrighttriangle  showone
+/righttriangle  showone
+/fillrighttriangle  showone
+/udwhrighttriangle  showone
+/urighttriangle  showone
+/ufillrighttriangle  showone
+/dwhrectangle  showone
+/rectangle  showone
+/fillrectangle  showone
+/dwhisostriangle  showone
+/isostriangle  showone
+/fillisostriangle  showone
+/dwhpiewedge  showone
+/piewedge  showone
+/fillpiewedge  showone
+/dwhsemicircle  showone
+/semicircle  showone
+/fillsemicircle  showone
+/dwhslashhead  showone
+/slashhead  showone
+/fillslashhead  showone
+/blankhead  showone
+showpage
+%%EndDocument
+end PEND 9 90 115 115 -669 669 471.8 734 PBEGIN
+%%BeginDocument: extlist.ps
+%%BoundingBox: 9 90 124 759
+makeExtEncoding
+/Ext-Times-Roman /Times-Roman makeExtendedFont
+/do1char {
+       15 y moveto
+       /Ext-Times-Roman findfont 7 scalefont setfont
+       show
+       /Times-Roman findfont 7 scalefont setfont
+       50 y moveto
+       show
+       110 y moveto
+       show
+       /y y 7 sub def
+} def
+save
+1.000000 1.000000 scale
+newpath
+10 91 moveto
+10 758 lineto
+123 758 lineto
+123 91 lineto
+closepath
+stroke
+/y 748 def
+( ) (exclamdown) ( ) do1char
+( ) (questiondown) (.) do1char
+( ) (sterling) (") do1char
+( ) (yen) (#) do1char
+(\301\301) (quotedblleft) ($) do1char
+(\302\302) (quotedblright) (-) do1char
+(<<) (guillemotleft) (%) do1char
+(>>) (guillemotright) (&) do1char
+( ) (guilsinglleft) (') do1char
+( ) (guilsinglright) (\() do1char
+( ) (dagger) (\)) do1char
+( ) (daggerdbl) (*) do1char
+( ) (grave) (/) do1char
+( ) (acute) (0) do1char
+( ) (macron) (1) do1char
+( ) (breve) (2) do1char
+( ) (dotaccent) (3) do1char
+( ) (dieresis) (4) do1char
+( ) (ring) (5) do1char
+( ) (cedilla) (6) do1char
+( ) (hungarumlaut) (7) do1char
+( ) (ogonek) (8) do1char
+( ) (caron) (9) do1char
+( ) (emdash) (:) do1char
+(  ) (space) (\177) do1char
+( ) (AE) (;) do1char
+( ) (ae) (<) do1char
+( ) (ordfeminine) (=) do1char
+( ) (ordmasculine) (>) do1char
+(L/) (Lslash) (?) do1char
+(l/) (lslash) (@) do1char
+(O/) (Oslash) (A) do1char
+(o/) (oslash) (B) do1char
+( ) (OE) (C) do1char
+( ) (oe) (D) do1char
+( ) (dotlessi) (E) do1char
+(ss) (germandbls) (F) do1char
+(A') (Aacute) (G) do1char
+(a') (aacute) (H) do1char
+(A^) (Acircumflex) (I) do1char
+(a^) (acircumflex) (J) do1char
+(A:) (Adieresis) (K) do1char
+(a:) (adieresis) (L) do1char
+(A`) (Agrave) (M) do1char
+(a`) (agrave) (N) do1char
+(Ao) (Aring) (O) do1char
+(ao) (oring) (P) do1char
+(A~) (Atilde) (Q) do1char
+(a~) (atilde) (R) do1char
+(C,) (Ccedilla) (S) do1char
+(c,) (ccedilla) (T) do1char
+(E') (Eacute) (U) do1char
+(e') (eacute) (V) do1char
+(E^) (Ecircumflex) (W) do1char
+(e^) (ecircumflex) (X) do1char
+(E:) (Edieresis) (Y) do1char
+(e:) (edieresis) (Z) do1char
+(E`) (Egrave) ([) do1char
+(e`) (egrave) (\\) do1char
+(I') (Iacute) (]) do1char
+(i') (iacute) (^) do1char
+(I^) (Icircumflex) (_) do1char
+(i^) (icircumflex) (`) do1char
+(I:) (Idieresis) (a) do1char
+(i:) (idieresis) (b) do1char
+(I`) (Igrave) (c) do1char
+(i`) (igrave) (d) do1char
+(N~) (Ntilde) (e) do1char
+(n~) (ntilde) (f) do1char
+(O') (Oacute) (g) do1char
+(o') (oacute) (h) do1char
+(O^) (Ocircumflex) (i) do1char
+(o^) (ocircumflex) (j) do1char
+(O:) (Odieresis) (k) do1char
+(o:) (odieresis) (l) do1char
+(O`) (Ograve) (m) do1char
+(o`) (ograve) (n) do1char
+(O~) (Otilde) (o) do1char
+(o~) (otilde) (p) do1char
+(Sv) (Scaron) (q) do1char
+(sv) (scaron) (r) do1char
+(U') (Uacute) (s) do1char
+(u') (uacute) (t) do1char
+(U^) (Ucircumflex) (u) do1char
+(u^) (ucircumflex) (v) do1char
+(U:) (Udieresis) (w) do1char
+(u:) (udieresis) (x) do1char
+(U`) (Ugrave) (y) do1char
+(u`) (ugrave) (z) do1char
+(Y:) (Ydieresis) ({) do1char
+(y:) (ydieresis) (|) do1char
+(Zv) (Zcaron) (}) do1char
+(zv) (zcaron) (~) do1char
+( ) (bullet) (+) do1char
+showpage
+restore
+%%Pages: 1
+%%EndDocument
+end PEND/F4 9/NewCenturySchlbk-BoldItalic@0 SF -2.502(Ar kkr)266.832
+688.5 R 2.583(aE)-.099 G(nter)-2.583 E(pr)-.153 E(ises)-.126 E/F5 9
+/NewCenturySchlbk-Roman@0 SF -1.125(P.)285.201 701.5 S .666 -.333(O. B)
+1.125 H(ox 315).333 E -.675(Wa)249.885 714.5 S(rrenville).675 E 2.502
+(,I)-.162 G 2.502(L6)-2.502 G 10.008(0555 USA)-2.502 F(http://www)
+263.785 727.5 Q(.arkkra.com)-1.125 E(support@arkkra.com)268.249 740.5 Q
+EP
+%%Trailer
+end
+%%EOF
diff --git a/mup/docs/overview.txt b/mup/docs/overview.txt
new file mode 100644 (file)
index 0000000..e05762e
--- /dev/null
@@ -0,0 +1,143 @@
+
+                               MUP Overview
+
+       1.  OVERVIEW OF THE MUP MUSIC PUBLICATION PROGRAM
+
+       Mup is a shareware program for printing music. It takes an
+       input file containing ordinary (ASCII) text describing
+       music, and produces PostScript output for printing the
+       musical score described by the input.  Arkkra Enterprises
+       was established to make Mup readily available at low cost to
+       anyone who would like to use Mup.
+
+       A Mup input file can contains several kinds of sections or
+       contexts.  The description of musical notes is given in the
+       "music" context.  There are contexts for defining page
+       headers and footers.  There are also several contexts used
+       for setting various parameters.  For example, there is a
+       "score" context in which global aspects are listed, such as
+       the number of staffs, the time signature, page margins, etc.
+       It is also possible to set parameters for individual staffs
+       and even individual voices. (Each staff can have up to three
+       independent voices.)  Any parameter that can be set for an
+       individual voice can also be set for a staff, and any
+       parameter that can be set for a staff can be set for the
+       score as a whole. The actual value used for a given
+       parameter is obtained by searching from the most specific
+       (i.e., voice), to the most general (i.e., score) until a
+       value is found. All values are given a default at the score
+       level, so that everything will always resolve to some value.
+       Parameters include items such as:
+
+          - Number of staffs
+
+          - Number of voices per staff
+
+          - Time signature
+
+          - Key signature
+
+          - Clef
+
+          - Transposition amount
+
+          - Whether to use beams or flags on notes of 8th note
+            duration or shorter
+
+          - Margins
+
+          - Which staffs to group with braces or brackets, and what
+            labels to use
+
+          - How tightly to pack output together, both horizontally
+            and vertically.
+
+          - Whether to print measure numbers
+
+       Mup can handle up to 40 parallel staffs. Each staff can have
+       a different key signature, clef, and transposition value.
+       Staffs can be 5-line, 1-line, or tablature (1 to 9 lines).
+       It is possible to print a subset of staffs or voices.
+       Guitar grids are supported.
+
+       Music data is organized into measures. Each measure consists
+       of data for one or more voices followed by a bar line.  Data
+       for each voice consists of one or more chords. Each chord
+       consists of a time value and one or more notes, and possibly
+       additional items associated with the chord. To minimize
+       input, an omitted time value defaults to being the same as
+       the previous time value, and if the notes are omitted, the
+       notes of the previous chord are used.  There are also two
+       special kinds of "notes": rests and space.  Time values from
+       double whole through 256th are supported, as well as
+       tuplets, and any number of dots.  Notes are specified by a
+       letter 'a' to 'g', which may be followed by an accidental
+       (#, &, x, &&, or n for sharp, flat, double sharp, double
+       flat, and natural respectively), and an optional octave. The
+       octave can be an absolute number 0 to 9 or one or more + or
+       - signs to indicate one or more octaves above or below the
+       default octave.  It is also possible to specify that octave
+       marks are to be printed.
+
+       Individual notes or entire chords can be tied or slurred to
+       notes in the following chord.  Slides, bends, and phrase
+       marks can also be specified.  Mup takes care of all details
+       of drawing appropriate curves and splitting the curves
+       across scores or pages if necessary.
+
+       Grace notes can be specified before any chord. It is also
+       possible to specify that notes are to be printed in "cue"
+       (small) size rather than regular size, or that "X" or
+       diamond shaped notes are to be used.  Shaped note used in
+       "Sacred Harp" music are also supported.
+
+       Each measure ends with a bar line. There are several types
+       of bars: an ordinary bar, a double bar, a heavy bar to end
+       the song, and bars with repeat signs.  There is also an
+       "invisible bar" which allows for organizing the input into
+       bars without having the bar lines printed on the output.
+
+       First and subsequent endings can be specified at bar lines.
+       Rehearsal marks can be requested at any bar line.
+
+       Macros can be defined to minimize input or improve
+       readability.  There is a generalized  "if" clause that lets
+       you produce different outputs based on macro values.  It is
+       also possible to "include" one file in another.
+
+       Lyrics can be specified for zero or more verses, above,
+       below or between staffs. You can control the font and size
+       used for the lyrics.
+
+       Music symbols or words can be placed relative to staffs and
+       notes.  This may include musical marks such as fermatas and
+       accents, as well as words to indicate tempo or dynamics,
+       etc.
+
+       Since both the input and output of Mup are ASCII text files,
+       it is easy to write programs to do various transformations.
+       For example, a program could be written to move voices from
+       one staff to another, or any sort of PostScript filter
+       program could be used on the output.
+
+       Mup will optionally provide output in standard Musical
+       Instrument Digital Interface (MIDI) format, for performance
+       rather than PostScript output for printing.
+
+       While Mup itself bucks the trend of graphical, mouse-driven
+       input, it has proven to be a very useful and powerful method
+       of capturing the complexities of musical notation, and there
+       is a companion program, called Mupmate, that provides a
+       graphical interface on top of Mup for those who are more
+       comfortable with that kind of interface. The use of ordinary
+       text input and PostScript output make it largely device
+       independent. Mup was designed and written by people who are
+       both musicians and computer programmers.  The result is a
+       program that provides the capability to produce full-
+       featured, very high quality musical scores with a minimum of
+       effort. It is available ready-to-run for selected computer
+       operating systems, and source code is also available so that
+       it can be run on most platforms that have a C compiler.  You
+       can get a copy of Mup to try out with no obligation, and if
+       you like it, the registration fee is far lower than the
+       price of most music publication software.
diff --git a/mup/docs/register.txt b/mup/docs/register.txt
new file mode 100644 (file)
index 0000000..a7773aa
--- /dev/null
@@ -0,0 +1,28 @@
+Mup is SHAREWARE.  You can try out a copy for free, but if you decide
+to keep and use it, you must register by filling out the form below
+and sending the form and cash, check, or money order to:
+                Arkkra Enterprises
+                P. O. Box 315
+                Warrenville, IL  60555    USA
+
+Name______________________________________________________________
+
+Address___________________________________________________________
+
+City_____________________________ State/Province__________________
+
+Zip code/Postal code_____________________ Country_________________
+
+Email address (please print clearly)______________________________
+
+How did you find out about Mup?___________________________________
+
+__________________________________________________________________
+
+___Linux  ___ Windows/MS-DOS  ___Mac  ___Other____________________
+
+Would you like to join the Mup users mailing list? ___ Yes  ___ No
+
+___ Mup Version 5.3 Registrations.........................$29 each
+                       (Illinois residents, add $2.18 sales tax)
+(For credit card payment, see http://www.arkkra.com/doc/credtcrd.html)
diff --git a/mup/docs/sample.mup b/mup/docs/sample.mup
new file mode 100644 (file)
index 0000000..e568452
--- /dev/null
@@ -0,0 +1,576 @@
+
+
+//**********************************************************************
+// NOTE:
+//
+// This is a sample Mup input file. This file is intended to demonstrate
+// lots of the features of Mup, including advanced features.
+// In most cases, you'll probably only need to use a few basic features,
+// so your input file will usually be a lot simpler.
+//
+//**********************************************************************
+
+
+// header to go on first page
+header
+       title (18) "Sample Song to Show What Mup Can Do"
+       title palatino ital (12) "This is a subtitle"
+       title "Text: Ann Onymous"  "Tune: Arthur Unknown"
+       title ""  "(1995)"
+
+// header for subsequent pages
+header2
+       title "Sample Songs" "This is the title" "page \% of \#"
+
+// footer for first page
+footer
+       // use a printing command other than "title" to show how others work
+       center nl "This is a sample of a Mup footer"
+       // leave a blank line
+       title (12) " "
+
+       title (11) "Published by Arkkra Enterprises" \
+               "P. O. Box 315 Warrenville, IL 60555" \
+               "http://www.arkkra.com"
+
+// footer for subsequent pages
+footer2
+       print nl "This is a sample remark at the bottom of the page"
+
+// top/top2/bottom/bottom2 are like header/header2/footer/footer2 except
+// they can be changed later; for example, you could use header/header2 for
+// the whole song, but have a new top/top2 for each section of the song.
+
+// to be printed right below the header on this page (the first page)
+top
+       title (13) "First Movement"
+// to be printed right below the header2 on later pages
+top2
+       title "First movement"
+
+// set some score-wide parameters
+score
+       staffs = 9
+       key = c minor
+       time = 9/8
+
+       // beam things a dotted quarter at a time, and beam across rests
+       // have the main beams group together notes a dotted quarter at a
+       // time, but have subgroupings an 8th note at a time; also, beam
+       // across rests
+       beamstyle = (8,8,8), (8,8,8), (8,8,8) r
+
+       // put bracket to left of top 2 staffs, and bottom 2, with labels
+       bracket = 1-2 ("Choir", "Ch"), 7-8 ("Guitar", "Gtr")
+
+       // put brace on keyboard's staffs
+       brace = 5-6 ("keyboard", "Kbd")
+
+       // bar the staffs 5 and 6 together, and 7 and 8 together
+       barstyle = 5-6, 7-8
+
+       // put rehearsal marks in circles, instead of the default rectangles
+       rehstyle = circled
+
+       // make a little smaller than normal
+       scale = 0.77
+
+       // pack notes together
+       packexp = 0.7
+       packfact = 0.75
+
+       // set the margins, allowing choice depending on whether -DBIGMARGINS
+       // is used on the command line or not
+       ifdef BIGMARGINS
+               topmargin = 1.0
+               bottommargin = 1.1
+               leftmargin = 1
+               rightmargin = 1
+       else
+               topmargin = 0.8
+               bottommargin = 0.8
+               leftmargin = 0.7
+               rightmargin = 0.6
+       endif
+
+       // make sure chord marks are a ways away from staffs
+       chorddist = 4
+
+       // make sure other things are a ways away too
+       dist = 3
+
+       // spread scores and staffs apart more than normal
+       scoresep = 14, 24
+       scorepad = 5
+       staffsep = 14
+       staffpad = 2
+
+       // label endings above staffs that are grouped by brace or bracket
+       endingstyle = grouped
+
+       // use palatino fonts by default, in 14 point
+       fontfamily = palatino
+       font = rom
+       size = 14
+
+       // put lyrics in helvetica italics, 11 point
+       lyricsfontfamily = helvetica
+       lyricsfont = ital
+       lyricssize = 11
+
+       // print measure numbers at the beginning of each score
+       // in Helvetica italics
+       measnumfontfamily = helvetica
+       measnumfont = ital
+       measnumsize = 9
+       measnum = y
+
+       // When there are chords, print guitar grids with them.  To put them
+       // at the end of the song we would use gridsatend.  If we wanted
+       // to make them bigger or smaller, we could set "gridscale".
+       gridswhereused = y
+
+       // If the lowest fret used is 3 or more, use "N fr" notation instead
+       // of showing the whole guitar neck up to that point in the grid.
+       // The default value of this is 4, and it can be turned off.
+       gridfret = 3
+
+
+//set some things for particular staffs
+staff 2
+       clef = bass
+
+staff 3
+       label = "foghorn\nin G\(smflat)"
+       staffscale = 0.8        // make this staff a little smaller
+       clef = baritone
+       transpose = down dim 5
+       // make staff 3 visible only when there is something on it
+       visible = whereused
+
+       // set different default octave
+       defoct = 4
+
+staff 4
+       // make staff 4 a 1-line staff, with a "drum clef"
+       stafflines = 1 drum
+
+staff 5
+       // Use three voices on staff 5.  Allow the stems of the top and bottom
+       // voices (1 and 2) to float to whichever way is appropriate.  (We
+       // could use 2o to force their stems to be in opposite directions.)
+       // Voice 3 is an extra voice, typically in the middle, whose stems can
+       // go either way.
+       vscheme = 3f
+
+staff 6
+       clef = bass
+
+       // use dotted quarter for default time unit instead of
+       // the normal time signature denominator
+       timeunit = 4.
+
+staff 7
+       vscheme = 2f
+
+staff 8
+       // Make staff 8 a tablature staff for standard guitar.  This
+       // automatically makes the preceding staff (7) a "tabnote" staff,
+       // meaning its notes will be derived from staff 8 automatically,
+       // unless overriden.
+       stafflines = tab
+
+       // make fret numbers more readable by putting a white background there
+       tabwhitebox = y
+
+       vscheme = 2f    // allow two voices on this tab staff
+
+staff 9
+       // On staff 9, use "shaped notes".  Each scale degree uses a different
+       // shape of note head.
+       label = "Soprano"
+       noteheads = "isostri semicirc diam righttri norm rect pie"
+
+// define a macro to allow saying "DRUM" instead of "4:" for the 4th staff
+define DRUM 4:  @
+
+grids
+       // define grids to be printed with guitar chords
+       "Cm"    "- (3 5 5 4 3)"
+       "G:9 7" "3 x o o o 5"
+       "Go7"   "o 1 2 o 2 o"
+       "G"     "3 x o o o 3"
+
+// now do musical data
+music
+
+// put a tempo mark above staffs 1 and 6, and set MIDI tempo to 92
+// quarter notes per minute
+       rom above 1,6 : 1 "Andante";
+       midi all: 0 "tempo = 92";
+// set the instruments to use for MIDI
+       midi 1-2: 0 "channel=5"; 0 "program=52"; 0 "onvelocity=92";
+       midi 3: 0 "channel=6"; 0 "program=109"; 0 "onvelocity=61";
+       midi 4: 0 "channel=10";         // percussion channel
+// set onvelocity to accent the top note
+       midi 5-6: 0 "channel=11"; 0 "program=1"; 0 "onvelocity=104,88";
+       midi 5 2: 0 "channel=11";
+       midi 7: 0 "channel=14"; 0 "program=25"; 0 "onvelocity=83";
+
+// Note that lines of input within a given measure can be entered in any order.
+// It is usually a good idea to enter music data a staff at a time from top
+// to bottom, just to make it easy to keep track of, although Mup makes no
+// such requirement. You may choose to intersperse other things like lyrics
+// and phrase marks, or do them all at once before or after the music data,
+// or in whatever order you choose. 
+
+// Also note that you can indent things any way you want in your Mup
+// input file, and can put extra blank spaces almost anywhere
+// except in the middle of a word.
+
+// For MIDI purposes, the first two measures get played an extra time
+// before the Coda, so put them inside a macro.
+define FIRST2MEASURES
+
+// staff 1, three dotted quarter notes, second chord same as the first
+       1 1: 4.ceg;;dfb;
+
+// staff 2, dotted quarter, two eighths with a rest between, dotted quarter
+       2: 4.c;8c;r;e;4.f;
+
+// phrase on staff 2 from beginning note to first count of next measure
+       phrase 2: 1 til 1m+1;
+
+// two verses of lyrics between top two staffs
+// use "|" to align the first syllables 8 points left of the notes' centers
+       lyrics between 1&2: 4.;;; "-8|These are the"; "-8|This is verse";
+
+// a grace note and an accent on staff 3
+       3: [grace; slash 1]c#; [with >] 2.f#;4.r;
+
+// measure rest for staff 4
+       DRUM mr;
+
+// staff 5, voice 1, begins with duplet, also has a tied note
+       5 1:  {4c+;g;}2,4.; 4.c+;4f+~;16;;
+
+// second voice for staff 5
+       5 2: 2.c;4.d;
+
+// third voice for staff 5 starts with a "space", nothing printed; force
+// horizontal offsets (ho) on two of the notes to fine tune their spacing
+       5 3: 4.s; [ho 3.5]8e;f;g; [ho 3]an; 4;
+
+// staff 6, some notes an octave or two away from the default octave
+       6: 4.c-c--;;d-d--;
+
+// put piano pedal mark at the bottom
+       pedal below 6: 1;6;
+
+// show the fret numbers on guitar strings on the tablature staff
+       8: 4. a3d1g0; 8 a3; e'3; a3; 4. d0g2b3e1;
+
+// Print music theory analysis symbols at counts 1 and 7.  The ":" makes the
+// following space-separated items be stacked on top of each other.
+       rom analysis above 5: 1 "i"; 7 "VII:6 #5";
+
+// print figured bass numbers below count 7; the slash goes through the "5"
+       rom figbass below 6: 7 "6 5/";
+
+       9: 4.c+; 8e+; c+; e+; 4.f+;
+       lyrics 9: 2.+4.; "ah_";
+
+// ordinary bar line, with a reherasal letter
+       bar reh let
+
+
+
+// next measure
+       1: 2.c+gc;4.r;
+       2: 2.ce;4.r;
+
+// lyrics with an underscore
+       // This time, since the time values of the lyrics match those
+       // of the music, we'll let Mup derive the time values,
+       // rather than specifying them.  Notice that we are chanting multiple
+       // syllables on the last word, so we show that they are to be treated
+       // as one syllable by separating them by a special \(space) character
+       // instead of simple space.
+       lyrics between 1&2: [1] "words!_"; [2] "two\(space)oh\(space)yes.";
+
+// include a note with a double flat
+       3: 2.f&&;4.r;
+
+// you can specify a pitch for a 1-line staff, even though all notes will be
+// placed on the line. The pitch will be used for MIDI output, if you use
+// the -m option to Mup to get a MIDI file instead of printed output.
+       DRUM 4.f&;2.r;
+
+// because of the beamstyle setting, the 16th notes here are joined in pairs
+// by both beams, but only one beam joins all six
+       5 1: 2.c++;4.r;
+       5 2: 8e;g;e; 16g;e;g;e;g;e; 4.r;
+       6: 2.c- alt 2;c;4.r;
+       pedal below 6: 1;6*;
+
+// print 3 tremelo slashes on this chord
+       8: [slash 3] 2. d1g0b1e3; 4.r;
+
+       9: 2.e+; 4.r;
+
+// at count 9.9 (almost the dblbar), back up 19 stepsizes and print this coda
+// indication, including the actual coda symbol; do this in italics of font
+// size 13 (but turn off the italics for the symbol), and above all the staffs
+       ital(13) all: 9.9[-19] "To coda \f(TR)\(coda)";
+
+       // double bar
+       dblbar
+@      // end the macro definition of the first measures
+// Now call the macro for the first measures
+       FIRST2MEASURES
+
+
+
+// start a new score. Normally, Mup will place things
+// as best it can, but you can force things if you like.
+newscore
+
+// now more music data
+music
+
+
+       // set location tags on the two notes, then draw a wavy line between
+       // them saying that it is a glissando
+       1: 2.c =h; 4.g =k;
+               wavy line (h.e+3, h.y) to (k.w-3, k.y) with ital (11) "gliss."
+       2: 4.e; 8..; 32f;8g;4.c;
+
+// a crescendo mark
+       < below 2: 3 til 7.5;
+
+// trill the foghorn from count 1 to 7; put a "turn" symbol above the note
+// at count 8. For MIDI, specify exactly how to play it.
+       ifndef MIDI
+               3: 2..d&; 4d;
+               mussym 3: 1 "tr" til 7; 8 "turn";
+       else
+               3: 16d&;e;d;e;d;e;d;e;d;e;d;e;d;e; {d;e;d;c;d;}5;
+       endif
+
+       4: [slash 2] 2.c; [with .]4.c-;
+       5: 4.ceg;;;
+
+// a dynamic mark
+       times boldital between 5&6: 7 "ff";
+
+// roll up on first chord, down on second, default (up) on third
+       roll up   5: 1;
+       roll down 5: 4;
+       roll      5: 7;
+
+// the <> indicates a slur
+       6: 2.c e?;8e<>;4c;
+
+// For the second note, "bend" the previous note up 1/2 step by stretching
+// the E string.  Then bend to a full step, and release back to normal.
+       8 1: 4.e5; e "1/2"; 8e "full"; 4e "";
+
+// Put some notes in the second tab voice.  These will be translated to the
+// the second voice of the tabnote staff above.
+       8 2: 4.g0; 4; 8; 4.;
+
+       9: 8c+; b; an; g; c; d; 4.e;
+
+// chord symbols will be transposed if the music is transposed.
+// In this particular example, transposition is not in effect
+       bold chord above all: 1 "Cm";
+
+       bar ending "1."
+
+
+
+// two measures of rest
+       multirest 2
+       repeatend ending "2."
+
+
+staff 4
+// From now on, staff 4 (the one-line staff) will have two voices with stems
+// that are always opposing.  Set it so that the notes will not be on the line
+// but rather above and below it.
+       vscheme = 2o
+       ontheline = n
+music
+       midi 4 2: 0 "channel=10";
+
+// Define a macro with parameters for printing a chord name at a given count.
+// Note that the chord name is passed in and then the ` ` cause it to be
+// put in quotes.
+define K(COUNT, NAME) bold chord all: COUNT `NAME`; @
+
+// Define a "map" for chord-at-a-time input.  (By "chord" here we mean a group
+// of notes, not the symbolic chord name as above.)  Since all the voices in
+// the choir have the same rhythm from now on, it's convenient to use this
+// method of input instead of the usual voice-at-a-time method.  Set it up
+// to enter bass and tenor on staff 2, then alto and soprano on staff 1.
+define M [ 2; 2; 1; 1 ] @
+
+
+       K(1,Cm)         // print a C minor chord at count 1
+
+// assign all the notes for staffs 1 and 2, using the map.  Each goes to its
+// proper octave according to defoct.
+       M: 4.cgce; ceeg; cgce;
+
+// Put phrase marks on each staff, from count 1 until count 7 of the next
+// measure.  We didn't specify "above" or "below", so Mup chooses the side.
+       phrase 1,2: 1 til 1m+7;
+
+// Increase the size of the lyrics by 3 points.  This will carry forward to
+// the end of the song unless changed again.  Also, use the non-ASCII
+// character n-tilde, indicated by \(n~).  If you can type non-ASCII characters
+// directly on your keyboard, you can do that instead of using this notation.
+       lyrics between 1&2: "\s(+3)Ma-\(n~)a-na";
+
+// put the last note's accidental in parentheses, since it is just a
+// reminder to the player that this accidental is still in force
+       3: 4.an; b; a(n);
+
+// Use X-shaped notes on the top voice.  Use the "..." to show that this
+// applies for the rest of this measure, not just the first chord.
+       4 1: [xnote]... 4.; ; 8;;;
+       4 2: 4.; ; ;
+
+// Beam notes together across both staffs.  Set a location tag (=h) on the
+// first note, for later use.
+       5: 4.s bm with staff below; ; 8c; e; g ebm;
+       6: 8c- =h bm with staff above; e-; g-; c; e; g; 4.s ebm;
+
+       8: 2. a3 d5 g5 b4 e3; 4. tie;
+
+       // For the last two notes, override the head shape to be a slash, to
+       // indicate repeating the first part of the measure.
+       9: 8g; e; ; [hs "slash"]... 4.b; ;
+       bar endending
+
+
+
+       ital all: 1 "\[A special note, on\ntwo lines, in a box.\]";
+       1: 4.ce; eg; ;
+       lyrics between 1&2: "am gr\(o:)\(ss)t-en,";     // non-ACSII chars
+       2: 4.cg; ce; ;
+
+// draw a measure repeat sign
+       3: mrpt;
+
+       // put a text string in an ellipse
+       ital 4: 1 "\{mute\}";
+       4 1: [xnote]... 4.; ; 8;;;
+       4 2: 2.; 4.;
+
+       6: 8 with e+c++ above; c+ with g+ above; g with e+ above; ec+; g; e; \
+                       4.c =k; // set loc tag "k"
+       8: 4. a3 d5 g5 b4 e3; 2.;
+       9: mrpt;
+       bar
+
+// Draw a curve, with endpoints based on the "=h" and "=k" location tags with
+// vertical offsets of 11 and 8 stepsizes upwards.  The curve bulges upwards
+// 20 and 23 stepsizes 1/3 and 2/3 of the way through it.
+       medium curve (h.x, h.y + 11) to (k.x, k.y + 8) bulge 20, 23;
+
+
+// print the chord G97, with the 9 above the 7
+       K(1,G:9 7)
+
+       ital(15) all: 9.9[-20] "D.C. al Coda";
+
+// use a C double sharp (cx) and B natural
+       1: 4.cxbn; 2.;
+       lyrics between 1&2: "tr\(e`)s bien!";   // another non-ASCII character
+       2: 4.g-f; 2.;
+       4 1: 4.r; c; ;  // the pitch is arbitrary except for MIDI on one-line
+       4 2: 4.; r; ;
+       5: 4.dfgbn; ; dfan;
+
+// force first note stem to point upwards, which would by default have
+// pointed down; change clef in the middle of the measure
+       6: [up] 4.d; c; <<staff clef = treble>> d+;
+
+// The first note is a "prebend" (stretch the string before plucking).  On the
+// last note, do a slide upwards after it that doesn't end at any specific note.
+       8: 4. a10 "full" b8 "full"; 4. a10 "" b8 ""; [grace] 16 e0; 4.e1 <n/>;
+       9: 2.+4.g;
+       lyrics 9: "oo_";
+       dblbar
+
+// For MIDI, insert the D.C. al Coda fragment
+       ifdef MIDI
+               FIRST2MEASURES
+       endif
+
+// leave a gap and start all the staffs anew, showing clefs and key signatures
+       restart
+
+staff 6
+       clef = bass     // change the clef back to bass
+
+music
+// override the "dist" parameter, and specify a minimum distance of 5 stepsizes
+// from the staff for this coda sign
+       mussym(13) all dist 5: 0.5 "coda";
+       ital(15) all: 1 "Coda";
+
+// at count 1 print G diminished 7 (the "o" is translated to a diminished
+// symbol), and at count 7 print G
+       K(1,Go7)
+       K(7,G)
+
+// Another duplet.  If we put "n" after the first number it would prevent the
+// bracket from being printed.
+       1: 2.d&g; { 4gbn; ; }2,4.;
+
+// Draw parentheses around the one D natural.  Force this duplet's bracket to
+// be below; this one would have defaulted to above.
+       2: 2.b&f&; { 4d-n(dn)g; dbn; } below 2,4.;
+
+// Print both keyboard hands on its top staff, using two voices.  Since the
+// top notes are so high, set their stems to extend only 5 stepsizes instead
+// of the usual 7 (octave).  Slur and tie the notes, using dashed or dotted
+// rather than solid curves.
+       5 1: [len 5]... 2.g++b++d&+++f&+++ dashed slur; 4.g++bn++d+++g+++;
+       5 2: 2.gg+ dotted tie; 4.;
+
+// leave staff 6 unspecified, so that it will default to a space
+
+       8: [slash 1] 2. e'0 a1 d2 g0 b2 e0; 4. e'3 d0 g0 b0 e3;
+
+       9: 2.g; 4.bn;
+       lyrics 9: "At the";
+       bar
+
+
+
+score
+// set a time signature that combines two simple time signatures
+       time = 2/4 + 3/8
+
+music
+// use shorthand to enter the same data for two staffs at once
+       1,2:  2egc+ tie; 4.;
+
+       4 1,2: mr;      // measure rest on both voices of staff 4
+       5-6: 2c tie; 4.;
+
+// mark notes an octave lower than normal
+       octave below 6: 1 "8va" til 7.5;
+
+// put a fermata above staffs 1, 2, and 4 to 6
+       mussym above 1,2,4-6: 5 "ferm";
+// for MIDI, slow the tempo, to produce the fermata
+       midi all: 3 "tempo=50";
+       8: 2 e20~; 4.;
+       9: 2+4.c+;
+       lyrics 9: "end.";
+       K(1,Cm)
+       endbar
diff --git a/mup/docs/sample.ps b/mup/docs/sample.ps
new file mode 100644 (file)
index 0000000..b759ada
--- /dev/null
@@ -0,0 +1,6024 @@
+%!PS-Adobe-1.0
+%%Creator: Mup
+%%Title: music:  from /home/johnkr/mup/5.3/doc/arkkra/sample.mup
+%%CreationDate: Sat Dec 9 16:59:22 2006
+%%Pages: (atend)
+%%DocumentFonts: (atend)
+%%BoundingBox: 0 0 612 792
+%%EndComments
+% Copyright (c) 1995, 1996, 1997, 1998, 1999, 2000, 2003, 2004 by Arkkra Enterprises
+% All rights reserved
+
+% Mup PostScript Prolog 5.3 for use with Mup 5.3
+
+% lwid is used as the width of a standard (thin) line in the music
+% character definitions.
+/lwid 70 def
+/halflwid lwid 2 div def
+
+% Define the following for use in do_upshortnote, do_dnshortnote, and
+% do_shortrest; it has to be done outside of the music font definition.
+/utildict 10 dict def
+utildict begin
+       /setnumflags    {       /numflags       exch def } def
+       /sethooksm1     {       /hooksm1        exch def } def
+       /setoffsets     {       /offsets        exch def } def
+       /setx           {       /x              exch def } def
+       /sety           {       /y              exch def } def
+end
+
+% Define a music character font.  Each music character is defined as if it
+% were a normal ASCII character in a strange font where "A" looks like a
+% treble clef, "B" looks like a bass clef, etc.
+
+/mfont0 100 dict def
+mfont0 begin
+       /FontType 3 def
+       /FontMatrix [ .001 0 0 0.001 0 0 ] def
+       /FontBBox [ -2000 -4030 2000 4030 ] def
+       /FontName (Mfont0) def
+
+       % set up Encoding vector with standard names
+       /Encoding 256 array def
+       StandardEncoding Encoding copy
+       pop
+
+       % the following definitions are used for quarter rests
+       /topx -170 def /topy 950 def
+       /cor1x 250 def /cor1y 450 def
+       /cor2x -300 def /cor2y 200 def
+       /cor3x 250 def /cor3y -400 def
+
+       % the following definitions are used for double sharps
+       /limit 300 halflwid add def
+       /off 70 def
+       /inbendsmall limit 200 sub def
+       /inbendbig limit 20 sub def
+       /outbendsmall 100 def
+       /outbendbig outbendsmall off add def
+
+       %%%%% define routines that will be used by multiple characters %%%%%
+       /do_1n {
+               gsave
+               newpath -10 rotate 1.6 1 scale
+               0 0 325 0 360 arc               %outer ellipse
+               1 1.6 div 1 scale 10 rotate     %back to original
+               35 rotate 0.85 1.1 scale
+               0 0 275 0 360 arc               %inner ellipse
+               eofill
+               grestore
+       } def
+       /do_upflag {
+               -315 0 moveto
+               -300 100 -100 480 0 600 curveto
+               300 960 350 1500 200 1700 curveto
+               130 1700 lineto
+               350 1200 50 650 -315 600 curveto
+               fill
+       } def
+       /do_flat {
+               -250 -400 moveto        %outer edge of loop
+               500 0 350 650 -250 160 curveto
+               -250 160 lwid sub lineto %inner edge of loop
+               100 400 300 0 -250 -400 lwid add curveto
+               fill
+
+               lwid setlinewidth       %stem
+               -250 1100 moveto -250 -400 lineto stroke
+       } def
+       /do_diamond {
+               newpath
+               420 0 moveto 0 300 lineto -420 0 lineto
+               0 -300 lineto closepath
+               259 -29 moveto -41 185 lineto -259 29 lineto
+               41 -185 lineto closepath
+               eofill
+       } def
+       /do_2n {
+               gsave
+               newpath 25 rotate 1.4 1 scale
+               0 0 315 0 360 arc               %outer ellipse
+               1 1.4 div 1 scale               %back to original
+               1.3 0.5 scale
+               0 0 310 0 360 arc               %inner ellipse
+               eofill
+               grestore
+       } def
+       /do_4n {
+               gsave
+               newpath 25 rotate 1.35 1 scale
+               0 0 310 0 360 arc fill
+               grestore
+       } def
+       /do_com {
+               newpath
+               330 250 150 0 360 arc fill      %knob at upper right
+               465 300 moveto                  %outer boundary
+               410 500 200 635 0 635 curveto
+               -750 635 -750 -635 0 -635 curveto
+               350 -635 480 -300 500 -100 curveto
+               430 -100 lineto                 %inner boundary
+               380 -300 250 -565 0 -565 curveto
+               -450 -565 -450 565 0 565 curveto
+               200 565 370 350 395 300 curveto
+               fill
+       } def
+       /do_ferm {
+               0 0 800 lwid sub 0 180 arc      %inner arc
+               -800 0 lineto
+               0 270 lwid sub 800 180 0 arcn   %outer arc
+               800 0 lineto fill
+               0 120 120 0 360 arc fill        %the dot
+       } def
+       /do_mor {
+               gsave
+               0.7 1 scale     %scrunch the following horizontally
+               45 rotate       %to pretend all lines horz or vertical
+               0 1 1 {
+                       pop     %we don't need the loop variable
+                       %one half of the mordent
+                       0 40 moveto 350 40 lineto 350 -460 lineto
+                       750 -460 lineto 750 -540 lineto
+                       150 -540 lineto 150 -40 lineto
+                       0 -40 lineto fill
+                       180 rotate      %to do the other half
+               } for
+               grestore
+       } def
+       /do_turn {
+               gsave
+               0 1 1 {
+                       pop     %we don't need the loop variable
+                       0 -100 moveto   %outer boundary
+                       200 -400 625 -400 625 0 curveto
+                       625 200 500 325 300 325 curveto
+                       300 185 lineto  %inner boundary
+                       450 255 555 150 555 0 curveto
+                       555 -350 250 -250 0 100 curveto
+                       fill
+                       300 255 70 0 360 arc fill %knob on end
+                       180 rotate      %to do the other half
+               } for
+               grestore
+       } def
+
+       /do_upshortnote {
+               utildict begin
+               setnumflags             %set numflags from the stack
+               gsave
+               -330 0 translate        %half a flag width
+               do_4n                   %do a quarter note head
+               lwid setlinewidth
+               370 0 moveto
+               370 2100 numflags 2 sub flagsep mul add lineto stroke
+               670 2100 numflags 2 sub flagsep mul add translate
+               1 -1 scale              %reflect across X axis
+               0 1 numflags 1 sub {
+                       do_upflag       %do an upflag
+                       pop             %we don't need the loop variable
+                       0 flagsep translate
+               } for
+               grestore
+               end
+       } def
+
+       /do_dnshortnote {
+               utildict begin
+               setnumflags             %set numflags from the stack
+               do_4n                   %do a quarter note head
+               lwid setlinewidth
+               -370 0 moveto
+               -370 -2100 numflags 2 sub flagsep mul sub lineto stroke
+               gsave
+               -70 -2100 numflags 2 sub flagsep mul sub translate
+               0 1 numflags 1 sub {
+                       do_upflag       %do an upflag
+                       pop             %we don't need the loop variable
+                       0 flagsep translate
+               } for
+               grestore
+               end
+       } def
+
+       /do_shortrest {
+               utildict begin
+               sety setx setoffsets sethooksm1 %set variable from the stack
+               gsave
+               -105.8 offsets mul -600 offsets mul translate
+               0 1 hooksm1 {           %loop once per hook
+                       newpath
+                       1 setlinewidth
+                       gsave
+                       1 1.2 scale
+                       -150 300 1.2 div 140 0 360 arc fill     %the dot
+                       grestore
+                       lwid setlinewidth
+                       -50 700 550 255 315 arc         %rest of the hook
+                       hooksm1 lt { stroke 105.8 600 translate } if
+               } for
+               x y lineto stroke
+               grestore
+               end
+       } def
+
+
+       % subsidiary dictionary of character definitions
+       /CharStrings 128 dict def
+       CharStrings begin
+
+               /.notdef {} def
+
+               % Here are the definitions of the characters.  A stepsize here
+               % is 300 units (assuming the character is drawn at its default
+               % size).
+
+               % gclef
+               /A {
+                       newpath
+                       %start with inner curl, inside boundary
+                       -50 -300 moveto
+                       -450 600 700 700 750 0 curveto
+                       750 -800 -700 -800 -700 200 curveto
+                       -700 900 500 1400 520 2250 curveto
+                       520 2900 300 3000 200 3000 curveto
+                       100 3000 -400 2500 -200 1800 curveto
+                       350 -600 lineto
+                       720 -1600 0 -1650 -400 -1400 curveto
+
+                       %go back to start, drawing the other boundary
+                       -400 -1480 lineto
+                       0 -1700 800 -1700 430 -600 curveto
+                       -120 1800 lineto
+                       -300 2400 200 2800 250 2800 curveto
+                       400 2800 430 2700 430 2450 curveto
+                       430 1800 -900 1200 -900 300 curveto
+                       -750 -900 800 -900 850 0 curveto
+                       900 1100 -750 900 -120 -300 curveto fill
+
+                       %circle at the bottom
+                       -300 -1250 250 0 360 arc fill
+               } def
+
+               % fclef
+               /B {
+                       newpath
+                       %start with outside boundary, at bottom
+                       -1000 -1700 moveto
+                       100 -1100 500 -600 450 0 curveto
+                       450 850 -1100 850 -950 0 curveto
+
+                       %go back to start, drawing the other boundary
+                       -880 0 lineto
+                       -920 400 -600 560 -300 560 curveto
+                       0 560 150 400 150 0 curveto
+                       150 -400 100 -900 -1000 -1620 curveto fill
+
+                       %circle at the left
+                       newpath
+                       -700 0 250 0 360 arc fill
+
+                       %do the two dots after the main curve
+                       700 -300 100 0 360 arc fill
+                       700 300 100 0 360 arc fill
+               } def
+
+               % cclef
+               /C {
+                       gsave
+                       %do upper curved part, then scale to do mirror image
+                       0 1 1 {
+                               pop     %we don't need the loop variable
+                               %outer boundary of curve
+                               -170 0 moveto 100 300 lineto
+                               400 -200 750 300 750 650 curveto
+                               750 1100 450 1235 250 1235 curveto
+                               0 1235 -143 1100 -143 950 curveto
+
+                               %inner boundary of curve
+                               0 950 lineto
+                               0 1100 30 1165 250 1165 curveto
+                               300 1165 450 1100 450 650 curveto
+                               450 400 400 -100 100 400 curveto
+                               -270 0 lineto fill
+                               %stroke
+                               %-270 0 moveto 100 400 lineto
+                               %400 -100 450 400 450 650 curveto
+                               %450 1100 300 1165 250 1165 curveto
+                               %30 1165 0 1100 0 950 curveto
+                               %stroke
+
+                               %elliptical ball at end of curve
+                               gsave
+                               1.3 1 scale
+                               10 950 120 0 360 arc fill
+                               grestore
+                               1 -1 scale      %reflect across X axis
+                       } for
+                       grestore
+
+                       % two vertical lines on the left
+                       300 setlinewidth -600 -1200 halflwid sub moveto
+                       -600 1200 halflwid add lineto stroke
+                       lwid setlinewidth -300 -1200 halflwid sub moveto
+                       -300 1200 halflwid add lineto stroke
+               } def
+
+               % dblwhole
+               /D {
+                       do_1n           %do a whole note
+                       lwid setlinewidth
+                       -490 -600 moveto -490 600 lineto stroke
+                       490 -600 moveto 490 600 lineto stroke
+               } def
+
+               % 1n
+               /E {
+                       do_1n           %do a whole note
+               } def
+
+               % 2n
+               /F {
+                       do_2n           %do a half note
+               } def
+
+               % 4n
+               /G {
+                       do_4n           %do a quarter note head
+               } def
+
+               % upflag
+               /H {
+                       do_upflag               %do an upflag
+               } def
+
+               % dnflag
+               /I {
+                       gsave
+                       1 -1 scale      %reflect across X axis
+                       do_upflag               %do an upflag
+                       grestore
+               } def
+
+               % dwhrest
+               /J {
+                       300 setlinewidth
+                       0 0 moveto 0 600 lineto stroke
+               } def
+
+               % 1rest
+               /K {
+                       lwid setlinewidth
+                       -750 600 moveto 750 600 lineto stroke
+                       300 setlinewidth
+                       -400 450 moveto 400 450 lineto stroke
+               } def
+
+               % 2rest
+               /L {
+                       lwid setlinewidth
+                       -750 0 moveto 750 0 lineto stroke
+                       300 setlinewidth
+                       -400 150 moveto 400 150 lineto stroke
+               } def
+
+               % 4rest
+               /M {
+                       newpath
+                       cor3x cor3y halflwid add moveto
+                       %-400 -200 -450 -650 50 -950 lwid add curveto
+                       -450 -50 -450 -650 50 -950 lwid add curveto
+                       -150 -650 -100 -250 cor3x cor3y halflwid sub curveto
+                       fill
+
+                       cor1x cor1y moveto cor1x 200 sub cor1y 200 add lineto
+                       cor2x cor2y lineto cor2x 200 add cor2y 200 sub lineto
+                       fill
+
+                       lwid setlinewidth
+                       topx topy moveto cor1x cor1y lineto stroke
+                       cor2x cor2y moveto cor3x cor3y lineto stroke
+               } def
+
+               % 8rest
+               /N {
+                       0 0 0 -600 do_shortrest
+               } def
+
+               % 16rest
+               /O {
+                       1 1 100 -1200 do_shortrest
+               } def
+
+               % 32rest
+               /P {
+                       2 1 0 -1800 do_shortrest
+               } def
+
+               % 64rest
+               /Q {
+                       3 2 -80 -2100 do_shortrest
+               } def
+
+               % 128rest
+               /R {
+                       4 2 -150 -2700 do_shortrest
+               } def
+
+               % 256rest
+               /S {
+                       5 3 -280 -3300 do_shortrest
+               } def
+
+               % dot
+               /T {
+                       newpath
+                       0 0 120 0 360 arc fill
+               } def
+
+               % nat
+               /U {
+                       % fill crossbars so that we can do parallelograms
+                       -235 -470 moveto -235 -270 lineto
+                       235 -130 lineto 235 -330 lineto fill
+                       -235 130 moveto -235 330 lineto
+                       235 470 lineto 235 270 lineto fill
+
+                       % vertical strokes
+                       lwid setlinewidth
+                       -200 -380 moveto -200 850 lineto stroke
+                       200 -850 moveto 200 380 lineto stroke
+               } def
+
+               % sharp
+               /V {
+                       % fill crossbars so that we can do parallelograms
+                       -325 -480 moveto -325 -280 lineto
+                       325 -120 lineto 325 -320 lineto fill
+                       -325 120 moveto -325 320 lineto
+                       325 480 lineto 325 280 lineto fill
+
+                       % vertical strokes
+                       lwid setlinewidth
+                       -150 -930 moveto -150 880 lineto stroke
+                       150 -880 moveto 150 930 lineto stroke
+               } def
+
+               % flat
+               /W {
+                       do_flat         %do a flat
+               } def
+
+               % dblsharp
+               /X {
+                       gsave
+                       0 1 3 {         %loop once for each of 4 sticks
+                               pop     %we don't need the loop variable
+                               0 off neg moveto
+                               outbendbig outbendsmall lineto
+                               inbendbig inbendsmall lineto
+                               limit limit lineto
+                               inbendsmall inbendbig lineto
+                               outbendsmall outbendbig lineto
+                               off neg 0 lineto
+                               fill
+                               -90 rotate
+                       } for
+                       grestore
+               } def
+
+               % dblflat
+               /Y {
+                       -290 580 290 {  %loop once for each flat
+
+                               gsave
+                               1 setlinewidth
+                               0 translate     %translate left/right (loop var)
+                               do_flat         %do a flat
+                               grestore
+
+                       } for
+               } def
+
+               % xnote
+               /Z {
+                       gsave
+                       1.15 1 scale 120 setlinewidth 1 setlinecap      %round
+                       -300 -300 moveto 300 300 lineto stroke
+                       -300 300 moveto 300 -300 lineto stroke
+                       grestore
+               } def
+
+               % dwhdiamond
+               /a {
+                       do_diamond      %do a diamond
+                       lwid setlinewidth
+                       -420 -600 moveto -420 600 lineto stroke
+                       420 -600 moveto 420 600 lineto stroke
+               } def
+
+               % diamond
+               /b {
+                       do_diamond      %do a diamond
+               } def
+
+               % filldiamond
+               /c {
+                       420 0 moveto 0 300 lineto
+                       -420 0 lineto 0 -300 lineto fill
+               } def
+
+               % up2n
+               /d {
+                       lwid setlinewidth
+                       380 0 moveto 380 2100 lineto stroke
+                       do_2n           %do a half note
+               } def
+
+               % dn2n
+               /e {
+                       lwid setlinewidth
+                       -380 0 moveto -380 -2100 lineto stroke
+                       do_2n           %do a half note
+               } def
+
+               % up4n
+               /f {
+                       do_4n           %do a quarter note head
+                       lwid setlinewidth
+                       370 0 moveto 370 2100 lineto stroke
+               } def
+
+               % dn4n
+               /g {
+                       do_4n           %do a quarter note head
+                       lwid setlinewidth
+                       -370 0 moveto -370 -2100 lineto stroke
+               } def
+
+               % up8n
+               /h {
+                       gsave
+                       -330 0 translate        % half a flag width
+                       do_4n           %do a quarter note head
+                       lwid setlinewidth
+                       370 0 moveto 370 2100 lineto stroke
+                       670 2100 translate
+                       1 -1 scale      %reflect across X axis
+                       do_upflag               %do an upflag
+                       grestore
+               } def
+
+               % dn8n
+               /i {
+                       do_4n           %do a quarter note head
+                       lwid setlinewidth
+                       -370 0 moveto -370 -2100 lineto stroke
+                       gsave
+                       -70 -2100 translate
+                       do_upflag               %do an upflag
+                       grestore
+               } def
+
+               % up16n
+               /j {
+                       2 do_upshortnote
+               } def
+
+               % dn16n
+               /k {
+                       2 do_dnshortnote
+               } def
+
+               % up32n
+               /l {
+                       3 do_upshortnote
+               } def
+
+               % dn32n
+               /m {
+                       3 do_dnshortnote
+               } def
+
+               % up64n
+               /n {
+                       4 do_upshortnote
+               } def
+
+               % dn64n
+               /o {
+                       4 do_dnshortnote
+               } def
+
+               % up128n
+               /p {
+                       5 do_upshortnote
+               } def
+
+               % dn128n
+               /q {
+                       5 do_dnshortnote
+               } def
+
+               % up256n
+               /r {
+                       6 do_upshortnote
+               } def
+
+               % dn256n
+               /s {
+                       6 do_dnshortnote
+               } def
+
+               % com
+               /t {
+                       do_com          %do a common time symbol
+               } def
+
+               % cut
+               /u {
+                       do_com          %do a common time symbol
+                       lwid setlinewidth
+                       0 -900 moveto 0 900 lineto stroke
+               } def
+
+               % begped
+               /v {
+                       lwid setlinewidth
+                       -200 600 moveto -200 0 lineto 200 0 lineto stroke
+               } def
+
+               % pedal
+               /w {
+                       lwid setlinewidth
+                       -500 0 moveto -450 0 lineto 0 600 lineto
+                       450 0 lineto 500 0 lineto stroke
+               } def
+
+               % endped
+               /x {
+                       lwid setlinewidth
+                       200 600 moveto 200 0 lineto -200 0 lineto stroke
+               } def
+
+               % dnbow
+               /y {
+                       lwid setlinewidth
+                       -350 0 moveto -350 900 lineto stroke
+                       350 0 moveto 350 900 lineto stroke
+                       200 setlinewidth
+                       -350 800 moveto 350 800 lineto stroke
+               } def
+
+               % upbow
+               /z {
+                       lwid setlinewidth
+                       -300 900 moveto 0 0 lineto 300 900 lineto stroke
+               } def
+
+               % wedge
+               /one {
+                       0 0 moveto -150 500 lineto 150 500 lineto fill
+               } def
+
+               % uwedge
+               /two {
+                       -150 0 moveto 150 0 lineto 0 500 lineto fill
+               } def
+
+               % ferm
+               /three {
+                       newpath
+                       do_ferm         %do a right side up fermata
+               } def
+
+               % uferm
+               /four {
+                       newpath
+                       gsave
+                       0 270 lwid sub 800 add translate %baseline at bottom
+                       180 rotate                      %upside down
+                       do_ferm         %do a right side up fermata
+                       grestore
+               } def
+
+               % sign
+               /five {
+                       gsave
+                       %do upper left curved part, upper right dot;
+                       %then rotate 180 to do other half
+                       0 1 1 {
+                               pop     %we don't need the loop variable
+                               0 100 moveto            %inner boundary
+                               -1000 300 -400 750 -200 700 curveto
+                               -200 800 lineto         %outer boundary
+                               -550 900 -1100 100 0 -100 curveto
+                               fill
+                               %dot at end of curve
+                               -200 700 100 0 360 arc fill
+                               %dot in upper right quadrant
+                               500 200 70 0 360 arc fill
+                               180 rotate
+                       } for
+                       grestore
+
+                       %slash through middle
+                       lwid setlinewidth
+                       -400 -800 moveto 400 800 lineto stroke
+               } def
+
+               % coda
+               /six {
+                       newpath
+                       gsave
+                       0.6 1 scale
+                       0 0 550 0 360 arc       %outside boundary
+                       1 0.6 div 1 scale       %back to original
+                       0.9 1 scale
+                       0 0 650 0 360 arc       %inside boundary
+                       eofill
+                       grestore
+                       lwid setlinewidth
+                       0 -850 moveto 0 850 lineto stroke
+