(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) |
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]
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 |
Detailed description of new data blocks
(VOC files version 1.20 and above):
(Source is fax from Barry Boone at Creative Labs, 405/742-6622)