Welcome To The ABC Player.

This program was designed to play ABC text files via the midi/sound card on a PC.

File Menus
OPEN : Opens a ABC Text files of your choice.
SAVE : Saves the presently selected tune in MIDI format for use in other Midi programs.
EXIT : Exits the program.

Edit Menus
TUNE FILE:  Loads a simple text editor which allows the editing of ABC Text files.
REFORMAT:   Allows reformatting of the ABC Text files; it has two main functions:
	1.  Renumbers the X field starting from a user-selected point in ascending order.
	2.  Replaces all instances of Rolls with triplets in the selected ABC Text file.
PASTE TUNE: Loads a tune saved on the clipboard into the Tune Text window,
	    which can then be played or saved in midi format.
COPY TUNE:  Copies the present tune in the tune text window to the clipboard.
ADD TO: These were designed to aid in the manipulation of tunes

 Copy Clipboard to Current File: Adds the text in the clipboard to the 
                                        end of the current opened file. 
 Copy Current Tune to File: Adds the text in the TUNE TEXT window to a selected file.
                 This allow the user to copy tunes from file to file or other sources
                    ( copied from Email and simply pasted into the program )
                  and then adds them to any other ABC file.
					

Notes Menus
VELOCITY: Sets the default velocities for note playing.
LENGTHS: Sets the length of notes and space between notes (ie staccato, end of phrase etc).
REPLACE TRIPLETS:  This option replaces rolls with triplets when playing a tune without 
                   affecting the original text.

Midi Menus
DEVICE: Selects the output device for playing the tune.
CHANNEL: Selects the midi channel used.

Options Menu
SAVE CONFIG ON EXIT: Option that allows saving of present configuration on exit.
DEFAULTS: Loads a set of programme defaults that affects most parameters.
EDITOR:Alows the choice of editor used (set to blank for internal editor)
MINOR AS: Selects what type of scale is used for the minor key (ie. Em).
CLICK ON START:  Option that switches whether a lead-in click is heard
before the tune starts. 


Main Screen Options
QUICK: Plays a tune ignoring all repeat symbols; helpful for quick checking of tune.
GRACE: Select option for playing of grace notes.
ROLLS: Selects whether rolls are played as long note or roll.
REPEAT: Allows the tune to be repeated.  (Number of repeats set in upper right-hand corner.)

For more information on ABC V1.5
see an introduction to abc notation available by anonymous ftp from
        celtic.stanford.edu/pub/tunes/abc2mtex/INTRO.txt
or, if you have WWW access,
        http://celtic.stanford.edu/pub/tunes/abc2mtex/INTRO.html
(below is a condensed and modified version of the introduction to abc notation)
-----------------------------------------------------------------

                    The abc Notation System
                     =======================
(Note--The ABC Player only uses at present a subset of the notation system)

                      Information fields
                      ==================
Each tune consists of a header and a body. The header,  which  is composed of information
fields, and should start with an X (reference number) field followed by a T (title) field then the
M:(meter) and finish with  a  K(key)  field. (an optional Q:tempo is also supported)
The body of the tune in abc notation should follow immediately after.
Tunes are separated by blank lines.

The  information  fields  are  used  to  notate  things  such  as composer, meter, etc. in fact 
anything that isn't music. (Most of the information fields are for use within a tune  header  but
in addition  some  may be used in the tune body.
The rest of the information fields are presently ignored but the composer,source,history and
notes will be implemented in later versions as time permits.

Some additional notes on certain of the fields:-

T - tune title. Some tunes have more than one title and  so  this field  can  be used more than 
once per tune -The selected title is appended to the Midi output as the track name.

K - key; apart from major and minor  keys,  e.g.   K:D  or  K:Am, mixolydian  and  dorian  
modes  can  also  be specified with, for example K:AMix  or  K:EDor.  In  addition,  there  are  
two  keys specifically  for  notating  highland bagpipe tunes; K:HP or K:Hp marks the 
stave with F sharp, C sharp and G natural.

M - meter; apart from the normal meters, e.g.   M:6/8  or  M:4/4, the symbols  M:C  and  M:C|
give common time (4/4)  and cut time (2/4) respectively.

(P - parts; can be used in the header to state the order in which the  tune parts are played, i.e.
P:ABABCDCD, and then inside the tune to mark each part, i.e.  P:A or P:B.)
(presently not implemented)
Q - tempo; can be used to specify the notes per minute, e.g.  the  default  note length is an
eighth note then Q:120 is 120 eighth notes per minute. 
Tempo values between 10 and 250 are allowed.

H - history; can be used for multi-line stories/anecdotes, all of which will be ignored until 
the next field occurs.

                                               abc tune notation
                                              =================

The following letters are used to represent notes:-

                                                      d'
                                                -c'- ----
                                             b
                                        -a- --- ---- ----
                                       g
 ------------------------------------f-------------------
                                   e
 --------------------------------d-----------------------
                               c
 ----------------------------B---------------------------
                           A
 ------------------------G-------------------------------
                       F
 --------------------E-----------------------------------
                   D
 ---- ---- ---- -C-
            B,
 ---- -A,-
  G,

and by extension, the notes  C, D, E, F, e' f' g' a' and  b'  are available.
Notes can be modified in length (see below).

  Rests
  =====
Rests are generated with a z and can be  modified in  length in exactly the same way
as notes can (see below).

  Note lengths
  ============
Each meter automatically sets a default note length and a  single letter in the range A-G, a-g will
generate a note of this length..
Notes of differing lengths can be obtained by  simply  putting  a multiplier  after the letter. 
In 4/4, A or A1 is a sixteenth note, A2 an eighth note, A3 a dotted eighth note, 
 A4  a  quarter note,  A6 a dotted quarter note, A7 a double dotted quarter note, A8 a half note
, A12 a dotted half note, A14 a double dotted  half note,  A15  a triple dotted half note and so on,

To get shorter notes, either divide them -
 e.g. in4/4,    A/2 is a   thirty-second  note,
                     A/4  is  a sixty-forth note -etc  
 Alternatively,  if  the music has a broken rhythm, e.g. dotted eighth note/sixteenth note pairs,
 use broken rhythm markers (see below).  Note  that  A/  is shorthand for A/2.

  Broken Rhythms
  ==============
A common occurrence in traditional music is the use of  a  dotted or broken rhythm.
 For example, hornpipes, strathspeys and certain morris jigs all have dotted eighth notes
 followed  by  sixteenth notes  as  well  as  vice-versa  in  the  case of strathspeys. 
To support this abc notation uses a > to mean `the previous note  is dotted, the next note halved' 
and < to mean `the previous note is halved, the next dotted'. Thus the following lines all  mean 
 the same thing (the second version is recommended):

  a3/2b/2 c/2d3/2 abcd
  a>b c<d abcd

As a logical extension, >> means that the first  note  is  double dotted and the second quartered 
and >>> means that the first note is triple dotted and the length of the second divided  by  eight.
 Similarly for << and <<<.

  Duplets, Triplets, Quadruplets, etc.
  ====================================

These can be simply coded with the notation (2ab  for  a  duplet, (3abc  for  a triplet or (4abcd for
a quadruplet, etc., up to (9. The musical meanings are (so I'm told):

 (2 2 notes in the time of 3
 (3 3 notes in the time of 2
 (4 4 notes in the time of 3
 (5 5 notes in the time of n
 (6 6 notes in the time of 2
 (7 7 notes in the time of n
 (8 8 notes in the time of 3
 (9 9 notes in the time of n

If the time signature is compound (3/8, 6/8, 9/8, 3/4, etc.) then n is three, otherwise n is two.

  Repeat/bar symbols
  ==================
The symbols | || :| |: and :: generate a bar  line,  double  bar, left repeat, right repeat 
and left/right repeat respectively.

  First and Second Repeats
  ========================
First and second repeats can be generated with the symbols |1 and :|2, 
 e.g.  faf gfe|1 dfe dBA:|2 d2e dcB||. The previous notation [1 and [2 is still  supported 
 N.B. With regard to spaces | [1_ is legal, |_ 1 is not. ( _ = space )
 
  Accidentals
  ===========

The symbols ^ = and _  are  used  (before  a  note)  to  generate
respectively a sharp, natural or flat.

  Changing key, meter, mid-tune
  =====================================================

To change key, meter, , simply put in a new line with a K: M: field,
 e.g. ed|cecA B2ed|cAcA E2ed|cecA B2ed|c2A2 A2:|
  K:G
  AB|cdec BcdB|ABAF GFE2|cdec BcdB|c2A2 A2:|

  Ties and Slurs
  ==============
The ABC Player uses the ties symbol ( -) to indicate a continuation of a passage of music.
This affects the velocity of key pressure, at present two key pressures are implemented and
can be changed with user settings. Any spaces or bar lines will be interpreted as a start of 
phrase.
(You can tie two notes together either across  or  within  a  bar 
with a - symbol, e.g. abc-|cba or abc-cba.
(the use of the "s" is not needed and is ignored within the player)

        Staccato
        =======
Staccato marks (a note of small length that occupies the same length of time ) can  be
generated  by  a  dot before the note, i.e. a staccato triplet is written as (3.a.b.c

      Gracings 
      ========
A grace note is a note of very small duration that takes it's time from the note
 following it. Used as a form of accent . 
To explicitly write out every grace note, just put  them in  curly  braces,  {}.

      Rolls
     =====
The Roll symbol is defined as ~ and is used to indicate a form of ornamentation explained as
Long Roll = the note /short note above /note again /short note below /note again
Short Roll = short note above /the note /short note below /note again
Midi synths (or computers) seem to make a blur out of this so I have set an option to allow
the playing of rolls as triplets. Maybe the instruments that usually play rolls are made to speak
to slow for them to play crisply?.  

  Chords
  =======
Chords (i.e.)  can  be coded  with  +  signs  around the notes, e.g. +CEGc+ produces
 the chord  of  c  major. 
 They can be grouped in beams,   e.g. +d2f2++ce++df+, but note the use of two + symbols,
 one to end the first chord and one to start the second.

  Guitar Chords
  =============
The chords are as yet not implmented to produce any sound output
These will be implemented in latter versions.

  Order of Symbols
  ================
The order of symbols for one note is <guitar  chords>,  <accents>
(e.g. roll, staccato marker or up/downbow), <accidental>, <note>,
<octave>, <note length>, i.e. ~^c'3 or even "Gm7"v.=G,2

  Comments
  ========
A % symbol will cause the remainder  of  any  input  line  to  be
ignored. 

Introducing New Notation
  ========================
The letters H-Z inclusive have been set aside to allow  users  to
introduce  their own additional symbols. One such example is J to
denote sliding up to a note.
These are ignored but will be implemented as they are incorporated into the ABC system.

Personal Notes
I have tried to stick as close to  ABC V1.5 as I can, but have not done anything yet with the L:field
My understanding of the ABC Notation System has been improved since I first started this
project (as well as my programming skills) and I would do it different if I started again.
The basic idea was a (quick) windows ABC to midi converter but has grown and changed into
this player. I realised that all I wanted was a way of hearing the tune with a reasonable sound as
I remember a tune better if I can hear it  (in one eye and out the other but in one ear it rattles 
around longer) .
I wish to thank Chris and everybody else  for the Abc system as I have been able to learn a lot
of tunes from it.
Bernard Chenery (novice Visual Basic Programmer and bad speller)
who can be contacted at B.Chenery@utas.edu.au
  
