VOC (Audiocodec)
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
[Bearbeiten | Quelltext bearbeiten]Original-Format (8-Bit)
[Bearbeiten | Quelltext bearbeiten]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
[Bearbeiten | Quelltext bearbeiten]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
[Bearbeiten | Quelltext bearbeiten]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
[Bearbeiten | Quelltext bearbeiten]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
[Bearbeiten | Quelltext bearbeiten]- ↑ a b 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).