PDA

View Full Version : Publication: Better sond for electric engines (APSEL algorithm)


Trevithick
03-25-2002, 01:27 PM
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 algorythm used by Kuju is derived from the .sms files of the dieselelectric engines and uses two blended soundstreams. This may lead some times to crackles, hisses and drop outs for the engine sound independent of the system. The pitch of the sound of the traktionmotors is shifted and not proportional to the speed (what would be more prototypical).

Name of the new algorythm:

I name this new algorythm the APSEL algorythm, what stands for "all purpose soundmanagement system for electric engines".

Description of the new algorythm:

The sound (or noise) for the tractionmotors, gearboxes and fans is build by two soundstreams whitch may (not must) use the same soundsample file.

One stream for the dynamic noise of the tractionmotors and gearboxes is:
- frequency controlled by the "Speed" Variable or alternativ "Variable1". The FrequenyCurve must be defined for negative and positive values. (absolute) Higher speed values result in higher values for the pitch. A speed or Variable1 with the value 0 result in a pitch value of 0. The relation between abs. Speed or Variable1 to the pitch is (linear) proportional.
- volume controlled by the Variable2 or a Variable, that shows the current of the traction motor. High current (Variable2=100) results in a high volume of the stream, low current (Variable2=0)in a low volume.

The other stream for the noise of the fans and tranformers is static.

These two streams replace the two first streams (of Kuju) in the *eng.sms and *cab.sms files for the electric engine.

example for the streams in an *eng.sms file (HHP8):

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 )
)
)
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 )
)
)

For the *cab.sms you use the same algorithm with stereo samples.

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.

***

In the next days I will publish replacement files for the ACELA and HHP8 .sms-files in the downloadarea of forums.flightsim.com, that contain the APSEL-algorithm.

Special thanks to Michael Vone (Mr. Albula Track) who asked the right question and tested the algorithm and to Stuart "scefhwil" who told me something about the "Variables" in .sms-programming!

Trevithick

http://www.steamboat-electric.de/SE.jpg
*** I am nothing without a little help of my friends...

scefhwil
03-25-2002, 03:27 PM
Good looking config Richard (can I call you by your first name :-) lol ).

Might have to re-install an electrified route to see how it all sounds.

Trevithick
03-25-2002, 07:28 PM
Thank you!

Variable1 seems to be an absulute mishap with electric engines. It does not relate to the speed of the wheels at all and frolics to and fro with the current.

I hoped to use it, so you can hear wheelslip, but it is a disaster like more "Variables" in MSTS.

Richard ;-)

http://www.steamboat-electric.de/SE.jpg
*** I am nothing without a little help of my friends...

jtr1962
03-26-2002, 05:03 AM
LAST EDITED ON Mar-26-02 AT 04:26AM (EST)[p]LAST EDITED ON Mar-26-02 AT 04:17*AM (EST)

Variable2 is related to throttle position, as you discovered. I'm still not sure what Variable1 does.

On a related note, I independently came up with something very similar to what you're doing. I used two streams for the traction motors instead of one(although I didn't include a stream for fans), and I had a few more frequency and volume control points as well. The traction motor whine is louder as more throttle is applied, although it doesn't go away completely at zero throttle. Instead of using the default Acela sounds for the motor/current, I used the F40 engine sound from the NALW F40PH. This is a "jet-engine" whine that can be made to resemble traction motor sounds if the volume is reduced, and the affect is quite good, actually. Since I don't want to step on any toes, I decide to create my own traction motor sounds by mixing a few sounds from one of those "5000 Sounds" CDs, and the result is, in my opinion, even better. I also improved on the wind sounds in the cab(I made the original Acela wind sounds in the file library-windsnds.zip), as well as made passenger sounds where you can hear the traction motor whine for use in EMUs. For some reason, none of the engine controls trigger anything in the passenger view, so I wasn't able to add horns or bells. :( I also added compressor sounds to the HHP and Acela by aliasing the dash9 compressor. The compressor sounds weren't included in the originals, even though there is a reference to them in the .sms files. There aren't any compressor .wav files in the HHP or Acela sound folders, either. :( So far, I've only done the internal(cabview) sounds. I may try my effect with the external sounds, as well.

I'll be uploading my improved sounds as soon as I finish testing. I also will download your work and compare the sound to mine just to see which sounds better(in my opinion, of course :) ). I plan to give you credit in the readme file for the idea of using negative speed values in the frequency and volume curves. I was getting an annoying "buzzing" running in reverse, and this fixed the problem. I hadn't thought of using negative speed values, however, so thanks for helping my solve a nagging problem. For some reason, my wind sounds(which are also speed controlled) work fine in reverse.

Based on my observations, it should be possible to add brake squel, at least in the cab view. The brakes will activate the sound, the sound will be frequency and volume adjusted proportional to speed, and releasing the brakes will stop the loop. I don't think it will work in passenger view, however. As I said, all control inputs are ignored in passenger view. Speed is the only allowed variable. :(

scefhwil
03-26-2002, 08:50 AM
There is a work around for the lack of sound triggers in passenger view. You enable passenger view in the xxxxxcab.sms so these are heard as well. But doing this depends on how much of the cabview sounds are appropriate for the passenger view as you can only have all or nothing.