Creative Voice File format - codingstyle/swift-dune GitHub Wiki
Creative Voice is an audio sound format created by Creative Labs.
Files usually have .VOC extension and are still supported by a few players like VLC or Audacity.
Format versions
Platform | VOC revision |
---|---|
Floppy | v1.10 (0x010A) |
PC-CD | v1.20 (0x0114) |
Header
Type | Size | Name | Comments |
---|---|---|---|
CHAR[] | 19 bytes | Signature | "Creative Voice File" |
UINT8 | 1 byte | EOF | 0x1A used to abort printing of file |
UINT16LE | 2 bytes | First data block offset | Should be 26 |
UINT16 | 2 bytes | Version | Higher-order byte is major version, Lowest-order byte is the minor revision. |
UINT16LE | 2 bytes | Checksum | See below |
Checksum is calculated using the version. The formula to verify it is:
CHECKSUM = (~VERSION + 0X1234) & 0xFFFF
Data blocks
Following the header are a series of data blocks.
Each block is identified by a 4 byte header:
- 1 byte for the block type identifier
- 3 bytes for the data size
The following blocks are supported on v1.10:
Block ID | Name |
---|---|
0x00 | Termination |
0x01 | Sound data |
0x02 | Sound data continued |
0x03 | Silence |
0x04 | Marker |
0x05 | String |
0x06 | Loop start |
0x07 | Loop end |
Termination
Termination is the data block the end of the file. It does not contain any extra data.
Sound data
Silence
Marker
String
Loop start
Loop end
Block marks the end of a loop. It does not contain any extra data.