![]()
I hate making horns. Getting them to loop right and finding good recordings is a royal bitch.So I tried an experiment. First I created a version of the default Acela horn without the annoying background tone, then I transposed it to create a variety of tones from low B (For the S3L) to high D# (For the K5LA).I then mixed them in sound recorder according to the proper tuning, for example, for a K5LA I mixed D#_LO.wav, F#_LO.wav, G#_LO.wav B_HI.wav, and D#_HI.wav. The results were superb. Although it didn't sound as brassy as the genuine article, and the higher notes needed the volume lowered a bit, it SOUNDED like a K5LA.Then the problem of looping without popping noises comes in. So I decided to take the experiment further. What if I took these horn tones, modified them to loop properly in MSTS, adjusted the SMS files to use multiple horn wavs, and went to go drive my train?Again, I started with my personal favourite K5LA.The SMS coding looked somwhat like this (I did it with my Alco 251 sounds and dropped the horn wavs in a subfoder titled 'horn.' In the future I would relocate this folder to the common.snd folder): Stream (
Skip ( **** This stream allows the horn to be played at the same time **** )
Priority ( 6 )
Triggers ( 2
Discrete_Trigger ( 8 StartLoopRelease ( 1 File ( "/HORN/D#_LO.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Discrete_Trigger ( 9 ReleaseLoopReleaseWithJump () )
)
VolumeCurve(
Variable2Controlled
CurvePoints ( 2
0.000 1.0
1.000 1.0
)
Granularity ( 0.10 )
)
) Stream (
Skip ( **** This stream allows the horn to be played at the same time **** )
Priority ( 6 )
Triggers ( 2
Discrete_Trigger ( 8 StartLoopRelease ( 1 File ( "/HORN/F#_LO.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Discrete_Trigger ( 9 ReleaseLoopReleaseWithJump () )
)
VolumeCurve(
Variable2Controlled
CurvePoints ( 2
0.000 1.0
1.000 1.0
)
Granularity ( 0.10 )
)
) Stream (
Skip ( **** This stream allows the horn to be played at the same time **** )
Priority ( 6 )
Triggers ( 2
Discrete_Trigger ( 8 StartLoopRelease ( 1 File ( "/HORN/G#_LO.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Discrete_Trigger ( 9 ReleaseLoopReleaseWithJump () )
)
VolumeCurve(
Variable2Controlled
CurvePoints ( 2
0.000 1.0
1.000 1.0
)
Granularity ( 0.10 )
)
) Stream (
Skip ( **** This stream allows the horn to be played at the same time **** )
Priority ( 6 )
Triggers ( 2
Discrete_Trigger ( 8 StartLoopRelease ( 1 File ( "/HORN/B_HI.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Discrete_Trigger ( 9 ReleaseLoopReleaseWithJump () )
)
VolumeCurve(
Variable2Controlled
CurvePoints ( 2
0.000 1.0
1.000 1.0
)
Granularity ( 0.10 )
)
) Stream (
Skip ( **** This stream allows the horn to be played at the same time **** )
Priority ( 6 )
Triggers ( 2
Discrete_Trigger ( 8 StartLoopRelease ( 1 File ( "/HORN/D#_HI.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Discrete_Trigger ( 9 ReleaseLoopReleaseWithJump () )
)
VolumeCurve(
Variable2Controlled
CurvePoints ( 2
0.000 1.0
1.000 1.0
)
Granularity ( 0.10 )
)
)The sound was near perfect, except my horn wavs aren't as 'raspy' as the real deal and I halfassed it so they don't loop seamlessly.Note that volume parameters linked to engine RPM were added. This was so that individual bells could be adjusted as required to produce the right effect. For the K5LA I would personally cascade the volume levels down by .1 or so successively down the line (or up in pitch as it were).The theoretical advantages of this approach are as follows: Instead of having several megabytes of different airhorn recordings, we would have a significantly fewer number of horn bell recordings. You could have different sets of master bell recordings, some raspier, some brassier, some muffled, maybe a set with choke fittings! Then, as most locomotives use a copy of the SMS file in their sound folder pointing to the common.snd folder for individual wave files, every locomotive could have the proper horn. If this unit had an S3L with the lowest bell dead (Soo Line fans know what I mean), simply remove that stream and change the number of streams to have one less. Was this F40PH an early model with the P5A? Substitute the P5A's wave files instead of the K5LA's. The possibilities are endless.The disadvantage is that it adds more audio streams and that your soundcfg.dat would need to be modified to cope, but the master horn bell set could come with a properly modified soundcfg.dat (and a default backup for safekeeping).If anyone is willing to expand on this idea, or create a better master horn set (I'm wayyyy too lazy and the art of getting a horn to loop without those popping noises caused by the waveform mismatching where it loops is a black art to me), feel free to post here or IM me. This could very well enhance the realism of MSTS by a great margin.On a tangent, does anyone know what the S3L's tuning is? The ATSF airhorn guide has it as B, D#, A, but this combination sounds nothing like the real deal at all. D#, E, A was actually closer."The F59PHI and Genesis are the lamest excuses for locomotives Amtrak has ever operated - accept it and move on. Hug an F40 before it's too late!"
Printer-friendly page | Edit | Reply | Reply With Quote | Top
