wav
RIFF(Resource Interchange File Format)形式
作り方
magic (4): 'RIFF' [0x52, 0x49, 0x46, 0x46]
chunk size (4): ファイル全体のサイズ - 8
format (4): 'WAVE' [0x57, 0x41, 0x56, 0x45]
magic (4): 'fmt ' [0x66, 0x6d, 0x74, 0x20]
chunk size (4): 16
format tag (2): リニアPCMの場合は 1
channels (2): モノラルは 1 ・ステレオは 2
samples per sec (4): 44100 とか 48000 とか
avg bytes per sec (4): sample per sec * block align。48000KHz・16bit・モノラルなら 96000
block align (2): 1サンプルあたりのバイト数。モノラル16bitの場合は 2 ・ステレオ16bitの場合は 4
bits per sample (2): 各チャンネル1サンプルあたりのバイト数。16bitの場合は 16
magic (4): data [0x64, 0x61, 0x74, 0x61]
chunk size (4): 波形データのサイズ
data (n): 実データ
16bitのサンプルデータを並べるだけ
ステレオの場合は左・右・左・右……と交互に16bitのサンプルを並べる
普通の作り方をすれば、wavファイルの総サイズは dataチャンクの実データの長さ + 44