質問 |
||
| 質問者:kkk311 | 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ファイルの全体構造について詳細なサイトや書籍等をご存知でしたら教えていただけると助かります。 よろしくお願いいたします。 |
|
質問投稿日時:08/04/21 19:54 質問番号:3965589 |
||
回答良回答20pt |
|
| 回答者:Tacosan | サンプリングレートについては「エンディアン」が影響してます. つまり x86 系だと複数バイトのデータは「下位バイトが先にくる」ことになっています. 従って「44 AC 00 00」というデータは「最下位バイトが 44, 下から 2番目のバイトが AC, ...」ということを意味していて, 結局普通の表現に直すと 0x0000AC44 = 44100 となります. 複数バイトで表されるものは全てこのようになっています. で, 実際の音声データは各チャンネルのデータがインターリーブされます. 3チャンネルなら「112233 112233 ...」という並び方になります. |
|---|---|
| 種類:回答 どんな人:経験者 自信:参考意見 |
|
| |
回答日時:08/04/21 20:01 回答番号:No.2 |
|
| 参考URL: | http://www.kk.iij4u.or.jp/~kondo/wave/ |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |
回答良回答10pt |
|
| 回答者:alphion | ここはどうでしょう? |
|---|---|
| 種類:アドバイス どんな人:一般人 自信:参考意見 |
|
| |
回答日時:08/04/21 19:57 回答番号:No.1 |
|
| 参考URL: | http://www.kk.iij4u.or.jp/~kondo/wave/#data |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |