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, mouse button or game controller button. 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 or type of game they play. 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 input device(s) 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.

Enabled

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.

Disabled

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 bindings group.

Function

Each key bind can perform one of several functions, and each function will have slightly different parameters associated with it.

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, parent channel, child channel or to the lobby.

Text-to-speech

Generate a Text-to-speech message that other users in the same channel will hear.

Toggle Mute Sound

Toggles the "Mute Sound" check box in the main window on and off.

Toggle Mute Microphone

Toggles the "Mute Microphone" check box in the main window on and off.

Toggle Binds

Toggle active binds off and on, except this bind which always remains on.

Switch Bindings

Switch from one bindings group to another by requesting a bindings group via it's name.

Reset sound input device

Force sound input device to reset. Useful for counteracting static / robotic problems or intermittent sound input device problems.

Push-to-talk, Advanced

For transmitting in to the current channel, a different channel, sub-channels or specific user(s). Requires the DirectInput option to be enabled.

Recording - Start

This function will clear any currently loaded recordings and begin a new recording. The file name will be based on the the current date and time and will be in the current users Working Directory. See the Record / Playback help for more details.

Recording - Stop

This function will stop a recording or stop the playback of an existing recording. See the Record / Playback help for more details.

Recording - Playback

This function will begin playback of a recording that was loaded via the Record / Playback window or if a new recording has just been completed. See the Record / Playback help for more details.

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" or "Push-to-talk, Advanced". This allows you to associate a channel name with a bind.

When function is "Switch Channel"

The program will move you into the specified channel name when connected to a server and you press this bind. Of course, the channel name must exist on the server. To select an existing channel just click the "..." button.

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 moved 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.

When function is "Push-to-talk, Advanced"

The program allows you to transmit to a channel or to a group of channels where each channel is separated by a comma. You can specify up to 4 target channels. You can manually enter the channel names or if you are currently connected to a server you can press the "..." button and select the target channels from a list of possible channels for the current server.

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.

Transmit style

This option window is displayed when the "Function" field is set to "Push-to-talk, Advanced". It allows you to select from several different transmit types. In order to use PTT Advanced you must have the "Use DirectInput" option enabled.

Some of these styles allow for multiple targets whether they be channels or users. You can either use the "..." to select the targets from a list or you can manually enter them. Each target is separated by a comma with no leading or trailing spaces.

Channel

When pressing the selected bind key you will be able to transmit to a specific channel as determined by the "Channel name" field below this option. If you wish to transmit to a specific sub-channel then you must enter the name using this format: "Channel/Sub-Channel". If you are currently connected to the server you should use the "..." button to select the channel(s).

Note: You can specify up to 4 different targets for this single key.

Channel and it's sub-channels

Similar to the "Channel" option above except that it will also transmit to all of the sub-channels of the specified "Channel name" field. Note, if a sub-channel of the specified channel is password protected then it will not replicate any lower if you have not previously authenticated with that channel. Use the "..." button to select the channel(s).

Note: You can specify up to 4 different targets for this single key.

User-to-user

When pressing the selected bind key you will be transmitting directly to a specific user as determined by the "Users logon name" field. This allows for private conversations. If the target user is in a password protected channel and you have not authenticated with that channel then the target will not receive your transmission. Use the "..." button to select the target user(s).

Note: You can specify up to 4 different targets for this single key.

Current channel

This is a effectively the same thing as the Hotkey in the Setup-Voice page. However, by having additional hotkeys to accomplish the same thing you are free to shift your hands around. This is important for games like BattleField where the entire keyboard is used because of the different play modes of the game and if you have to shift your hands to a different section of the keyboard because of the play mode then the normal transmit key might not be within reach.

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, such as Mouse4 and Mouse5, 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 and 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 then press the "Update" button. This is much quicker then removing and then adding the same key just to make a small change.

Work Dir

This button will open the Windows Explorer and will display the contents of the Working Directory which contains the Wav folder, the Recordings folder and other miscellaneous configuration folders.


Wave file placement

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. To see the contents of the current working directory all you need to do is click the "Work Dir" button in the binds editor, or you can right click in the main window - select View and then select Working Directory. Both of these techniques will open a Windows Explorer window and will display the contents of the working directory. The following is an example of what you might see.

When you open the Windows Explorer window it will automatically create the "Wav" folder for you if it doesn't already exist. Go ahead and double click the "Wav" folder.

Wave files must be placed in sub-folders below this "Wav" folder. This way people can create collections or themes of wave file binds and then publish ZIP files that contain the relative path name and associated wave files. This will keep one persons named collection from conflicting with another persons named collection. The names of these sub-folders can be anything you wish to make them if you are the person that is creating the collection. However, the folder 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 example is what my Wav folder looks like. Notice that it does not contain any wave files, instead it has one more level of sub-folders. These sub-folders will contain the actual wave files.

Please note that there will not be any more sub folders below these and if there are the program will not be able to use them.

In my case if I double click on the Fun_General folder it will show me the contents which is nothing but the wave files as seen in the following example.

Notice the Address bar in these images. This shows the physical path to the each of these folders. When the program sends a message to the other clients on the same server it does not send the entire path. Instead it sends the relative path information and file name.

For example, if I have a bind for Mouse4 to play the wave file carnage.wav in the Fun_General directory it would be composed like this.

Fun_General\carnage.wav

It leaves off everything leading up to the wav folder name including wav name. This is because the actual location of this folder path will be different from one persons machine to the next for several reasons:

1) The operating system might be Windows 9x instead of NT / 2000 / XP.
2) It could be a completely different platform like a Macintosh or Linux.

This is why the "Work Dir" button was created so that you could locate the relative path information easily without needing to know the full path name.