Talk:Creative Voice

From MultimediaWiki
Revision as of 07:25, 31 July 2006 by Dashcloud (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

I just found back an old book "Sound Blaster - The Official Book", which contains (among other things) some information on the .voc file format. It isn't all that elaborate (it doesn't explain how the various packed formats work), but it does show a list of codec ids (called "pack type" in the book), which differs somewhat from the list displayed in the article:

0 = 8-bit unpacked
1 = 4-bit packed
2 - 2.6-bit packed
3 - 2-bit packed
4 - 1 channel multi
5 - 2 channel multi
6 - 3 channel multi
7 - 4 channel multi
8 - 5 channel multi
9 - 6 channel multi
10 - 7 channel multi

All other info appears to be the same, but the book doesn't document block type 9. — SvdB 23:50, 29 July 2006 (EDT)


Hi, I'm not sure if anyone else has seen this before, but wotsit.org has a document describing this format. The author is galt@dds.es.com, with the information on type 9 by Votis Kokavessis. The file follows below. A quick check of the person's email address indicates that the account doesn't exist any more, and a google search on the address turns up nothing. As with many of the files from wotsit.org, it is quite possible that this person has disappeared and would be unable to be contacted.


   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      1'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]



Addendum submitted by Votis Kokavessis:

After some experimenting with .VOC files I found out that there is a Data Block Type 9, which is not covered in the VOC.TXT file. Here is what I was able to discover about this block type:


TYPE: 09 SIZE: 12 + length of data INFO: 12 (twelve) bytes

INFO STRUCTURE:

Bytes 0-1: (Word) Sample Rate (e.g. 44100) Bytes 2-3: zero (could be that bytes 0-3 are a DWord for Sample Rate) Byte 4: Sample Size in bits (e.g. 16) Byte 5: Number of channels (e.g. 1 for mono, 2 for stereo) Byte 6: Unknown (equal to 4 in all files I examined) Bytes 7-11: zero

Dashcloud 10:25, 31 July 2006 (EDT)