Punktabulator
-------------

If you compose punk rock music or transcribe punk rock music to
guitar tablature, you've probably noticed that the tab writing
software out there is overkill for your purposes. Let's face it,
most punk is written in E and A barres. Most is in 4/4 time. A punk
guitar tablature program should be as straightforward as the music.

So, here's a little Perl script that converts a simple shorthand notation
to ASCII guitar tab.

Here's how to use it:

Using your favorite text editor, open a new file and type out your song
using my special shorthand. Here's the ruleset:

1. 4/4 time is assumed.
2. Any digit alone represents an E Barre at that fret.
3. Any digit immediately followed by an underscore represents an A Barre
   at that fret.
4. A vertical pipe will be translated as a bar terminator.
5. A plus sign will be noted as a fret slide.
6. Any line beginning with a space will be printed as is. Useful for
   comments or lyrics.
7. A dash will print blank tablature (in cases where you want to
   use a trickier chord). You can edit the resulting blank tab
   with your favorite text editor. Note that vi users should use
   a capital R for replace mode as opposed to a lower case r.

Let's look at an example.

If file hurry.up.harry contains the following lines:


5_ 5_ 5_ 5_ | 3 3 3 3 | 3 3 3 3 | 5 5 5 5 
 (x2)

3_ 3_ 3_ 3_ | 3 3 3 3 | 5 5 5 5 | 5_ 5 5_ 5 
 (x2)


then the command: punktabulator hurry.up.harry > hurry.up.harry.tab

will produce a file called hurry.up.harry.tab with the following text in it:

(Wed Feb  7 08:31:47 PST 2001 - Note that starting with version 1.4,
the corresponding notes will be printed below the tabs. Not shown here.)

---------------------------- example -------------------------------

hurry.up.harry

4/4 time.
">" indicates a fret slide.

E ||-5--5--5--5--|--3--3--3--3--|--3--3--3--3--|--5--5--5--5--|-
B ||-7--7--7--7--|--3--3--3--3--|--3--3--3--3--|--5--5--5--5--|-
G ||-7--7--7--7--|--4--4--4--4--|--4--4--4--4--|--6--6--6--6--|-
D ||-7--7--7--7--|--5--5--5--5--|--5--5--5--5--|--7--7--7--7--|-
A ||-5--5--5--5--|--5--5--5--5--|--5--5--5--5--|--7--7--7--7--|-
E ||-5--5--5--5--|--3--3--3--3--|--3--3--3--3--|--5--5--5--5--|-

 (x2)

E ||-3--3--3--3--|--3--3--3--3--|--5--5--5--5--|--5--5--5--5--|-
B ||-5--5--5--5--|--3--3--3--3--|--5--5--5--5--|--7--5--7--5--|-
G ||-5--5--5--5--|--4--4--4--4--|--6--6--6--6--|--7--6--7--6--|-
D ||-5--5--5--5--|--5--5--5--5--|--7--7--7--7--|--7--7--7--7--|-
A ||-3--3--3--3--|--5--5--5--5--|--7--7--7--7--|--5--7--5--7--|-
E ||-3--3--3--3--|--3--3--3--3--|--5--5--5--5--|--5--5--5--5--|-

 (x2)

---------------------------- example -------------------------------

If you have a file called foo with the following text in it:

- - - - | 6 + 7 7 7 | 6 + 7 7 7 | 7_ 7_ 7_ 7_

then the command: punktabulator foo > foo.tab

will produce a file called foo.tab with the following text in it:

(Wed Feb  7 08:31:47 PST 2001 - Note that starting with version 1.4,
the corresponding notes will be printed below the tabs. Not shown here.)

---------------------------- example -------------------------------

foo

4/4 time.
">" indicates a fret slide.

E ||-------------|--6->-7--7--7--|--6->-7--7--7--|--7--7--7--7-
B ||-------------|--6->-7--7--7--|--6->-7--7--7--|--9--9--9--9-
G ||-------------|--7->-8--8--8--|--7->-8--8--8--|--9--9--9--9-
D ||-------------|--8->-9--9--9--|--8->-9--9--9--|--9--9--9--9-
A ||-------------|--8->-9--9--9--|--8->-9--9--9--|--7--7--7--7-
E ||-------------|--6->-7--7--7--|--6->-7--7--7--|--7--7--7--7-

---------------------------- example -------------------------------

download the script tarball here.

Have fun.
btanaka@well.com