JMRI: Virtual Sound Decoder Manager Window
Author: Mark Underwood
Keywords: JMRI help Virtual Sound Decoder

# JMRI Virtual Sound Decoder Manager Window

This is the quick reference page for the Manager window in the JMRI Virtual Sound Decoder tool.
What is this thing? The Virtual Sound Secoder ("VSDecoder" for short) sits on your computer, listening to its assigned decoder address. When you do things to the throttle (change speed or press the function button), it makes sounds, just like a physical sound decoder in your locomotive would - except the sound comes from your computer.
Virtual Sound Decoder is completely independent of the hardware layout, and can be used in stand-alone mode. You don't even have to have a locomotive in the Roster to use it.
You do need to have a working sound system and speakers on your computer, of course!
You must also have the OpenAL or JavaSound audio system installed on your computer. See the JMRI Audio Help Pages for details.
See the DecoderPro Manual Pages for more details on Virtual Sound Decoder.

## Virtual Sound Decoder Manager Window

The VSDecoder Manager Window contains a control panel for each Virtual Sound Decoder ("VSDecoder") that is running.

When first launched the window is empty, except for a volume slider, "Mute" button, and "Add Decoder" button. To create a VSDecoder, click "Add Decoder". This will open the Configure New VSDecoder Window.

The Volume slider and Mute button are "master" controls that control the sound output of all running VSDecoders.

### Configure New VSDecoder Window

A config dialog lets you choose which sound profile to use (Steam vs. Diesel, EMD vs. GE, Leslie vs. Nathan, etc.), and assign a decoder address to listen to.

#### Roster Select and Save

You can select an existing Roster Entry, if you have any. Press the "Save" button to store the currently loaded VSD File and Profile to the selected Roster Entry. The next time you select that Roster Entry, it will auto-load the stored VSD File and Profile.
You don't have to use the Roster at all if you don't want to.

#### Profile Selection

To select a profile, you must first load a "VSD File". An example VSD file is included with the package, more examples are available for download on the web and you can make (and share!) your own.
Click the "Load VSD File" button or choose "File->Load VSD File" from the menu bar to load a VSD file. You can't do anything else (except pick a roster entry) until a VSD file is loaded.
Now you can choose one of the listed Profiles from the Profile drop-down. Note that you can't do anything else (except pick a roster entry) until you've selected a Profile.

#### Address Assignment and the Roster

Once you've loaded a VSD file and set a Profile, you can either enter a decoder Address directly - and click "Set" - or you can choose a locomotive from your roster. The VSDecoder will then respond to throttle inputs. It will listen to any throttle that sends status information to JMRI. This includes JMRI software throttles, "smart phone" throttles like WiThrottle and EngineDriver, and most (but not all) hardware throttles.
Once you have configured your decoder, click "OK" to start it.

### Decoder Control Pane

When you Add a VSDecoder, you will see a pane full of controls for that decoder. Left to right you see the locomotive address, the profile name, a set of buttons for directly playing engine and auxiliary sounds, and a set of buttons for controlling the decoder directly.

- Options: Launch the Options Dialog for this VSDecoder
- Delete: Delete this VSDecoder

The exact selection of sound control buttons will very depending on the Sound Profile you have loaded.
Note: Some of the buttons may be non-functional, for display/demonstration purposes only.

#### Engine Control

The Engine Control comes with two features.

- Notch Indicator: This "Spinner" shows the current "notch" the engine is running at. This is an indicator, not a control.
- Engine Start Button: Press this button to start the engine sound. Press it again to shut down the engine sound.

By default, the Engine sounds will not respond to throttle inputs until you have pressed the "Engine Start" button on the Sounds tab. This is to preserve a semblance of realism in that you must start the engine before it will run. This feature is completely independent of the actual locomotive operation. If you would prefer to have your engine sounds start immediately when you advance the throttle, without first pressing "Engine Start", there is a setting in the VSDecoder Preferences to change this.

### Options Dialog

The Options Dialog provides a train selection for each VSDecoder. When you MOVE the train in Operations, the sound will move to the next location on the Route.

## Menu Items

### File Menu

Load VSDecoder File
  Pops up a file chooser to load a VSD File. Most VSDecoder functions will not work until you have loaded a VSD File.

### Edit Menu

VSDecoder Preferences
  Launches the VSDecoder Preferences pane.

### Window and Help Menus

These are the standard JMRI Window and Help menus.

## VSDecoder Preferences

The VSDecoder Preferences pane allows you to customize how the Virtual Sound Decoder works.

Auto Start Engine
  If this box is checked, the engine sounds will respond to throttle inputs immediately, without having to first press the "Engine Start" button.
Auto Load VSD File(s)
  If this box is checked, the VSD File(s) referenced in the Roster Group "VSD" will be automatically loaded on start-up. See the DecoderPro Manual Pages for more details.
Default VSD File Path
  This path is the default path for the "Load VSD File" chooser box.
Default VSD File Name
  Is no longer used.

## Roster Interaction

You can do the following:

- Set the VSDecoder address from a Roster entry
- Store a preferred VSDecoder File and Profile Name to a Roster entry
- Auto-set the VSDecoder Profile and address from a Roster entry

To store the current VSDecoder profile setting to a Roster Entry, select the Roster Entry and click the "Save" button.

## Bugs and other notes

A few notes on limitations and bug reporting:

- Some of the sounds are still "rough". Expect odd transitions between speed settings, strange effects when you press buttons rapidly (and sometimes not), and so on.
- Not all of the sound buttons in example.vsd are functional.
- Please post a bug report on the JMRI users Groups.io group or open an issue on github if something appears truly broken.

(This is the jmri.jmrit.vsdecoder.swing.VSDManagerFrame help page)