Return |
Email Don Simons
What is PMX?
PMX is a preprocessor for MusiXTeX that produces nearly professional-looking
scores and parts with far less effort than would be required using MusiXTeX
alone. It has been under continuous development by Don Simons since 1993.
All files necessary for running the DOS version in a WIN95 DOS window are
contained in
pmx230.zip. The full instruction manual is in
pmx230.tex. There is also a
PDF version so you don't have to TeX it.
ref230.tex
(.pdf) is a summary of all the legal PMX "symbols"
(commands). It is very concise; a beginner
should still read the first few sections of the manual to get started.
Non-DOS users: You will either have to compile the FORTRAN source, or
check the
homepage, or see the
manual for locations of other versions,
or wait and other versions may appear on the homepage.
The latest beta version is 2.305. Here are the
changes since version 2.3. There's a ZIP
of the source and DOS/Win binary.
There's a backup web site for PMX at
http://members.home.com/donaldsimons/pmx/pmx.html
What's new since Version 2.20?
-
There is a new version of pmx.tex, which must be placed somewhere where
your TeX processor can find it.
- Unequal xtuplets. Use "D" with any xtup note to double the time value
of that note. For each "D" used, the number of notes in the xtuplet is
reduced by one. Use "F" instead of "D" if you want to print a dot on the
doubled note (Werner told me Bach did this sometimes).
- MIDI-only accidental. Activate by putting "i" anywhere in the
symbol for the note containing the accidental. This will cause PMX to
ignore the accidental during typesetting but honor it when making a MIDI
file.
- Continued rhythmic shortcuts: Up to now, to use "." or "," the two
affected notes could not be separated, so the first of the two could not
have any modifiers such as slurs or accidentals. Now that restriction
is removed. A note-symbol can start with "[blank]." or "[blank]," and
will be treated as if it were the it were the second member of the pair
in the old syntax. The basic note value will be held at that of the prior
note.
- Dynamics:
Process the file "dyntest.pmx" to see all the available letter-groups and
hairpins. To use, after the affected note, enter "D" followed by one of
the following "pppp","ppp","pp","p","ffff","fff","ff","f","mf","mp","fp",
"sfz",">", or "<" . The last two are diminuendo and crescendo, and they
are toggles...the first one of each starts the symbol and the next one
ends it. You can also enter position shifts, vertical as a signed integer
representing the number of \internotes, then horizontal as a signed number
representing number of notehead widths.
You may enter more than one D... on the same note. If you follow the
restrictions listed IN THIS PARAGRAPH, horizontal and vertical positions
will be automagically tweaked: No more than 3 D...'s, and only in the
order [hairpin end][letter-group][hairpin start] (but any one of the
three may be missing).
You may also try other combinations on a single note such as
[hp start][hp end] or [letter-group][hp start][hp end][letter-group],
but now you must manually enter any positional tweaks, and the horizontal
tweaks are limited to +/-6.3 notehead widths.
Hairpins must be contained completely within the same input block. At the
moment the syntax checking is minimal so you might be allowed to enter
nonsensical combinations. But do please report possible bugs.
Also, note these restrictions on hairpins due to MusiXTeX limitations:
(a) Length < 68mm,
(b) cannot wrap over a system break,
(c) must be horizontal, and
(d) only certain specific lengths are available so some horizontal
position tweaking may be needed when letter-groups and hairpins are
combined.
Lastly, there is a "Literal dynamics" option. In place of one the 12
letter groups, enter any text surrounded by double quotes. The text will
be literally used as the argument of a \zcharnote command. If not a TeX
macro, it will be printed in italics.
- Flip direction of a forced beam from whatever the default is: "[f"
- Line spacing equalization. This is activated with "Ae" right after the
setup data. It attempts to ensure equal spaces between the bottom line of
the bottom staff of one system and the top line of the top staff of the
next, regardless of how far anything extends into the gap. Extra space can
be inserted as required with the in-line TeX command \spread[n] in the line
prior to the added space, where n is the added space in \internotes.
- Midi balance Ib[n1]:[n2]:...:[nn] . One number for each instrument.
Each number is between 1 and 128 and represents the left-to-right position
of the stereo image of that instrument, with 64 being the center and
default. Must be entered at start and will apply to entire piece.
- MIDI velocity (volume) Iv[n1]:[n2]:...:[nn] . Same restrictions as
above, but each number is the volume level for the corresponding instrument.
- Single-slope beam groups [...]-[...]-...-[...] . Slope and height of
beam will be computed as if this were one single beam, but beam will stop
and restart at each "-".
- There is a bug fix correcting the horizontal position of certain
slur starts and stops on whole notes or longer. If you had manually
corrected this positioning in the past, you may need to re-edit your score
to make it come out right with the new version.
- The length of allowable text in the Volta command is increased from
10 to 20 characters. The text may contain TeX commands but may not contain
blank,"+","-","b", or "x".
- If some staves are made small, e.g. by in-line "\setsize2{\smallvalue}",
until now PMX could not know the size of the smaller accidentals when
checking and correcting horizontal spacing for possible crashes. Now
there is a command to tell PMX which lines have been reduced:
AS[-|0][-|0]...[-|0] , i.e. "AS" followed by exactly one "-" or "0" for
each staff. The does NOT change the size of the staff...you still must
do that with inline TeX. (Maybe someday...)
- Increased from 20 to 30 the maximum number of movement breaks and midi
sections.
- Fixed out-of-order common declarations per mutex comments
- Replacement xtup number. Simply enter an unsigned integer after the
"n" option on "x" on the first note of an xtuplet, and the integer will
be printed instead of the natural number.
- Improved centering of multibar rests and stacked full-bar rests.
- Numerous other minor bug-fixes. See comments at start of source
code for a more-or-less complete list.
Return |
Email Don Simons
Revised 13 May 2001