 *   *   *   *   *   *   *   VDFE v2.0 Help File   *   *   *   *   *   *   *

         ┌──────────────────────────────────────────────────────────┐
         │ »»»»»»»»»»»»»»»»»»  NON-MENU ACTIONS ««««««««««««««««««« │
         ├─────────────────────────────────────┬────────────────────┤
         │ Action                  Key         │ Action         Key │
         ├─────────────────────────────────────┼────────────────────┤
         │ Selected a Value                │ Redraw Screen  F9  │
         │ Selected Value + 1      Shift+     │ Activate Menu  F10 │
         │ Selected Value + 100    Shift+PgDn  │                    │
         │ Selected Value + 10000  Shift+End   │                    │
         │ Selected Value - 1      Shift+     │                    │
         │ Selected Value - 100    Shift+PgUp  │                    │
         │ Selected Value - 10000  Shift+Home  │                    │
         └─────────────────────────────────────┴────────────────────┘
 ┌──────────────────────────────────────────────────────────────────────────┐
 │ »»»»»»»»»»»»»»»»»»»»»»»»»»»»  MENU ACTIONS ««««««««««««««««««««««««««««« │
 ├────────────────────────────┬─────────────────────────────────────────────┤
 │ Action             Key     │ Action                         Key          │
 ├────────────────────────────┼─────────────────────────────────────────────┤
 │ Load Index File    Alt+I   │ Play the Block                 Enter        │
 │ Load Data File     Alt+D   │ Merge Current Block with Next  M            │
 │ Change File Names  Alt+N   │ Split Current Block            S            │
 │ Save Index File    Ctrl+I  │ Cut Block to Clipboard         Del          │
 │ Save Data File     Ctrl+D  │ Paste from Clipboard           Insert       │
 │ Save Both          Ctrl+S  │ Copy Block to Clipboard        Shift+Insert │
 │ Create Index       I       │ Delete the Block               Shift+Del    │
 │ Pack Data          Ctrl+P  │ Write Clipboard to File        W            │
 │ Help               F1      │ Read File into Clipboard       R            │
 │ Exit               Esc     │ Record into Clipboard          F3           │
 │                            │ Play Clipboard Contents        F4           │
 │                            │ Select COM Port                F2           │
 └────────────────────────────┴─────────────────────────────────────────────┘

 ══════════════════════════════╡ Introduction ╞══════════════════════════════

 VDFE is designed to work with pairs of files, one containing the actual
 digitized voice data and the other providing an index into the words,
 phrases, and sounds stored in the data file. This allows a reasonable level
 of programming flexibility, especially for systems using large amounts of
 voice data. VDFE works only with data files in their uncompressed form.

 Data files are unlimited in length. Index files may contain at most 4096
 entries. An index file consists only of a number of index entries packed
 together. Each entry is 8 bytes long, so the file length will be 8 times
 the number of entries. One entry in an index file is formatted as follows:

        Bytes 0 - 3:     Offset from beginning of data file in bytes.
        Bytes 4 - 7:     Length of sound in bytes.

 Each of the two parts of the entry is a "long" (4-byte) integer, stored
 in "low byte first" order.

 In this document, a "block" refers to a segment of a voice data file as
 referenced by an entry in the corresponding index file. The length of a
 block may range from 1 byte to the length of the entire data file. Note,
 however, that VDFE requires blocks to be sequential and non-overlapping.
 Gaps may exist, but no voice data byte may be a part of two blocks.

 ═════════════════════╡ Explanation of Screen Contents ╞═════════════════════

 Menu Bar:
   Works in the conventional way. Activate by pressing F10. The mouse is not
   supported in this version. Use of the menu bar is optional, since all
   commands are accessible through direct keystrokes.

 Blk # (Block number):
   Shows a sequential reference number for each index entry.

 Start:
   Shows the starting byte number within the data file for each block. Can be
   changed from the keyboard.

 Stop:
   Shows the ending byte number within the data file for each block. Can be
   changed from the keyboard. The number actually saved in the index file for
   each block is <Stop> - <Start>.

 Block count:
   This is the total number of blocks currently defined for the index file.

 Data file size:
   The total number of bytes currently in the data file.

 Buffer size:
   This is the number of bytes in the RAM buffer. This number has no effect
   on the size of the data file that may be edited, or the size of files that
   may be read and written through the clipboard. It affects only actual
   recording and playback. It is the maximum size allowed for any block to be
   played through the speaker, although larger blocks may be otherwise
   manipulated. It is also the maximum number of bytes that can be
   continuously recorded into the clipboard.

 Digitizer port:
   This is the COM port number to which the voice digitizer hardware is
   attached. It can be set with the F2 key. Used for recording only.

 Index file:
   The name of the current index file. Change by pressing Alt+N. The current
   index will be written to this file name by Ctrl+I or Ctrl+S.

 Data file:
   The name of the current data file. Change by pressing Alt+N. The current
   data will be written to this file name by Ctrl+D or Ctrl+S.

 Instruction area:
   Always displays a very brief set of operating instructions.

 ══════════════════╡ Descriptions of Individual Commands ╞═══════════════════

 Selected a Value  (   ):
   When there are entries in the index list (Blk #, Start, & Stop) then one
   of these entries is always "selected", as indicated by highlighting. The
   highlight can be moved up and down with the vertical arrow keys. The
   horizontal arrow keys select either the Start or Stop value. The selected
   value can then be manipulated. Its numerical value can be changed with the
   Shift key in combination with various cursor pad keys (see the following
   commands). The selected block is also the target of the Play, Merge,
   Split, Cut, Paste, Copy, and Delete commands.

 Selected Value + 1  (Shift+):
   Adds 1 to the selected value unless it would cause an overlap.

 Selected Value + 100  (Shift+PgDn):
   Adds 100 to the selected value unless it would cause an overlap.

 Selected Value + 10000  (Shift+End):
   Adds 10000 to the selected value unless it would cause an overlap.

 Selected Value - 1  (Shift+):
   Subtracts 1 from the selected value unless it would cause an overlap.

 Selected Value - 100  (Shift+PgUp):
   Subtracts 100 from the selected value unless it would cause an overlap.

 Selected Value - 10000  (Shift+Home):
   Subtracts 10000 from the selected value unless it would cause an overlap.

 Redraw Screen  (F9):
   Redraws the entire screen. Intended primarily as a means of recovering
   after screen is trashed by "Abort, Retry, Ignore, Fail?" message from DOS.

 Activate Menu  (F10):
   Highlights the first selection in the menu bar. Use <Enter> key to show
   pull-downs, select with arrow keys, then use <Enter> to perform the action
   or <Esc> to back out.

 Load Index File  (Alt+I):
   The cursor will appear in the "Index file" area (near the bottom of the
   screen) allowing a file name to be entered and/or edited. Press <Enter>
   to load the specified index file or <Esc> to do nothing.

 Load Data File  (Alt+D):
   The cursor will appear in the "Data file" area (near the bottom of the
   screen) allowing a file name to be entered and/or edited. Press <Enter>
   to load the specified data file or <Esc> to do nothing.

 Change File Names  (Alt+N):
   This allows the user to alter the current names of the index and data
   files. Use the arrow keys to switch between file names. Press <Enter>
   when done.

 Save Index File  (Ctrl+I):
   The current index listing will be written to the file name shown at the
   bottom of the screen as the "Index file". Use Alt+N to change this name.

 Save Data File  (Ctrl+D):
   The current voice data will be written to the file name shown at the
   bottom of the screen as the "Index file". Use Alt+N to change this name.

 Save Both  (Ctrl+S):
   This combines the two save operations (see Save Index and Save Data).

 Create Index  (I):
   This operation will analyze the entire data file, attempting to
   distinguish between areas of sound and areas of silence. The areas of
   sound will become blocks in the newly created index. The areas of silence
   will become gaps in the index (i.e. parts of the data file that are not
   included in any indexed block). NOTE: This will erase the current index
   in memory (but not the one on disk, unless you then Save Index without
   changing the file name). If a data file has already been stripped of its
   silent areas by editing and the use of the Pack Data command, then Create
   Index will not succeed because it will be unable to find areas of silence
   in the file. Create Index is actually intended to be used only once on a
   newly recorded data file.

 Pack Data  (Ctrl+P):
   This will remove all areas of the data file which are not currently part
   of any index entry. The indexed blocks will be packed together with no
   addressing gaps. The index Start and Stop values will be adjusted
   accordingly. This command is intended for use after careful editing to
   strip out unused voice data and save disk space in the finished file.

 Help  (F1):
   Displays this file.

 Exit  (Esc):
   Exits to DOS from VDFE (after a last-chance prompt).

 Play the Block  (Enter):
   The currently selected block is played through the speaker.

 Merge Current Block with Next  (M):
   The currently selected block and the next sequential block will be
   combined into a single block. The total block count will be decremented.

 Split Current Block  (S):
   The currently selected block will be split into two blocks, each half the
   size of the original. The total block count will be incremented.

 Cut Block to Clipboard  (Del):
   The voice data of the currently selected block will be copied to the
   clipboard (a temporary file), overwriting the previous clipboard contents.
   The block will then be deleted from the voice data and index.

 Paste from Clipboard  (Insert):
   This is the reverse of Cut to Clipboard. A new block will be created in
   the index and data. The contents of the clipboard will then be copied into
   this new block. The clipboard contents remain unchanged. NOTE: If the
   currently selected value is a Start value, then the new block will be
   inserted BEFORE it. If the currently selected value is a Stop value, then
   the new block will be inserted AFTER it.

 Copy Block to Clipboard  (Shift+Insert):
   The voice data of the currently selected block will be copied to the
   clipboard (a temporary file), overwriting the previous clipboard contents.
   The index and data will not be changed.

 Delete the Block  (Shift+Del):
   The currently selected block will be deleted from the index and data. The
   block count and data size will decrease.

 Write Clipboard to File  (W):
   This will simply write the current clipboard voice data to a file. The
   user will be prompted for a file name.

 Read File into Clipboard  (R):
   This reads a user-specified voice data file into the clipboard,
   overwriting the previous clipboard contents.

 Record into Clipboard  (F3):
   The previous contents of the clipboard will be deleted, and recording will
   start into the memory buffer. Once recording has terminated, either
   through a keypress, the use of the "stop" switch on the digitizer board,
   or running out of memory, the buffer will be copied into the clipboard.
   NOTE: A common error consists of forgetting to set the COM port number
   prior to recording.

 Play Clipboard Contents  (F4):
   The current clipboard contents will be played through the speaker.

 Select COM Port  (F2):
   This increments the digitizer COM port number, wrapping at 4.

 ═══════════════════════╡ A Typical Editing Session ╞════════════════════════

 Prepare a list of words, phrases, and sounds that you wish to record,
 including the order in which they are to appear in the voice data file.

 If you have not already done so, read the section of the digitizer
 documentation that concerns input volume levels and the indicator LEDs.

 Attach the digitizer to a COM port. Execute VDFE by typing its name at the
 command prompt. You must not be running in a DOS box under Microsoft Windows
 in enhanced mode. Press F2 repeatedly until the correct port number shows in
 the "Digitizer port" box.

 If you are creating a new voice data file, press Alt+N and type both an
 index file name and a data file name into the appropriate slots.

 To record new data: turn the digitizer on, then press F3 and start talking
 (or whatever is appropriate). There is a delay of about one second between
 the keypress and the start of data recording. VDFE will say "Go" at the
 moment recording begins. Press a key on the keyboard or the "stop" switch on
 the digitizer when finished. You can listen to the recording just made by
 pressing F4. If the recording is not satisfactory, re-record it by pressing
 F3.

 Once the recording in the clipboard is considered satisfactory, it may be
 inserted into the main data file by pressing Insert. If more data must be
 recorded than will fit into the memory buffer, then repeat the previous
 procedure until all desired sounds have been accumulated as blocks in the
 data file. Be sure that you have enough free disk space before starting.
 Remember also to turn off the digitizer when not in use to conserve the
 batteries.

 If you want to use the automatic indexing capability, press the "I" key at
 this point and a new index will be created.

 Use the Selected Value increment and decrement commands to adjust the
 position and size of each block as required. Some sounds intended as one
 block will probably appear as several, due to embedded silence. Use the
 Merge command to combine them. As you adjust each block, use the Enter key
 to listen to it in its current state.

 Once all blocks are correct, and you are sure that the data in the
 inter-block gaps is not needed, press Ctrl+P to remove the unneeded data and
 minimize the file size. Press Ctrl+S to save the index and data files.

 *   *   *   *   *   *   *     End of Help File     *   *   *   *   *   *   *
