clndogg.pl

(曲名ネタばれあり)

CLANNADのBGMを単体で聴きたくなって、nwatowav(オリジナル)やclndwavを使ってWAVに変換しようとしたらディスクの空きが足りなかったので、直接oggエンコードするスクリプトを書いてみた(Linux用)。

#!/usr/bin/perl -w

#Usage: clndogg.pl [-o outpath] infiles ...

use strict;
use vars qw($nwatowav $oggenc %title);

use Getopt::Std;

$nwatowav="./nwatowav";
$oggenc="/usr/bin/oggenc";

%title=(
    "BGM01"  =>"町、時の流れ、人",
    "BGM02A" =>"渚",
    "BGM02B" =>"渚〜坂の下の別れ(ゲーム用)",
    "BGM02C" =>"渚〜坂の下の別れ(MusicMode用)",
    "BGM03A" =>"それは風のように",
    "BGM04A" =>"は〜りぃすたーふぃっしゅ",
    "BGM05A" =>"Etude pour les petites supercordes",
    "BGM05B" =>"TOE(前半)",
    "BGM05C" =>"TOE(後半)",
    "BGM05D" =>"TOE",
    "BGM05E" =>"Etude pour les petites supercordes(short)",
    "BGM06"  =>"彼女の本気",
    "BGM07B" =>"資料室のお茶会",
    "BGM08A" =>"東風 -Tempo up-",
    "BGM08B" =>"東風 -Afternoon-",
    "BGM08C" =>"東風",
    "BGM08D" =>"東風 -Piano-",
    "BGM09A" =>"有意義な時間の過ごし方",
    "BGM09B" =>"有意義な時間の過ごし方 -Guitar-",
    "BGM09C" =>"有意義な時間の過ごし方 -Sax-",
    "BGM10"  =>"馬鹿ふたり",
    "BGM10B" =>"ダム",
    "BGM11"  =>"灰燼に帰す",
    "BGM13"  =>"同じ高みへ",
    "BGM14"  =>"田舎小径",
    "BGM15"  =>"日々の遑",
    "BGM16A" =>"存在",
    "BGM16B" =>"存在 -Piano-",
    "BGM16C" =>"存在 -E.Piano-",
    "BGM20B" =>"遥かな年月 -Piano-",
    "BGM17A" =>"空に光る",
    "BGM18A" =>"潮鳴り",
    "BGM18B" =>"潮鳴り II",
    "BGM25B" =>"願いが叶う場所",
    "BGM19"  =>"白詰草",
    "BGM20A" =>"遥かな年月",
    "BGM21"  =>"夏時間",
    "BGM23"  =>"カントリートレイン",
    "BGM24"  =>"雪野原",
    "BGM25A" =>"願いが叶う場所 II",
    "BGM26A" =>"幻想",
    "BGM26B" =>"幻想II",
    "BGM28"  =>"月の位相",
    "BGM29"  =>"無間",
    "BGM30"  =>"汐",
    "BGM31"  =>"メグメル",
    "BGM32A" =>"Ana",
    "BGM32B" =>"Ana (Long Version)",
    "BGM33"  =>"-影二つ-",
    "BGM34"  =>"小さな手のひら",
    "BGM35"  =>"マ・メール・ロワ",
);

sub main {
    my(%opts,$out);

    getopts("o:",\%opts);
    $out=$opts{"o"} || ".";

    my($file);
    foreach $file (@ARGV) {
        my($title, $base);
        if (($base=$file)=~/([^\/.]*)\.nwa$/i) {
            $base=$1;
            $title=$title{$base};
        }
        print STDERR "$file: $title\n";
        my ($command)=join(' ', "$nwatowav '$file'",
                                "| $oggenc -Q",
                                ($title ? "-t '$title'" : ""),
                                "-o '$out/$base.ogg' -");
#        print "$command\n";
        system($command);
    }
}
&main;

「それは風のように」(杏のテーマ)、「Etude pour les petites supercordes」(ことみのテーマ)、「カントリートレイン」(列車内のテーマ)、「町、時の流れ、人」(街のテーマ)なんかがお気に入り。

曲名に関しては以下も参考:
http://noblenep.hp.infoseek.co.jp/clannadmusic.html