Creative Voice file

{{short description|Audio format for digital audio data}}

{{Infobox file format

| name = VOC

| icon =

| extension = {{code|.voc}}

| mime = audio / x-voc

| developer = Creative Technology

| type =

| url =

}}

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 {{cite web|title=Greg figures out most of the .VOC Format|url=http://www.textfiles.com/programming/FORMATS/vocform.pro|accessdate=2018-06-01|last=Greg|language=en|archive-date=2015-10-28|archive-url=https://web.archive.org/web/20151028075631/http://www.textfiles.com/programming/FORMATS/vocform.pro|url-status=dead}}{{cite web|title=John chimes in with further analysis of the .VOC Format|url=http://www.textfiles.com/programming/FORMATS/vocform2.pro|accessdate=2018-06-01|last=John|language=en|archive-date=2015-10-28|archive-url=https://web.archive.org/web/20151028075631/http://www.textfiles.com/programming/FORMATS/vocform2.pro|url-status=dead}}{{cite web|title=Audio File Formats FAQ|first=Chris |last=Bagwell|url=http://sox.sourceforge.net/AudioFormats-11.html#ss11.5|accessdate=2018-06-01|date=1998-11-14|language=en|pages=Chapter 11: File Formats}} Documentation (FAQ) for the SoX audio editor consists of a 26-byte header and a series of subsequent data blocks containing the audio information. The byte order is little-endian.

class="wikitable"

|+VOC header

!Offset (hex)

!Length (in bytes)

!Content

align="right" |0x00

| align="right" |19

|ASCII stringCreative Voice File

align="right" |0x13

| align="right" |1

|0x1A (EOF)

align="right" |0x14

| align="right" |2

|Starting byte of first data block (usually 0x1A00 for a little-endian value of 26)

align="right" |0x16

| align="right" |2

|[Version] (major, minor), hexadecimal, e.g. 0x010a, version 1.10

align="right" |0x18

| align="right" |2

|Validation: ~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.

class="wikitable"

|+VOC data block

! Type (hex)

! Type description

! Size (3 bytes)

! Info

align="right" |0x00

| Terminator

| align="right" |–

|–

align="right" |0x01

|{{lang|en|Sound data}}

| align="right" |2 + size of the data

|

{| class="wikitable"

|+Audio content

!Offset

!Description

!Meaning

align="right" |0x00

|Sampling rate

|256-(1000000/sample rate)

align="right" |0x01

|Codec

|see table

is ignored if a block of type 0x08 (extra info) defines a codec (from version 1.20)

align="right" |from 0x02

| colspan="2" |Audio data in the specified format (codec)

|-

| align="right" |0x02

| Sound continue

| align="right" |Size of the data

|additional audio data in the same format as the previous block

|-

| align="right" |0x03

| Silence

| align="right" |3

|

class="wikitable"

|+Silence

! Offset

! Description

! Meaning

align="right" |0x00-01

|Length of silence in the unit of the sampling rate

|Integer -1

align="right" |0x02

| sampling rate

| as with audio content

|-

| align="right" |0x04

| Marker

| align="right" |2

| Marker number (2 bytes): remains in an intermediate memory during playback and can be jumped on again.

|-

| align="right" |0x05

|ASCII string

| align="right" |Length of the string

| Null-terminated string

|-

| align="right" |0x06

| Repeat

| align="right" |2

| Number of repetitions (2-byte integer)

0x0000to 0xFFFE1-65,535 repetitions, 0xFFFFfor infinite

|-

| align="right" |0x07

| End repeat

| align="right" |–

|–

|-

| align="right" |0x08

| Extended

| align="right" |4

|–

|-

|}

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.movAX13h. [https://github.com/movAX13h/DrRiptideDissected "Dr. Riptide Dissected"] (README file). GitHub.

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.

References