Train-Sim.Com
MSTS Sound Design

DCForum Discussion Forum - Basics: Wheel and track noise and the Dist_Travelled_Tr

DCForum Discussion Forum

Previous Topic | Next Topic

Printer-friendly copy Email this topic to a friend

Reading Topic #108

Charter Member · 47 posts

I publish this article in the hope to serve the freeware community. If you use the following knowledge, please consider to keep your freeware add ons open for the community for further development. There is no other way to get high quality. Long live freeware!If you want to develop wheel and track noise you will have to alter several sound files (.sms type).The wheel and track noise, you hear inside and outside an engine you will find in the default sound folder (...\Microsoft Games\Train Simulator\Sound). The files with the ending ...in.sms in the file name relate to the noise heared in the cab and the ones with the ending ...ex.sms relate to noise heared outside the cab (only wheel and track noise). The files are
europesteamtrack???.sms for the noise on european tracks for europe1 and europe2,
japantrack???.sms for the noise on japanese tracks for Japan1 and Japan2
and usatrack???.sms for the noise on northern american tracks USA1 and USA2.Here a first bug: The same noise system is used for a high speed track and a (excuse me) low speed track. But you can alter it, as we will see.You will see a series of .sms files for each track group. They all relate to different ground and environmental circumstances. This connection you will find in your route folder in the file ttype.dat. You can view and edit the file with wordpad, it is an unicode file. It has the following syntax:SIMISA@@@@@@@@@@JINX0t1t______n
TrackType( "~environment~" "~internal.sms~" "~external.sms" )
TrackType(...
.
.
.where n is the number of track types, ~environment~ the type of sound region, you will find in the route editor, ~internal.sms~ the .sms file for the noise in the cab (and wagon) and ~external.sms~ the .sms file for the noise heared outside of the train. I will give no example, take the syntax diagram and open a ttype.dat file and you will understand. Ok, you may develope different sound region files for each route, you can develope new routes with new sound regions like "NWCwelded_track", "NWCconcrete_ties", "MariasPass_wooden_ties", "Europe1_wooden_sleepers" and so on, but each sound region used in a route must be defined in the ttype.dat of your route.tired???Ok, we go on:
The .sms files for the tracks use the same syntax as the .sms files for the engines and the wagons. You can use the same Variables and Triggers.You begin with a cryptical header (cryptical to me), for an example:SIMISA@@@@@@@@@@JINX0x1t______I never testedMary@had@a@little@lamb@lol____orllanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogochYou can make remarks in all parts of the file, each remark line begins with Skip( and ends with ).Then you write the blocks for the different scalability groups.We may go into the blocks deeper, if there is interest.The blocks for the soundregions are programmed similar to the main engine sound by Kuju:speed triggered loops one for low speed and one for high speed. The one for low speed contains joint noise of non welded tracks. The one for the high speed doesnt' contain joint noise.But each track has its gaps at the joints, even when welded. To simulate this, the third soundstream defines the gap noise (or joint noise).The joint noise is done by single shots of samples. This brings us to the distance traveled trigger Dist_Travelled_Trigger that has the syntax:Dist_Travelled_Trigger ( Dist_Min_Max ( ~dmin~ ~dmax~ ) Volume_Min_Max ( ~volmin~ ~volmax~ )if you trigger sample shots in random distances and volumes, where ~dmin~ is the minimal distance in meters and ~dmax~ the maximal distance in meters and ~volmin~ the minimal volume and ~volmax~ the maximal volume.Here is another bug in the MSTS sound programming: 50 meters are to short for the sample .wav files used, if you travel with a high speed. A new sample is triggered, even when the old sample is not played to the end. So if you stop at a station and goto view 2, you will hear the rumbling of the waggons at the standing train (if there is a .sms-file for the waggon). I work with distances of 800 to 1000 m, what may be too long. Our friend Joseph Realmuto uses distances between 150 and 200 m. Now a few special messages:To the friend, that wantet to play flat spots on the wheels of fright wagons: You can also use this trigger in .sms-files for cars or engines. The samples have to be very short, so that the playing of the sample is finished when the next sample is triggered. The question is, whether the system is quick enough, to trigger a sample at each wheel rotation. This would bring new possibilities to the developers of steam engine sounds. You would have to calculate the distance, travelled with one revolution of your traction wheel (please forgive my bad english)and shoot the puffing sample according to this.Another thing with waggons:Kuju also uses this technique of shots in their .sms-files for waggons (...wag.sms). This causes the rumble of several waggons, even when stopping.Enough for this evening. I wait for further questions and your experiences.TrevithickDCForum Discussion Forum - Basics: Wheel and track noise and the Dist_Travelled_Tr – image 1
*** I am nothing without a little help of my friends...

Alert | IP

Printer-friendly page | Edit | Reply | Reply With Quote | Top

RE: Basics: Wheel and track noise and the Dist_Travelle..., troub, Apr-11-02, 03:56 PM, (1) RE: Basics: Wheel and track noise and the Dist_Travelle..., Trevithick, Apr-11-02, 06:12 PM, (2) RE: Basics: Wheel and track noise and the Dist_Travelle..., smmille1, Apr-11-02, 08:28 PM, (3) RE: Basics: Wheel and track noise and the Dist_Travelle..., Trevithick, Apr-12-02, 10:13 AM, (4) RE: Basics: Wheel and track noise and the Dist_Travelle..., timken, Apr-12-02, 10:52 AM, (5) RE: Basics: Wheel and track noise and the Dist_Travelle..., troub, Apr-12-02, 02:03 PM, (6) RE: Basics: Wheel and track noise and the Dist_Travelle..., troub, Apr-12-02, 02:11 PM, (7) RE: Basics: Wheel and track noise and the Dist_Travelle..., smmille1, Apr-12-02, 05:41 PM, (8) RE: Basics: Wheel and track noise and the Dist_Travelle..., troub, Apr-13-02, 09:01 AM, (9) RE: Basics: Wheel and track noise and the Dist_Travelle..., smmille1, Apr-13-02, 09:51 AM, (10) RE: Basics: Wheel and track noise and the Dist_Travelle..., Dokkensound, Apr-14-02, 01:58 PM, (11)

Conferences | Topics | Previous Topic | Next Topic

Charter Member · 447 posts

RE: Basics: Wheel and track noise and the Dist_Travelled_Trigger

>To the friend, that wantet to
>play flat spots on the
>wheels of fright wagons: You
>can also use this trigger
>in .sms-files for cars or
>engines. The samples have to
>be very short, so that
>the playing of the sample
>is finished when the next
>sample is triggered. The question
>is, whether the system is
>quick enough, to trigger a
>sample at each wheel rotation.
>This would bring new possibilities
>to the developers of steam
>engine sounds. You would have
>to calculate the distance, travelled
>with one revolution of your
>traction wheel (please forgive my
>bad english)and shoot the puffing
>sample according to this. Interesting idea, but I think it would very poor to do this. It would seem to me that such quick-succession triggers would bog down the sound resources considerably, or at least increase the chances for sound "back-up." As far as flat spots for freight cars, I still think the most efficient way would be to create a sound loop of the thumping noise, and set up an .sms file similar to the genfreight.wag (or whatever the exact name of the file is), except that it plays this loop. You'd probably have to create a speed-controlled frequency curve, too. I think this would work to "speed up" the playing of the file based on the speed of the train. It will, however, also increase the pitch, so one would want to be sure that their "thumping" .wav file is clean enough and set up so that the pitch-shift doesn't sound too bad. Then, set up a few of the freight cars in your collection to use this other .sms by modifying their .wag files.I agree, for precision and accuracy of the sound, the distance-based one-shot method would be ideal, but I think it would prove to be impractical on a system already taxed to its limits. . .troub
MSTS: Illinois Central

Alert | IP

Printer-friendly page | Edit | Reply | Reply With Quote | Top

Charter Member · 47 posts

RE: Basics: Wheel and track noise and the Dist_Travelled_Trigger

LAST EDITED ON Apr-11-02 AT 06:18 PM (EST)You may be right. Here you have to choose between plague and cholera, as we say in Germany. If you use a loop and control the pitch by the velocity, you have a problem, for the passenger or fright car has its own frequencies of resonance, that dont' change with the speed. Even the rails, the wheels and steel bridges have that frequencies. If you use the distance based one shot method, you will have problems with the resources used by the sound system and that anointing sound backup. I dont' know wether the flat spot method is to solve at all.
Another method for solving this could be a hybrid method. You use
various streams.
Rumbling of the car, defined by the resonance frequencies of the car: a stream that is triggered by very low speed and is played as a loop without pitch control by speed. Volume control by speed may be usefull (because of the resonances).
Very short plop by the flat spot: distance based one shot or the Kuju method by blended and switched samples (with blended and switched samples you can forget the first mentioned stream and you may try to use pitch control by speed, but for good results you need many samples, not that thing that Kuju did).
Eating many resources but effective against the sound backup problem, distribute the shots to 2 or 3 streams.
I think, for first experiments you should use events, that dont' occur with every revolution of a wheel like the gap noise when passing track joints. I presume, that only old scenic railroads use non welded tracks (the maintainance costs are too high for non welded tracks), so you can try higher distances than 50 meters. The other thing is the normal wheel track noise, that also has this typical frequency spectrum, that is not influenced by speed.I fear we will not get prototypical sound. We can be proud if we get reasonable sound. But let us test and dicuss the issue.TrevithickDCForum Discussion Forum - Basics: Wheel and track noise and the Dist_Travelled_Tr – image 2
*** I am nothing without a little help of my friends...

Alert | IP

Printer-friendly page | Edit | Reply | Reply With Quote | Top

Charter Member · 69 posts

RE: Basics: Wheel and track noise and the Dist_Travelled_Trigger

I'm all for reasonable sounds. Anything beats the default sounds. (I don't think that anyone from MS/Kuju bothered to actually stand near a moving train.) It's my understanding that general wheel/bearing noise has to be built into the track sounds, since we can't have every car in the consist producing constant sounds. After playing with the sound file that I got from SPSF, the thumping sounds downright stupid after I knocked out the background noise. So at this point, just having general constant wheel/track noise would seem like a reasonable goal.

Alert | IP

Printer-friendly page | Edit | Reply | Reply With Quote | Top

Charter Member · 47 posts

RE: Basics: Wheel and track noise and the Dist_Travelled_Trigger

>It's my understanding
>that general wheel/bearing noise has
>to be built into the
>track sounds, since we can't
>have every car in the
>consist producing constant sounds.May be surprising for you, actually all default cars produce sounds, even if they have no own sound directories. Explore the wag file and you will find the pointer to the related sound file. You will find the .sms in the default sound folder of MSTS.
The wagon .sms file usualy triggers the noise, caused by the car and the noise for coupling and uncoupling in its first stream.
You should open such a file with wordpad, for example genfreightwag1.sms. Here you will find a short explanation, how the sound programming for the waggon was done. Your posting led me to this source.
So, the noise of the car belongs to the car .sms and the noise of the track to the track .sms files, otherwise all trains will sound equal.>After playing with the sound
>file that I got from
>SPSF, the thumping sounds downright
>stupid after I knocked out
>the background noise. So
>at this point, just having
>general constant wheel/track noise would
>seem like a reasonable goal. You are right. But to make things more complicated: You have isolated and non isolated cabs. I found no possibility in the engine .sms files for the cab, to control the volume of the evironmental noise (wheel/track noise).TrevithickDCForum Discussion Forum - Basics: Wheel and track noise and the Dist_Travelled_Tr – image 3
*** I am nothing without a little help of my friends...

Alert | IP

Printer-friendly page | Edit | Reply | Reply With Quote | Top

Charter Member · 428 posts

RE: Basics: Wheel and track noise and the Dist_Travelled_Trigger

To put clickety clack in my caboose, I altered one of the wagon sms files. I haven't had time to streamline it, but it works great. I used the speed control for chugging on one of the steam engines and clickety clack I recorded in a caboose years ago. Following is only half the stream, but it will show how I did it. I then changed the caboose wag file to point to my new sms in the main sound file for the sim, along with the new wave files.Streams ( 4
Stream (
Priority ( 6 )
Triggers ( 3
Initial_Trigger ( StartLoop ( 1 File ( "cliclakfrt0.wav" -1 ) SelectionMethod ( SequentialSelection ) ) ) Variable_Trigger ( Speed_Inc_Past 2.0 ReleaseLoopRelease () )
Variable_Trigger ( Speed_Dec_Past 2.0 StartLoop ( 1 File ( "cliclakfrt0.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
)
VolumeCurve (
SpeedControlled

CurvePoints ( 4
0.0, 0.25
0.4, 0.2
1.6, 0.1
2.0, 0.0
) Granularity ( 0.01 )
)
)
Stream (
Priority ( 6 )
Triggers ( 16
Variable_Trigger ( Speed_Inc_Past .2 StartLoop ( 1 File ( "cliclak1.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Inc_Past 5 ReleaseLoopRelease () ) Variable_Trigger ( Speed_Inc_Past 8 StartLoop ( 1 File ( "cliclak3.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Inc_Past 13 ReleaseLoopRelease () ) Variable_Trigger ( Speed_Inc_Past 16 StartLoop ( 1 File ( "cliclak5.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Inc_Past 21 ReleaseLoopRelease () )

Variable_Trigger ( Speed_Inc_Past 24 StartLoop ( 1 File ( "cliclak7.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Inc_Past 29 ReleaseLoopRelease () ) Variable_Trigger ( Speed_Inc_Past 29 StartLoop ( 1 File ( "cliclak7.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Dec_Past 24 ReleaseLoopRelease () ) Variable_Trigger ( Speed_Dec_Past 21 StartLoop ( 1 File ( "cliclak5.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Dec_Past 16 ReleaseLoopRelease () ) Variable_Trigger ( Speed_Dec_Past 13 StartLoop ( 1 File ( "cliclak3.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Dec_Past 8 ReleaseLoopRelease () ) Variable_Trigger ( Speed_Dec_Past 5 StartLoop ( 1 File ( "cliclak1.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Dec_Past .2 ReleaseLoopRelease () )
) VolumeCurve (
SpeedControlled

CurvePoints ( 41
0.0, 0.0
0.2, 0.2
0.4, 0.4
0.6, 0.6
0.8, 0.8
1.0, 1.0
4.2, 0.8
4.4, 0.6
4.6, 0.4
4.8, 0.2
5.0, 0.0 8.2, 0.2
8.4, 0.4
8.6, 0.6
8.8, 0.8
9.0, 1.0
12.2, 0.8
12.4, 0.6
12.6, 0.4
12.8, 0.2
13.0, 0.0 16.2, 0.2
16.4, 0.4
16.6, 0.6
16.8, 0.8
17.0, 1.0
20.2, 0.8
20.4, 0.6
20.6, 0.4
20.8, 0.2
21.0, 0.0 24.2, 0.2
24.4, 0.4
24.6, 0.6
24.8, 0.8
25.0, 1.0
28.2, 0.8
28.4, 0.6
28.6, 0.4
28.8, 0.2
29.0, 0.0
)

Granularity (0.01)
)
)I've also added it to a few cars and tenders. I have onboard sound, and am using this, many sound sources along the track and other tweaks, and nothing chokes!A while back I posted other details, I think the post is putting the clickety clack back in the track. Steve

Alert | IP

Printer-friendly page | Edit | Reply | Reply With Quote | Top

Charter Member · 447 posts

RE: Basics: Wheel and track noise and the Dist_Travelled_Trigger

Yeah, what you're doing is similar to what I suggested. . .you've just got several different .wav files that you transition to based on speed. Your triggers only trigger whenever you hit a new speed that's listed as a trigger, which usually would be at least several seconds apart (even at a fast acceleration), and could be much farther apart at a fairly constant speed. Using the other way, the triggers would be triggering all the time, incessantly. What's the diameter of a rail car wheel? Pi * D = circumference, which would be the distance travelled for the trigger, then figure out how long it will take to cover that distance at 50 mph. Pretty quickly.I'm working on some improved track sounds, including wheel thump (probably) and flange squeal (in track sections for curves, and on any track as a function of speed, since it seems that the slower the train is moving even on straight track, the more likely it is to squeal). I'll keep you guys posted.troub
MSTS: Illinois Central

Alert | IP

Printer-friendly page | Edit | Reply | Reply With Quote | Top

Charter Member · 447 posts

RE: Basics: Wheel and track noise and the Dist_Travelled_Trigger

LAST EDITED ON Apr-12-02 AT 02:15 PM (EST)Also, check out this post I made ever so long ago, that never got much attention. Actually, the lack of attention this got led me to think that I was the only one who had no track sound at all, except for those annoying squeaks and squalls they put in at random. Is this true? Am I the only one who didn't hear any rumble by default? I didn't, so I fixed it. It gave me significant track rumble in the external views (most noticeable if you go to the back of the train, or at least away from the engine a little. The answer and the .zip file is in the this thread:http://www.train-sim.com/dcforum/DCForumID11/13.htmlPlease let me know if this has any effect on your external track sounds. The files in the .zip replace all of your track .sms, so you might want to back them up first, in case for some reason it doesn't work right for you. Also, granted, the track sounds that Kuju made weren't the best. That's what I'm working on. I've made some trackside recordings, and I'm in the process of making them good loops to replace the track rumble .wav files that were included.troub
MSTS: Illinois Central

Alert | IP

Printer-friendly page | Edit | Reply | Reply With Quote | Top

Charter Member · 69 posts

RE: Basics: Wheel and track noise and the Dist_Travelled_Trigger

Okay, I added the files in that .zip to my system. There's definitely more sound there now. But it seems to have just added some clickety-clack. There's no constant sound. I don't know if that's what I'm supposed to be hearing. They're still a little overpowered by those strange creaks/squeals or whatever they are. Am I missing something?

Alert | IP

Printer-friendly page | Edit | Reply | Reply With Quote | Top

Charter Member · 447 posts

RE: Basics: Wheel and track noise and the Dist_Travelled_Trigger

To me, it sounds like a constant low rumble with the rhythmic "clickety clack". It depends, I guess, on what kind of speakers you're listening to it on, and on what route/track you're running on. Anyway, like I said, I have some nice recordings that I'm working on replacing the default sounds with. The defaults are in the general SOUND directory, called x_mp_rail_low.wav, x_mp_rail_hi.wav or something similar if you want to look them up and listen to them (I don't remember the exact names right now, and I'm out of town away from my computer). Also, yes, I agree the obnoxious random sounds still overpower. I'm working on replacing those with something more appropriate, also.troub
MSTS: Illinois Central

Alert | IP

Printer-friendly page | Edit | Reply | Reply With Quote | Top

Charter Member · 69 posts

RE: Basics: Wheel and track noise and the Dist_Travelled_Trigger

okay, when I CRANK the volume, I can sort of hear these sounds. My main computer's hooked up to a home theater audio system, so I don't think it's the speakers. It could be the sound card (SB Audigy) though. I already have to turn off the sound hardware acceleration to hear (what I thought) was everything. If I leave it on, it seems to just drop streams left and right. I guess I'll just be waiting on your better loops and recordings to sort this out. If I have time today, maybe I'll try jacking the volume of these up to 4.0 or something in the sms files and see if I can hear them then.

Alert | IP

Printer-friendly page | Edit | Reply | Reply With Quote | Top

Charter Member · 327 posts

RE: Basics: Wheel and track noise and the Dist_Travelled_Trigger

It's so nice to finally have a proper section for Audio discussion. Yeah, I've run into the backup of sounds problem and other than trying to keep the sounds very short have found no useful way around it. The problem with very short loops is that they sound like loops, I prefer using multiple short loops as it seems as real as is possible under the constraints of the script language we have to work with. There will always be a compromise as we could only fall short of reproducing the random eliments of the natural world. Track sounds very alot depending on all sorts of different conditions. The sounds supplied with Marias are far more correct for an industrial siding with jointed rail. I never notice that much sound running on welded rail and even that varies depending on the unit you are in, the modern cabs vs. the old cabs, 4 wheel trucks Vs. 6 wheels. The .sms or Sound Management Scripts in the program I would think are all public domain be they part of freeware or for pay. It's only a script using the parameters available from the codes creators (in this case Kuju) and can't as a rule contain anything new other than the arrangement of the available code. I would think you could no more enforce a copywrite on an .sms file than you could a .eng file so I see no need for concern. You could if so inclined copywrite original sound samples using a form SR. This would be of use if your recordings were used without permission in a Payware release.
I do hear the mysterious creaks and groans described in real railcars all the time, just depends on the age and condition as well as the type of truck and draft gear used. Modern coal Gons when empty are normaly very quite but we get older hoppers evry now and then loaded with heavy plastic pellets that groan and creak like a haunted house. Hopefully in the hoped for MSTS 2 the sound scripting will provide even more options and more importantly maybe some of the sound card manufacturers will step up to the plate with improved sound card designs to go along with it. I can run 32 tracks of high sample rate/high bit rate audio in Protools but can't get anywhere near that number of streams with a normal sound card even at this very low 11.025k sample rate. We really need that kind of power to make us a happy lot. Just my 5 cents worth.
R. Easterday (DokkenSound)

Alert | IP

Restored from the Train-Sim.Com archive, captured August 19, 2002. About this archive.