


                              ABC2Tab Information

This program takes its input from an ABC format file and writes an ASCII
Tablature file for the dulcimer or guitar.  Customized string tunings and
string counts may also be configured.  The ABC notation system was developed
by Chris Walshaw.  For complete and official documentation, see:

    http://www.gre.ac.uk/~c.walshaw/abc/

You can also reference:

    http://eddie.mit.edu/~jc/music/abc/ABC-FAQ.html

The ABC Notation system has been used to transcribe a wide variety of folk
songs.  There have been several programs developed to convert ABC files
into other formats (postscript, midi, windows just to name a few).  And
now there is ABC2Tab.

This program attempts to implement (or ignore when necessary) the standards
defined by the ABC Version 1.6 specification.  Extensions added by other
programs will be implemented as necessary.  When an information field
or notation feature cannot be translated into the ASCII Tab format, it will
be ignored.

    Ignored or partially implemented Features
    -----------------------------------------
        1) The E: field (I'm not typsetting postscript or mtex)
        2) Gracings.  (These are represented by a ~)
        3) Beams are not supported
        4) Midi extensions are ignored (%MIDI) including extensions:
           !hello!, "Am;1" and V: 
        5) Ties, Slurs, Up and Down bowings, and stacatto are
           ignored until I can find a suitable way to display them.
        6) Simple Tuples are handled, Advanced require more work.

A note about printing the output
--------------------------------
    Many (if not all) abc tunes converted to ASCII tablature will
    be longer than 80 characters.  I find the following hints helpful
    in printing the output.

    1) Set the printer in COMPRESSED and/or LANDSCAPE mode from the
       front panel controls on the printer and print the file using
       the DOS print command or the copy command (copy 1.tab lpt1:).
    2) Use notepad in Win95/WinNT and setup the printer for landscape,
       select the entire file, and set the font to the smallest courier
       font available.
    3) Read/import the text file (1.tab for instance) into a real
       word processor (like Microsoft Word) and select the entire
       file and set it to a small monospaced font.  You will be able
       to set the page into landscape mode if necessary and will be
       able to see what it looks like.

How it all works
----------------
 Usage: abc2tab.pl [-d#] [-f] [-g] [-h] [-m] [-s] [-u#] [-v] [-xxref] [abcfile.abc]
     -d -- adjust DOWN by this many octaves (Example: -d1)
     -f -- suppress footer annotations
     -g -- guitar style tab (High string on top)
     -h -- print this help
     -m -- mandolin tab 
     -s -- suppress interline spaces, add column for spaces in source
     -u -- adjust UP by this many octaves (Example: -u1)
     -v -- verbose
     -x -- single x reference to print

    The square bracket denotes an optional parameter.

    Invoking abc2tab without any parameters will print the usage and
    the footer information.  Using the -f option turns off the printing
    of the footer information.  (Useful if you're trying to print a book
    and only need the notation cheat sheet once.)

    NOTE: to capture the verbose output, redirect the output to a file
    using something similar to:
       abc2tab test.abc -v > abc2tab.log

Strings and Tunings
-------------------
    The number of strings and their tunings are defined within the header
    of the abc song using the comment delimiter (%%ABC2TAB:).  A "-g" command
    line option will overide these definitions and produce guitar tab.  If
    this definition is missing from the header, ABC2Tab will assume a 3 string
    dulcimer tuned to DAd (d is the melody string(s)).  Use of this "field"
    allow you to "fit" each song to your dulcimer assuming the song
    you're ABC2Tab-bing is somewhat diatonic.  For instance, I added
    defined the tuning for a song in the key of F as %%ABC2TAB:3 C C F:
    and the tab turned out playable.  Now I can play the tune in
    any tuning if I'm playing by myself, but must tune as specified
    to play with others.

    Insert the following line just before the K: field:

    %%ABC2TAB:D A d:3 String Dulcimer
              ^ ^ ^
              | | |
              | | +----Melody String (or highest tuned string)
              | +------Middle String (or next highest tuned string)
              +--------Lowest String (well, you get the idea)

    The text after the final : is for you to describe the tuning you
    chose.  It will be printed in the footer information.

    SUMMARY
    -------
    -g overides any %%ABC2TAB lines and produces guitar tab
    -m overides any %%ABC2TAB lines and produces mandolin tab
    no -g, -m and no %%ABC2TAB will produce DAd tuned 3 string dulcimer tab
    no -g, -m and %%ABC2TAB line will produce whatever tuning you specify 

Additions for Version 1.1.1
---------------------------
    1) incorporated mandolin tab changes from Jake Edge    - 2001 Nov 9
                          jake@edge2.net

Bugs Fixed in Version 1.1
-------------------------
    1) Used wrong perl2exe compiler switches to generate
       .exe code.                                          - Fixed 3/20/98

Alpha Bugs Fixed in Version 1.0
-------------------------------
    a) Was ignoring the ' for octaves (c'd' etc.)          - Fixed 10/18/97
    b) Fix "No output" problem where some abc produces no output
                                                           - Fixed 11/01/97
    c) Triplet notation (3abc                              - Fixed 11/04/97
    d) Interaction between "c'" & c' & c//                 - Fixed 11/07/97
    e) First, Second and other ending markings must be distinguished
       from chord/unison markings.                         - Fixed 11/12/97
    
New Features added since 1.alpha    
--------------------------------
    1) Added shift up/down by one octave                      - Fixed 11/02/97
    2) Added suppress interline spacing switch                - Fixed 11/02/97
    3) The history field (H:) accepts more thant only 1 line. - Fixed 11/02/97
    4) Added single xref printout option                      - Fixed 11/11/97
    5) Incorporate sample abc files into test.abc & cleanup   - Fixed 12/09/97
    6) Added guitar tab output option                         - Fixed 12/31/97
    7) Incorporate changes identified by the BNF specification- Fixed 12/09/97

Future Enhancements
-------------------
    Version 2.0
    -----------
    1) Support for words
    2) Hammer Dulcimer Tablature
    3) Add HammerOn/Offs, Bends & Pulls for slurs

Lyle Melick - lyle@melick.net
