VOC (Audiocodec)
Creative Voice, Dateinamenserweiterung .VOC
(in DOS-üblicher 8.3-Schreibweise) bzw. .voc
, ist ein Audioformat für digitale Audiodaten für die in den 1990er-Jahren entwickelten Sound-Blaster-Soundkarten von Creative Labs.
Creative Voice File (VOC) | |
---|---|
Dateiendung: | .voc |
MIME-Type: | audio/x-voc |
Magische Zahl: | Creative Voice File |
Entwickelt von: | Creative Labs |
Das Format war anfangs auf 8-Bit-Audio beschränkt und wurde mit dem Sound Blaster 16 auf 16-Bit-Audio erweitert (Containerformat). Die Audiodaten sind in Little Endian meist mit PCM oder mit ADPCM kodiert.
Aufbau
Original-Format (8-Bit)
Das Dateiformat[1][2][3] besteht aus einem 26-Byte großen Header und einer Reihe darauffolgender Datenblöcke, die die Audioinformation enthalten. Die Byte-Reihenfolge ist Little Endian.
Offset (hex) | Länge (in Byte) | Inhalt |
---|---|---|
0x00 |
19 | ASCII-Zeichenfolge Creative Voice File |
0x13 |
1 | EOF: 1A (hexadezimal) |
0x14 |
2 | Offset für ersten Datenblock: 1A 00 (hexadezimal) |
0x16 |
2 | Version (Major, Minor), hexadezimal; Beispielsweise: 0x010a , Version 1.10[1] |
0x18 |
2 | Validierung: Versionsnummer + 0x1234 , hexadezimal;Beispielsweise: 0x1129 |
Auf den Header folgen Datenblöcke.
Jeder Datenblock beginnt mit einem Typ-Byte, das den Inhalt der Daten beschreibt, gefolgt von 3 Bytes für die Größe der Daten (als Integerzahl). Bei zwei der 9 definierten Typen fehlt die anschließende Größe der Daten, sodass der Block schließlich nur aus einem einzigen Byte besteht – diese sind 0x00
, der Terminator, und 0x07
, das Wiederholungsende.
Ist eine Größe angegeben, so folgt den ersten 4 Bytes ein Block des Inhalts, der sich aus dem angegebenen Typ ergibt, mit der angegebenen Größe.
Typ (hex) | Typ-Beschreibung | Größe (3-Byte-Integer) |
Info | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
engl. | deu. | |||||||||||||||
0x00 |
Terminator | Trennzeichen | – | – | ||||||||||||
0x01 |
Sound data | Audiodaten | 2+Größe der Daten |
| ||||||||||||
0x02 |
Sound continue | weitere Audiodaten | Größe der Daten | weitere Audiodaten im selben Format wie der vorherige Block | ||||||||||||
0x03 |
Silence | Stille | 3 |
| ||||||||||||
0x04 |
Marker | 2 | Markernummer (2 Bytes) Der jeweils letzte Marker bleibt beim Abspielen in einem Zwischenspeicher und kann wieder angesprungen werden. | |||||||||||||
0x05 |
ASCII string | ASCII-Zeichenkette | Länge der Zeichenkette | Null-terminierte Zeichenkette | ||||||||||||
0x06 |
Repeat | Wiederholen | 2 | Anzahl an Wiederholungen (2-Byte-Integer)0x0000 bis 0xFFFE für 1–65.535 Wiederholungen, 0xFFFF für unendlich | ||||||||||||
0x07 |
End repeat | Ende der Wiederholung | – |
Die Datei endet optional mit dem Terminator-Block (Datenblock des Typs 0x00
).
16-Bit-Formaterweiterung
Um das bestehende Format auf 16-Bit zu erweitern wurde für den Datenblock ein neues Typ-Byte eingeführt: 0x09
. Die Version im Header muss dabei 1.20 (Hexadezimal 0x0114
) oder neuer sein.
Typ (hex) | Typ-Beschreibung | Größe (3-Byte-Integer) |
Info | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
engl. | deu. | ||||||||||||||||||||||||
0x08 |
Extra info | Zusätzliche Information | 4 |
| |||||||||||||||||||||
0x09 |
Sound data (new format) | Audiodaten im neuen Format | 12 + Größe der Daten |
|
Codecs
Codec-ID (hex) |
Kodierung, Kompression, Codec | Block-Typ |
---|---|---|
0x00 |
8 Bits unsigned PCM | Original (0x01, 0x02 ) und Neu (0x09 ) |
0x01 |
4–8 Bits Creative ADPCM | |
0x02 |
3–8 Bits Creative ADPCM (2,6 Bits) | |
0x03 |
2–8 Bits Creative ADPCM | |
0x04 |
16 Bits signed PCM | ab Version 1.20; Original (0x01, 0x02 ) und Neu (0x09 ) |
0x06 |
A-law | |
0x07 |
μ-law | |
0x0200 |
4–16 Bits Creative ADPCM | nur neues erweitertes Format (ab Version 1.20; 0x09 und 0x02 ) |
Verwendung
Creative-Voice-Dateien fanden in diversen DOS-Spielen Verwendung, wenn diese für die Audioausgabe Sound-Blaster-Karten verwenden konnten, beispielsweise Eye of the Beholder.[4][5]
Die Verbreitung des Dateiformats verschwand zusehends mit dem Aufkommen von RIFF WAVE, welches in Windows von Microsoft bereits vom Betriebssystem unterstützt wurde. Für das Creative-Voice-Dateiformat mussten hingegen zusätzliche Abspielprogramme installiert werden, die bei den Treibern für die Sound-Blaster-Karten mitgeliefert wurden. Mit dem Aufkommen von AC’97 setzte sich WAVE, Dateiendung .WAV
, schließlich durch.
Einzelnachweise
- Greg: Greg figures out most of the .VOC Format. In: Programming Textfiles: Format Specifications. Abgerufen am 1. Juni 2018 (englisch).
- John: John chimes in with further analysis of the .VOC Format. In: Programming Textfiles: Format Specifications. Abgerufen am 1. Juni 2018 (englisch).
- Chris Bagwell: Audio File Formats FAQ. Chris Bagwell, 14. November 1998, S. Kapitel 11: File Formats, abgerufen am 1. Juni 2018 (englisch, Dokumentation (FAQ) des SoX-Audioeditor).
- lol.voc. (Wiki) In: Eye of the Beholder Wiki. Abgerufen am 1. Juni 2018 (englisch).
- movAX13h/DrRiptideDissected. (GitHub) In: Dr. Riptide Dissected. Abgerufen am 1. Juni 2018 (englisch).