[Back to SOUND SWAG index] [Back to Main SWAG index] [Original]

    {
     I posted beFore about sample converting... the .VOC to the sample
     Format used by MODS.  You gave me some example code, but the prob is,
     VOC Files have a header, how would I do it so that the header wasn't
     converted?

    Here is the VOC File Format that was posted here a While back.  It works
    well For me.

    A .VOC File consists of a 26-Byte header Record plus sample data.
    The header Record has the following layout:
    }
    VoiceHeader  : Record
         signature   : Array[1..20] of Char;   { Vendor's name }
         DataStart   : Word;      { Start of data in File }
         Version     : Integer;   { BCD value: min. driver version required }
         ID          : Integer;   { 1-Complement of Version field+$1234 }
       end;                       { used to indentify a .VOC File }

    The data is divided into 'blocks'.  There are 8 Types of blocks:

    -  0 : Terminator
           1 Byte Record, value 00

    -  1 : Voice Data
           1 Byte, value 01: identifier
           3 Bytes: length of voice data (len data + 2)
           1 Byte: SR= 256-(1,000,000 / sampling rate)
           1 Byte: pack field, value:
             0 : unpacked, 1 : 4-bit, 2 : 2.6 bit, 3 : 2 bit packed
           <follows voice data>

    -  2 : Voice Continuation
           1 Byte, value 02: identifier
           3 Bytes: length of voice data
           <follows voice data>

    -  3 : Silence
           1 Byte, value 03: identifier
           3 Bytes: length of silence period (value 3?)
           2 Bytes: silence period in Units of sampling cycles
           1 Byte: SR (see above)

    -  4 : Marker
           1 Byte, value 04: identifier
           3 Bytes: length of marker, value 2
           2 Bytes: user defined marker

    -  5 : ASCII Text
           1 Byte, value 05: identifier
           3 Bytes, length of String (not counting null Byte)
           <String>
           1 Byte, value 0: String terminator

    -  6 : Repeat Loop
           1 Byte, value 06: identifier
           3 Bytes: length of block, value 2
           2 Bytes: count value+1

    -  7 : end Repeat Loop
           1 Byte, value 07: identifier
           3 Bytes: length of block, value 0

    {
    to my knowledge, the .VOC File Format is proprietary and the data
    herein is only of value For the specific SoundBlaster hardware. I think
    you'll have a hard time converting samples to another synthesizer.
    }

[Back to SOUND SWAG index] [Back to Main SWAG index] [Original]