1. Audio ToolBox SDK
      1. Overview
      2. VISI’s Audio ToolBox Software Development Kit (SDK) lets you process and convert audio file formats from your MS Windows and MS DOS applications. The Audio ToolBox SDK contains sample programs that use the libraries and DLLs. These programs were created using Visual Basic and Microsoft C version 8.0, and demonstrate usage under both Windows and DOS. The sample PCM conversion program performs a simple .WAV to .Vox conversion.

      3. System Requirements

Audio ToolBox SDK is designed to run on a minimum system configuration through careful design and use of system resources. A minimum system configuration for Audio ToolBox SDK is as follows:

An IBM PC/AT or compatible with a hard drive, graphics monitor (color or monochrome) and at least 640K of memory.
MS-DOS 3.3 or above.
Microsoft Windows 3.x and above (for DLL version).
      1. Software Installation
      2. Insert the diskette labeled Audio ToolBox SDK in the A: drive. Change to the A: drive by entering:

        A: <ENTER>

        To install Audio ToolBox SDK on your system, enter the following:

        INSTALL <ENTER>

        Audio ToolBox SDK supports many popular data formats. The Install program will ask you to specify the data format you use. Just follow the instructions on the screen!

        After running Install, store your original Audio ToolBox SDK disks in a safe place. You’re now ready to work with the Audio ToolBox SDK.

      3. The Audio ToolBox SDK Directories

The Audio ToolBox SDK directories contains all the files necessary to convert your files to and from a variety of audio file formats. In addition, the distribution diskette contains audio files you can use for sample conversions. The Audio ToolBox installation directory is organized into subdirectories. The following briefly describes the files and their uses:

The MSCCvt directory contains a sample MS Windows and DOS program "CVTTST.C". To build both the Windows and DOS versions, run the batch file "MAKEME.BAT". The associated makefile assumes that Microsoft C 8.0 tools are installed and accessible.
The CvtLib directory contains the "C" header and library files for various PCM formats. The libraries are named PPPMMM.Lib to designate the formats. PPP = DLG for Dialogic, G21 for C-ITU (CCITT) G.721, NWV for NewVoice, and PTC for Perception Technology. MLE is for Microsoft Large memory model with floating point emulator, and MWE is for Microsoft Windows model with floating point emulator.
The MVBCvt directory contains a sample MS Windows Visual Basic project,"CvtTst.Mak".
The WINDLL directory contains the DLLs necessary for the MS Windows executable versions.
      1. The CvtTst Program

The sample program performs a simple .Wav to .Vox conversion. To build the Microsoft Visual C CvtTst programs:

Make sure the Microsoft C 8.0 tools are installed and accessible.
Run the batch file MakeMe.bat to build both MS Windows and MS DOS versions of the sample program.
      1. Visual Basic Interface

To build the Microsoft Visual Basic CvtTst project:

Make sure Microsoft Visual Basic 3.0 or above is installed and accessible.
Use "File... Open Project" to open "MVBCVT\CVTTST.MAK".
Use "File... Make Exe File..." to build the sample program.
      1. Audio ToolBox SDK Functions

The following pages describe, in alphabetical order, the functions in the Audio ToolBox SDK. The discussion of each function is divided into the following sections:

Description: Illustrates the function calling syntax and summarizes the routine’s effect.
Parameter: Describes function arguments and purpose.
Returns: Specifies the function return value, if any.
Remarks: Provides more detailed information on side effects and usage.
      1. Audio Conversion Functions
      2. Audio ToolBox SDK lets you convert to and from Microsoft Multimedia Wave (8, 16 & MS ADPCM), linear 16 and unsigned 8 bit, Dialogic 4 and 8 bit, plus other industry standard formats. Optionally choose volume adjustments, dynamic compression/ expansion and fast or high fidelity filtering and re-sampling algorithms.

        The following descriptions provide detailed information for calling these functions from your application. The definitions of these functions, structures and constants are defined in the files GENCVT.H (for "C/C++" programmers) and GENCVT.TXT (for Visual Basic programmers).

        CvtCfgIni

        WORD FAR PASCAL CvtCfgIni (CVTBLK FAR *lpCvtBlk);

        Convert Configuration Initialize: Initializes the Audio Conversion function block. Call this function to set all CVTBLK parameters to zero. Use this function for compatibility with future releases.

        Parameter Description

        lpCvtBlk Conversion data block.

        Returns

        0 if successful.

        CvtPCMFil

        DWORD FAR PASCAL CvtPCMFil (short sSrcHdl, short sDstHdl, LPCSTR szSrcRsv, LPCSTR szDstRsv, LPSTR lpWrkRsv, WORD usSizRsv, CVTBLK FAR *lpCvtBlk);

        Convert PCM File: Convert to and from Microsoft Multimedia Wave (8, 16 & MS ADPCM), linear 16 and unsigned 8 bit, Dialogic 4 and 8 bit, plus other industry standard formats. Optionally choose volume adjustments, dynamic compression/ expansion and fast or high fidelity filtering and re-sampling algorithms.

        Parameter Description

        sSrcHdl Source file handle.

        sDstHdl Destination file handle

        szSrcRsv Reserved for future use. (Set to NULL)

        szDstRsv Reserved for future use. (Set to NULL)

        lpWrkRsv Reserved for future use. (Set to NULL)

        usSizRsv Reserved for future use. (Set to 0L)

        lpCvtBlk Conversion data block.

        The conversion data block, CVTBLK, contains the following parameters for controlling processing options:

        CVTBLK
        Parameter Description

        usSrcFmt Source file format. Use this parameter to define the type of header information used by the input file. File formats supported in this release are:

        Value Meaning

        ALLPURFMT Pure (raw audio data).

        WAVHDRFMT Multimedia wave.

        usSrcPCM Source PCM type. Use this parameter to define the type of audio data contained in the input file. Note that this parameter is ignored (and may be set to zero) when a valid PCM type can be determined from the source file header. PCM types supported in this release are:

        Value Meaning

        DLGPCM004 Dialogic 4 bit (OKI).

        DLGPCM008 Dialogic 8 bit (u-Law).

        G11PCMF08 C-ITU (CCITT) G.711 u-Law 8 bit.

        G11PCMI08 C-ITU (CCITT) G.711 a-Law 8 bit.

        G21PCM004 C-ITU (CCITT) G.721 4 bit ADPCM.

        MPCPCM008 Multimedia 8 bit.

        MPCPCM016 Multimedia 16 bit.

        NWVPCM001 NewVoice CVSD 1 bit.

        PTCPCM001 Perception Technology CVSD 1 bit.

        usSrcChn Source file channel count. Use this parameter to define the number of audio channels contained within the audio data. Note that this parameter is ignored (and may be set to zero) when a valid file channel count can be determined from the source file header.

        usSrcBIO Source bit encoding. Use this parameter to control bit and byte ordering requirements of the input file. Indicate that this option is active by logically "OR-ing" FIOENCSWP with one or more of the following bit masks:

        Value Meaning

        FIOSWPBIT Swap single bits.

        FIOSWPNIB Swap 4-bit nibbles.

        FIOSWPBYT Swap 8-bit bytes.

        FIOSWPWRD Swap 16-bit words

        ulSrcFrq Source sample frequency in Hertz. Use this parameter to define the sample frequency of the input file. Note that this parameter is ignored (and may be set to zero) when a valid sample frequency can be determined from the source file header. May be set to zero to use default frequency as defined by the file header or implied by the PCM data type.

        ulSrcOff Source byte offset in bytes. Use this parameter to skip over a section of the input file.

        ulSrcLen Source byte length in bytes. Use this parameter to limit the length of the input data. Set to hexadecimal FFFFFFF for whole file.

        mhSrcCfg Source configuration memory buffer. Reserved for future use.

        usDstFmt Destination file format. Use this parameter to define the type of header information used by the output file. File formats supported in this release are:

        Value Meaning

        ALLPURFMT Pure (raw audio data).

        WAVHDRFMT Multimedia wave.

        usDstPCM Destination PCM type. Use this parameter to define the type of audio data contained in the output file. PCM types supported in this release are:

        Value Meaning

        DLGPCM004 Dialogic 4 bit (OKI).

        DLGPCM008 Dialogic 8 bit (u-Law).

        G11PCMF08 C-ITU (CCITT) G.711 u-Law 8 bit.

        G11PCMI08 C-ITU (CCITT) G.711 a-Law 8 bit.

        G21PCM004 C-ITU (CCITT) G.721 4 bit ADPCM.

        MPCPCM008 Multimedia 8 bit.

        MPCPCM016 Multimedia 16 bit.

        NWVPCM001 NewVoice CVSD 1 bit.

        PTCPCM001 Perception Technology CVSD 1 bit.

        usDstChn Destination file channel count. Reserved for future use.

        usDstBIO Destination bit encoding. Use this parameter to control bit and byte ordering requirements of the output file. Indicate that this option is active by logically "OR-ing" FIOENCSWP with one or more of the following bit masks:

        Value Meaning

        FIOSWPBIT Swap single bits.

        FIOSWPNIB Swap 4-bit nibbles.

        FIOSWPBYT Swap 8-bit bytes.

        FIOSWPWRD Swap 16-bit words

        ulDstFrq Destination sample frequency in Hertz. Use this parameter to define the sample frequency of the output file. May be set to zero to use default frequency as implied by the PCM data type.

        ulDstOff Destination byte offset in bytes. Reserved for future use. Use this parameter to skip over a section of the output file.

        ulDstLen Destination byte length in bytes. Use this parameter to limit the length of the output data. Set to hexadecimal FFFFFFF for whole file.

        mhDstCfg Destination configuration memory buffer. Reserved for future use.

        flCrpFrm Frame length for auto-crop silence detector (typical value is 0.50 sec, defined by CRPFRMDEF). Use this setting to change the length of silence considered as separating distinct audio segments.

        flCrpRes Frame resolution for auto-crop silence detector (typical value is 0.01 sec, defined by CRPRESDEF). Use this setting to change the level of detail used when analyzing a file.

        flCrpSnd Auto-crop sound threshold level maximum percentage (typical value is 2% of max, defined by CRPSNDDEF). Use this setting to change the audio level interpreted as "sound". Higher values result in higher immunity to noise, but lower sensitivity to sound.

        usCrpAtk Sensitivity attack ratio for auto-crop silence detector (typical value is 20% of frame, defined by CRPATKDEF). Use this setting to change the amount of sound that must be detected to recognize a transition from a region of silence to a region of active audio. Higher values result in higher immunity to noise, but increase the possibility of losing a portion of the beginning of active audio.

        usCrpDcy Sensitivity decay ratio for auto-crop silence detector (typical value is 10% of frame, defined by CRPDCYDEF). Use this setting to change the amount of sound that must be detected to recognize a transition from a region of active audio to a region of silence. Higher values result in higher immunity to noise, but increase the possibility of leaving a larger portion of silence at the end of active audio.

        flCrpGrd Auto-crop sound guard time (typical value 0.05 sec, defined by CRPGRDDEF). Increase the guard time for more silence at the beginning and end.

        flVolAdj Volume adjust multiplier (+/-) (typical value is 0 dB). Use this setting to increase the volume level of the destination audio file.

        usNrmLvl Volume normalize (typical value is 1.0% over range, defined by NRMLVLDEF). Use this setting to adjust the volume levels across multiple files.

        flNrmExc Volume normalize exception threshold (typical value is 0.2%, defined by NRMLEXCDEF). Since most real audio waveforms are not symmetrical, this parameter allows the volume level to go over target range some percentage of the time in order to achieve a better overall level. Set this parameter to zero to force no portion of this signal to go over the target level.

        usNrmMax Volume normalize maximum adjustment level (typical value is 6.0 dB,defined by NRMMAXDEF). This parameter limits the maximum level that the volume can be increased or decreased during the normalization process

        flDCELvl Volume dynamic compressor/ expander level (typical value is 6.0 dB, defined by DCELVLDEF). Use this setting to improve the dynamic range of the destination audio file.

        usCmpThr Volume dynamic compressor/ expander compressor threshold (typical value is 80% of max, defined by CMPTHRDEF). Use typical value for best results.

        usCmpAtk Volume dynamic compressor/ expander compressor attack time (typical value is 50 Hz, defined by CMPATKDEF). Use typical value for best results.

        flCmpMin Volume dynamic compressor/ expander compressor minimum (typical value is 6 dB, defined by DCELVLDEF). Use typical value for best results.

        usExpThr Volume dynamic compressor/ expander expander threshold (typical value is 30% of max, defined by EXPTHRDEF). Use typical value for best results.

        usExpAtk Volume dynamic compressor/ expander expander attack time (typical value is 5 Hz, defined by EXPATKDEF). Use typical value for best results.

        flExpMax Volume dynamic compressor/ expander expander maximum (typical value is 6 dB, defined by DCELVLDEF). Use typical value for best results.

        usCE_Dcy Volume dynamic compressor/ expander decay time (typical value is 5Hz, defined by CE_DCYLVLDEF). Use typical value for best results.

        usNoiThr Volume dynamic compressor/ expander noise gate threshold. (typical value is 2% of max, defined by NOITHRDEF). Use typical value for best results.

        flNoiAtt Volume dynamic compressor/ expander noise gate attenuation (typical value is 3 dB, defined by NOIATTDEF). Use typical value for best results.

        usTDLAAF Time domain anti-aliasing filter order (typical value is 2nd order). Use this parameter to set the quality level of the time domain anti-aliasing filter.

        Value Meaning

        AAF_Q2TYP 2nd order filter.

        AAF_Q6TYP 6th order filter.

        bfTDLFst Time domain anti-aliasing filter fast math on/off (typical value is FALSE). Set TRUE for improved speed on 286/386 class computers.

        bfFFTDTM DTMF touch-tone FFT filter on/ off (typical value is FALSE) Set TRUE to remove touch-tone frequencies during conversion.

        bfFFTAAF Low pass anti-aliasing FFT filter on/ off (typical value is FALSE). Set TRUE for improved fidelity.

        bfFFTFEq FFT Frequency Equalize on/off (typical value is FALSE). Set TRUE to activate frequency equalizer parameters described below.

        bfFFTRes Re-sample FFT filter on/ off (typical value is FALSE). Use the TRUE setting for improved fidelity.

        usFFTOrd FFT filter size (typical value is 9, defined by FFTORDDEF). Use typical value for best results.

        flFEqGai Frequency equalizer overall gain adjust (typical value is 0 dB). Use this setting to adjust the overall volume level during and equalization request.

        ulFEqBot Frequency equalizer bottom frequency (typical value is 0 Hz). Use this parameter to set the bottom band of the frequency equalizer data points settings.

        ulFEqTop Frequency equalizer top frequency (typical value of 0 Hz uses top Nyquist frequency of file). Use this parameter to set the top band of the frequency equalizer data points settings.

        usFEqCnt Frequency equalizer point count. Number of data points in the frequency equalizer flFEqPnt data array.

        flFEqPnt Frequency equalizer data points (typical value is between ± 12 dB for each band). Use this setting to build a series of band adjustment levels.

        mhGloCfg Global configuration memory buffer. Reserved for future use.

        lpPolDsp Conversion poll display procedure. Reserved for future use.

        ulRsvPol Reserved for future use.

        lpMsgDsp Reserved for future use.

        ulRsvErr Reserved for future use.

        ucRsv001 Reserved for future use.

        usCmpCod Conversion completion code. Reserved for future use.

        ucRsv002 Reserved for future use.

        Returns

        Number of bytes converted.

        Remarks

        This function supports all the conversion options available in the command line version of the PCMCvt program. See the C and Visual Basic sample files for additional information on the CVTBLK parameters.

        CvtPCMIni

        WORD FAR PASCAL CvtPCMIni (WORD usReqTyp, DWORD ulPrm001, DWORD ulPrm002);

        Convert PCM Initialize: Initialize support for the conversion functions of the Audio ToolBox SDK. This function must be called before using any audio conversion processing functions.

        Parameter Description

        usReqTyp Reserved for future use. (Set to 0)

        ulPrm001 Reserved for future use. (Set to 0L)

        ulPrm002 Reserved for future use. (Set to 0L)

        Returns

        0 if successful. The following pre-defined values can be used to determine the return code status:

        Value Meaning

        SI_CVTNO_ERR Success

        SI_CVTKEYERR Key/License error, 8 second limit

        SI_CVTVERERR Module version mismatch

        CvtPCMTrm

        WORD FAR PASCAL CvtPCMTrm (void);

        Convert PCM Terminate: Terminate support for the conversion functions of the Audio ToolBox SDK. This function should be called prior to program termination.

        Parameters

        None

        Returns

        0 if successful.

        CvtPCMVer

        WORD FAR PASCAL CvtPCMVer (void);

        Convert PCM Version: Return the Audio ToolBox SDK audio conversion version number. This function may be called at any time.

        Parameters

        None

        Returns

        The version number as hexadecimal 0xAABB where AA equals the major version, and BB equals the minor version number.

      3. Sound Chop Functions
      4. Audio ToolBox allows you to record a continuous stream of prompts into a single file, and then automatically break the single file into individual files. Sound chop separates a single file into individual files based upon periods of silence used as a separator. The resulting individual files can then be converted, volume normalized, and packed or converted using other Audio ToolBox utilities.

        The following descriptions provide detailed information for calling these functions from your application. The definitions of these functions, structures and constants are defined in the files GENCHP.H (for "C/C++" programmers) and GENCHP.TXT (for Visual Basic programmers).

        ChpCfgIni

        WORD FAR PASCAL ChpCfgIni (CHPBLK FAR *lpChpBlk);

        Chop Configuration Initialize: Initializes the Sound Chop function block. Call this function to set all CHPBLK parameters to zero. Use this function for compatibility with future releases.

        Parameter Description

        lpChpBlk Sound chop data block.

        Returns

        0 if successful.

        ChpSndFil

        DWORD FAR PASCAL CvtPCMFil (short sSrcHdl, LPSTR szSrcRsv, CHPOPNCBK lpOpnCBk, CHPCOPCBK lpCopCBk, CHPCLSCBK lpClsCBk, DWORD ulCBkDat, CHPBLK FAR *lpChpBlk);

        Chop Sound File: Audio ToolBox allows you to record a continuous stream of prompts into a single file, and then automatically break the single file into individual files. This function separates a single file into individual files based upon periods of silence used as a separator. The resulting individual files can then be converted, volume normalized, and packed or converted using other Audio ToolBox utilities.

        Parameter Description

        sSrcHdl Source file handle.

        szSrcRsv Reserved for future use. (Set to NULL)

        lpOpnCBk Pointer to a function that opens a file and provides the sound chop function with the file handle of the file to contain the next sound segment.

        lpCopCBk Reserved for future use. (Set to NULL)

        lpClsCBk Pointer to a function that closes the current file containing the most recent sound segment.

        ulCBkDat A user defined 32-bit value that is passed to the "lpOpnCBk" and "lpClsCBk" functions. Use this parameter to pass instance specific data to the callback functions.

        lpChpBlk Sound chop data block.

        The sound chop data block, CHPBLK, contains the following parameters for controlling processing options:

        CHPBLK
        Parameter Description

        usSrcFmt Source file format. Use this parameter to define the type of header information used by the input file. File formats supported in this release are:

        Value Meaning

        ALLPURFMT Pure (raw audio data).

        WAVHDRFMT Multimedia wave.

        usSrcPCM Source PCM type. Use this parameter to define the type of audio data contained in the input file. Note that this parameter is ignored (and may be set to zero) when a valid PCM type can be determined from the source file header. PCM types supported in this release are:

        Value Meaning

        DLGPCM004 Dialogic 4 bit (OKI).

        DLGPCM008 Dialogic 8 bit (u-Law).

        G11PCMF08 C-ITU (CCITT) G.711 u-Law 8 bit.

        G11PCMI08 C-ITU (CCITT) G.711 a-Law 8 bit.

        G21PCM004 C-ITU (CCITT) G.721 4 bit ADPCM.

        MPCPCM008 Multimedia 8 bit.

        MPCPCM016 Multimedia 16 bit.

        NWVPCM001 NewVoice CVSD 1 bit.

        PTCPCM001 Perception Technology CVSD 1 bit.

        usSrcChn Source file channel count. Use this parameter to define the number of audio channels contained within the audio data. Note that this parameter is ignored (and may be set to zero) when a valid file channel count can be determined from the source file header.

        usSrcBIO Source bit encoding. Use this parameter to control bit and byte ordering requirements of the input file. Indicate that this option is active by logically "OR-ing" FIOENCSWP with one or more of the following bit masks:

        Value Meaning

        FIOSWPBIT Swap single bits.

        FIOSWPNIB Swap 4-bit nibbles.

        FIOSWPBYT Swap 8-bit bytes.

        FIOSWPWRD Swap 16-bit words

        ulSrcFrq Source sample frequency in Hertz. Use this parameter to define the sample frequency of the input file. Note that this parameter is ignored (and may be set to zero) when a valid sample frequency can be determined from the source file header. May be set to zero to use default frequency as defined by the file header or implied by the PCM data type.

        ulSrcOff Source byte offset in bytes. Use this parameter to skip over a section of the input file.

        ulSrcLen Source byte length in bytes. Use this parameter to limit the length of the input data. Set to hexadecimal FFFFFFF for whole file.

        mhSrcCfg Source configuration memory buffer. Reserved for future use.

        usDstFmt Destination file format. Use this parameter to define the type of header information used by the output file. File formats supported in this release are:

        Value Meaning

        ALLPURFMT Pure (raw audio data).

        WAVHDRFMT Multimedia wave.

        flChpFrm Frame length for silence detector (typical value is 1.0 sec, defined by CHPFRMDEF). Use this setting to change the length of silence considered as separating distinct audio segments.

        flChpRes Frame resolution for silence detector (typical value is 0.01 sec, defined by CHPRESDEF). Use this setting to change the level of detail used when analyzing a file. Use typical value for best results.

        flChpSnd Sound threshold level maximum percentage (typical value is 2% of max, defined by CHPSNDDEF). Use this setting to change the audio level interpreted as "sound". Higher values result in higher immunity to noise, but lower sensitivity to sound.

        usChpAtk Sensitivity attack ratio for silence detector (typical value is 20% of frame, defined by CHPATKDEF). Use this setting to change the amount of sound that must be detected to recognize a transition from a region of silence to a region of active audio. Higher values result in higher immunity to noise, but increase the possibility of losing a portion of the beginning of active audio.

        usChpDcy Sensitivity decay ratio for silence detector (typical value is 10% of frame, defined by CHPDCYDEF). Use this setting to change the amount of sound that must be detected to recognize a transition from a region of active audio to a region of silence. Higher values result in higher immunity to noise, but increase the possibility of leaving a larger portion of silence at the end of active audio.

        flChpGrd Auto-crop sound guard time (typical value 0.05 sec, defined by CHPGRDDEF). Increase the guard time for more silence at the beginning and end.

        mhGloCfg Global configuration memory buffer. Reserved for future use.

        lpPolDsp Sound chop poll display procedure. Reserved for future use.

        ulRsvPol Reserved for future use.

        lpMsgDsp Reserved for future use.

        ulRsvErr Reserved for future use.

        ucRsv001 Reserved for future use.

        usCmpCod Reserved for future use.

        ucRsv002 Reserved for future use.

        Returns

        Number of bytes of audio data written to the output file(s).

        ChpSndIni

        WORD FAR PASCAL ChpSndIni (WORD usReqTyp, DWORD ulPrm001, DWORD ulPrm002);

        Chop Sound Initialize: Initialize support for the sound chop functions of the Audio ToolBox SDK. This function must be called before using any sound chop processing functions.

        Parameter Description

        usReqTyp Reserved for future use. (Set to 0)

        ulPrm001 Reserved for future use. (Set to 0L)

        ulPrm002 Reserved for future use. (Set to 0L)

        Returns

        0 if successful. The following pre-defined values can be used to determine the return code status:

        Value Meaning

        SI_CHPNO_ERR Success

        SI_CHPKEYERR Key/License error, 8 section limit

        SI_CHPVERERR Module version mismatch

        ChpSndTrm

        WORD FAR PASCAL ChpSndTrm (void);

        Chop Sound Terminate: Terminate support for the sound chop functions of the Audio ToolBox SDK. This function should be called prior to program termination.

        Parameters

        None

        Returns

        0 if successful.

        ChpSndVer

        WORD FAR PASCAL ChpSndVer (void);

        Chop Sound Version: Return the Audio ToolBox SDK sound chop version number. This function may be called at any time.

        Parameters

        None

        Returns

        The version number as hexadecimal 0xAABB where AA equals the major version, and BB equals the minor version number.

      5. Indexed File Functions
      6. Audio ToolBox supports both pure (raw amplitude data) and indexed format files. Pure files contain only digitized sound; indexed files contain groups of digitized sound, plus format and annotation text. These functions let you convert to and from pure and indexed file formats, as well as provide file maintenance capabilities.

        The following descriptions provide detailed information for calling these functions from your application. The definitions of these functions, structures and constants are defined in the files GENIDX.H (for "C/C++" programmers) and GENIDX.TXT (for Visual Basic programmers).

        IdxCfgIni

        Reserved for future use.

        IdxFilIni

        WORD FAR PASCAL IdxFilIni (WORD usReqTyp, DWORD ulPrm001, DWORD ulPrm002);

        Indexed File Initialize: Initialize support for the indexed file functions of the Audio ToolBox SDK. This function must be called before using any indexed file processing functions.

        Parameter Description

        usReqTyp Reserved for future use. (Set to 0)

        ulPrm001 Reserved for future use. (Set to 0L)

        ulPrm002 Reserved for future use. (Set to 0L)

        Returns

        0 if successful. The following pre-defined values can be used to determine the return code status:

        Value Meaning

        SI_IDXNO_ERR Success

        SI_IDXKEYERR Key/License error, 8 second limit

        SI_IDXVERERR Module version mismatch

        IdxFilTrm

        WORD FAR PASCAL IdxFilTrm (void);

        Indexed File Terminate: Terminate support for the indexed file functions of the Audio ToolBox SDK. This function should be called prior to program termination.

        Parameters

        None

        Returns

        0 if successful.

        IdxFilVer

        WORD FAR PASCAL IdxFilVer (void);

        Indexed File Version: Return the Audio ToolBox SDK indexed file version number. This function may be called at any time.

        Parameters

        None

        Returns

        The version number as hexadecimal 0xAABB where AA equals the major version, and BB equals the minor version number.

        1. Index Chop Functions
        2. Index chop functions allow you to "chop" indexed files into pure audio and text files that can be batch processed, converted and edited. The following function descriptions provide detailed information for calling these functions from your application.

          ChpIdxIni

          WORD FAR PASCAL ChpIdxIni (CHIBLK FAR *lpChIBlk);

          Chop Index Initialize: Initializes the Index Chop function block. Call this function to set all CHIBLK parameters to zero. Use this function for compatibility with future releases.

          Parameter Description

          lpChIBlk Index chop data block.

          Returns

          0 if successful.

          ChpIdxFil

          WORD FAR PASCAL ChpIdxFil (short sSrcHdl, LPSTR szVoxSpc, LPSTR szTxtSpc, CHICHKCBK lpChkCBk, LPVOID lpRsv001, CHIENDCBK lpEndCBk, DWORD ulCBkDat, CHIBLK FAR *lpChIBlk)

          Chop Index File: This function allows you to "chop" indexed files into pure audio and text files that can be batch processed, converted and edited.

          Parameter Description

          sSrcHdl Source file handle.

          szVoxSpc Destination audio file extension (typical value is ".vox"). Use this setting to change the file name extension of the newly created audio files.

          szTxtSpc Destination text file extension (typical value is ".txt"). Use this setting to change the file name extension of the newly created text files.

          lpChkCBk Pointer to a function that is called to indicate current index file segment that is being processed. This function should return TRUE for future compatibility.

          lpRsv001 Reserved for future use. (Set to NULL)

          lpEndCBk Pointer to a function that is called to indicate current index file segment has completed processing. This function should return TRUE for future compatibility.

          ulCBkDat A user defined 32-bit value that is passed to the "lpChkCBk" and "lpEndCBk" functions. Use this parameter to pass instance specific data to the callback functions.

          lpChIBlk Index chop data block.

          The conversion data block, CHIBLK, contains parameters for controlling processing options.

          CHIBLK
          Parameter Description

          lNamOff Destination file name counter offset (typical value is 0). Use this setting to change the beginning numeric name of the newly created audio and text files.

          ulIdxPos Chop @ index position (beginning of file is 1, last is 9999). Use this setting to limit the extraction to a range of indexes.

          ulIdxCnt Number of indexes to chop (0 indicates all indexes). Use this setting to limit the extraction to a range of indexes.

          lpPolDsp Index chop poll display procedure. Reserved for future use.

          ulRsvPol Reserved for future use.

          lpMsgDsp Reserved for future use.

          ulRsvErr Reserved for future use.

          ucRsv001 Reserved for future use.

          Returns

          0 if successful.

        3. Index List Functions
        4. Index list functions allow you to list the header and content information of an indexed file. The following function descriptions provide detailed information for calling these functions from your application.

          LstIdxIni

          WORD FAR PASCAL LstIdxIni (LSIBLK FAR *lpLsIBlk);

          List Index Initialize: Initializes the Index List function block. Call this function to set all LSIBLK parameters to zero. Use this function for compatibility with future releases.

          Parameter Description

          lpLsIBlk Index list data block.

          Returns

          0 if successful. The following pre-defined values can be used to determine the return code status:

          Value Meaning

          SI_IDXNO_ERR Success

          SI_IDXKEYERR Key/License error, 8 second limit

          SI_IDXVERERR Module version mismatch

          LstIdxFil

          DWORD FAR PASCAL LstIdxFil (short sSrcHdl, LPCSTR szSrcRsv, LPSTR lpWrkBuf, WORD usBufSiz, LSIBLK FAR *lpLstBlk)

          List Index File: This function allows you to list the header and content information of an indexed file to the standard output device.

          Parameter Description

          sSrcHdl Source file handle.

          szSrcRsv Reserved for future use. (Set to NULL)

          lpWrkBuf Temporary work buffer. (recommended size is 1024 bytes).

          usBufSiz Size of lpWrkBuf temporary work buffer (typical value is 1024).

          lpLsIBlk Index List data block.

          The conversion data block, LSIBLK, contains parameters for controlling processing options.

          LSIBLK
          Parameter Description

          usLstFlg List request flags

          Value Meaning

          GENINHFLG Inhibit general information display flag.

          VOXINHFLG Inhibit vox information display flag.

          TXTINHFLG Inhibit text information display flag.

          lpMsgDsp Reserved for future use.

          ulRsvErr Reserved for future use.

          ucRsv001 Reserved for future use.

          Returns

          0 if successful.

        5. Index Pack Functions
        6. Index pack functions allow you to "pack" pure audio and text files into an indexed file. The following function descriptions provide detailed information for calling these functions from your application.

          PakIdxIni

          WORD FAR PASCAL PakIdxIni (PKIBLK FAR *lpPkIBlk);

          Pack Index Initialize: Initializes the Index Pack function block. Call this function to set all PKIBLK parameters to zero. Use this function for compatibility with future releases.

          Parameter Description

          lpPkIBlk Index pack block.

          Returns

          0 if successful.

          PakIdxFil

          WORD FAR PASCAL PakIdxFil (LPSTR szVoxSpc, LPSTR szTxtSpc, LPSTR szDstSpc, PKICHKCBK lpChkCBk, LPVOID lpRsv001, PKIENDCBK lpEndCBk, DWORD ulCBkDat, PKIBLK FAR *lpPkIBlk)

          Pack Index File: This function allows you to "pack" pure audio and text files into an indexed file.

          Parameter Description

          szVoxSpc Destination audio file extension (typical value is ".vox"). Use this setting to change the file name extension of the newly created audio files.

          szTxtSpc Destination text file extension (typical value is ".txt"). Use this setting to change the file name extension of the newly created text files.

          szDstSpc Destination file specification (typical value is "Index.Vap"). Use this setting to set the output file drive, path and file name.

          lpChkCBk Pointer to a function that is called to indicate current index file segment that is being processed. This function should return TRUE for future compatibility.

          lpRsv001 Reserved for future use. (Set to NULL)

          lpEndCBk Pointer to a function that is called to indicate current index file segment has completed processing. This function should return TRUE for future compatibility.

          ulCBkDat A user defined 32-bit value that is passed to the "lpChkCBk" and "lpEndCBk" functions. Use this parameter to pass instance specific data to the callback functions.

          lpPkIBlk Index pack data block.

          The conversion data block, PKIBLK, contains parameters for controlling processing options.

          PKIBLK
          Parameter Description

          sSrtTyp Sort files; +1 up, -1 down, 0 unsorted. (typical value is +1). Use this setting to pack the files in descending or unsorted directory order.

          ulSmpFrq Set header sample frequency to value. (typical value is 6000). Use this setting to change the frequency stored in the header of the indexed file. This setting DOES NOT change the audio data.

          lpPolDsp Index pack poll display procedure. Reserved for future use.

          ulRsvPol Reserved for future use.

          lpMsgDsp Reserved for future use.

          ulRsvErr Reserved for future use.

          ucRsv001 Reserved for future use.

          Returns

          0 if successful.

        7. Index Rebuild Functions

Index rebuild functions allow you to lengthen, shorten, replace entries and "rebuild" indexed files. The following function descriptions provide detailed information for calling these functions from your application.

RebIdxIni

WORD FAR PASCAL RebIdxIni (RBIBLK FAR *lpRbIBlk);

Rebuild Index Initialize: Initializes the Index Rebuild function block. Call this function to set all RBIBLK parameters to zero.

Parameter Description

lpRbIBlk Index rebuild block.

Returns

0 if successful.

RebIdxFil

DWORD FAR PASCAL RebIdxFil (short sSrcHdl, short sDstHdl, LPCSTR szSrcRsv, LPCSTR szDstRsv, LPSTR lpWrkBuf, WORD usBufSiz, RBIBLK FAR *lpRbIBlk);

Rebuild Index File: This function allows you to lengthen, shorten, replace entries and "rebuild" indexed files.

Parameter Description

sSrcHdl Source file handle.

sDstHdl Destination file handle.

szSrcRsv Reserved for future use. (Set to NULL)

szDstRsv Reserved for future use. (Set to NULL)

lpWrkBuf Temporary work buffer. (recommended size is 1024 bytes).

usBufSiz Size of lpWrkBuf temporary work buffer (typical value is 1024).

lpRbIBlk Index Rebuild data block.

The conversion data block, RBIBLK, contains parameters for controlling processing options.

RBIBLK
Parameter Description

sShfCnt Add (+ value) or remove (- value) the specified number of indexes (typical value is none).

usAt_Pos Perform operations @ index position (typical value is 1, last is 9999). Use this setting to limit operations to a range of indexes.

ulSmpFrq Set header sample frequency to value NNNN position (typical value of 0 leaves original header frequency setting unchanged). Use this setting to change the frequency stored in the header of the indexed file. This setting DOES NOT change the audio data.

ucRepVox Replacement vox filename character string. Replace audio data @ position (typical value of 0 leaves original audio data unchanged). Use this parameter to replace the audio contents of an index with the raw data from the specified vox file.

ucRepTxt Replacement text filename character string. Replace annotation text @ position (typical value of 0 leaves original text data unchanged). Use this parameter to replace the annotation text contents of an index with the raw data from the specified text file.

lpPolDsp Index rebuild poll display procedure. Reserved for future use.

ulRsvPol Reserved for future use.

lpMsgDsp Reserved for future use.

ulRsvErr Reserved for future use.

ucRsv001 Reserved for future use.

Returns

Number of bytes written to the new "rebuilt" file.