COMP-G-TAB - Computer MIDI to Guitar TAB Converter



Last Updated: 01/27/98



To try out a demo of the latest 3.0 version of COMP-G-TAB, you can Download a ZIP archive of it from here



                  /-----------------------------------------\
                  |                                         |
                  | Welcome to COMP-G-TAB Ver. 3.0 (c) 1995 |
                  |                                         |
                  |           By Hillel Steinberg           |
                  |                                         |
                  |            hillels@erols.com            |
                  |                                         |
                  |          2404 Glenmore Terrace          |
                  |           Rockville, MD 20850           |
                  |                  U.S.A.                 |
                  |                                         |
-------------------------------------------------------------------------------
|                                                                             |
|                            ***** Contents *****                             |

                          -      Introduction
                          -      MIDI and MIDI files
                          -      COMP-G-TAB
                          -      Installation of COMP-G-TAB
                          -      Dos Version Notes
                          -      Windows 16 bit Version Notes
                          -      Windows 32 bit Version Notes
                          -      COMP-G-TAB Output
                          -      Registration
                          -      Todo List


Introduction
------------

A popular form of written notation for guitar is called tabulature (TAB for 
short).  TAB notation is easy to learn, and requires less guess-work than 
standard notation when it comes to locating the notes on your guitar.  While 
standard music notation describes WHICH notes should be played, TAB describes 
WHERE they should be played.  For example, some notes on the guitar are 
identical in pitch, but are located on different strings/frets.  Here is a 
small example of TAB notation which illustrates these anomalies:

 
(high)   E ----0-------------------------------- 
         B ----0-------------------------------- 
         G ----1-------------------------------- 
         D ----2-------------------------------- 
         A ----2-------------0---1---2---3------ 
(low)    E ----0----------5--------------------- 
 
The strings are shown top to bottom, high to low, starting with the high E.  
The number indicates the fret at which the note will be played on a particular 
string.  For example, the left most '1' is part of a 6 string E chord.  The 
'1' indicates that the first fret on the third highest string should be 
played.  To the right are several other single notes.  The first two, '5' and 
'0' (a '0' means the string is strummed 'open', without left hand fretting) 
are actually identical pitches.  However, this TAB specifies that even though 
these two notes are the same pitch, they should be played on two different low 
strings (A and E).

MIDI and MIDI files
-------------------

MIDI (Musical Instrument Digital Interface) is a specification for the 
transmission of music data between two electronic devices.  MIDI 
specifications describe everything from the electronic signals to the cable 
interface.  MIDI specifications also exists for files which store musical 
information to be transmitted to a MIDI device at a later time.  MIDI files 
(usually with the extension '.MID') meeting this specification can be found on 
Bulletin Boards, on CDROMs, and throughout Internet (e.g., ftp.uwp.edu).  They 
can also be created from other types of digital music files, such as .MOD 
files (using a MOD2MID converter).  They can be played through a speaker using 
simple software and a sound board.  Advanced sound boards can even feed MIDI 
information directly to synthesizers for immediate playback.

Each MIDI file contains the musical notes, and directions on how they should 
be played.  Notes are grouped into tracks.  There are three types of MIDI 
files.  The first type, '0', is a one-track MIDI file.  All song information 
must be contained within this single track.  This type is ideal for songs 
which have only one instrument playing.  Two or more instruments played 
simultaneously would require a muli-track format, which is where type '1' MIDI 
files enter.  Type '1' MIDI files are made up of a set of tracks which will be 
played simultaneously.  This is useful for songs requiring more than one 
instrument or hand.  Finally, type '2' MIDI files can contain more than one 
track of information like type '1' files, but the tracks do not have to be 
played simultaneously.  Instead, the tracks are considered sequences of notes, 
and each sequence can be played as required.  Each track which stores a 
sequence, however, should still contain sequences from the same musical score. 

Once a MIDI file is created, it can be played back with the proper hardware 
and software.  Unfortunately, few programs are available which can transcribe 
these MIDI pieces back into the sheet music from which they came.  Even fewer 
exist which can write guitar TAB from these MIDI files.  This is where COMP-G-
TAB enters.

COMP-G-TAB
----------

COMP-G-TAB can be used to convert MIDI (types 0, 1, 2) to guitar TAB sheet 
music.  This program works well on MIDI files which have large sections of 
notes played in the same proximity (i.e., two handed piano, or single track 
MIDI files using many simultaneously playing instruments are difficult to 
translate).  The guitar's octave range is also limited in comparison to 
instruments, such as the piano, and does not easily provide for good 
positioning of very high or low notes.

Thus, COMP-G-TAB employs several algorithms for coping with this deficiency.  
I have tested COMP-G-TAB with over 600 MIDI files, and have found useful 
output from over 50% of the them.  There is a good chance COMP-G-TAB will be 
able to unravel the mysteries of your favorite MIDI song!

Installation of COMP-G-TAB
--------------------------

Both the Windows and DOS installation procedures are discussed here.  If you 
obtained an archive ZIP file (i.e., from an anonymous FTP site on Internet), 
then you first need to unpack the ZIP file onto a diskette.  If you have a 
Registered version of the software, you do not need an UNZIP utility program 
because the main files on disk are not provided in a compressed format.  
PKUNZIP is one of many tools which are available on Internet which can unpack 
ZIP files.  If you use another UNZIP tool, then substitute it in the lines 
below.  For example, if the CGTABV21.ZIP is on the 'B:' drive, then issue the 
following commands:

1. B: 
2. CD \ 
3. PKUZIP CGTABV21.ZIP 


DOS version installation:

To install the Registered version COMP-G-TAB software on the hard disk from a 
floppy, issue the following commands: 

 1. Change to floppy drive (e.g. type 'B:')
 2. Type INSTALL (S) (D) where S is the source drive, and D is the
    destination drive (e.g. INSTALL B: C:)
 3. Read instructions in that appear, and the README.TXT. 

Windows 16/32 bit version installation:

The installation of COMP-G-TAB for Windows is relatively simple.  First follow 
the instructions above to unpack and install the COMP-G-TAB software on the 
hard disk.  If, for example, the software was installed in C:, then you would 
then take the following steps.  Start Windows, create a new icon (i.e., 
Windows 3.x do New, Program Item, Browse, and Windows 95 just do New, 
Shortcut, Browse on the desktop) by locating the directory 
'C:\CGTABV30\CGTABW21.EXE' or 'C:\CGTABV30\CGTABW30.EXE' if you want to use 
the 32-bit version.  Don't forget to change the working directory to 
'C:\CGTABV30' also, so the Help file can be located during COMP-G-TAB 
execution.

The following requirements must be satisfied to run the COMP-G-TAB software:

 1. IBM-PC 386 compatible or better. 
 2. Windows 3.1, Windows 95, or better. Windows 95 or WIN32 is required to
    run the 32-bit version.
 3. At least 4 meg of RAM to load and process a good size MIDI file. 
 4. A MIDI file you wish to transcribe.  Some are included as examples. 
 5. Windows version requires that the 'Courier' font is loaded. 
 6. Optional: printer and installed soundcard. 

The following is the usage for the DOS COMP-G-TAB version: 

Usage: COMPGTAB with flags: 
   -p -w -a -d -f -o -s -l -h -r -v 
   -n  -c <#> -t <#> -g <#>  


Where: 

-p        Suppress tab printing, used with a,d options 
-w        Wait for RETURN before printing next line of TAB 
-a        Suggest appropriate '-t' values by analyzing music 
-d        Turn debug on 
-f        Force fit notes onto the fret-board 
-o        Override some errors detected 
-s        Show special parameters line 
-l        Show channel line 
-h        Show chords line 
-r        Show raw track only, no track header information 
-v        Show program version information 
-n  redirect output to  
-c <#>    Adjust <#> of TAB notes per line 
-t <#>    Transpose notes by <#> frets 
-g <#>    Alternate guitar tunings (low to high): 
           0. E A D G B E (Standard) 
           1. D A D G B E (Drop D) 
2.  D G D G B D (Open G) 
3.  D A D G A D (D Modal)

Dos Version Notes
-----------------

The DOS version of COMP-G-TAB is flexible, and yet easy to use.  The general 
format of the program is:

CGTABV21 -X -Y -Z EXAMPLE.MID

In this case, EXAMPLE.MID is the MIDI file you wish to analyze, and X/Y/Z are 
selectable options for modifying the way COMP-G-TAB does its job.

  You can use as many options on the command line (and in any order) as you 
want.  The 'p' option is useful when you are not interested in the TAB output. 
For example, if you are interested in the debug messages (helps to understand 
how the file is decoded) or the transpose values, then use this option to 
suppress the TAB output.  The 'w' option helps if you are trying to play along 
with the TAB, and you need to see each line one-at-a-time.  The 'a' option 
will suggest transpose values that place the range of the MIDI song within the 
range of the guitar (or as close as possible).   Here is an example of the 
output from this option:

Lowest note:  A2'. 
Highest note: E8'. 
Lowest note is low!  Suggest option: '-t 10'.

In this case, COMP-G-TAB is suggesting that the song be transposed up ten 
frets in order to accommodate the range of the song and the guitar.  Both 
positive and negative transpose values may be suggested with this option.  It 
may also occur that transpose values are suggest which can't be used (i.e. the 
range of the guitar simply can't handle the range of the song).  You may want 
to use the suggested transpose to move the lowest notes up, but later use 
smaller transpose values which will not ruin the already high ones.

The 'd' option turns the debug output on.  This is useful in determining how 
COMP-G-TAB interpreted the file.  This is mostly useful when reporting 
problems to me (my Internet address is provided above).  One word of warning 
though, the 'd' option produces a huge amount of output.  You can redirect 
this output to a file by using the DOS redirect '>' symbol.  For example, to 
trap the debugged output of 'TEST.MID' to 'debug.txt', just type: 

  CGTABV21 -P -D TEST.MID > DEBUG.TXT'

Then you can just 'TYPE' the file out at a later time.  Normally, the TAB is 
shown directly on the screen.  If you want to redirect the output to a file, 
but do not want to do it through DOS (like above), then use the 'n' option. 
Using this option, tabulature output is redirected to the named file. 

The 'f' option forces the notes to fit onto the TAB.  If a note is to low, 
then it is moved up by octaves until it will fit on to the TAB line.  The 
opposite is true when the note is too high (15th fret or above on high 
string). 

The 'c' option will adjust the number of TAB positions on each line.  This is 
useful if you are going to print the TAB out at a later time, and your printer 
has more (or less) room per line than the current default which COMP-G-TAB 
provides. 

Sometimes COMP-G-TAB will encounter MIDI data which it cannot interpret.  For 
now, COMP-G-TAB usually just reports the error, and terminates.  Occasionally 
it may be useful to for COMP-G-TAB to finish the file (i.e., you may want to 
see the TAB generated up until the error).  Use the 'o' option to override 
some non-fatal errors.  If the errors are bad enough, however, the program 
WILL terminate.  An example of this is when memory is exhausted during a MIDI 
load. 

An example of the COMP-G-TAB output from the 'TEST.MID' file provided is shown 
below:

Filename: test.mid 
Type:     Single Multi-Channel Track 
Tracks:   1 

Track 1: 
|---0----------------------| |------------------------|
|G--0----------------------| |------------------------|
|T--0----------------------| |----------------------0-|
|A--2----------------------| |-------0--1--2--3--4----|
|B--2--------------0--1--2-| |-3--4-------------------|
|---0--1--2--3--4----------| |------------------------|

    1  1  1  1  1  1  1  1     1  1  1  1  1  1  1  1  
    A  C  P  V  W 
    Em 
                  

The output above was produced with the options 'h', 's', and 'l' options.  The 
'h' option turns on 'chord' detection, which is why the 'Em' is shown.  The 
's' option turns on the special parameters line which is why there are the 
letters, A, C, P, V, and W.  Each letter stands for a different special event: 

A - After touch.  New pressure to old note detected. 

C - Control change. Special control parameter detected. 
P - Program change. Change instrument patch for channel. 
V - Pressure (velocity) for selected channel detected. 
W - Pitch Wheel changed (i.e., a string bend). 


The 'l' option turns on the channel line.  This is why there is a string of 
1's under the TAB line.  There are 16 channels possible under MIDI.  Channels 
above 9 are labeled A,B,C,D,E, and F to keep them one character. 

There are also many guitar tunings.  COMP-G-TAB uses the standard tuning by 
default (E,A,D,G,B,E).  TAB can be generated in other tunings with the 'g' 
option.  Three other tunings are currently supported: Drop D, Open G, and D 
Modal.  If there are requests for others, I will add them. 

Finally, the 'w' option allows you to play along with the TAB on the screen, 
by pausing and waiting for a RETURN after each line of TAB.

Windows 16 Bit Version Notes
----------------------------

The Windows version of COMP-G-TAB is fairly straightforward.  First, a MIDI 
file is opened with the 'File, Open Midifile' menu options.  After the MIDI 
file is read, the number of tracks found are displayed.  If this is an 
unregistered version of COMP-G-TAB, only the first 7 lines of the first 3 
tracks are computed and accessible. 

 What is first displayed in the Edit area below is the output tabulature for 
'All Tracks' (or the first 3 if it is a DEMO version).  The Edit window can 
only display approximately 50,000 characters, so there may be some truncation 
of the output.  A warning will appear if this has occurred.  Not to worry, you 
can view entire individual tracks by using the 'Tracks' pulldown and selecting 
the desired track number.  The track choices listed under this menu pulldown 
actually change each time you read in a new MIDI file to reflect the correct 
number of tracks.

Options under the 'Display' and 'Colors' menus let you change the look and 
feel of the tabulature window.

You can then modify or print the tabulature.  Editing is possible by simply 
clicking in the Edit window and adding text.  Other standard editing features 
such as cut, copy, and paste are available under the 'Edit' menu.  To print 
the tabulature, first select the 'Print Setup' menu option under 'File' to 
make sure the correct printer is selected.  Then select the 'Print Track Tab' 
or 'Print All Tab' option depending on whether you want to print one track, or 
all tracks.

You can play the currently open Midi file by selecting the 'Play Midifile' 
option under the 'File' menu.  If you want to stop the song while it's 
playing, simply select the 'Stop Midifile' option.

If you need to look up a particular chord, then simply select the 'Chords' 
menu item.  A panel will appear, and you can type in any Major, Minor, or 
Seventh chord name.  To specify a Sharp chord, use the '#' symbol.  To specify 
a Flat chord, use the '-' symbol.  For example, type 'e-m7', and then click 
'Display' to show what a E Flat Minor 7th chord looks like.  Each line is 
shown top-to-bottom high-to-low string.  Open strings are indicated by a 'o' 
before the line.  Unstrummed strings are indicated by an 'x' before the 
string.  An 'X' placed on a line indicates which fret on which string should 
be played.  Chords are only shown for Standard Tuning.

Special output options can be configured under the 'Options' menu.  Selections 
on the 'Option Panel' will only have an effect the next time a MIDI file is 
processed with the 'Open Midifile' option.  Your favorite options on the 
'Option Panel' can be saved, and then loaded at a later time when you run 
COMP-G-TAB again. 

The following options are offered on the 'Option Panel': 

Show Channel:

Show channels (0-9, A-F) for each note under each TAB line.  Channels are used 
for many reasons, but they mainly provide a mechanism for assigning notes to 
different instruments or keyboards. 

 
Suppress Output:

Suppress the tabulature output.  This option is used when you just want to 
analyze the MIDI file with other options set. 

 
Debug Output:

Adds Debug output to show how the tabulature was created.  Use this option 
only if you want reams of DEBUG output! 

 
Force Fit Notes:

Force each note to fall on the tabulature lines even if they are too low or 
high.  This is accomplished by raising or lowering the notes by octaves when 
necessary. 

 
Show Special Parameters:

Setting this option will produce a separate line under each tabulature line 
explaining where special note parameters events should be performed.  The 
parameters are currently as follows: 

W - Pitch bend.  Similar to a string bend. 

A - Aftertouch.  Change in volume for a single note that was previously 
sounded. 

C - Control Change.  Special situations.  Example, piano pedal. 

P - Program Change.  Changes the patch for a channel.  Example, new instrument 
on a synthesizer.

V - Velocity Change.  Changes the volume (key pressure) of all notes on a 
particular channel. 

 
Suggest Transpose Values:

After processing the MIDI file, output suggestions are shown for transpose 
values which would put the notes onto the tabulature lines.  Warning, this 
option may produce conflicting results.  For example, the suggestions may be 
to have a positive AND negative transpose value.  This happens when the notes 
in the song are diverse and contain some that are higher than the 15th fret on 
the high string, and lower than notes on the lowest string.  In this case, the 
'Force Fit Notes' option is suggested. 

 
Override Errors:

Use this option to ignore some of the errors in an unrecognizable or flawed 
MIDI file. 

 
Show Chords:

On a separate line, show where note patterns in the tabulature form chords, 
and indicate their names. Also, at the end of the tabulature output, a picture 
of each chord will be shown to denote those chords which were found while 
processing the MIDI file.  Note: these chords may vary from their counterparts 
in the TAB, and are usually 'OPEN' chords (chords with at least one 'OPEN' 
string, usually located in the first few frets). Chords positions are shown as 
x's on lines.  The top line corresponds to the High string.  The bottom line 
corresponds to the Low string.  If a line does not have an 'x' on it, but does 
have an 'x' on the left side of a string, then this string should NOT be 
played.  If there is an 'o' on the left of a string, then the string should be 
played "OPEN". These chords will only be valid if you are in 'Standard 
Tunning' - see 'Option Panel' for more details.

 
Tab Values/Line:

This numeric value indicates the maximum TAB notes per line.  It is currently 
set to 26, but it can be set anywhere from 1 to 26. 

 
Transpose Steps:

This numeric value indicates the number of frets (half steps) which each note 
should be moved up or down.  Use this option to raise or lower a song's notes 
onto the guitar fretboard. 

 
Tunings:

There are currently five guitar tuning options.  The default tuning is 
'Standard Tuning', but some songs are easier to play with other tunings.  If 
I've missed a tuning that you would like COMP-G-TAB to use, simply select the 
'Custom' toggle and put the fret deltas from the Standard tuning that you 
would like.  The standard tuning is E, B, G, D, A, E from high to low.  If you 
would like to lower the low E to a D, as in DROP-D tuning, simply enter the 
sequence 0, 0, 0, 0, 0, -2.

Windows 32 Bit Version Notes
----------------------------

The 32 bit version of COMP-G-TAB is now the only growing component to the MIDI 
conversion suite.  It is modeled after the 16 bit version, but the tabulature 
is represented here as graphical, not textual.  For example, the "Copy" option 
under the "Edit" menu copies the selected track into the Windows Cut buffer as 
a graphic bitmap.  This image can then be pasted into a paint program.

There are other differences, but most of the differences currently reside in 
the updated visual Windows components used, and not the functionality offered 
by the application.  Improvements in this area are next to follow.

Improvements can be seen in three areas.  The tabulature window is now 
supports graphics in addition to text.  The notes are place and grouped 
within the measure where they are to be played.  

The options panel has been completely overhauled, and has additional printing
and mode options.  The music media player also has been redone, and supports
scrolling tabulature along with the music.  Even the Chord utility has
been updated.

COMP-G-TAB Output
-----------------

The Tabulature output is NOT automatically COPYRIGHTED by the author of COMP-
G-TAB.  If the source MIDI file is not Public Domain, however, then the author 
of the original MIDI file probably has rights to the tabulature output also. 

If other packages are included on the distribution diskette (in a DIST 
directory), then they are unmodified software distributed WITHOUT cost (cost 
is only for the Registration of my software) to the user.  They are 
distributed according to the agreement enclosed with the software, and can 
also be retrieved directly from accessible sources on Internet.  The author of 
COMP-G-TAB takes NO responsibility for damages due to the use of this software 
or data.

Registration
------------

If this version of COMP-G-TAB is an unregistered DEMO version of the product. 
It can be uploaded to Bulletin Boards, to Private Services (Prodigy, 
CompuServe, AOL, etc..), to various sites on Internet, or even passed to 
friends.  Registered copies of COMP-G-TAB must not be copied (except for 
personal use), modified, or distributed in any way. 

You may try COMP-G-TAB for a 30 day trial period.  After which time, you must 
register the product by  mailing in the Registration form, or remove the COMP-
G-TAB software from your systems.  The Registration form is included in the 
file 'FORM.DOC'. After mailing in your Registration form, you will receive the 
full version of COMP-G-TAB on your choice of media. 

The current DEMO version will only show the TAB for the first 7 lines of the 
first 3 tracks.  The cost of Registration for those in the U.S. is 
$18.00/copy.  This cost covers the disk, shipping charges, and my coding time.
Once you have a Registered copy, you can receive COMP-G-TAB updates at just 
5$/request (always Email me first to make sure that a new version of this 
software is available).  For orders of more than 4 copies, the cost is only 
$14.00/copy.  For orders outside the U.S., add an additional $5.00 for shipping
and handling.  Orders outside the U.S. must be made with either a U.S. Money 
Order, or a check drawn against a U.S. bank.  Sorry, the cost for collection 
on foreign notes are usually more than the checks themselves!  Refer to the 
file 'FORM.DOC' for more details.  Don't forget to check for the status of new 
releases (by the Email or Snail Mail to the respective addresses shown above) 
BEFORE you send away for them.

Todo List
---------

1. Advanced TAB editing. 

2. Offer multiple note and chord position possibilities.

3. Precise BEND notation.  Example, 1/2, 1, 1&1/2 steps, etc...

4. Ability to recognize more chord variations. 

5. More advanced MIDI playing options.

Click Here to return to the Hillel's BIO.


The space for these WWW pages has been provided by
Turner Consulting Group (tcg@us.net).