-----------------------------------------------------------------------------
This is the change log for jcabc2ps, John Chambers' clone of abc2ps. Like the
original program, this is all licensed under the terms of the GPL (GNU Public
License).  See GPL.txt for details.  Send bug reports to:
  John Chambers <jc@trillian.mit.edu>

-----------------------------------------------------------------------------
2003.01.28
  V:  definition lines can now be in the header section.  Bug fixed:  Bombing
  while parsing a weird "M:C6=140" line.

-----------------------------------------------------------------------------
2002.11.02 thin+thick+thin triple bars
  The symbols |[| and |]| now correctly draw a thin+thick+thin triple bar in
  the middle of a staff.

-----------------------------------------------------------------------------
2002.09.30 Simplified EPS output option
  The EPS output is confusing:  A name is needed because EPS is  written  one
  tune  per file, and a 3-digit counter is added before the '.' in the output
  file name.  The '+E' option now takes a file-name argument  just  like  the
  '+o' option. What to do if no name is given is still not decided. What will
  be done now is to write them all, catenated, to stdout.  Some  PS  software
  may be able to handle this ...

-----------------------------------------------------------------------------
2002.09.28 Fixed bug in |-less [ endings.
  Endings with just [ but no | weren't drawn when they were at the start of a
  line.

-----------------------------------------------------------------------------
2002.09.27 Bug fix:  Wrong adjustment for V:...clef=bass
  Fixed a bug that sometimes put notes on the wrong line when  clef=bass  was
  used in a voice description.  It was a wrong sign.

-----------------------------------------------------------------------------
2002.09.18 Option revision
  Converted the rest of the command-line options to consistently use '+'  for
  "yes"  or "enable" and '-' for "no" or "disable".  This should help me keep
  my sanity when writing complicated commands.  And it should make a  general
  web interface a lot easier to write.

-----------------------------------------------------------------------------
2002.09.15 Tenor clef
  Added "tenor" as a clef name.  It's really just an alias for "treble-8".

-----------------------------------------------------------------------------
2002.05.21 Option revision
  Converted the 'B' option to use "+B" for "on" and "-B" for "off". Also, the
  numeric arg may be attached or in the next arg.

-----------------------------------------------------------------------------
2002.05.20 Quoted ending text
  Added code to parse_ending() to recognize ["text" as an ending label.  This
  should handle most of the special-case endings.

-----------------------------------------------------------------------------
2002.04.25 Option revision
  Added F to the list of +/- options. The following are recognized:
     jcabc2ps Foo.abc +F _75  % Read format from _75.fmt
     jcabc2ps Foo.abc +F_75   % Read format from _75.fmt
     jcabc2ps Foo.abc -F      % Don't read a format file (default)

-----------------------------------------------------------------------------
2002.04.01 Option revision
  The 'i' option  has  been  changed  to  use  the  +/-  system;  +i  enables
  interaction and -i disables it.  Also, the help messages have been modified
  to show the changed options.

  The jcabc2ps.d document has been started, and  information  collected  from
  various other places.

-----------------------------------------------------------------------------
2002.04.15 Option revision
  Started the process of revising the confusing command-line options.   First
  (and probably most difficult) revision:  The -O option is gone. The default
  PS output is to stdout, and all diagnostic output is to  stderr.   The  'o'
  option  uses '-o' to mean "disable" and '+o' to mean "enable".  For "+o", a
  file name can be appended (with or without a separating space); the default
  is  stdout.   This allows jcabc2ps to be used in pipelines like an ordinary
  unix filter process. If you want PS output, you can now ignore this option,
  and use >foo.ps to name the output file.  The following are equivalent:

    jcabc2ps Foo.abc -o Foo.ps % Write output to Foo.ps
    jcabc2ps Foo.abc -oFoo.ps  % Write output to Foo.ps
    jcabc2ps Foo.abc >Foo.ps   % Redirect output to Foo.ps

  Part of the motive for this was writing the PShdr and PSftr tools that  add
  header/footer info to arbitrary PS files.  You can now do something like:

    jcabc2ps Foo.abc | PShdr Foo "" Foo | PSftr %D $(URL) %P >Foo.ps

  to get a page with the name at the top left and  right,  the  date  on  the
  bottom  left,  the  page  number  on  the bottom right, and a URL at bottom
  center.

  The -n option is now +n; -n means to suppress printing the notes.
  The -x option is now +x; -x means to suppress the index numbers.

  The -b and -c options are less confusing:
    +b (break) means to break at all line ends, even if there's a \.
    -b means to honor \ at the end of a line.
    +c (continue) means to act as if all lines ended with \.
    -c means honor line/staff breaks.
  This is still somewhat confusing. The default is -b -c.

  The use of +/- option flags to mean "enable/disable" or "yes/no"  is  being
  encouraged in some circles ...

  The Makefile no longer makes any ps files by default. There were getting to
  be just too many test "tunes".  Use "make test" to get them all.

-----------------------------------------------------------------------------
2002.01.23  Spurious bar lines

  Added code to parse_bar() to reduce extra bar lines. These now work without
  any warnings:
    ||: ... :||
    [|: ... :|]
    ||| ... |||
    [|| ... ||]

-----------------------------------------------------------------------------
2001.11.29  Balkan tempos.

  This now works:

  Q: 4/8 3/8 4/8=70

  The result is three notes (half, dotted eighths, half) plus "=70" drawn  in
  the  "tempo"  slot above the staff.  Now if we could only get the makers of
  electronic metronomes to implement Balkan rhythms ...

-----------------------------------------------------------------------------
2001.03.24  Clefs and Voices.

  Clefs with -8 and +8 modifiers.

  The clefs may have -8 or +8 appended, and the  little  8's  will  be  drawn
  below or above the clef.  This doesn't affect anything else.  Example:
    K: G treble+8   % piccolo or soprano recorder clef
    K: G treble-8   % tenor vocal clef
    K: F bass-8     % contrabass viol

  K: lines accept clef=<clef> and middle=<note>

  In K:  lines, only the bare words "treble", "alto" and "bass" were allowed.
  Now you can prefix them with "clef=", as is done in V: lines. Also, you can
  specify the mapping of ABC letters to staff lines with the "middle=" field.
  The defaults are:
     clef=treble middle=B
     clef=alto   middle=c
     clef=bass   middle=d
  Some ABC programs use a different mapping, for which the  clefs  are  drawn
  but  notes  still  have their treble values, giving bass notes with lots of
  commas.  This sort of ABC can be handled by adding to the K:  lines:
     K: ... clef=alto middle=C
     K: ... clef=bass middle=D,

  As a special kludge, by popular demand, we also accept the following:
    V: ... treble,    % same as clef=treble middle=B,
    V: ... alto,      % same as clef=alto   middle=C
    V: ... bass,,     % same as clef=bass   middle=D,

-----------------------------------------------------------------------------
2000.07.18
  Extended keysigs and repeats

  Implemented extended key signatures of the form:
    K:<tonic><mode><accidentals>
  where all three of the fields are optional.  If both <tonic> and <mode> are
  given,  the  appropriate  accidentals are generated.  If there is a list of
  <accidentals> in addition,  they  are  added  to  the  mode's  accidentals.
  K:<tonic><accidentals>  gives  only  the  listed  accidentals; the tonic is
  effectively ignored (but may be used  by  other  software  such  as  search
  programs).

  Lots and lots of log messages added.

-----------------------------------------------------------------------------
2000.05.24 Extended ending syntax.
  The syntax for an ending may be any string  consisting  of  the  characters
  "0123456789,-x". The string is simply copied to the output under the ending
  bracket.

  Repeats have been extended in two ways. The colons at the start or end of a
  repeat  may  be  repeated, and they will all appear in the music.  Thus the
  notation
    |:: ... ::|
  means to play the phrase three times.  Multiple endings may be indicated by
  any  string  of "0123456789,-.x" characters after a bar line.  A four-times
  repeat with two endings might be:
    |::: ... |1,3 ... :|2,4 ... :|

-----------------------------------------------------------------------------
2000.05.20
  The 'y' invisible rest added by cloning code for 'x' invisible rest.  These
  are synonyms for a formatter like abc2ps.  The differences is: The 'x' rest
  is played;  the  'y'  rest  is  not.   Both  produce  a  L-width  space  in
  displayed/printed music.

-----------------------------------------------------------------------------
2000.05.20 Branch created by John Chambers <jc@trillian.mit.edu>

  Renamed abc2ps to jcabc2ps to make clear the split.

-----------------------------------------------------------------------------
-------------------- jcabc2ps version 2.0 (experimental) --------------------

1999.12.13 Fixed slurs/ties into first and second endings.


----- Version 1.4.0 (experimental) -----

1999.12.06 added audio playback.
       Chords,  grace  notes,  multiple  voices,  and  repeats  work.    Note
       decorations are ignored.

       Usage:  Flag -a instructs to write audio file Abc.au together with the
       usual  postscript  output.   It  is not possible to get the audio file
       without the postscript.  The output is in Sun/Next  audio  format,  as
       indicated  by  the extension au.  The au file can then be played using
       something like "audiotool" or "soundtool" on a Sun, or by  catting  it
       to  /dev/audio, say on Linux.  Doubleclicking in Windoze probably also
       works, depending on the specific operating system. Flag -a implies -o.
       The  tempo  can  be set with flag -Q and defaults to 120 quarter-beats
       per minute.  There are  some  different  "sounds",  oriented  somewhat
       towards  specific musical instruments, as far as this can be done with
       simple means.  These are selected with flag -q (for "quality").

       Thus:

          jcabc2ps -o infile           - makes Postscript only, as usual.
          jcabc2ps -o infile -a        - makes both Abc.au and Postscript
          jcabc2ps -a infile           - same as above
          jcabc2ps -a infile -Q 160    - does the same with tempo Q=160
          jcabc2ps -a infile -q135     - uses audio quality 1,3,5 for the first,
                                       second, and third voice, respectively.

       Alternatively, pseudocomments can be used in the abc input file or  in
       a .fmt file, for example:

          %%playtempo 160 %%auquality 135

       To see the parameters  whcih  determine  the  audio  output,  set  the
       verbosity to 5 or higher (ie.  use -v5).

       To compile:  you can use the supplied audio functions in sox.h  (taken
       from  playabc) or (on a Sun) use the system library.  Edit Makefile to
       set CC, CFLAGS, and LDFLAGS appropriately then type make.

       The waveforms are generated on the fly, which is  a  bit  slower  than
       writing Postscript only. Sine wave samples are significantly faster to
       generate than triangle or sawtooth waves.

       Currently the sound qualities are  somewhat  along  these  lines  (but
       please don't take this too seriously!):

          1  piano
          2  accordeon
          3  flute
          4  cembalo
          5  organ
          6  guitar, or bass, or something else plucked.



1999.07.08 Improvements by Christoph Dalitz:
     o Source spread over several source files. Makefile added.

     o cap_str (util.c):
       system call toupper used, so that umlauts
       are translated as well (depends on locale)

     o isdigit (util.c): removed (are already in ctype.h)

     o isblank (util.c): replaced with isblankstr
       (confusion with isblank in ctype.h)

     o def_staff (syms.c):
       linewidth increased (0.6 instead of 0.5)

     o new clef "treble8" (modern tenor clef)


----- Version 1.3.2 -----

1998.08.10 Added new codes for accents (cf. sample.abc):
          k: Accent which looks like >
          K: Accent which looks like an upside-down V.


1998.08.05 Added bar numbering and bar labels.

       Bar numbers:

       to switch on bar numbering, use flag -k
       where:   -k 1     numbers every bar
                -k 5     numbers every fifth bar, etc.
                -k 0     numbers the first bar in every staff.
       or, use the equivalent pseudocomment %%barnumbers <number>.
       (Note: -k was used because it sounds a bit like "count".)

       The program counts through the bars automatically, trying  to  do  the
       right thing at first and second endings.  Namely: it remembers the bar
       number at the start of the first ending, then resets to that value  at
       the  start  of  the  second  ending.   So, if there is a tune with 2x8
       measures with first and second endings after  the  first  8  bars,  we
       still end up with 16 bars in total.

       Within  one  tune,  bar  numbers  are  counted  through   over   parts
       boundaries.   However,  if  a T:  title appears inside a tune, the bar
       number is reset to 1.  You can use an empty T:  line to reset the  bar
       number without actually writing a title.


       Bar labels:

       This is intended for large letters A, B, C...  to mark specific points
       in   the  music.   They  are  coded  by  using  a  syntax  similar  to
       guitarchords, but placed before a bar line instead of a note or  rest,
       e.g.:

          | abcd "A"| ABCD |

       places the letter A over the second bar line.  Just in  case  somebody
       wants  a  label on the first bar (which is often not preceded by a bar
       line), a new symbol [|] was introduced for an "invisible" bar line.


       Fonts for bar numbers and bar labels:

       These can be set in the usual way with the two pseudocomments
       %%barnumberfont and %%barlabelfont.

       In printed music, the bar numbers  are  often  made  more  visible  by
       putting a box around them.  This is now also possible.  In fact, a box
       can be put around most bits of text by adding the word  "box"  to  the
       font specification, e.g.:

          %%barnumberfont Times-Italic 11 box

       This can be done for the title, guitarchords, vocals, etc.  To  switch
       on  the box without changing the font style and/or size, the character
       * can be used, as in:

          %%titlefont * * box


       A reminder: to see all the style specifications use 'jcabc2ps -H' (for
       the standard format) or 'jcabc2ps -PH' (pretty2 format).  This gives a
       list suitable for placing in a .fmt file.  To modify  settings  for  a
       single  tune  only,  place the pseudocomments after the 'T:' lines and
       before the 'K:' line in the tune header.


       Examples: look at celloprelude.abc for examples of bar numbers and bar
       labels. Try 'jcabc2ps -maxv 8 -k0 bran5' or 'jcabc2ps -k0 bach' to see
       bar numbers at the start of the line, as is often used for scores.



1998.07.20 Fixed bug overwriting when lvoiceid too short.

----- Version 1.3.1 -----

1998.07.12 A number of enhancements to format multi-stave music nicely.
       For examples, see files trio.abc bran5.abc voices.abc bach.abc.

       In detail: indentation of the first staff, labels for voices,
       braces and brackets to group voices, and some additional
       parameters in the V: line to control the output.

       As before, the syntax of the V: line is

          V: <label> <par1>=<value1> <par2>=<value2>  ...

       where <label> is used to switch to the voice in later V: lines.
       Each <par>=<value> pair sets one parameter for the current voice.
       There are now alternate short version of the parameter names.


       List of the parameters allowed in a V: line:

       parm   short   example and description
       ----------------------------------------

       name    nm     nm=Violin I"
                      This sets the long version of the voice name, to be
                      written before the staves at the start of a piece.
                      If the string contains \\, this is interpreted
                      as a line break and the pieces are writen above
                      each other.

       sname   snm    snm="Vl. I"
                      Short version of the name, written before
                      subsequent staves.

       clef    cl     clef=bass
                      Chooses the clef (treble, alto, or bass).
                      It can also be bass+8 and so on.

       staves  stv    stv=2
                      This is the number of staves (starting from the
                      current one) to connect by tall vertical bar lines.

       brace   brc    brace=2
                      This is the number of staves (starting from the
                      current one) to be grouped together with a brace.
                      When this option is used, the name defined in the
                      same V: line is written at the center of the brace.

       bracket brk    brk=4
                      The number of staves to be grouped together by
                      a bracket. This option does not change the way
                      in which the names are written.

       space   spc    spc=40
                      This defines or modifies the vertical space between
                      this staff and the one below it. The space can be
                      given in pt (default) or with a unit in the form
                      1cm or 0.4in. Furthermore: if a + or - sign
                      comes after the start of the number, the value
                      is an increment to be added to or subtracted
                      from the default setting.

       gchords gch    gch=0
                      This controls whether any guitar chords
                      embedded in the current voice are actually written.
                      True/false are specified as for the %% formats.

       stems   stm    stems=up
                      This is parsed but not yet used in the program.


       New format directives:

          %%voicefont       font to write voice names with

          %%indent <dim>    amount to indent the first staff.
                            Indentation is done at the start of
                            the piece and after a T: field, but not
                            after a P: field.

          Note: the margin still refers to the left edge of the staff.
          Therefore, parameters %%leftmargin %%staffwidth %%indent
          should be adjusted to leave room for the voice names.


       New command-line flag:

          The -V flag was redefined to select voices for output.
          The old function ("show version") was integrated into -h.
          The format is as in this example:

             jcabc2ps -o input.abc -V 1-2,4

          This will generate output only for the specified voices.
          Specifically, a single voice can be extracted.


       Other changes:

          For a rest which fills out a complete measure, the symbol
          for a full rest is drawn in the center of the bar, independent
          of the the time signature.

          Added K for strong emphasis decoration (upside-down V).




1998.05.31 L: after header but before first voice now sets default length
       for first voice, named "1".

1998.05.12 Tab interpreted as space in music lines.

1998.04.01 Fixed Q:C=xxx for multi-stave version.

1998.03.19 Run-time allocation for symbols and voices.


----- Version 1.3.0 -----

1998.03.03 Multi-stave music added.

       To switch to a different voice, use a line starting with 'V:'.
       An example for the most general form supported now is:
          V:2 name="Clarinet 2" short="Cl.2" clef=treble stems=down
       Note that the "2" is a treated as a string, so any single-word
       identifier can be used instead. Later in the tune,
       switch to the voice using only
          V:2
       The various settings (key, default length, etc) are
       maintained for each voice separately.

       Guitar chords, first and second endings, and line breaks are
       taken from the top voice only. Vocals can be set under each
       voice separately.

       To format the output, two %% format directives were added
       which determine the staff spacing: %%systaffsep %%systemsep.

       It turned out that the note spacing should be slightly
       different for multi-stave music. Namely, it is often a good
       idea to space the notes somewhat more strictly according
       to their duration than in single-stave music. There is now
       a new parameter called "strictness" which the user can use
       to adjust this. For strictness=1, the spacings for notes
       with short durations is reasonably strictly proportional to
       their duration. For strictness=0, they are spaced about
       equally. Good defaults are strictness=0.5 for single-stave
       music and strictness=0.8 for multistave music.
       These parameters can be changed with the -X flag or
       with %% statements in the abc file or in a .fmt file.
       When using -X, a flag such as -X 0.6 will change both
       values. To change them separately, use something like
       -X 0.3,0.7 on the command line.

       As usual, %% directives can be inspected with abc -H
       and help about flags is obtained with abc -h.

       Files voices.abc and bach.abc have examples for multistave
       music.

1998.03.01 Changed -d flag to accept incremental changes such as -d-5
       or -d+5.

1997.12.28 Transposing added. Also double sharp and double flat symbols.
       To transpose: use flag -t in two possible ways.
       (1) Specify the new root explicitly using the form
           -t XX   where XX is the new root note. For example:
             -t C   or   -t Bb  or  -t C#
           This shifts either up or down, depending on which shift is
           smaller. To force up or down direction, use prefixes ^_ eg.
             -t ^C   or   -t _C
       (2) Specify the number of halftones to shift by in the form
           -t nn  where nn is the number of halftones.
           For negative shift, use either a sticky argument
           such as -t-2 or prefix with underscore, eg -t _2.

       In any case: the program first decides how many halftones
       to shift the pitches by. This number is kept fixed throughout
       the whole tune. In this way, key changes within the tune
       are treated properly.

       To obain information about the transposing process, set the
       verbosity to 3 or 4 (ie:  -v 3  or  -v 4).


1997.12.24 Shift up guitar chords over n-plet brackets.

1997.12.15 Some modifications to extent of 1st and 2nd endings.

1997.11.29 Q: field now prints out tempo denotations.
       General form is Q: w1 w2 w3.. where each word is either
       a string in double quotes such as "Andante" or "Bossa Nova"
       or a tempo denotation such as C or C=120 or 120.
       Strings are printed directly, denotations are translated
       to the form note=100. Font is in new format field "tempofont".

1997.11.29 Guitar chords positioned a bit more nicely (centered,
       except if especially wide).

1997.11.29 Added blank-delimited +8 and -8 as extensions to key specifier.
       Function: write all notes higher or lower by one octave.

1997.11.02 Words for vocals now centered under each note, looks nicer.
       Changed left/right spacings to get better positioning for
       single note in a bar.

----- Version 1.2.5 -----

1997.10.05 Added page numbers for flag -N.

1997.10.05 Support for all modes (Wil Macaulay)

1997.08.07 Added "x" for rests which are invisible.

1997.07.14 Slurs and ties within chords improved, for example:
       [(a(b] [c)d)]  slurs a to c, b to d
       [a-b] [ac]     ties a to a

1997.07.14 Grace notes can be before or after guitar chord:
       "A"{A}Bc  and  {A}"A"Bc  both work.

1997.05.06 Fixed bug which sometimes put stems onto whole notes.

1997.03.06 Begintext lines can start with %%, to permit usage
       in header fields and avoid conflict with other programs.

1997.02.17 Made txt array global.. avoid stack problems on Mac.
       Added extra buffer flush at file end.

1997.02.15 C (alto) clef added, invoke with "K: alto"

1997.02.10 Now  \- in vocals for '-' without breaking the word.
       Changed to work even if no 'T:' field.
       Fixed bug: did not print 'O:' if no 'C:'.

1997.02.09 Added "%%titlecaps" format statement.

1997.02.07 Introduced decoration T for "tr" above a note.

----- Version 1.2.4b -----

1997.02.06 New: text, page formats, pseudocomments, bass clef.

1997.02.02 In-line escape sequences now also [..]

1997.01.23 removed "or:" from subtitles.


----- Version 1.2.3-x1 -----

26.11 Added aligned vocals under the staff. Example:
    BA |: "Gm"G2AB|"C7"cd2e|"F"f2fe|"Dm"dA2d|
    w: Close your eyes and I'll kiss you, to-mor-row I'll miss you; re-
    "Bb"d2dc|"Gm"B2GF|"Eb"G4-|G2 z2|
    w:mem-ber I'll al-ways be true._
    Syntax:
       Words are given in line starting as w: under music line.
       Words are aligned one-by-one with the notes.
       * skips one note.
       | tabs forward to next bar line.
       Hyphenations make two syllables, with "-" between them.
       Underscore draws horizontal line from last word to note.
       Blanks can be dropped around special chars (* | - _ ).

19.11 Added bagpipe mode for K:HP.
    Added landscape orientation for flag -l.

05.11 Put in some first pseudocomments to format output:
    %%sep                         - writes a standard separator
    %%sep topspace botspace len   - custom separator
    %%newpage                     - force page break
    %%text This is a line..       - write a line of text
    %%vskip xx                    - add vertical space in cm

06.10 Added 32nd and 64th rests, 64th notes.
    Accidentals and grace notes more spaced when room.
    Correct treatment of slurs at 1st, 2nd endings.

----- Version 1.2.2 -----

22.09 Words like "aza" now under one beam with rest under it.
    Output "Origin" field in parens together with composer.
    Added ties between chords.

20.09 Keysigs such as "3+4/8"  "78/8"  "7 8/8" allowed.
    Slopes of beams tuned a bit.
    Fixed bug in position of tilde over stem.
    Choose same stem directions on neighbors where reasonable.

15.09 Small random horizontal shift of notes improve readability,
    see RANFAC. Adjust internote spacing according to jump in pitch.

05.08 Consistent handling for word breaks at end of input line.


----- Version 1.2.1 -----

28.07 Added W: for words of song.
    Include notes, discography, transcription in output for -n.
    Removed bug: ninf=0 messed up usage "jcabc2ps -h".

26.07 Fixed: swallowed meter change sometimes.

21.07 Correct handling of last line of file even if not terminated
    by a newline character.
    Some fine-tuning for beam position when more than one beam.
    For staff middle, use stem direction from previous note.

18.07 More tolerant of misuse of guitar chords to write general stuff
    above staff; now OK if "...." is alone on a line.
    Minibug in syms.h: 'staff' left junk on PS stack.

17.07 For -c mode: don't complain about underfull; don't stretch
    last staff much when underfull (new parameter BETA_C).

16.07 Fixed obscure bug.. after overfull, sometimes took duration for
    chord from wrong note, because heads were sorted by pitch.
    Also: use shrinkage from previous staff for undefull last staff.

15.07 Move slide further away for notes with accidentals.

09.07 Selectors before first file also valid; apply to first file.
    Took out atof & atoi calls; main now returns int; changed
    function names def_HD,def_Hd,def_hd.


----- Version 1.2 -----

06.07 New flag -O to set output file.

26.06 Added general n-plet syntax "(p:q:r".

10.06 Slurs fatter in middle.
    Hold (fermata) added code=H.
    Changed code for bar to M (em-phasis).
    Added up and down bow u,v.

09.06 Thick-thin, thin thick bars now [| and |].
    Ties a-b-c now done correctly.
    Carryover slurs at start and end of line.

08.06 Flat beams shifted to consistent positions relative to staff.

07.06 Set beta0 to avoid infinite stretching.
    Redid key changes.. mcl.abc Cm-> C was wrong.
    Fiddled some with slurs.

05.06 Fixed: accidental was too close on full note.

03.06 fix up n-plet cases: (1) on beam with other notes,
    (2) draw bracket if not on same beam.

03.06 New flag -E to make EPS files eps001.ps, eps002.ps ...

02.05 Guitar chord can be put anywhere before note.
    Changed note placement for single note in bar.

30.04 Mutiple decorations permitted on one note.
    Bar for broad emphasis added, code is R.

29.04 Unions: chord with two identical notes like [CC]

29.04 Slide added, code is J.

26.04 Output buffer takes care of page breaks.

----- Version 1.2x -----

[v1.2-x7]

11.04 Output to <file>.ps possible; set OUTPUTFILE in jcabc2ps.c

[v1.2-x6]

28.03 Can do normal or pretty output, depending on flag -p.
    Layout parameters bundled as macros in main.

[v1.2-x5]

21.03 Changed roll symbol some more.
    Put extra \n at end of Out.ps.

[v1.2-x4]

17.03 Fixed nasty bug for selection by xref; now ok on NeXT.
    Changed roll symbol.

[v1.2-x3]

14.03 Added roll sign as optional way to draw ~.
    Changed program to avoid all 'gcc -Wall' warnings.

10.03 Fixed wrong dimension for line in do_index (macro BSIZE)

08.03 Took out '#copies..' in PS file.
    Added -m flag to set margin.

06.03 Added flag -i and interactive mode.
    Fixed bug in beams, which wrote funny numbers over some beams.
    Added "newpage" as option for E: field.

04.03 Added -f flag to permit different selectors for different files.

    Changed meter change within tune: for change at start of line,
    generally writes the symbol (even if the meter did not change),
    but not if the meter change was used only to set the default
    length with 'l' or 's'.

    Removed math calls: cos(phi) and sin(phi) defined explicitly
    in syms.h, also removed sqrt for beam test in music.h.
    Advantage: now compiles without -lm flag.
    (Note: '#include <math.h>' still needed for atof ??)


----- Version 1.1 -----

24.02 Changed to multiple input files, added -e flag to identify
    selectors in argument list.

14.02 Outputs "book" field also for -n flag.
    Chord font changed to Helvetica 12.



