Current Sound Implementation
see also Sound
Sound implementation
Existing Rail3D code includes a sound code implementation (Although this is disabled in general releases due to the lack of Distributable Sound FilesDistributable Sound Files)
The sound definition for rolling stock items consists of a block of xml code added to the stock (.stk) file.
This definition must open with <sound> and close with sound> and may contain a <horn> element and one or more <stream> elements, eg:
Power
Diesel
5
Speed
Speed
DieselHorn
<stream>
One or more streams should be defined: a stream is a sound produced by the vehicle and multiple streams may be mixed to produce complex sound effects.
A maximum of three streams are allowed. Streams should come before other elements such as <horn>
<scheme>
The scheme parameter defines the sound scheme in use, various schemes are available:
- Speed: the sound varies with the vehicle speed. The sound is faded between waves at transitions.
- Steam: the sound varies with vehicle speed but is not faded at transitions. At low speeds a single exhaust beat wav (defined by a <chuff> parameter is played for individual beats (this applies up to a lower limit speed defined by <speed0> (see below)
- Power: the sound varies according to the position of the primary power controller. The sound is faded between waves at transitions.
- rpm: the sound varies according to engine rpm (for diesel engines). Sound is faded between waves at transitions.
<set>
<numsounds>
<set> and <numsounds> define the wave files to be used, where set gives the base file name and numsounds the number of wave files. Thus for
Diesel
5
The wave files are Diesel0.wav Diesel1.wav Diesel2.wav Diesel3.wav and Diesel4.wav
<amplitudefunction>
optional
An amplitude function may be defined which varies the sound amplitude according to some other parameter. Amplitude functions currently defined are:
- Speed: sound gets louder with increasing speed
- Power: sound gets louder with increasing power controller position
- rpm: sound gets louder with increasing engine rpm
<freqfunction>
optional
A frequency function may be defined which modulates the sound frequency according to some other parameter. Frequency functions currently defined are:
- Speed: frequency increases with increasing speed
- Power: frequency increases with increasing power controller position
- rpm: frequency increases with increasing engine rpm
nb, if someone can convince me that the inverse functions are required, I’ll be happy to code them!
<horn>
The horn element defines the wav file to be used for horn/whistle events
Steam
Steam
Steam
10
Speed
Chuff
4
Whistle
The steam scheme is best used for steam engines, features of this scheme:
- Wave0 is used when stationary - and/or when coasting with the regulator close.
- At low speeds (up to Speed0) Wave0 is overlaid with the Chuff wav (Which represents a single exhaust beat) which is synchronised with the engine exhaust
- Above Speed0 waves 1 to n-1 are played in sequence, but not faded at transitions.
- When slipping, the highest wave is played with high amplitude.
File format
Sound files should be .wav 11kHz mono
import