JMRI Virtual Sound Decoder Decoder Window
This is the quick reference page for the Decoder window (old GUI) in the JMRI Virtual Sound
Decoder tool.
Note: The old GUI represents the first version of VSD (2011). The old GUI
was not available to VSD users since about 2013. In favour of an easier maintenance the
programs of the old GUI were removed in JMRI 4.19.5 Test Release.
For users who call VSD from JMRI PanelPro, nothing changes. For users who call VSD from a
Jython script, theoretically an error message could occur. In this case please report about
the error via
JMRI users or via
Github. Thank you.
Here is an example for the old GUI: VSDecoderPane. In the new GUI it's called
VSDManagerFrame.
What is this thing? The Virtual Sound Decoder ("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.
VSDecoder Window Elements
Config Tab
The Config pane 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.
NOTE: See the note below about saving the Roster Entry information. There is a bug that I'm
working on.
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.
Choose "File->Loadd VSD File" and 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 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 press "Set" - or you can choose a locomotive from your roster. The VSD 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.
Options Tab
In the future, the Options pane will provide various option settings. For now, it is
non-functional. The gadgets on this pane are just for show.
Sounds Tab
The Sounds tab provides a set of customized buttons for triggering sounds without having to
use a Throttle. This allows the VSDecoder to be used in a sort of "stand-alone" mode. The
exact buttons shown will depend on which VSD file you have loaded.
Note: In the "example.vsd" file, the "Coupler" and "Air Brake" buttons are
non-functional, there just for show.
Special note about Engine sounds
The actual engine sound generation is still very "rough". Expect rather "jerky" transitions
between speed steps, and some other odd effects. Be patient. This is still "Alpha" code!
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. (This feature is currently broken for Steam
sounds...)
Also note that the slider above the "Engine Start" button is only an indicator of which notch
the engine is in. Moving the slider has no effect.
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.
- 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
- If this box is checked, the VSD File specified in the Default Path/Name fields will be
automatically loaded on decoder start-up.
- Default VSD File PathThis path is both the default path for the "Load VSD File" chooser
box and the expected path for the Default VSD File if the "Auto Load VSD File" checkbox is
selected.
- Default VSD File Name
- This VSD file, assumed to be in the "Default VSD File Path", will be auto-loaded on
decoder start-up, if the "Auto Load VSD File" checkbox is checked.
Roster Interaction
Virtual Sound Decoder connections to the Roster are still a bit "under construction". 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. See the bug note below, though! A few notes on limitations (bugs,
mostly):
- If you choose a Roster Entry before loading the VSD file, it will not set the
address.
- If you store VSDecoder info to a Roster Entry, it will not be saved to disk unless you
go to "Roster->Edit Entry...", select your roster entry, open the programmer for it, and
click "Save to Roster".
- All 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.
- Many other things are buggy or broken. Please log a bug report if something appears
truly broken.
(This is the jmri.jmrit.vsdecoder.VSDecoderFrame old GUI help page)