ルギア君の戯言

雑多な記事。

東方の曲を手っ取り早くゲーム本体以外で聞けるようにする方法

長いタイトルだ。

用意するもの

方法

thbgm.dat はただ単に WAVE ファイルから RIFF ヘッダが抜けただけのファイルなので、バイナリエディタで RIFF ヘッダを付ければお気に入りのプレーヤーで再生できる。RIFF ヘッダはググればいくらでも出てくる(→google:RIFF ヘッダ)。バイナリエディタで RIFF ヘッダを付ける時はリトルエンディアンであることに注意したい。


でも、バイナリエディタなんか面倒臭いと思うでしょう。そこでこのコマンドを一発実行するだけで適当に RIFF ヘッダを付けてくれる。ただ、RIFF ヘッダがない音楽ファイルはただの無意味なバイナリファイルと一緒。必要なインフォメーションが欠けているので補う必要がある。

$ ffmpeg -f s16le -ar 44100 -ac 2 -acodec pcm_s16le -i thbgm.dat -acodec copy thbgm.wav
  • -f s16le や -acodec pcm_s16le とは 符号付き16ビット幅リトルエンディアン の PCM であることを教える。
  • -ar 44100 はサンプリング周波数。
  • -ac 2 はチャンネル数。ステレオ。
  • -acodec copy はコーデックを変換するなという意味。

これで thbgm.dat に RIFF ヘッダが付いたものが thbgm.wav に書き込まれる。

アドバイス

変換してみて曲のスピードが速いなら、-ar を 22050 にしてみなさい。
逆に遅いなら、-ar を 48000 にしてみなさい。
めちゃくちゃになってしまった場合は、-f を u8 、最初の -acodec を pcm_u8 にしてみなさい。u8 は 符号無し8ビット幅 の PCM を示す。
たぶん、どれもこのフォーマットだと思うけど。


あと、東方は東方でも上海アリス幻樂団が作っているモノね。