Creative Voice file explained

VOC
Mime:audio / x-voc
Developer:Creative Technology

Creative Voice, filename extension .voc, is an audio format for digital audio data developed in the 1990s Sound Blaster sound cards from Creative Technology.

Construction

Original 8-bit format

The file format [1] [2] [3] consists of a 26-byte header and a series of subsequent data blocks containing the audio information. The byte order is little-endian.

VOC header!Offset (hex)!Length (in bytes)!Content
0x0019ASCII stringCreative Voice File
0x1310x1A (EOF)
0x142Starting byte of first data block (usually 0x1A00 for a little-endian value of 26)
0x162[Version] (major, minor), hexadecimal, e.g. 0x010a, version 1.10
0x182Validation: ~version + 0x1234, hexadecimal, truncated to 16 bits, e.g. 0x1129
The header is followed by data blocks. Each data block begins with a type byte describing the contents of the data, followed by 3 bytes for the size of the data. For two of the 9 defined types, the subsequent size of the data is missing, so the block ultimately consists of only a single byte – these are 0x00 terminator, and 0x07 repeat end.

If a size is specified, the first 4 bytes will be followed by a block of the content resulting from the specified type with the specified size.

VOC data block! Type (hex)! Type description! Size (3 bytes)! Info
0x00Terminator
0x01English: Sound data2 + size of the data
Audio content!Offset!Description!Meaning
0x00Sampling rate256-(1000000/sample rate)
0x01Codecsee tableis ignored if a block of type 0x08 (extra info) defines a codec (from version 1.20)
from 0x02Audio data in the specified format (codec)
0x02Sound continueSize of the dataadditional audio data in the same format as the previous block
0x03Silence3
Silence! Offset! Description! Meaning
0x00-01Length of silence in the unit of the sampling rateInteger -1
0x02sampling rateas with audio content
0x04Marker2Marker number (2 bytes): remains in an intermediate memory during playback and can be jumped on again.
0x05ASCII stringLength of the stringNull-terminated string
0x06Repeat2Number of repetitions (2-byte integer) 0x0000to 0xFFFE1-65,535 repetitions, 0xFFFFfor infinite
0x07End repeat
0x08Extended4
The file optionally ends with the terminator block (data block of type 0x00).

Use

Creative Voice files were used in various DOS games when they could use sound blaster cards for audio output, such as Eye of the Beholder.[4]

The spread of the file format disappeared noticeably with the advent of RIFF WAVE, which was already supported in Windows. However, the Creative Voice file format required the installation of additional player programs included with the Sound Blaster Card drivers. With the advent of AC'97, WAVE, file extension .WAV, finally prevailed.

Notes and References

  1. Web site: Greg figures out most of the .VOC Format. 2018-06-01. Greg. en. 2015-10-28. https://web.archive.org/web/20151028075631/http://www.textfiles.com/programming/FORMATS/vocform.pro. dead.
  2. Web site: John chimes in with further analysis of the .VOC Format. 2018-06-01. John. en. 2015-10-28. https://web.archive.org/web/20151028075631/http://www.textfiles.com/programming/FORMATS/vocform2.pro. dead.
  3. Web site: Audio File Formats FAQ. Chris . Bagwell. 2018-06-01. 1998-11-14. en. Chapter 11: File Formats. Documentation (FAQ) for the SoX audio editor
  4. movAX13h. "Dr. Riptide Dissected" (README file). GitHub.