62 lines
2.5 KiB
Prolog
62 lines
2.5 KiB
Prolog
I just got the developer's kit for the SoundBlaster so I can fill
|
||
in some holes in the CMF File Format. - John
|
||
|
||
-----------------------------------------------------------------
|
||
|
||
Creative Voice File (VOC) Format:
|
||
|
||
HEADER (bytes 00-19)
|
||
Series of DATA BLOCKS (bytes 1A+) [Must end w/ Terminator Block]
|
||
|
||
-----------------------------------------------------------------
|
||
|
||
HEADER:
|
||
=======
|
||
byte # Description
|
||
------ ------------------------------------------
|
||
00-12 Creative Voice File
|
||
13-15 1A 1A 00 (eof to abort printing of file)
|
||
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)
|
||
|
||
*Sound Info Format: **Silence Info Format:
|
||
--------------------- ----------------------------
|
||
00 Sample Rate 00-01 Length of silence - 1
|
||
01 Compression Type 02 Sample Rate
|
||
02+ Voice Data
|
||
|
||
|
||
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]
|
||
|
||
|