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 |