PMX Version 2.3
19 February 2001
Don Simons
dsimons@logicon.com

If you are new to PMX, please read the Introduction in the manual pmx230
for general information.

Here are the changes since version 2.2

1. There is a new version of pmx.tex, which must be placed somewhere where
your TeX processor can find it. 

2. 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).

3. 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. 

4. 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.  

5. 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 
  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. 

6. Flip direction of a forced beam from whatever the default is: "[f"

7. 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.

8. 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.

9. MIDI velocity (volume) Iv[n1]:[n2]:...:[nn] .  Same restrictions as 
above, but each number is the volume level for the corresponding instrument.

10. 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 "-".  
 
11. 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.  

12. 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".

13. 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...)

14. Increased from 20 to 30 the maximum number of movement breaks and midi 
sections.

15. Fixed out-of-order common declarations per mutex comments

16. 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.

17. Improved centering of multibar rests and stacked full-bar rests.

18. Numerous other minor bug-fixes.  See comments at start of source 
code for a more-or-less complete list.

--Don Simons
  dsimons@logicon.com
