head	1.5;
access;
symbols;
locks; strict;
comment	@# @;


1.5
date	2001.03.06.02.43.08;	author btanaka;	state Exp;
branches;
next	1.4;

1.4
date	2001.02.07.16.30.17;	author btanaka;	state Exp;
branches;
next	1.3;

1.3
date	2001.02.07.16.28.58;	author btanaka;	state Exp;
branches;
next	1.2;

1.2
date	2001.02.07.16.02.20;	author btanaka;	state Exp;
branches;
next	1.1;

1.1
date	2001.02.07.16.01.59;	author btanaka;	state Exp;
branches;
next	;


desc
@@


1.5
log
@*** empty log message ***
@
text
@#!/usr/bin/perl
# punktabulator
# $Id: punktabulator,v 1.4 2001/02/07 16:30:17 btanaka Exp btanaka $

########################################################################
#
# e barres, use number.
#
# a barres, use number followed immediately by an underscore.
#
# Lines starting with space are comments and are printed as is.
#
# Vertical bar used as bar end.
#
# Assumes 4/4 time.
#
# Use "-" to indicate blank tablature for by-hand editing (if, for
# instance, you don't want to use an a barre or e barre.
#
# eg:
#
# 7_ 7_ 7 7 | 5_ 5_ 5 5 |
# 7_ 7_ 7 7 | 5_ 5_ 5 5 |
# 7_ 7_ 7 7 | 5_ 5_ 5 5 |
# 7 7 7 7 | 6 + 7 7 7 |
# 
#  (x2)
#
########################################################################


#
# vars
#

#$d = 1; # debug. uncomment to turn on debugging

@@hie=("E ||"); @@b=("B ||"); @@g=("G ||"); @@d=("D ||"); @@a=("A ||"); @@loe=("E ||");

@@anotes=("A ", "A#", "B ", "C ", "C#", "D ", "D#", "E ", "F ", "F#", "G ", "G#",
"A ", "A#", "B ", "C ", "C#", "D ", "D#", "E ", "F ", "F#", "G ", "G#",
"A ", "A#", "B ", "C ", "C#", "D ", "D#", "E ", "F ", "F#", "G ", "G#");

@@enotes=("E ", "F ", "F#", "G ", "G#", "A ", "A#", "B ", "C ", "C#", "D ", "D#", 
"E ", "F ", "F#", "G ", "G#", "A ", "A#", "B ", "C ", "C#", "D ", "D#", 
"E ", "F ", "F#", "G ", "G#", "A ", "A#", "B ", "C ", "C#", "D ", "D#");



#
# main
#

open (F, "$ARGV[0]") || die "$0: could not open file \"$ARGV[0]\": $!\n";

# preamble
print "$ARGV[0]\n\n";
print "4/4 time.\n";
print "\">\" indicates a fret slide.\n";
print "\n";

while ($line = <F>) {

    print "\n----------------------------------------------------\n" if $d;

    # grab comments and blank lines
    if ($line =~ m/^\s/) {
	# this is a comment so leave alone
	print $line;	
	next;
    }

    # initialize all six arrays after newline
    @@hie=("E ||"); @@b=("B ||"); @@g=("G ||"); @@d=("D ||"); @@a=("A ||"); @@loe=("E ||");
    @@notes_array=("    ");

    # split line into an array
    ( @@linearray ) = split ( / /, $line );

    # a barres
    foreach my $elem (@@linearray) {
	print "$elem" if $d;
	if ( $elem =~ m/(\d+)_/ ) {
	    $base = $1;
	    print "looksA" if $d;
    	    push (@@hie, "$base");
	    push (@@b, ($base + 2) );
	    push (@@g, ($base + 2) );
	    push (@@d, ($base + 2) );
	    push (@@a, "$base");
	    push (@@loe, "$base");
	    push (@@notes_array, " $anotes[$base]");

	} elsif ( $elem =~ m/(\d+)\b/ ) {
	    $base = $1;
	    print "looksE" if $d;
	    push (@@hie, "$base");
	    push (@@b, "$base");
	    push (@@g, ($base + 1) );
	    push (@@d, ($base + 2) );
	    push (@@a, ($base + 2) );
	    push (@@loe, "$base");
	    push (@@notes_array, " $enotes[$base]");

	} elsif ( $elem =~ m/\+/ ) {
	    push (@@hie, ">");
	    push (@@b, ">");
	    push (@@g, ">");
	    push (@@d, ">");
	    push (@@a, ">");
	    push (@@loe, ">");
	    push (@@notes_array, " ");

	} elsif ( $elem =~ m/-/ ) {
	    push (@@hie, "---");
	    push (@@b, "---");
	    push (@@g, "---");
	    push (@@d, "---");
	    push (@@a, "---");
	    push (@@loe, "---");
	    push (@@notes_array, "   ");

	} elsif ( $elem =~ m/|/ ) {
	    push (@@hie, "-|-");
	    push (@@b, "-|-");
	    push (@@g, "-|-");
	    push (@@d, "-|-");
	    push (@@a, "-|-");
	    push (@@loe, "-|-");
	    push (@@notes_array, "   ");

	}
    }

    # print arrays

    foreach my $stringelem (@@hie) {
    	if ( $stringelem > 9 ) {
	    print "-$stringelem-";
	} else {
	    print "--$stringelem-";
	}
    }
    print "\n";

    foreach my $stringelem (@@b) {
    	if ( $stringelem > 9 ) {
	    print "-$stringelem-";
	} else {
	    print "--$stringelem-";
	}
    }
    print "\n";

    foreach my $stringelem (@@g) {
    	if ( $stringelem > 9 ) {
	    print "-$stringelem-";
	} else {
	    print "--$stringelem-";
	}
    }
    print "\n";

    foreach my $stringelem (@@d) {
    	if ( $stringelem > 9 ) {
	    print "-$stringelem-";
	} else {
	    print "--$stringelem-";
	}
    }
    print "\n";

    foreach my $stringelem (@@a) {
    	if ( $stringelem > 9 ) {
	    print "-$stringelem-";
	} else {
	    print "--$stringelem-";
	}
    }
    print "\n";

    foreach my $stringelem (@@loe) {
    	if ( $stringelem > 9 ) {
	    print "-$stringelem-";
	} else {
	    print "--$stringelem-";
	}
    }
    print "\n";

    foreach my $stringelem (@@notes_array) {
	    print " $stringelem ";
    }
    print "\n\n";

}

close (F);
@


1.4
log
@*** empty log message ***
@
text
@d3 1
a3 1
# $Id: punktabulator,v 1.3 2001/02/07 16:28:58 btanaka Exp btanaka $
d86 6
a91 6
	    push (@@hie, "-$base-");
	    push (@@b, "-" . ($base + 2) . "-");
	    push (@@g, "-" . ($base + 2) . "-");
	    push (@@d, "-" . ($base + 2) . "-");
	    push (@@a, "-$base-");
	    push (@@loe, "-$base-");
d97 6
a102 6
	    push (@@hie, "-$base-");
	    push (@@b, "-$base-");
	    push (@@g, "-" . ($base + 1) . "-");
	    push (@@d, "-" . ($base + 2) . "-");
	    push (@@a, "-" . ($base + 2) . "-");
	    push (@@loe, "-$base-");
d136 8
a143 1
    foreach my $stringelem (@@hie) { print "$stringelem"; }
d145 8
a152 1
    foreach my $stringelem (@@b) { print "$stringelem"; }
d154 8
a161 1
    foreach my $stringelem (@@g) { print "$stringelem"; }
d163 8
a170 1
    foreach my $stringelem (@@d) { print "$stringelem"; }
d172 8
a179 1
    foreach my $stringelem (@@a) { print "$stringelem"; }
d181 8
a188 1
    foreach my $stringelem (@@loe) { print "$stringelem"; }
d190 4
a193 1
    foreach my $stringelem (@@notes_array) { print "$stringelem"; }
@


1.3
log
@*** empty log message ***
@
text
@d3 1
a3 1
# $Id: punktabulator,v 1.2 2001/02/07 16:02:20 btanaka Exp btanaka $
d40 7
a46 7
@@anotes=("A ", "A#", "B ", "C ", "C#", "D ", "D#", "E ", "F ", "F#", "G", "G#",
"A ", "A#", "B ", "C ", "C#", "D ", "D#", "E ", "F ", "F#", "G", "G#",
"A ", "A#", "B ", "C ", "C#", "D ", "D#", "E ", "F ", "F#", "G", "G#");

@@enotes=("E ", "F ", "F#", "G", "G#", "A ", "A#", "B ", "C ", "C#", "D ", "D#", 
"E ", "F ", "F#", "G", "G#", "A ", "A#", "B ", "C ", "C#", "D ", "D#", 
"E ", "F ", "F#", "G", "G#", "A ", "A#", "B ", "C ", "C#", "D ", "D#");
@


1.2
log
@*** empty log message ***
@
text
@d3 1
a3 1
# $Id: $
d35 1
d37 1
d40 9
d75 1
d92 1
d103 1
d112 1
d121 1
d130 1
d147 2
@


1.1
log
@Initial revision
@
text
@d3 1
@
