This page gives you a look at some of the theory behind the way in which MSTS controls the sounds we hear in the cab or outside the loco. The particular idea below goes further and is the work of one of many MSTS "power" users - those people who investigate better ways to enjoy MSTS.
Remember that the best way to encourage those people developing various free add-ons is to download and install their work. So download elecsnds.zip (360kb, 07-Apr-02) from the Train-Sim.com file library and enjoy the sounds of realistic brake rumble when braking, brake squeal when the brakes are applied below 10mph and reduced air compressor noise in the Acela and HHP-8 cabs.
Below is the statement from the Sound Developers Forum to enable us all to use the sound enhancement idea, APSEL.
Legal issues: The algorithm is herewith published. From now on there may be claimed no Copyright on parts of .sms files, that contain this algorithm. If legal necessary, this algorithm is herewith put to public domain. You may use it freely. Trevithick
Below is the text of Trevithick's post to the Sound Developers' Forum at Train-Sim.com under the topic "Publication: Better sound for electric engines (APSEL algorithm)". In it he explains the All Purpose Sound Management System for Electric Locomotives.
Note that the MSTS Tech Docs do not include any information for developers on the sound system. Nor is there a site (at time of writing). The most informative discussion area is the Sound Developers' Forum at Train-Sim.com.
Most electric engines for MSTS use SMS files directly derived from the ACELA engines and the Alstom Bombardier HHP8 engine of the original simulator.
The algorithm used by Kuju is derived from the SMS files of the diesel electric engines and uses two blended sound streams. This may lead sometimes to crackles, hisses and drop outs for the engine sound independent of the system. The pitch of the sound of the traction motors is shifted and not proportional to the speed (which would be more prototypical).
The sound (or noise) for the traction motors, gearboxes and fans is built by two sound streams which may, not must, use the same sound sample file.
One stream for the dynamic noise of the traction motors and gearboxes is:
The other stream for the noise of the fans and tranformers is static.
These two streams replace the two first streams, as developed by Kuju, in the external sound (xxxxENG.SMS) and internal cab sound (xxxxCAB.SMS) files for an electric locomotive.
Example HHP8eng.SMS streams
Stream ( Skip (**** Traction motors and gearboxes ) Priority ( 6 ) Triggers ( 1 Initial_Trigger ( StartLoop ( 1 File "..\\..\\HHP\\SOUND\\x_hhp_power_cruise1.wav" -1 ) SelectionMethod ( SequentialSelection ) ) ) ) FrequencyCurve ( SpeedControlled CurvePoints ( 3 -150.0 135000 0.000 0 150.0 135000 ) Granularity ( 100 ) ) VolumeCurve ( Variable2Controlled CurvePoints ( 2 0.000 0.4 100.0 1.0 ) Granularity ( 0.05 ) ) ) Skip ( ** End stream for traction motors & gearboxes ** ) Stream ( Skip (**** Fans**** ) Priority ( 6 ) Triggers ( 1 Initial_Trigger ( StartLoop ( 1 File "..\\..\\HHP\\SOUND\\x_hhp_power_cruise0.wav" -1 ) SelectionMethod ( SequentialSelection ) ) ) ) FrequencyCurve ( SpeedControlled CurvePoints ( 3 -150.0 13000 0.000 13000 150.0 13000 ) Granularity ( 100 ) ) VolumeCurve ( Variable2Controlled CurvePoints ( 2 0.000 0.7 100.0 0.7 ) Granularity ( 0.05 ) ) ) Skip ( ** End stream for fans ** )
For the xxxxcab.sms you use the same algorithm with stereo samples.