WAVファイルの中身や扱い方を知っておくと後々役に立つかも知れません。

| 4 byte | RIFFヘッダ | ('R' 'I' 'F' 'F') |
| 4 byte | これ以降のファイルサイズ | |
| 4 byte | WAVEヘッダ | ('W' 'A' 'V' 'E') |
| 4 byte | fmt チャンク | ('f' 'm' 't' ' ') |
| 4 byte | fmt チャンクのバイト数 | リニアPCM ならば 16(10 00 00 00) |
| 2 byte | フォーマットID | リニアPCM ならば 1(01 00) |
| 2 byte | チャンネル数 | モノラル ならば 1(01 00)ステレオ ならば 2(02 00) |
| 4 byte | サンプリングレート | 44.1kHz ならば 44100(44 AC 00 00) |
| 4 byte | データ速度 (Byte/sec) | 44.1kHz 16bitステレオならば 176400(10 B1 02 00) |
| 2 byte | ブロックサイズ | 16bit ステレオ ならば 4(04 00) |
| 2 byte | サンプルあたりのビット数 | 16bit ならば 16(10 00) |
| 2 byte | 拡張部分のサイズ | リニアPCMならば存在しない |
| n byte | 拡張部分 | リニアPCMならば存在しない |
| 4 byte | data チャンク | ('d' 'a' 't' 'a') |
| 4 byte | 波形データのバイト数 | |
| n byte | 波形データ |
| 4 byte | "fmt " | フォーマット定義 | 最初のタグ 必須 4文字目のスペースも含まれる |
| 4 byte | "fact" | 全サンプル数 | 波形データの前に存在する 無くても良い |
| 4 byte | "data" | 波形データ | 必須 |
| 4 byte | "LIST" | コメントや著作権情報 | 無くても良い |
| 4 byte | RIFF形式の識別子 'RIFF' | ||
| 4 byte | ファイルサイズ(byte単位) | ||
| 4 byte | RIFFの種類を表す識別子 'WAVE' | ||
| 4 byte | タグ 1 | }1つの単位 | |
| 4 byte | データの長さ 1 | ||
| n byte | データ 1 | ||
| 4 byte | タグ 2 | }1つの単位 | |
| 4 byte | データの長さ 2 | ||
| n byte | データ 2 | ||
| 以降、繰り返し | |||