Change Log for Philip's Music Writer (Linux/Unix version)
---------------------------------------------------------


Version 4.06
------------

1. I had screwed up spectacularly in the representation of variable length 
   numbers in MIDI files, setting the top bits of the bytes to precisely the 
   wrong values throughout. This meant, for instance, that any long rests in a 
   piece threw the whole MIDI thing out, leading to chaos.
    

Version 4.05
------------

1. It is now possible to specify alterative MIDIvoices and MIDIperc files by
   means of the command line options -MV and -MP, respectively.
   
2. An incorrect MIDI file was written if there was more than one stave, and
   there were notes tied over bar lines. An attempt to play such a file using 
   Timidity caused it to stop at the point of error.
   
3. If just one bar is selected for MIDI generation, and it happens to be the 
   end of a repeat section, PMW does not now carry on to play the repeat. 
   
4. Added the -norepeats (synonym -nr) command line option, to suppress repeats
   in MIDI output.
    

Version 4.04
------------

1. Internal re-arrangement of flags for each note into two 32-bit words instead 
   of one, in order to get more flags available.
   
2. Added support for writing MIDI files. 

3. Added support for transposing chord names in text strings by means of the \t 
   escape sequence.


Version 4.03
------------

1. The PostScript music font PMW-Music has been converted from a Type 3 to a 
   Type 1 font. The file is now called PMW-Music.pfa, as per the normal 
   convention. This font should display better on the screen, and should also 
   be included in PDF files, thereby making the music therein display better.
   
2. Added three extra characters to the music font.

3. The PSheader file used a variable called PMSencoding, a hangover from the 
   previous incarnation. Renamed as PMWencoding.
   
4. If *include was used when the input was the standard input, that is, not a
   named file, PMW crashed. It no longer crashes; however, if the included name
   is not absolute, it cannot make it relative to the main input (because there 
   is no name). It just goes ahead and tries to open the file - that is, is it 
   taken as relative to the current directory. 
   
5. --help is now the same as -help, because some people are in the habit of
   using --help. 
   
6. Arguments in macro calls are now scanned (recursively) for macro calls. For 
   example, &a(&b) first expands &b, then uses the result as the argument for 
   &a. The use of & as an escape now applies only to non-alphanumeric 
   characters.
   
7. When cue notes and full-sized notes are vertically aligned, augmentation
   dots are supposed to line up. They weren't. In solving this, I've introduced 
   two states: in the default state, the dots are spaced proportionately 
   according to the size of the cue notes. There is a new option, invoked by 
   [cue/dotalign] which causes them to be placed so that they align with any 
   full-sized notes above or below on the same stave. This is useful when using 
   the cue facility for alternative notes.  
 

Version 4.02
------------

1. It was still saying "Scribe" in the PostScript output instead of "Writer".

2. Added -manualfeed to set the manual feed flag in the PostScript.

3. Put back the MIDI and playing directives for compatibility with old PMS
   files, though they have no effect.


Version 4.01
------------

1. Building problem. It was including one too many "/pmw" components in the 
path used for finding the PSheader and fontmetrics.

2. Crash if sluroverwarnings was set and the bar following a warning bar did 
not exist.

3. The -debug option wasn't behaving as documented (debug output to stderr). It 
was taking the next item on the command line as a file to write to. This is 
dangerous! It now behaves as documented.

4. PMW-Music change: when being processed by GhostScript, the widths of the 
short stave characters are now (incorrectly) set as long as the long stave 
characters. This gives a much better effect in the examples in the manual when 
converted to PDF. It may also give a better screen display.

5. The PostScript command "a4" was put in the output (this dates from very 
early PostScript printers). It seems to cause trouble with GhostScript, causing 
problems in the zoom window, and it doesn't seem to be necessary any more, so I 
have cut it out.


Version 4.00
------------

Version 4.00 is the first version ported from the RISC OS program for Unix-like 
systems. A lot of changes were made as part of the porting process. However,
the following changes were also made to the application-level logic of the
program itself.

1. Removed (commented out) code for playing.

2. Fixed a bug with very long arpeggio squiggles - buffer not big enough - 
which just doesn't show up on RISC OS.

3. A macro defined with arguments, but no text, didn't removed any arguments 
that were present when it was called. For example, if you had

  *Define X(1) @....
  
followed by &X(3) in the later text, "(3)" got left instead of being removed.

4. There was a place I forgot to record where the code was indirecting through 
a NULL pointer (for an empty string); on the Acorn this didn't produce an 
error.

****
