自分は普段バンドや合奏の練習を録音するのにiOSアプリの『iRig Recoder』(無料版)を利用しています。
iPod Touchの内蔵マイクを使って録音するわけですが、これが結構いい感じに高音質で録音できます。
なぜかWAVが再生できない(´・ω・`)
このアプリ、PCへのエクスポート方法はいろいろ選べて便利ですが、ここに一つ問題が。。。
エクスポートしたWAV形式ファイルがなぜか多くのプレーヤーやエンコーダで読み込みエラーを起こします。
(午後のこ~だはスルーしてくれます。。。)
原因はbytePerSample
その原因はバイナリエディタでファイルを開いてみれば分かります。Bzで開いてみました。
モノラル録音であるにも関わらず、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;
それにしても、これの問題って修正される予定無いんですかね。。。今のところそんなに困ってないけど、イチイチめんどくさいですわ。。。
コメント