WAVE 파일은 RIFF / FMT / DATA chunk로 구성된다.
chunk는 데이터 덩어리 혹은 패킷이라고 생각하면 될 듯 하다.
아무튼 각 chunk에는 식별을 위한 MAGIC WORD가 있으나, 몇개의 파일만 확인해서
저 순서가 아닌 다른 순서로도 있는지는 확인하지 못하였다.
그냥 순서대로 읽어오면 된다.
chunk는 데이터 덩어리 혹은 패킷이라고 생각하면 될 듯 하다.
아무튼 각 chunk에는 식별을 위한 MAGIC WORD가 있으나, 몇개의 파일만 확인해서
저 순서가 아닌 다른 순서로도 있는지는 확인하지 못하였다.
그냥 순서대로 읽어오면 된다.
typedef struct _RIFF_HEADER_
{
unsigned char magic_RIFF[4];
unsigned int file_length;
unsigned char magic_WAVE[4];
} RIFF_HEADER;
typedef struct _FMT_CHUNK_
{
unsigned char magic_FMT[4];
unsigned int fmt_length;
unsigned short format;
unsigned short channels;
unsigned int khz; // sample rate
unsigned int bps; // bytes per second
unsigned short blockalign;
unsigned short depth; // bits per sample
} FMT_CHUNK;
typedef struct _DATA_CHUNK_
{
unsigned char magic_DATA[4];
unsigned int data_length;
unsigned char *data;
} DATA_CHUNK;
'모종의 음모 > noise cancelling' 카테고리의 다른 글
| wave multi channel order (0) | 2010.05.01 |
|---|---|
| 파형 뒤집어 플레이 하기 (6) | 2009.08.12 |
| Active Noise Control - ANC (0) | 2009.08.12 |
| WAVEFORMATEX structure (0) | 2009.04.01 |
| 음속 (0) | 2009.03.30 |