Skip to content
Shihan edited this page Mar 17, 2020 · 1 revision

VOC-Format

Creative Voice File Format, auch CT-Voice-Format; Musikdatei-Format für den Soundblaster von Creative Labs.

Eine VOC-Datei teilt sich in zwei grundlegende Blöcke, nämlich in den Vorspann(Header) und in die Daten. Der Header ist ein Datenblock, der die Datei als CT-Format-Datei definiert, und zwar durch den Text 'Creative Voice File' und die Hex-Zahl '1A'. Danach folgen die Offset-Adresse der Sample-Daten, sowie die Versionsnummer des CT-Formates gefolgt von einer Prüfsumme der Versionsnummer mit '1234'(hexadezimal). Dem Header schließen sich die Datenblöcke an. Sie beginnen alle mit einem Block-Identifikator(Blocktyp 0,1,... oder7) und einer Längenangabe des Blocks (Blocktyp 0 enthält als einziger keine Längenbytes). Der Rest des Blocks enthält dann die eigentlichen Daten.

References: http://www.inversereality.org/tutorials/sound%20programming/examples/soundblaster16example3.html

Creative Voice (VOC) file format
--------------------------------

~From: galt@dsd.es.com

(byte numbers are hex!)

    HEADER (bytes 00-19)
    Series of DATA BLOCKS (bytes 1A+) [Must end w/ Terminator Block]

- ---------------------------------------------------------------

HEADER:

=======

     byte #     Description
     ------     ------------------------------------------
     00-12      "Creative Voice File"
     13         1A (eof to abort printing of file)
     14-15      Offset of first datablock in .voc file (std 1A 00
                in Intel Notation)
     16-17      Version number (minor,major) (VOC-HDR puts 0A 01)
     18-19      2's Comp of Ver. # + 1234h (VOC-HDR puts 29 11)

- ---------------------------------------------------------------

DATA BLOCK:

===========


   Data Block:  TYPE(1-byte), SIZE(3-bytes), INFO(0+ bytes)
   NOTE: Terminator Block is an exception -- it has only the TYPE byte.

      TYPE   Description     Size (3-byte int)   Info
      ----   -----------     -----------------   -----------------------
      00     Terminator      (NONE)              (NONE)
      01     Sound data      2+length of data    *
      02     Sound continue  length of data      Voice Data
      03     Silence         3                   **
      04     Marker          2                   Marker# (2 bytes)
      05     ASCII           length of string    null terminated string
      06     Repeat          2                   Count# (2 bytes)
      07     End repeat      0                   (NONE)
      08     Extended        4                   ***

      *Sound Info Format:       **Silence Info Format:
       ---------------------      ----------------------------
       00   Sample Rate           00-01  Length of silence - 1
       01   Compression Type      02     Sample Rate
       02+  Voice Data

    ***Extended Info Format:
       ---------------------
       00-01  Time Constant: Mono: 65536 - (256000000/sample_rate)
                             Stereo: 65536 - (25600000/(2*sample_rate))
       02     Pack
       03     Mode: 0 = mono
                    1 = stereo


  Marker#           -- Driver keeps the most recent marker in a status byte
  Count#            -- Number of repetitions + 1
                         Count# may be 1 to FFFE for 0 - FFFD repetitions
                         or FFFF for endless repetitions
  Sample Rate       -- SR byte = 256-(1000000/sample_rate)
  Length of silence -- in units of sampling cycle
  Compression Type  -- of voice data
                         8-bits    = 0
                         4-bits    = 1
                         2.6-bits  = 2
                         2-bits    = 3
                         Multi DAC = 3+(# of channels) [interesting--
                                       this isn't in the developer's manual]

Kategorie:DSA1Kategorie:DSA2Kategorie:Soundformat

Clone this wiki locally