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.