[iPhone] iRig RecoderからエクスポートしたWAVファイルが読み込みエラーな件

  • このエントリーをはてなブックマークに追加

自分は普段バンドや合奏の練習を録音するのにiOSアプリの『iRig Recoder』(無料版)を利用しています。
iPod Touchの内蔵マイクを使って録音するわけですが、これが結構いい感じに高音質で録音できます。

なぜかWAVが再生できない(´・ω・`)

このアプリ、PCへのエクスポート方法はいろいろ選べて便利ですが、ここに一つ問題が。。。
エクスポートしたWAV形式ファイルがなぜか多くのプレーヤーやエンコーダで読み込みエラーを起こします。
(午後のこ~だはスルーしてくれます。。。)

原因はbytePerSample

その原因はバイナリエディタでファイルを開いてみれば分かります。Bzで開いてみました。
bytePerSampleの値がおかしい
モノラル録音であるにも関わらず、bytePerSample(サンプル単位のバイト数)の値が”4″になっています。
本来は次にあるbitPerSample(サンプル単位のビット数)が16bitであることから 16/8=2バイト になっていなくてはなりません。

[参考] wav ファイルフォーマット

解決方法

つまるところここを修正してやります。
bytePerSampleの値は符号なし16ビットリトルエンディアンの数値なので下のように『02 00』と修正してやればOKです。
問題点を修正する

おまけ

ちなみにBzを使ってる人どんだけいるのか知りませんが、WAVファイルヘッダの構造体定義はデフォルトで入って無かった気がするので、どうぞ必要な方は以下のコードをBz.defに追記して使って下さい。

struct WAVE_HEADER16 {
    BYTE  mainChunk[4];
    dword mainLength;
    dword chunk_type;
    BYTE  subchunk[4];
    dword subchunkLength;
    word  format;
    word  mode;
    dword frequency;
    dword bytePerSec;
    word  bytePerSample;
    word  bitPerSample;
    BYTE  dataChunk[4];
    dword dataLength;
} wav;

それにしても、これの問題って修正される予定無いんですかね。。。今のところそんなに困ってないけど、イチイチめんどくさいですわ。。。

  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。




コメントを残す