• ベストアンサー

WAVEファイルのヘッダー等について

現在WAVEファイルをバイナリで読み込み、チャンネルごとの情報(16進数)を配列に分けて入れたいと思っています。 サンプリングレートやデータサイズを読み込んだときに サンプリングレートなら44.1kHz ならば "44 AC 00 00"(16進数) とヘッダではなっていますよね? でも、実際は、44.1kHz = 44100Hz(10進数) = "00 00 AC 44" と逆です、ではチャンネルでもそうなのでしょうか? チャンネルはもしも3チャンネルだった場合(あまりないと思いますが。) 112233 112233…と並んでいるのでしょうか? それとも1111 2222 3333?でしょうか。 現在手元にソースがなく詳細を書けないのですが、WAVEファイルの全体構造について詳細なサイトや書籍等をご存知でしたら教えていただけると助かります。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

サンプリングレートについては「エンディアン」が影響してます. つまり x86 系だと複数バイトのデータは「下位バイトが先にくる」ことになっています. 従って「44 AC 00 00」というデータは「最下位バイトが 44, 下から 2番目のバイトが AC, ...」ということを意味していて, 結局普通の表現に直すと 0x0000AC44 = 44100 となります. 複数バイトで表されるものは全てこのようになっています. で, 実際の音声データは各チャンネルのデータがインターリーブされます. 3チャンネルなら「112233 112233 ...」という並び方になります.

参考URL:
http://www.kk.iij4u.or.jp/~kondo/wave/

その他の回答 (1)

  • alphion
  • ベストアンサー率19% (27/136)
回答No.1

ここはどうでしょう?

参考URL:
http://www.kk.iij4u.or.jp/~kondo/wave/#data

関連するQ&A

専門家に質問してみよう