Ventrilo - Bindings
Key binds are a way for the user to tell the program to perform a specific function by pressing a user defined key. This feature will be available even while the user is currently working within a completely different program.
Bind Name
This pull down list box allows for selecting a specific grouping of binds to be edited or deleted.
New
You can create binds in groups so that when you activate the binds from the main window you can activate more then one key at a time to accomplish any number of tasks. Users might also want a different set of binds for each of the different servers that they connect to. This is why when you press the "New" button the program will open a new window where you can enter a name to associate with a group of binds. When the group is selected from the programs main window all of its binds a activated. When this button is pressed all of the input fields are initialized to blank entries and you can start adding items to them.
Clone
This button is similar to the "New" button except that after entering a new bind grouping name the program will clone (copy) all of the binds from the currently selected binds displayed in the "Binds Name" pull down box.
Delete
This button will delete the bind grouping currently displayed in the "Bind Name" pull down box.
Use DirectInput
This option allows the user to control how Ventrilo will monitor the keyboard for bind keys. Basically there are two different methods, one that uses DirectInput and one that doesn't. However, there are several key differences between the two.
With DirectInput: When this option is enabled it will allow for virtually any key (excluding PrintScreen and Pause) to be used as a valid bind key. This option will also be required for binds to work while playing certain games. The downside to this option is that the keyboard monitoring is passive and any key you press will be processed by whatever application has focus at that time. So, if you bind the "Enter" key to play a wave file then if you are editing a document and press the "Enter" key your editor will start a new line and Ventrilo will play the specified wave file.
Without DirectInput: When turned off the list of available keys is limited. You can not bind to modifier keys like control, alt and shift but most other keys will work. Some games will not allow Ventrilo binds to work at all with this option turned off so you might be forced to turn it on if necessary. However, the advantage to using it this way is that Ventrilo will prevent any of the bound keys from being processed by any other program when pressed.
The "Use DirectInput" option is unique to each "Bind name" created. Thus, you can create multiple bind sets, some of the them with the option turned on and others with the option turned off. This is useful for when some games will require the DirectInput option enabled while others will not, but you get to decide how it works simply by selecting a different bind set.
Function
Each bind can perform one of several tasks, and each task will have slightly different parameters associated with it. The current tasks are:
Wave File(s) | Play a specific or list of wave files when pressed. |
Switch Channel | Switch to a specific channel or move to the next channel. |
Text-to-speech | Generate a Text-to-speech message. |
Toggle Mute Sound | Toggle the mute sound on and off. |
Toggle Mute Microphone | Toggle the mute microphone on and off. |
Toggle Binds | Toggle active binds off and on, except this bind which always remains on. |
Switch Bindings | Switch from one bindings list to another by requesting a bindings list via it's name. |
Reset sound input device | Force sound input device to reset. Useful for counteracting static/robotic problems. |
Available Files
This list is displayed when the "Function" field is set to "Wave File(s)". This is a list of all available wave files currently in the working directory for the selected user. The user is selected from the main window. If this window is empty then check that the users working directory is set correctly and that WAV files do exist in the proper directory naming structure beneath the users working directory.
See the Wave file placement section at the bottom of this page for directory structure details.
When assigning wave files to a key all you need to do is select a file from this list before pressing the Add button or the update button. You can also bind multiple wave files to a single key simply by selecting more then one file while holding down the Control key. When multiple files are assigned to a key the program will cycle through the list one entry at a time whenever the key is pressed.
Channel Name
This input field is displayed when the "Function" field is set to "Switch Channel". This allows you to associate a channel name with a bind. The program will move you into the specified channel when connected to a server and you press this bind. Of course, the channel name must exist on the server.
Ventrilo has a couple of reserved channel names that perform special actions:
Next = Requests that we be moved into the next parallel channel.
Lobby = Explicitly moves you into the lobby, which is a channel by it self.
Parent = If in a sub channel then this will move you up one level. If in a root channel then you will be move to the lobby.
Child = Moves you into the first sub-channel of the current channel. If you are currently in the lobby then you will be moved into the first root channel.
Starting with version 2.0.0 Ventrilo now supports sub-channels. If you request a specific channel by name and it's a sub-channel of another channel then you must provide the complete path name. For example, assume a root channel name of "Blue" which also has a sub-channel called "Test'" which in turn has a sub-channel called "Public" and you want a bind key to take you directly to this Public channel, then you must spell out the channel path name like this:
Blue/Test/Public
To make this a little easier, from the main window you can right click on any channel name, pull down to Miscellaneous and then select the "Copy channel path" option. This will copy the complete channel path name onto the clipboard making it easier to paste the info into this selection.
Text-to-speech
This input field allows you enter a message that will be converted into a synthetic human voice for others in the same channel to hear.
Bind key
This input box is where you can press a key that you wish add to the current list of binds. Simply click on it with your mouse and then press any key. Note: Some keys are not allowed when the "Use DirectInput" option is not checked.
Current
This list window displays the list of currently assigned key binds for the selected grouping. If you click on an entry in this window it will display the "Function" and associated parameters for that function. See the Remove button further down for more details.
Play
This button will either play the selected wave file when "Function" is set to Wave File(s) mode, or it will play the Text-to-speech message when "Function" is set to that mode.
Add
This button takes the data from the "Bind key", assigns it a "Function" and its associated parameters then moves it into the "Current" list, thus adding the bind to the current grouping.
Remove
The remove button takes the selected item from the "Current" list and moves it back into the "Bind key" input box, thus deleting the bind from the grouping. If you pressed remove by accident then you can immediately press Add to put it back.
Update
This button allows you to modify what a currently bound key does without being forced to perform a Remove and then doing another Add.
First you need to select an item from the "Current" list which will display its function and associated parameters. You can then change the function and/or parameters and the press the "Update" button. This is much quicker then removing and then adding the same key just to make a small change.
The following info describes where and how to place wave files that can be attached to "bind" keys and transmitted to other clients connected to the same server.
First, it's important to understand that Ventrilo does not transmit the raw wave file data to the other clients, instead, it transmit's the relative path info and file names. This in turn requires that each client have the same wave files in the same relative path names for them to be heard.
Bindable wave files are stored below the users working directory. This can be found (and changed) by clicking on the button next to the "User Name" pulldown on the main window.
If the "Work Dir" field is blank then the program will use the default system wide working directory. If you click on the "?" button it will show you what the system wide working directory is currently set to. Please note that the format of this directory is different between Windows 9x systems and Windows 2000/XP systems. The following example shows what the working directory would look like on 2000/XP:
C:\Documents and Settings\SystemLoginName\Application Data\Ventrilo
Whereas, the next example shows what it would look like on a Windows 9x based system.
C:\WINDOWS\Application Data\Ventrilo
You can also override the working directory by entering it into the "Work Dir" field. For example, you could enter something like:
C:\Ventrilo
Since the working directory can be different from one computer to another the actual path is relative when transmitting the wave path\filename to the other clients. This will be discussed after going over some examples.
No matter what the working directory is you must create another directory below it called "Wav", and below the "Wav" directory must be one or more sub-directories containing the actual wave files. These sub-directories that contain the wave files can be named anything you want them to be. However, their names and the names of the wave files on other peoples systems must be the same as your's, otherwise the receiving clients will not know how to locate the specified wave file.
The following examples will use the Windows 9x method shown above because it's easier to work with. However, if you use 2000 or XP then you will need to adjust the path info accordingly.
Let's say we have two categories, or themes, of wave files. The first is called "TAG_Offense" and the other is called "TAG_Defense". Our directory structure would look like this:
C:\WINDOWS\Application Data\Ventrilo\Wav\TAG_Offense
C:\WINDOWS\Application Data\Ventrilo\Wav\TAG_Defense
Both TAG_Offense and TAG_Defense are directory names and each one will contain one or more wave files. The following example shows a single wave file in each of these directories:
C:\WINDOWS\Application Data\Ventrilo\Wav\TAG_Offense\attack.wav
C:\WINDOWS\Application Data\Ventrilo\Wav\TAG_Defense\regroup.wav
Ideally, you would replace the word TAG_ with something like your teams name tag. For example, my team would use the names T2K_Offense and T2K_Defense. This is important should you ever want to make your wave files available to the public and not have to worry about them conflicting with someone else's directory names. This is good form rather then a requirement.
Assuming you have the working directory setup properly and the wave file directories installed in the correct location then when you enter the Ventrilo binds editor and select the "Wave file(s)" function the program should display all of the files in the TAG_Offense and TAG_Defense directories including the directory names them selves.
As another example let's assume you manually override the working directory by entering the following into the ventrilo user setup Work Dir field:
C:\Ventrilo
This would imply that the wave files will be found in the following examples:
C:\Ventrilo\Wav\TAG_Offense\attack.wav
C:\Ventrilo\Wav\TAG_Defense\regroup.wav
The phrase "relative directory" mentioned above means that the only thing that is transmitted to the other clients would be something like "TAG_Offense\attack.wav". Notice that the working directory is not part of the string. The directory component "Wav" is not part of the string either because it is implied and each of the clients knows that it will need to automatically append it to the working directory in order to build the complete path and file name.