The cue chunk specifies cues / markers in the wave file, such as the beginning of a verse or the end of a solo.
A cue chunk in the Wave file format has the following structure.
Byte sequence description | Length in bytes | Starts at byte in the chunk | Value |
chunk ID | 4 | 0x00 | The ASCII character string "cue " (note the space) |
size | 4 | 0x04 | The size of the cue chunk (number of bytes) less 8 (less the "chunk ID" and the "size") |
number of cue points | 4 | 0x08 | The number of cue points in the list of cue points that follows |
data | various | 0x0C | A list of cue points. Each cue point uses 24 bytes of data |
The cue chunk is optional, but, if it exists, at most one cue chunk per file is allowed. Thus, the single cue chunk should contain all cue points in the file.
A cue point uses 24 bytes of data as follows.
Byte sequence description | Length in bytes | Starts at byte in the cue point | Value |
ID | 4 | 0x00 | A unique number for the point used by other chunks to identify the cue point. For example, a playlist chunk creates a playlist by referring to cue points, which themselves define points somewhere in the file |
position | 4 | 0x04 | If there is no playlist chunk, this value is zero. If there is a playlist chunk, this value is the sample at which the cue point should occur |
data chunk ID | 4 | 0x08 | Either "data" or "slnt" depending on whether the cue occurs in a data chunk or in a silent chunk |
chunk start | 4 | 0x0C | The position of the start of the data chunk that contains the cue point. If there is a wave list chunk, this value is the byte position of the chunk that contains the cue. If there is no wave list chunk, there is only one data chunk in the file and this value is zero |
block start | 4 | 0x10 | The byte position of the cue in the "data" or "slnt" chunk. If this is an uncompressed PCM file, this is counted from the beginning of the chunk's data. If this is a compressed file, the byte position can be counted from the last byte from which one can start decompressing to find the cue |
sample start | 4 | 0x14 | The position of the cue in number of bytes from the start of the block |
See also:
Wave file format
Add new comment