Creative Voice File (VOC) | |
---|---|
Dateiendung: | .voc |
MIME-Type: | audio/x-voc |
Magische Zahl: | Creative Voice File |
Entwickelt von: | Creative Labs |
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.
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 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 |
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.
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
- 1 2 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).