md3.pl.txt

require "replace.pl";

binmode STDIN;

&makefile($ARGV[0]);

#############################

sub makefile

{

local ($p, $p2, $pmax, $pmax_);

print << "HEADER";

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">

<HTML lang="ja">

<HEAD>

<META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=Shift_JIS">

<META NAME="keywords" CONTENT="SC-88 Pro, rhythm name list">

<META NAME="description" CONTENT="SC-88 Pro rhythm name list">

<LINK rel="stylesheet" href="../standard.css" type="text/css">

<TITLE LANG="ja">$tonename set</TITLE>

<STYLE TYPE="text/css">

<!--

.WKEY {

/* border-width:0 1 0 1;

*/ border-style:none;

padding:0 4ex 0 0;

background-color: #FFFFFF;

color: #000000;

}

.BKEY {

border-width:0 1 0 1;

border-style:none;

padding:0 1ex 0 0;

background-color: #000000;

color: #F0F0F0;

}

-->

</STYLE>

</HEAD>

<BODY LANG="ja">

<H3>$tonename set</H3>

HEADER

undef $/;

$buf = <>;

$pmax = length($buf);

print "<TABLE BORDER=\"1\">\n";

print "<CAPTION>$tonemane</CAPTION>\n";

$p = 0;

($map,$pc,$key,$name) = unpack("xCCCA12",substr($buf,$p,16));

$p2 = 12 * int($key / 12);

for ($i = 0; $i < 2; $i++) {

print "<TD VALIGN=\"TOP\">\n<TABLE BORDER=\"1\">\n";

if ($pmax < 70 * 16) {

$pmax_ = $pmax;

} elsif ($i == 0) {

$pmax_ = 70 * 16;

} else {

$pmax_ = $pmax;

}

for (; $p < $pmax_; $p += 16) {

($map,$pc,$key,$name) = unpack("xCCCA12",substr($buf,$p,16));

for (; $p2 < $key; $p2++) {

&putkey(-$p2);

print "<TD><BR></TD></TR>\n";

}

&putkey($key);

$name = &replaceRhythmName($name);

print "<TD>$name</TD></TR>\n";

$p2++;

if ($key == 71) {

$p += 16;

last;

}

}

print "</TABLE>\n</TD>";

}

print "</TR>\n</TABLE>\n";

print << "FOOTER";

</BODY>

</HTML>

FOOTER

}

#############################

sub putkey

{

local($key) = @_;

local($f);

local(@tone) = ("c","c#","d","d#","e","f","f#","g","g#","a","a#","b");

if ($key < 0) {

$f = 1;

$key = -$key;

# $key2 = "<BR>";

$k3y2 = "";

} else {

$key2 = $key;

}

$_ = $key;

$_ %= 12;

print "<TR>\n";

if ($_ == 1 || $_ == 3 || $_ == 6 || $_ == 8 || $_ == 10) { # black

print "<TD CLASS=\"WKEY\"></TD>\n";

print "<TD CLASS=\"BKEY\" ALIGN=\"LEFT\"><B>$key2</B> \[$tone[$_]\]</TD>\n";

} else { # white

if ($_ == 0) {

$oct = int ($key / 12) - 1;

print "<TH ROWSPAN=\"12\">C$oct</TH>\n";

}

print "<TD COLSPAN=\"2\" ALIGN=\"LEFT\" CLASS=\"WKEY\"><B>$key2</B> \[$tone[$_]\]</TD>\n";

}

}