Train-Sim.Com
MSTS Sound Design

Sounds of other trains

Notice to all visitors and members of the Train-Sim.Com message forums:
If you plan on using a signature banner in your posts, we would like to remind you that there is a maximum size for banners. That maximum is 450 pixels wide by 120 pixels high, and not to exceed 25k. Your compliance is appreciated. FORUM RULES Problems? There are two common reasons for problems with logging in and posting messages. The first is that you are running a firewall that prevents your messages from being sent to the server. The other is that you have cookies disabled; the DCForum software requires cookies to work properly.

Previous Topic | Next Topic

Printer-friendly copy Email this topic to a friend

Reading Topic #407

Charter Member · 118 posts

LAST EDITED ON May-15-03 AT 06:05 PM (EDT)

Just a wee question. I noticed that to my pleasure in both German Railroads 2 and Protrain 3, I can hear the sound of each wagon and carriage of passing trains in both cab and passenger views. When I load up another route, say Cajon, this just doesn't happen; you can perhaps hear only the locomotive(s) of the passing trains. Is there a good reason for this and is there anything I can to do enable this for other routes/trains?Ta,
David.

Alert | IP

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

RE: Sounds of other trains, csantucci, May-16-03, 08:06 AM, (1) RE: Sounds of other trains, sniper297, May-17-03, 02:51 PM, (2) RE: Sounds of other trains, sniper297, May-17-03, 08:57 PM, (3) RE: Sounds of other trains, sniper297, May-17-03, 10:56 PM, (4) Hello? Anybody home?, sniper297, May-18-03, 05:54 PM, (5) RE: Hello? Anybody home?, scefhwil, May-19-03, 05:33 AM, (6) Back from vacation!!, sniper297, May-19-03, 09:37 AM, (7) RE: Back from vacation!!, scefhwil, May-19-03, 06:47 PM, (8) RE: Back from vacation!!, sniper297, May-19-03, 07:20 PM, (9) RE: Back from vacation!!, scefhwil, May-20-03, 08:26 AM, (10) RE: Back from vacation!!, sniper297, May-20-03, 11:27 AM, (11) RE: Back from vacation!!, scefhwil, May-20-03, 12:19 PM, (12) RE: Back from vacation!!, sniper297, May-20-03, 05:57 PM, (13) Back from work!!, scefhwil, May-20-03, 06:45 PM, (14) RE: Back from work!!, sniper297, May-20-03, 09:08 PM, (15) RE: Back from work!!, sniper297, May-21-03, 10:46 AM, (16) RE: Back from work!!, scefhwil, May-21-03, 07:25 PM, (17) RE: Back to the old drawing board!, sniper297, May-21-03, 11:02 PM, (18) RE: Back to the old drawing board!, scefhwil, May-22-03, 04:22 AM, (19) "...You can hear, the whistle blow, a hundred miles...", sniper297, May-22-03, 11:42 PM, (20) RE:, scefhwil, May-23-03, 06:57 PM, (21) RE:, Jeff_Ashton, May-23-03, 10:45 PM, (22) RE: WHONK!, sniper297, May-24-03, 12:01 PM, (23) RE: WHONK!, csantucci, May-25-03, 03:33 PM, (24) RE: WHONK!, scefhwil, May-25-03, 06:00 PM, (26) No More WHONK!, scefhwil, May-25-03, 05:56 PM, (25) RE: No More WHONK!, sniper297, May-26-03, 08:52 AM, (27) RE: No More WHONK!, scefhwil, May-26-03, 06:41 PM, (28) Hoot, toot, & whistle, sniper297, May-27-03, 08:50 AM, (29) RE: No More WHONK!, csantucci, Jun-03-03, 03:51 PM, (30) RE: No More WHONK!, sniper297, Jun-03-03, 11:00 PM, (31)

Conferences | Topics | Previous Topic | Next Topic

Charter Member · 24 posts

RE: Sounds of other trains

What do You not hear? Rail sounds or engine sounds?
In the second case You should open the xxxeng.sms and xxxwag.sms files of the rolling stock You use in the AI trains, go to the scalibility=0 section and enable the cab Camera and pas Camera (You should find them disabled).
For the rail sounds You should open the xxxin.sms files, go to the scalibility=0 section and disable the cab Camera and pas Camera (You should find them enabled), then You open the xxxex.sms files, go to the scalibility=0 section and enable the cab Camera and pas Camera (You should find them disabled). So You have correct 3D sound for approaching trains.Carlo Santucci

Alert | IP

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

Charter Member · 4600 posts

RE: Sounds of other trains

LAST EDITED ON May-17-03 AT 02:58 PM (EDT)

I've been hacking John Fowlis' 0-8-0 to alias some sounds from the 380, and I'm getting something similar. I do have my eng.sms file hacked to move the passenger view from deactivated to activated since I add a passenger view to all my .eng files (it acts like a second head-out view on the opposite side), and the passenger view needs to be activated in the .eng.sms to hear the same sound you get from the head-out view.Problem I'm currently having is all internal and external sounds work correctly when it's a player train, but the AI engine goes by in dead silence. All the diesels I've hacked the same way don't have this problem, when used as an AI train they all do their growl-roar-clickety-clack thing, but this teakettle don't chuff-chuff-clickety-clack as an AI train, only as a player train. If I park the player engine and switch to the #2 view and stretch it out away from the player engine, I can hear that lame little squeak coming from the wagons, but dead silence from the AI engine.Sounds of other trains – image 1Question is, if I clone the .eng file for an AI specific engine (still don't know why I should have to, the blasted SD40s and GP38s I use are player driveable, and don't need this kind of fiddling to make AI noise), is it possible to add everything to the activation section and either leave a blank deactivation section or eliminate it entirely?

Alert | IP

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

Charter Member · 4600 posts

RE: Sounds of other trains

LAST EDITED ON May-17-03 AT 08:58 PM (EDT)

Well, still haven't figured out why generic train sounds are muted on this steamer.After reading scefhwil's post here;http://forums.atomic-systems.com/viewtopic.php?t=11677I decided that's not really what I want to do unless I have to, I'd rather have the one .eng file make generic choo-choo sounds when running as an AI train like the diesels make generic putt-putt sounds as AI engines.I guess I oughtta set up an activity using the goldsdorf 380 for an AI train to see if that even works, but I can't find any reason in the file I cloned from the 380eng.sms why it wouldn't work.According to scefhwil AI engines use only the ScalabiltyGroup( 0 section of the .sms file, here's what I got:Skip( **** ******************************************* **** )
Skip( **** Copy of Generic Steam SMS Used for SL 0 **** )
Skip( **** ******************************************* **** ) ScalabiltyGroup( 0
Activation ( ExternalCam () Distance (500) PassengerCam () Distance (500) )
Deactivation (CabCam () )
Streams ( 1
Stream (
Priority ( 4 )
Triggers ( 6
Variable_Trigger ( Speed_Inc_Past 1.0 StartLoop ( 1 File ( "a_s_comp1.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Inc_Past 40.0 StartLoop ( 1 File ( "a_s_comp2.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Inc_Past 40.0 ReleaseLoopRelease () )
Variable_Trigger ( Speed_Dec_Past 39.0 StartLoop ( 1 File ( "a_s_comp1.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Dec_Past 39.0 ReleaseLoopRelease () )
Variable_Trigger ( Speed_Dec_Past 1.0 ReleaseLoopRelease () )Those two, a_s_comp1.wav and a_s_comp2.wav, are in the main train simulator \Sound folder, and they do work, so I dunno why this particular engine isn't playing those sounds as an AI engine.

Alert | IP

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

Charter Member · 4600 posts

RE: Sounds of other trains

LAST EDITED ON May-17-03 AT 10:57 PM (EDT)

Hey, I'm talking to myself here! Well, just set up a test activity with the Goldsdorf380 full rake and the Flying Scot with 8 passenger cars, the 380 went by in utter silence, the Scotsman went choo-choo-choo. Apparently I picked the wrong .sms files to clone from, guess I gotta start over with Scotty. Anybody ever notice this before, that the 380 don't have working AI sounds?

Alert | IP

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

Charter Member · 4600 posts

Hello? Anybody home?

All the sound engineers on vacation this week or something? Well, I suppose it don't matter, I'm good at talking to myself anyway, at least I make sense to me even when nobody else knows what I'm talking about.I started the whole mess over again using the scotsman's .sms files for a template, aliased the files to "..\\..\\380\\sound\\x_a380_power_cruise(whatever number), and got AI trains going choo-choo-choo as they go by. Somewhere in this process, getting the "too many streams" error from adding a bell, and trying to chop out the waterscoop streams so there wouldn't be too many streams then getting error line 632 (BS, last line is 631), I finally came to the conclusion that sound engineering is a bigger PITA than the route editor, and just incremented the number of streams by one. I don't even remember what the key is for the waterscoop, so it's unlikely to be a problem except to some dope that's gonna drop the waterscoop on an 0-8-0 switcher just to see what happens.Anyway, always wanting more than I already got, and having read thru;http://forums.atomic-systems.com/viewtopic.php?t=11677and http://www.railpage.org.au/steam4me/trainsim/tutorials/sms_doku.htmlAfter getting generic choo-choo noises from AI engines I decided I wanted more-more-more!I tried the method of creating a clone of the .eng file for AI only, and cloning the pon393eng.sms to make it AI only sounds, but that screwed up the whole enchilada so badly I got unknown engine for the activity and restored from a backup. Not really what I want anyway, I'd rather just use the AI section at the bottom of the eng.sms file for simplicity's sake. What I'd like is to have the AI train blow the whistle as it approaches each junction with the player route, so the player can hear that an AI train is approaching and knows that the signal is about to change. Couldn't figure out how to make an event trigger for that and as far as I know AI trains don't use controls so no triggers there, so I did this;
Skip( **** ******************************************* **** )
Skip( **** Copy of Generic Steam SMS Used for SL 0 **** )
Skip( **** ******************************************* **** ) ScalabiltyGroup( 0
Activation ( ExternalCam () Distance (3000) PassengerCam () Distance (3000) CabCam () Distance (3000) )
Deactivation ( )
Streams ( 1
Stream (
Priority ( 7 )
Triggers ( 6
Variable_Trigger ( Speed_Inc_Past 1.0 StartLoop ( 1 File ( "ex_pon393whis.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Inc_Past 4.0 StartLoop ( 1 File ( "a_s_comp1.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Inc_Past 4.0 ReleaseLoopRelease () )
Variable_Trigger ( Speed_Dec_Past 5.0 StartLoop ( 1 File ( "ex_pon393bell.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Dec_Past 5.0 ReleaseLoopRelease () )
Variable_Trigger ( Speed_Dec_Past 1.0 ReleaseLoopRelease () )Then for the AI path in the activity editor I created a number of waiting points (those who don't know, whatever you type in a waiting point resets to 0 seconds automatically, so the AI train only makes a momentary stop), so the AI train will slow to a stop and then accelerate to cruise speed again.With the above numbers, when the AI approaches a wait point it slows to a stop, and as the speed drops under 5mph the choo-choo sound cuts off and the bell starts ringing. When it starts up again, as it passes 1mph the bell cuts off and the whistle blows (twice, at the current rate of acceleration) until it hits 5mph, then the whistle cuts off and the choo-choo starts again. I got the maxvelocity in the consist files set to 15mph anyway, so I don't really need the high speed cho-choo sound.Trouble I'm having now, is you really can't hear the anemic little thing more than 100 feet away or so, in spite of the Distance (3000) I'm using. I tried using goldwave to crank the volume on the exterior whistle's .wav file too, no joy there either. All the shared track sections on the PO&N are less than 1000 meters, so even being able to hear the AI train blowing the whistle 2000 meters off would work, but for some reason it ain't happening.

Alert | IP

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

Charter Member · 231 posts

RE: Hello? Anybody home?

Hi! Just got back from vacation! Sniper, here's what I know about the Activation/Deactivation statements. This is the distance (which is measured between the camara co-ords and the co-ords of the centre of the object to which the .sms belongs, in your case the AI loco) at which the SMS system loads the .sms file up. It won't atart playing sounds though until a trigger in the .sms causes it to. I believe the max valid value for Distance() is ... go on have a guess! Yep, 2000m.Look in soundcfg.dat. The following lines occur for every SG level. TrainMinMaxDistance ( 5, 25.0, 1000.0 )
AmbientMinMaxDistance ( 5, 20.0, 1000.0 )
Rolloff ( 5, 1.0 )These seem to control the 3D effect of external sounds. It appears that by default the max distance away that any sound will play is 1000m, and at this point it is at a volume level of 0. Increasing it does have an effect, but I recon the limit is still 2000m. I have also played with the Rolloff. This does do as the name suggests. It controls the rate at which sounds decrease as you move away from the source. Problem with playing with these values is that they effect EVERY .sms on EVERY route. I've found some undesired effects have resulted if I alter them too much, but my personalised settings are TrainMinMaxDistance ( 5, 25.0, 1500.0 )
AmbientMinMaxDistance ( 5, 20.0, 1500.0 )
Rolloff ( 5, 1.2 )Regarding SG0 I've never got any of the Discrete_Triggers to work, only Initial, Speed, Distance_Travelled, and Random.I use the folowing triggers in some of my AI loco .sms's to give distant whistles. By using RandomSelection and short (0.1 sec) silence sounds you avoid too much whistling. Variable_Trigger ( Distance_Dec_Past 200 PlayOneShot ( 2
File ( "../UK_Shared/x_whistle_hall_02.wav" -1 )
File ( "x_silence_0-10.wav" -1 )
SelectionMethod ( RandomSelection ) ) )
Variable_Trigger ( Distance_Dec_Past 75 PlayOneShot ( 2
File ( "../UK_Shared/x_whistle_hall_01.wav" -1 )
File ( "x_silence_0-10.wav" -1 )
SelectionMethod ( RandomSelection ) ) )
Random_Trigger ( Delay_Min_Max ( 10 60 ) Volume_Min_Max ( 1 1 )
PlayOneShot ( 16
File ( "../UK_Shared/x_whistle_hall_02.wav" -1 )
File ( "x_silence_0-10.wav" -1 )
File ( "x_silence_0-10.wav" -1 )
File ( "x_silence_0-10.wav" -1 )
File ( "x_silence_0-10.wav" -1 )
File ( "x_silence_0-10.wav" -1 )
File ( "x_silence_0-10.wav" -1 )
File ( "x_silence_0-10.wav" -1 )
File ( "../UK_Shared/x_whistle_hall_02.wav" -1 )
File ( "x_silence_0-10.wav" -1 )
File ( "x_silence_0-10.wav" -1 )
File ( "x_silence_0-10.wav" -1 )
File ( "x_silence_0-10.wav" -1 )
File ( "x_silence_0-10.wav" -1 )
File ( "x_silence_0-10.wav" -1 )
File ( "x_silence_0-10.wav" -1 )
SelectionMethod ( SequentialSelection )
)
)

Alert | IP

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

Charter Member · 4600 posts

Back from vacation!!

So did ya bring me a souvineer?!Hmm, interesting. My goal is to have something distributable here, so hacking the global soundcfg.dat is probably not gonna work. Possibly I could include a batty.bat to copy the original soundcfg.dat to a backup and replace with mine if all else fails, I don't believe in altering the end user's MSTS installation without a completely idiot-proof way to undo it.I used goldwave to crank the volume up to ohmygod on the external whistle wav, then saved as a different file, and changed the line in the AI scalability group to refer to that wav rather than the regular external whistle. It works, sort of, you can hear it a klick away, altho it cracks the plaster and scares the hell outta my dog if I'm parked too close to one of those waiting points when the AI whistle blows.That Distance_Dec_Past was just what I was looking for tho, I didn't see that in the tech docs or any of the tutorials I've looked at so far. That would eliminate the need for all these waiting points in the activity editor, when the AI train gets within a certain distance of the player it blows the whistle. Question, does that work in 3 scenarios, (A) player standing still, AI closing range, (B) AI and player approaching head-on, (C) player moving slowly, AI overtaking from behind? I would think in (C) you may end up with a sound loop bug if the speeds were closely matched after tripping the Distance_Dec_Past trigger. Are the distances given in meters? They never do say, but if the volume starts at zero at 1000 meters it would explain why you can't hear normal volume .wav files until you're within 100 meters or so, you don't get full volume until you're right on top of it.Maybe you can shed some light on the Goldsdorf 380, I noticed all the add-on USA steamers used the scotsman as a template, never wondered why until now. A couple people claimed they hear choo-choo sounds from the 380 used as an AI train on the Albula 2 line, when I set up the 380 as an AI train it rolls by in dead silence, in spite of the fact that the scalability group 0 lines at the bottom are identical to the scotsman, and the scotsman goes choo-choo-choo as it passes. I got the default 380, the only two files not dated May 7th 2001 are the 380tender.wag and oe380coal.s that came from the 1.1 patch (fueling points), all the sound files are original.

Last question (I'm gonna try this in the AI section of the regular eng.sms file, I wasted half a day trying to make an AI only clone .eng and .sms file, got send/don't send), ""x_silence_0-10.wav" -1" for your in-betweens, is that a default file someplace, or do you record X number of seconds of silence and make your own empty .wav file?

Alert | IP

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

Charter Member · 231 posts

RE: Back from vacation!!

>That Distance_Dec_Past was just what I was looking for tho,
>I didn't see that in the tech docs or any of the tutorials
>I've looked at so far.Check out Utils/Ffedit/loadstr.hdr for a section of all the valid SMS statements.>Question, does that work in 3 scenarios, (A)
>player standing still, AI closing range, (B) AI and player
>approaching head-on, (C) player moving slowly, AI overtaking
>from behind?Yes I recon so.>I would think in (C) you may end up with a
>sound loop bug if the speeds were closely matched after
>tripping the Distance_Dec_Past trigger.Good point, although I have not come across it so far. The following would probably sort you out though:-Initial_Trigger ( DisableTrigger( 3 ) )
Variable_Trigger ( Distance_Inc_Past 10 EnableTrigger( 3 ) )
Variable_Trigger ( Distance_Dec_Past 200 PlayOneShot ( 2
File ( "x_silence_0-10.wav" -1 )
File ( "x_whistle01.wav" -1 )
SelectionMethod ( RandomSelection ) ) )
Variable_Trigger ( Distance_Dec_Past 200 DisableTrigger( 3 ) )The trigger number (3 used in my example) would need to be changed if these lines were not at the very begining of a Stream. >Are the distances given in meters? They never do say,There are.>Maybe you can shed some light on the Goldsdorf 380, I
>noticed all the add-on USA steamers used the scotsman as a
>template, never wondered why until now. A couple people
>claimed they hear choo-choo sounds from the 380 used as an
>AI train on the Albula 2 line, when I set up the 380 as an
>AI train it rolls by in dead silence, in spite of the fact
>that the scalability group 0 lines at the bottom are
>identical to the scotsman, and the scotsman goes
>choo-choo-choo as it passes. I got the default 380, the only
>two files not dated May 7th 2001 are the 380tender.wag and
>oe380coal.s that came from the 1.1 patch (fueling points),
>all the sound files are original.Strange it is. They do have the same text, and I can see no apparent syntax error in a380eng.sms so I have no idea why it shouldn't work. But then I have barely every driven nor used the default 380.>Last question (I'm gonna try this in the AI section of the
>regular eng.sms file, I wasted half a day trying to make an
>AI only clone .eng and .sms file, got send/don't send),
>""x_silence_0-10.wav" -1" for your in-betweens, is that a
>default file someplace, or do you record X number of seconds
>of silence and make your own empty .wav file? "x_silence_0-10.wav" is one of my own files that is included in most of my UK sound sets available at uktrainsim. But it is basically just as you say, a defined length of silence recorded in Goldwave.

Alert | IP

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

Charter Member · 4600 posts

RE: Back from vacation!!

Yup, figured that out, took a whistle.wav file, dumped the volume to zero. Then I figured out I probably didn't need it anyway, since what I want it to do is blow twice and quit when it gets within X number of meters of the player, as it approaches, not as the distance is opening.What I'm having a hard time figuring out:Distance_Dec_Past 200 Distance_Dec_Past 75200 what and 75 what? Rods, hectares? I would assume meters, but it seems like the triggers are a lot further than 200 meters. I set it to 500 and 300, got a single faint toot when it was still out of sight. I finally decided to test this on a route with straight track, set up an activity on NEC 4 (mileposts on the original look like they were just placed at random, no even spacing at all in between).So I got a single toot from the second train when it was a little over one mile away, call it 2 kilometers, when the trips were set for 500 and 300?! Didn't make any sense, so for my next trick (unscientific method, hack away at everything in sight until something works) I dumped the random selection, made it sequential selection, then dumped the silent wav and put in two whistle waves.Now I got this;Skip( **** ******************************************* **** )
Skip( **** Copy of Generic Steam SMS Used for SL 0 **** )
Skip( **** ******************************************* **** ) ScalabiltyGroup( 0
Activation ( ExternalCam () Distance (2000) PassengerCam () Distance (2000) CabCam () Distance (2000) )
Deactivation ( )
Streams ( 1
Stream (
Priority ( 7 )
Triggers ( 8
Variable_Trigger ( Speed_Inc_Past 1.0 StartLoop ( 1 File ( "ex_pon393whis.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Inc_Past 3.0 StartLoop ( 1 File ( "a_s_comp1.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Inc_Past 3.0 ReleaseLoopRelease () )
Variable_Trigger ( Speed_Dec_Past 5.0 StartLoop ( 1 File ( "ex_pon393bell.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Dec_Past 5.0 ReleaseLoopRelease () )
Variable_Trigger ( Speed_Dec_Past 1.0 ReleaseLoopRelease () )
Variable_Trigger ( Distance_Dec_Past 200 PlayOneShot ( 2
File ( "AI_pon393whis.wav" -1 )
File ( "AI_pon393whis.wav" -1 )
SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Distance_Dec_Past 100 PlayOneShot ( 2
File ( "AI_pon393whis.wav" -1 )
File ( "AI_pon393whis.wav" -1 )
SelectionMethod ( SequentialSelection ) ) )
And no whistle at all as it approaches. I suppose I could try going back to random selection, if I'm playing the same file twice it don't matter if it's sequential or not. The stopping sequence still works when I add a wait point, drop below 5mph the bell starts looping, accelerate to 1mph the bell quits and the whistle loops, hit 3mph the whistle quits and the low speed chuff-chuff-chuff starts.Anyway, back to the battle, I just thought I'd stop and see if you were around. What time is it in the UK, anyway? I'm in Chicago, and since we're currently on Central Daylight Time I think that's ZULU +6, so it's 6:20 here, should be about 12:20 tomorrow morning over there.

Alert | IP

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

Charter Member · 231 posts

RE: Back from vacation!!

I'm convinced the measurement for Distance is metres. But there are some issues with the way you have your Stream set up.1). What happens if you are going above a Speed of 3.0 when your Distance decreases past 200? From the logic of your triggers then "a_s_comp1.wav" is looping when "AI_pon393whis.wav" is played once. This means that you continue to hear "a_s_comp1.wav" and "AI_pon393whis.wav" is cued to play after it finishes, ie when it gets released. But this won't be until Speed decreases past 5.0 and hence why you hear the whistle a long time after it is actually triggered. So what you would need to do is to release the looping sound at the same time the whistle is triggered.Variable_Trigger ( Speed_Inc_Past 1.0 StartLoop ( 1 File ( "ex_pon393whis.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Inc_Past 3.0 ReleaseLoopRelease () )
Variable_Trigger ( Speed_Inc_Past 3.0 StartLoop ( 1 File ( "a_s_comp1.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Dec_Past 5.0 ReleaseLoopRelease () )
Variable_Trigger ( Speed_Dec_Past 5.0 StartLoop ( 1 File ( "ex_pon393bell.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Dec_Past 1.0 ReleaseLoopRelease () )Variable_Trigger ( Distance_Dec_Past 200 ReleaseLoopRelease () )
Variable_Trigger ( Distance_Dec_Past 200 PlayOneShot ( 2
File ( "AI_pon393whis.wav" -1 )
File ( "AI_pon393whis.wav" -1 )
SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Distance_Dec_Past 200 StartLoop ( 1 File ( "a_s_comp1.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )Variable_Trigger ( Distance_Dec_Past 100 ReleaseLoopRelease () )Variable_Trigger ( Distance_Dec_Past 100 PlayOneShot ( 2
File ( "AI_pon393whis.wav" -1 )
File ( "AI_pon393whis.wav" -1 )
SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Distance_Dec_Past 100 StartLoop ( 1 File ( "a_s_comp1.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )One problem with this is that it will restart looping "a_s_comp1.wav" regardless of the Speed.2). What happens if the Speed decreases below 5.0, say to 4.0, then increases to a higher speed? (This might happen due to signal checks or the 'slowing on curves' scenario). "ex_pon393bell.wav" will continue to play as the Inc_Past 3.0 doesn't occur. Because of this I always try to match the Inc_Past's and Dec_Past's to the same speed values.
I actually would suggest here sniper that you would be better off having two streams rather than one. The first with the chuff/bell sounds in, the second with the whistles in. This avoids all the problems that can result from trying to sync looping sounds and PlayOneShots.

Alert | IP

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

Charter Member · 4600 posts

RE: Back from vacation!!

Duh, now that makes sense. Never occured to me that I could have more than one stream under ScalabiltyGroup( 0. I plead newbie, at least outside of route development, and it still strikes me that this whole process of hacking sounds and cabviews is a hell of a lot more complicated than the route editor and activity editor combined.I'm gonna go try that, I'll let you know. Funny thing, the "Speed_Inc_Past" value for the default is 40, and decrease under 39, so it plays that a_s_comp1.wav for any speed from 1 to 40mph. Since the PO&N is a feeder-branchline-belt line type of thing, I don't want AI trains running faster than 20mph anyway, so that high speed a_s_comp2.wav isn't really needed. What's wierd about this, since I started doing the testing on NEC4 (I guess I gotta check, I assumed Vince was a lot more accurate than KUJU about his milepost placements and distances), I noticed the AI trains are taking about 2 minutes to cover a mile, which translates to 30mph. I have the max velocity line in the .con files set to ( 15.0 1.0 ), which I assumed was giving 15mph, but if they really went that speed it would take 4 minutes to cover a mile, not 2. I still haven't figured out that second number, it usually defaults to something like 0.23856 or 0.49731 or whatever, I found that increasing it reduces the chance of the AI train suddenly stopping for no reason with a clear track ahead, so I just set it to 1.0 and eliminated all the stalled AI train problems. Guess I gotta fiddle with those numbers again, I thought I had finally found a direct speed control for AI trains. It did seem as tho they were going faster than 15, but I didn't think it was anywhere near 30. Gonna have to run parallel to one and clock it, maybe the mileposts are off.Anyway, copied your last thread and pasted it into a doc, got some hacking to do, as The Terminator says, "I'll be back!"

Alert | IP

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

Charter Member · 231 posts

RE: Back from vacation!!

Glad to here your getting there.By the way, the Speed values are in metres per second. I multiply then by 2.25 to convert to mph, which correlates closely to your 15 mph seems like 30mph issue! Also I recon the MaxVelocity speed parameter is m/s as well, the other one being m/s/s.Units, units, units! Very important to get them right, especially in my job as a Structural Engineer!

Alert | IP

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

Charter Member · 4600 posts

RE: Back from vacation!!

Figures. Woulda been nice if KUJU had at least documented what the numbers referred to so we wouldn't have to guess. I dunno about that 2.25, I made an activity where I ran alongside the AI train for about 10 miles, clocked him at a steady 20mph (not 15, but not 30 either!), he accelerated to 23-24 for a few seconds at one time, but then slowed to 20 again for the rest of the trip."Units, units, units! Very important to get them right, especially in my job as a Structural Engineer!"
Hee-hee, there was an airliner several years back that fueled up in Canada, gauges read in US gallons and they pumped in liters, with a conversion chart to imperial gallons or something. I forget which way it was, but the end result of their failure to properly convert "units, units, units!" was the first successful dead-stick landing of a large jet airliner!Anyway, here's what I got now:Skip( **** ******************************************* **** )
Skip( **** Copy of Generic Steam SMS Used for SL 0 **** )
Skip( **** ******************************************* **** ) ScalabiltyGroup( 0
Activation ( ExternalCam () Distance (3000) PassengerCam () Distance (3000) CabCam () Distance (3000) )
Deactivation ( )
Streams ( 2
Stream (
Priority ( 5 )
Triggers ( 6
Variable_Trigger ( Speed_Inc_Past 1.0 StartLoop ( 1 File ( "ex_pon393whis.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Inc_Past 3.0 StartLoop ( 1 File ( "a_s_comp1.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Inc_Past 3.0 ReleaseLoopRelease () )
Variable_Trigger ( Speed_Dec_Past 4.0 StartLoop ( 1 File ( "ex_pon393bell.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Dec_Past 4.0 ReleaseLoopRelease () )
Variable_Trigger ( Speed_Dec_Past 1.0 ReleaseLoopRelease () )
)
) Stream (
Priority ( 7 )
Triggers ( 5
Variable_Trigger ( Distance_Dec_Past 200 ReleaseLoopRelease () )
Variable_Trigger ( Distance_Dec_Past 200 PlayOneShot ( 3
File ( "AI_pon393whis.wav" -1 )
File ( "AIsilence_0-5.wav" -1 )
File ( "AI_pon393whis.wav" -1 )
SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Distance_Dec_Past 50 ReleaseLoopRelease () )
Variable_Trigger ( Distance_Dec_Past 50 PlayOneShot ( 3
File ( "AI_pon393whis.wav" -1 )
File ( "AIsilence_0-5.wav" -1 )
File ( "AI_pon393whis.wav" -1 )
SelectionMethod ( SequentialSelection ) ) )
Initial_Trigger ( StartLoop ( 1 File ( "a_s_comp1.wav" -1 )
SelectionMethod ( SequentialSelection ) ) )
Kinda funny that there's no initial trigger for this section in the default, just "Speed_Inc_Past 1.0 StartLoop". I always leave the start speed and end speed of my AI trains at zero, so after spwaning they do have to accelerate past 1mph, so I don't know what happens to AI trains that start at 60mph and never drop below that.I was getting a single toot instead of two, so I changed the choo-choo noise to initial trigger instead, thinking the Distance_Dec_Past trigger for it was interrupting the second whistle. Didn't work tho, I got about a 5 second silence in that AIsilence_0-5.wav file, so I should get 5 seconds whistle, 5 seconds silence, and 5 seconds whistle again. Instead I get about 2 seconds of a single whistle. I was pretty sure I cloned that from the ex_whistle for the scotsman (and I just looked in goldwave, it is a 16 bit mono), so I don't know why it's so short or why I don't get the second one. I did have that working once, but the whistle would blow twice at the first Distance_Dec_Past trigger and skip the second (or was it the other way around?), and in the process of fixing that I lost the repeat.The volume is another problem, I got that AI whistle wav cranked to "that's all they is and they ain't no mo'", at least I don't get any increase in volume after increasing it again in goldwave, but 200 meters seems to be the max. Silly, cuz as I sit here the nearest grade crossing is about a mile away, and while I'm straining to hear this whistle at 200 meters, every few minutes a Metra commuter or Union Pacific freight blows for that grade crossing, and I hear that loud and clear with the windows shut from about 1600 meters away.

Alert | IP

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

Charter Member · 231 posts

Back from work!!

Hmmm. That second stream of your's sniper is a little jumbled up. Do you want "a_s_comp1.wav" playing while the AI is initially stationary? That is the effect of the Initial_Trigger in the second Stream. I think all you really need are the whistle related triggers , just the two of them, like this:-Variable_Trigger ( Distance_Dec_Past 200 PlayOneShot ( 3
File ( "AI_pon393whis.wav" -1 )
File ( "AIsilence_0-5.wav" -1 )
File ( "AI_pon393whis.wav" -1 )
SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Distance_Dec_Past 50 PlayOneShot ( 3
File ( "AI_pon393whis.wav" -1 )
File ( "AIsilence_0-5.wav" -1 )
File ( "AI_pon393whis.wav" -1 )
SelectionMethod ( SequentialSelection ) ) )The effect of the SequentialSelection is to order the play of the listed .wav's with each individual triggering of the tigger. Hence you would only get one whistle the first time Dec_Past 200 occurs, then silence the next time Dec_Past 200 occurs, then a single whistle the third time, and so on. The list of three files is not played in full. There has been some debate about achieving this in the past in this forum, but no success.You might want to try the following:-Variable_Trigger ( Distance_Dec_Past 200 PlayOneShot ( 3
File ( "AI_pon393whis.wav" -1 )
File ( "AIsilence_0-5.wav" -1 )
File ( "AI_pon393whis.wav" -1 )
SelectionMethod ( RandomSelection ) ) )
Variable_Trigger ( Distance_Dec_Past 200 PlayOneShot ( 3
File ( "AI_pon393whis.wav" -1 )
File ( "AIsilence_0-5.wav" -1 )
File ( "AI_pon393whis.wav" -1 )
SelectionMethod ( RandomSelection ) ) )Variable_Trigger ( Distance_Dec_Past 50 PlayOneShot ( 3
File ( "AI_pon393whis.wav" -1 )
File ( "AIsilence_0-5.wav" -1 )
File ( "AI_pon393whis.wav" -1 )
SelectionMethod ( RandomSelection ) ) )
Variable_Trigger ( Distance_Dec_Past 50 PlayOneShot ( 3
File ( "AI_pon393whis.wav" -1 )
File ( "AIsilence_0-5.wav" -1 )
File ( "AI_pon393whis.wav" -1 )
SelectionMethod ( RandomSelection ) ) )This uses repeated triggers plus RandomSelection. It will give you either no, one or two whistles on 'decing' past 200 and 50.

Alert | IP

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

Charter Member · 4600 posts

RE: Back from work!!

"Do you want "a_s_comp1.wav" playing while the AI is initially stationary? That is the effect of the Initial_Trigger in the second Stream." Hmm, in this case that would be overridden by the "Speed_Dec_Past" triggers that start the bell ringing, since it's already moving when the whistle triggers occur. Possibly I can do without that a_s_comp1.wav trigger altogether, I don't recall hearing the choo-choo-choo quit at any time, maybe it's not necessary to restart the loop, possibly it restarts by itself. I don't really want to do random selection, since the idea is to give the player warning that an AI train is near as he approches a junction (I don't know if you have PO&N or have tried the activities, but one of the unique things is that the AI trains have priority at all meets), so I would want the whistle to blow every time an AI train is coming toward the player.(Too bad there's no way to get them to just blow when they're approcahing a junction switch, but I can work around that provided I can get the whistle to actually be audible from 1000 meters away!)Here's an idea:Variable_Trigger ( Distance_Dec_Past 200 PlayOneShot ( 1
File ( "AI_pon393whis.wav" -1 )
SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Distance_Dec_Past 190 PlayOneShot ( 1
File ( "AI_pon393whis.wav" -1 )
SelectionMethod ( SequentialSelection ) ) )Variable_Trigger ( Distance_Dec_Past 100 PlayOneShot ( 1
File ( "AI_pon393whis.wav" -1 )
SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Distance_Dec_Past 90 PlayOneShot ( 1
File ( "AI_pon393whis.wav" -1 )
SelectionMethod ( SequentialSelection ) ) )That's a total of 4 triggers, the effect would be to blow once, blow again 10 meters closer, then at the next distance trigger do it again twice.Problems I see with that;Possible that if the first shot isn't done yet when the train travels 10 meters, it could either override the first shot with the second, or not play the second at all, and even if that don't happen the timing between blasts would be speed dependent. (I guess they don't have a "PlayTwoShot", hey?)I'm gonna go try that, I'd like to be able to change that "Distance_Dec_Past 200" to "Distance_Dec_Past 1200", or even 950 if the default soundcgf.dat is 1000 meters. Cranking that volume up so I can hear it 900 meters away or better is my biggest stumbling block, at 200 meters I can already SEE the train, so there's no point in the whistle, I already know it's coming!

Alert | IP

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

Charter Member · 4600 posts

RE: Back from work!!

Well, that did work, but after a bit more screwing around here's an even better solution:Skip( **** ******************************************* **** )
Skip( **** Copy of Generic Steam SMS Used for SL 0 **** )
Skip( **** ******************************************* **** ) ScalabiltyGroup( 0
Activation ( ExternalCam () Distance (5000) PassengerCam () Distance (5000) CabCam () Distance (5000) )
Deactivation ( )
Streams ( 2
Stream (
Priority ( 5 )
Triggers ( 6
Variable_Trigger ( Speed_Inc_Past 1.0 StartLoop ( 1 File ( "ex_pon393whis.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Inc_Past 3.0 StartLoop ( 1 File ( "a_s_comp1.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Inc_Past 3.0 ReleaseLoopRelease () )
Variable_Trigger ( Speed_Dec_Past 4.0 StartLoop ( 1 File ( "ex_pon393bell.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Dec_Past 4.0 ReleaseLoopRelease () )
Variable_Trigger ( Speed_Dec_Past 1.0 ReleaseLoopRelease () )
)
) Stream (
Priority ( 7 )
Triggers ( 4
Variable_Trigger ( Distance_Dec_Past 700 ReleaseLoopRelease () )
Variable_Trigger ( Distance_Dec_Past 700 PlayOneShot ( 1
File ( "AI_pon393whis.wav" -1 )
SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Distance_Dec_Past 500 PlayOneShot ( 1
File ( "AI_pon393whis.wav" -1 )
SelectionMethod ( SequentialSelection ) ) )
Initial_Trigger ( StartLoop ( 1 File ( "a_s_comp1.wav" -1 )
SelectionMethod ( SequentialSelection ) ) )That only plays AI_pon393whis.wav once per trigger, eliminates a lot of confusion. It finally occured to me that I'm using the AI_pon393whis.wav file for this one and only purpose, there's no other trigger for it, so I copied the whole sound, inserted a 0.5 second silence, and pasted the whole sound at the end of that. Now when the AI_pon393whis.wav plays once, I get a blast-silence-blast out of a single shot.Now the only problem remaining is the *&^%$#! volume, at 700 meters it's barely audible, and you really gotta be listening for it. Is there any way to override the subroutine that lowers the volume according to distance? I did try inserting a volume line using the injectors as a template;Priority( 6 )
Volume(0.25)
Triggers( 2only changing volume (0.25) to 1.0 or 2.0, but for some reason adding that volume line in exactly the same format as the injectors disables the whistle altogether so it don't play at all.I didn't get into volume curves, all the ones I see appear to be speed controlled.Is there any way to get a sound to play at full volume regardless of the distance from the camera viewpoint?

Alert | IP

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

Charter Member · 231 posts

RE: Back from work!!

>Is there any way to get a sound to play at full volume
>regardless of the distance from the camera viewpoint? Kind of, but it works for the whole sms not individual Streams as far as I am aware. As you're clearly getting the hang of things now I'll just give you a clue. Look in the sound folder of any route for ingame.sms.

Alert | IP

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

Charter Member · 4600 posts

RE: Back to the old drawing board!

Nope, no joy there. Only volume statements in ingame.sms are all random trigger, but I took a shot at it anyway;Variable_Trigger ( Distance_Dec_Past 400 Volume_Min_Max( 0.9 1.0) PlayOneShot ( 1
File ( "AI_pon393whis.wav" -1 )That had no effect, so I tried;Variable_Trigger ( Distance_Dec_Past 400 Volume_Min_Max( 1.9 2.0) PlayOneShot ( 1
File ( "AI_pon393whis.wav" -1 )even tho I've heard that any value above 1 is meaningless. Either way, it's either already at max or the sim is ignoring the Volume_Min_Max statement, plays at the same volume with or without.Funny thing, I've been testing all this with the player engine sitting still on the NEC4 route, on the long straightaway between MP69 and MP74, with the AI train starting about 3 miles away heading toward the player. I used NEC4 due to the twisty pretzel layout of the PO&N, hard to find a long enough section of straight track so you know exactly how far away the AI train is! So after screwing around with the maxvelocity values in the .con files to slow the AI trains down, I got them down to 12.0 0.8, and decided to run an activity on PO&N6. Normally PO&N6 activities take about 2 hours for an AI train to run from spawn1 to spawn2, so there would be from 12 to 14 AI trains running at any given time since they follow each other 10 minutes apart. But at the slower speed the first one spawns by Tinkers Dam at 08:00, and don't arrive in Chippewa Falls until 12:30, four and a half hours for the trip! With the same 10 minute spacing, I think I set a new MSTS record, I counted 28 AI trains "on the board" at the same time!
Sounds of other trains – image 2Oughtta go post a bragging thread, I'm sure that's some kind of record. What I found was that at 600 and 400 meters closing, there's two double whistle blasts about every 3 or 4 minutes when going against the traffic, one thing I hadn't considered was that you can be approaching one train head on, while another is approaching from the side to go overhead on a different track, and you end up with
"whoo-whoo! whoo-whoo! whoo-whoo! whoo-whoo! whoo-whoo! whoo-whoo! whoo-whoo! whoo-whoo! whoo-whoo!..."Sounds of other trains – image 3

Alert | IP

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

Charter Member · 231 posts

RE: Back to the old drawing board!

Err, you missed the bit I was thinking about. Here's the first few lines:-SIMISA@@@@@@@@@@JINX0x1t______
Tr_SMS (
ScalabiltyGroup( 3
Activation (
ExternalCam()
CabCam()
PassengerCam()
)
Deactivation()
Ignore3d ()
Streams ( 3
Stream (Look at the one third from bottom!

Alert | IP

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

Charter Member · 4600 posts

"...You can hear, the whistle blow, a hundred miles..."

Well, THAT worked, got the cat and both dogs hanging upside down from the ceiling by their claws. I didn't know dogs could even do that.Not perfect by any means, obviously I can redo the wav file from scratch and not crank the volume up as much, with all the distortion it was starting to sound like moose mating season. Getting rid of the loud chuff-chuff when the train is 500 meters way is gonna take a little work, and what I got is playing both shots at the far distance and dropping the near.Skip( **** ******************************************* **** )
Skip( **** Copy of Generic Steam SMS Used for SL 0 **** )
Skip( **** ******************************************* **** ) ScalabiltyGroup( 0
Activation ( ExternalCam () Distance (1000) PassengerCam () Distance (1000) CabCam () Distance (1000) )
Deactivation ( )
Ignore3d ()
Streams ( 2
Stream (
Priority ( 4 )
Triggers ( 6
Variable_Trigger ( Speed_Inc_Past 1.0 StartLoop ( 1 File ( "a_s_comp1.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Inc_Past 40.0 StartLoop ( 1 File ( "a_s_comp2.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Inc_Past 40.0 ReleaseLoopRelease () )
Variable_Trigger ( Speed_Dec_Past 39.0 StartLoop ( 1 File ( "a_s_comp1.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Dec_Past 39.0 ReleaseLoopRelease () )
Variable_Trigger ( Speed_Dec_Past 1.0 ReleaseLoopRelease () )
)
) Stream (
Priority ( 7 )
Triggers ( 4
Variable_Trigger ( Distance_Dec_Past 700 ReleaseLoopRelease () )
Variable_Trigger ( Distance_Dec_Past 700 PlayOneShot ( 1
File ( "ex_pon393whis.wav" -1 )
SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Distance_Dec_Past 100 PlayOneShot ( 1
File ( "ex_pon393whis.wav" -1 )
SelectionMethod ( SequentialSelection ) ) )
Initial_Trigger ( StartLoop ( 1 File ( "a_s_comp1.wav" -1 ) SelectionMethod ( SequentialSelection ) ) ) I did try cutting that "initial trigger" thingie for the startloop a_s_comp1.wav, and leaving it out means the train goes by in utter silence again cuz after the whistles it don't start back up.What I'm getting with this is two shots of ex_pon393whis.wav (I changed to the quieter wav file, I don't like the way these dogs are looking at me) at 700 meters instead of one shot, then nothing at 100 meters.Two things to try now,1. ScalabiltyGroup( 0, is more than one of those allowed? If so, the whistle could be put in a seperate scalability group from the other sounds so that the Ignore3d () statement would apply to only the whistle and not the other sounds.2. If not, can the Ignore3d () statement be attached to a single trigger or even a single stream rather than the whole group.3. If all else fails, making several .wav files of different volumes could produce somewhat the same effect as the distance volume effect, by using:Distance_Dec_Past 100 StartLoop ( 1
File ( "soft_choo-choo.wav" -1 )Distance_Dec_Past 60 StartLoop ( 1
File ( "medium_choo-choo.wav" -1 )Distance_Dec_Past 30 StartLoop ( 1
File ( "loud_choo-choo.wav" -1 )And whatever releaselooprelease stuff has to be in there. That's one thing I'm fighting constantly is the sequence and syntax errors, being totally new to sound editing my trial and error is about 90% error.But to sum up, that "Ignore3d ()" statement definitely works!

Alert | IP

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

Charter Member · 231 posts

RE:

Got your seat belt on there sniper? Do it up tight 'cos your now entering unchartered SMS territory! You happy out there on your own or would you like some company?1. Only one of each ScalibilityGroup allowed for sure.2. There's a tick-box in the Sound Test Interface for enabling/disabling 3D. It works on the whole sms, not individual streams, so I'd recon the Ignore3D() statement does to.3. Actually, try defining a Distance related VolumeCurve first. (Note; you only need to include the Distance statement once inside the Activation () statement).ScalabiltyGroup( 0
Activation ( ExternalCam () PassengerCam () CabCam () Distance (1000) )
Deactivation ( )
Ignore3d ()
Streams ( 2
Stream (
Priority ( 4 )
Triggers ( 6
Variable_Trigger ( Speed_Inc_Past 1.0 StartLoop ( 1 File ( "a_s_comp1.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Inc_Past 40.0 ReleaseLoopRelease () ) Variable_Trigger ( Speed_Inc_Past 40.0 StartLoop ( 1 File ( "a_s_comp2.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Dec_Past 39.0 ReleaseLoopRelease () )Variable_Trigger ( Speed_Dec_Past 39.0 StartLoop ( 1 File ( "a_s_comp1.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Dec_Past 1.0 ReleaseLoopRelease () )
)
VolumeCurve(
DistanceControlled
CurvePoints ( 2
0 1.0
1000 0.4
)
Granularity ( 0.1 )
)
)Stream (
Priority ( 7 )
Triggers ( 4
Variable_Trigger ( Distance_Dec_Past 700 PlayOneShot ( 1
File ( "ex_pon393whis.wav" -1 )
SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Distance_Dec_Past 100 PlayOneShot ( 1
File ( "ex_pon393whis.wav" -1 )
SelectionMethod ( SequentialSelection ) ) )
)
VolumeCurve(
DistanceControlled
CurvePoints ( 2
0 1.0
1000 0.4
)
Granularity ( 0.1 )
)
)
)

Alert | IP

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

Member since May-11-03 · 9 posts

RE:

Best of luck to you both. I've tried distance controlled volume curves with interesting but less than stellar results. The last time I tried it I got loud sounds that faded as the source got closer, and got louder as it moved away again. Counter-logic worked, so I got it do generally what I wanted, but for that application (adding a loud whoosh at close range and high speed) the use of a very small radius gave very inconsistent results in the spotter view, where the POV for each pass is at a different distance from the track. No doubt my short attention span led me to throw in the towel before exploring all options.Looking forward to your results.Jeff

Alert | IP

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

Charter Member · 4600 posts

RE: WHONK!

Nope, not yet. I suspect I need some kind of release loop with jump or something:Skip( **** ******************************************* **** )
Skip( **** Copy of Generic Diesel SMS Used for SL 0 **** )
Skip( **** ******************************************* **** )
ScalabiltyGroup( 0
Activation ( ExternalCam () PassengerCam () CabCam () Distance (1000) )
Deactivation ( )
Ignore3d ()
Streams ( 2
Stream (
Priority ( 4 )
Triggers ( 6
Variable_Trigger ( Speed_Inc_Past 1.0 StartLoop ( 1 File ( "a_d_comp1.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Inc_Past 40.0 ReleaseLoopRelease () ) Variable_Trigger ( Speed_Inc_Past 40.0 StartLoop ( 1 File ( "a_d_comp2.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Dec_Past 39.0 ReleaseLoopRelease () )Variable_Trigger ( Speed_Dec_Past 39.0 StartLoop ( 1 File ( "a_d_comp1.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Dec_Past 1.0 ReleaseLoopRelease () )
)
VolumeCurve(
DistanceControlled
CurvePoints ( 2
0 1.0
1000 0.1
)
Granularity ( 0.1 )
)
)Stream (
Priority ( 7 )
Triggers ( 2
Variable_Trigger ( Distance_Dec_Past 700 PlayOneShot ( 1
File ( "x_sd402_horn1.wav" -1 )
SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Distance_Dec_Past 100 PlayOneShot ( 1
File ( "x_sd402_horn1.wav" -1 )
SelectionMethod ( SequentialSelection ) ) )
)
VolumeCurve(
DistanceControlled
CurvePoints ( 2
0 1.0
1000 0.5
)
Granularity ( 0.1 )
)
)
)
)
)I switched this experiment over to Diseasels to eliminate some of the non-sound variables I'm not familiar with, I'l go back to pufferbellys if I get the diesels working. I'm using the .sms file from the update version 1.2 MS/TA SD402, and I copied the x_sd402_horn1.wav file into the sound folder for the AI engine I'm using (repaint of the Train Artisan SD402) from the MSTS V1.2 content update:http://microsoftgamesinsider.com/TrainSimulator/Downloads/Updates/default.htmAnd then added your hack to it, changing the .wav filenames as appropriate. Note I changed the distance for the first from "1000 0.4" to "1000 0.1" to try to get the other sounds lower, but what I'm getting is a double horn blast at 700 meters, followed by a_d_comp1.wav at about half volume, no horn blast after that. It's playing the 100 meter blast immediately after the 700 meter blast, then skipping the shot at 100 meters, and the a_d_comp1.wav plays at constant volume from immediately after the two horn blasts until it passes beyond range (1000 meters, I assume, using the hacked #7 camcfg.dat changes the sound source logic), then cuts off suddenly. So apparently it's using the second volume curve, the one for the horn, and after starting a_d_comp1.wav again, it's gone back to ignoring 3D distance again, and not using the first volume curve.

Alert | IP

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

Charter Member · 24 posts

RE: WHONK!

I implemented the DistanceDecs in my italian trains, and it gave really a nice effect.
Here my version:
Stream (
Priority ( 7 )
Triggers ( 1
Variable_Trigger ( Distance_Dec_Past 70 PlayOneShot ( 3
File ("..\\..\\Suono_Italiano\\x_ficentro_loud_long.wav" -1 )
File ("..\\..\\Suono_Italiano\\x_silence_0-10.wav" -1 )
File ("..\\..\\Suono_Italiano\\x_ficentro_loud.wav" -1 )
SelectionMethod ( RandomSelection ) ) )
)
VolumeCurve(
SpeedControlled
CurvePoints ( 5
-100.0 1.0
-2.0 1.0
0 0.0
2.0 1.0
100.0 1.0
)
Granularity ( 0.1 )
)
)
So You see that I have only one whistle, which also may be absent, and I have a short and a long whistle. The volume curve is here so that the AI train does not whistle if it is the Player train that meets a stopped AI train.
I found a drawback in all the thing:
if You use e.g. the TGV that has also a loco in the back, the loco in the back also whistles! An if You have a nice long U.S. freighter with 5 locos, all 5 whistle! Some suggestion to overcome that? Think it is difficult to solve.CiaoCarlo Santucci

Alert | IP

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

Charter Member · 231 posts

RE: WHONK!

Carlo, the only solution I can think of is to create another .eng file for the second and above loco's which uses a second sms which doesn't have the whistling triggers in it.

Alert | IP

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

Charter Member · 231 posts

No More WHONK!

Right. Started from scratch on this one. Premice is to give continuous chugging (above 1m/s) in first Stream and distance related whistle in the second. Have tested this sms in the STI only (ie not in an activity in the sim) and it works!SIMISA@@@@@@@@@@JINX0x1t______
Tr_SMS (Skip ( AI test sms for sniper
)
ScalabiltyGroup( 0
Activation (
ExternalCam ()
PassengerCam ()
CabCam ()
Distance ( 2000 )
)
Deactivation (
Distance ( 2000 )
)
Volume ( 1.0 )
Ignore3D()
Streams ( 2
Stream (
Priority ( 6 )
Triggers ( 6
Variable_Trigger ( Speed_Inc_Past 1 StartLoop ( 1 File ( "a_d_comp1.wav" -1 )
SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Inc_Past 40 ReleaseLoopRelease() )
Variable_Trigger ( Speed_Inc_Past 40 StartLoop ( 1 File ( "a_d_comp2.wav" -1 )
SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Dec_Past 40 ReleaseLoopRelease() )
Variable_Trigger ( Speed_Dec_Past 40 StartLoop ( 1 File ( "a_d_comp1.wav" -1 )
SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Dec_Past 1 ReleaseLoopRelease() )
)
VolumeCurve (
DistanceControlled
CurvePoints ( 3
0.0 1.0
100.0 0.8
650.0 0.0
)
Granularity ( 0.1)
)
)
Stream (
Priority ( 6 )
Triggers ( 6
Initial_Trigger ( DisableTrigger( 3 ) )
Initial_Trigger ( DisableTrigger( 4 ) )

Variable_Trigger ( Distance_Dec_Past 649 PlayOneShot ( 1 File ( "x_sd402_horn1.wav" -1 )
SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Distance_Dec_Past 100 PlayOneShot ( 1 File ( "x_sd402_horn1.wav" -1 )
SelectionMethod ( SequentialSelection ) ) ) Variable_Trigger ( Distance_Dec_Past 649 EnableTrigger( 3 ) )
Variable_Trigger ( Distance_Dec_Past 100 EnableTrigger( 4 ) )
)
VolumeCurve (
DistanceControlled
CurvePoints ( 3
0.0 1.0
100.0 0.8
650.0 0.3
)
Granularity ( 0.1)
)
)
)
)
)During testing a few things became apparent.You said you got a double whistle initially after passing 700m. This is because on loading the previous sms the second stream was initiating the looping chuff sound but also triggering a 700m whistle and a 100m whistle. Why? Who knows, but it was occuring. Both these whistles are triggered but then get cued, not actually being played until after the chuff stops looping. This of course doesn't occur until 700m is actually passed by the AI. To get around this I have introduced the disable and enable triggers. These need to be in the order I have them for them to work.There seems to be a 650m max limit in the STI for the Distance variable! Why? Another 'bug' maybe? Anyhow that is the reason I have got 649m instead of 700m.The net result of the above posted scripting is:-Stream 1. Continuous chuffing above 1m/s, faster above 40m/s, with distance varying volume which fades to silence at 650m.Stream 2. Whistles at decreasing past 650m and 100m. Volume varies with distance, minimising at 30% of full volume at 650m and staying at that level beyond.Well I'll leave in-sim testing with you.

Alert | IP

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

Charter Member · 4600 posts

RE: No More WHONK!

Nope. Copied all that, replaced the existing "scalabilty" (I think they mean scalability) group 0.
Apparently ignore 3D means ignore 3D, I get full volume a_d_comp1.wav starting about 1000 meters, staying at the same volume until it passes beyond 1000 the othe other way, then suddenly cutting off, no horn. Possibly something wrong with the volume curve statements, when I chop the Ignore3D() out and try it like that, I get normal volume increasing as it gets closer and fading behind, totally unaffected by any alterations to the numbers in the volume statement, and still no horn. Tried bumping the priority for the horn stream up, that didn't do it either.And yeah, by placing mileposts measured with track sections alongside the track, I found that for me whether the first distance is 600, 700, or 800 meters, the first shot plays at 440 meters.One item of interest, the scot and the 380 have identical group 0 sections (still haven't figured out why the 380 has no AI sounds for me, but like a lot of other people it isn't really important to me since I don't use the 380), and except for the names of the .wav files the code is identical to the default Dash 9 and the 1.2 SD402. Thge default GP38, OTOH:Skip( **** ******************************************* **** )
Skip( **** Copy of Generic Diesel SMS Used for SL 0 **** )
Skip( **** ******************************************* **** ) ScalabiltyGroup( 0
Activation ( ExternalCam () Distance (500) )
Deactivation (CabCam () PassengerCam () Distance (500) )
Streams ( 1
Stream (
Priority ( 4 )
Triggers ( 6
Variable_Trigger ( Speed_Inc_Past 1.0 StartLoop ( 1 File ( "a_d_comp1.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Inc_Past 50.0 StartLoop ( 1 File ( "a_d_comp2.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Inc_Past 50.0 ReleaseLoopRelease () )
Variable_Trigger ( Speed_Dec_Past 49.0 StartLoop ( 1 File ( "a_d_comp1.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Speed_Dec_Past 49.0 ReleaseLoopRelease () )
Variable_Trigger ( Speed_Dec_Past 1.0 ReleaseLoopRelease () )
)
VolumeCurve(
SpeedControlled
CurvePoints ( 3
0.0 0.0
10.0 1.0
100.0 1.0
)
Granularity ( 0.05 )Also identical coding, except it's the only default with a volume curve added.

Alert | IP

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

Charter Member · 231 posts

RE: No More WHONK!

LAST EDITED ON May-26-03 AT 06:41 PM (EDT)

Darn! Your've right. Have tried this in-sim and didn't get any volume changes. So it looks like the STI doesn't fully correlate to the in-sim workings - but then it would really be a surprise if it did wouldn't it!Sniper, do your AI loco's use tenders? If they do then here is a solution that I have got to work in-sim. Use chuff only sounds in the loco and then use the following in the tender:-SIMISA@@@@@@@@@@JINX0x1t______
Tr_SMS (Skip ( AI test sms for sniper
)
ScalabiltyGroup( 0
Activation (
ExternalCam ()
PassengerCam ()
CabCam ()
Distance ( 1000 )
)
Deactivation (
Distance ( 1000 )
)
Volume ( 1.0 )
Stereo()
Streams ( 1
Stream (
Priority ( 6 )
Triggers ( 2
Variable_Trigger ( Distance_Dec_Past 950 PlayOneShot ( 1 File ( "x_sd402_horn1.wav" -1 )
SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Distance_Dec_Past 100 PlayOneShot ( 1 File ( "x_sd402_horn1.wav" -1 )
SelectionMethod ( SequentialSelection ) ) )
)
VolumeCurve (
DistanceControlled
CurvePoints ( 4
0.0 1.0
100.0 0.8
950.0 0.15
1000.0 0.0
)
Granularity ( 0.05)
)
FrequencyCurve (
DistanceControlled
CurvePoints ( 2
0.0 5512
1000.0 5512
)
Granularity ( 1000 )
)
)
)
)
)The Stereo environment (normally in-cab) is 2D only so no 3D distance volume changes occur. However, it plays back at 22050Hz, hence the inclusion of a fixed frequency curve to get play back to the correct timing. There is a side effect though. A 11025Hz file played this way pitch shifts slightly. But the effect is a just audible whistle at 950m and a much louder one at 100m.

Alert | IP

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

Charter Member · 4600 posts

Hoot, toot, & whistle

Haven't tried that yet, altho it sounds like it would work with a steam engine that uses a tender. Most tenders use a generic sound like FSWagT.sms, squeak-squeak, which isn't really audible over the engine sounds anyway since it's right behind the engine.That conceives another idea tho, since AI trains can't stop and couple/uncouple cars, what about a dummy car for horn/whistle sound only? Make a really short (about 1 meter) wagon, if possible with no ace file defined in the shape file, if not use an invisible texture that's all alpha. Coupled on ahead of the engine, it plays the horn or whistle (would need two types of invisible dummy sound cars, one for diesel one for steam), and since it don't need chuff or chug, the ignore3D statements wouldn't be a problem since the triggers for the horn/whistle would be the only thing in there. Distance decrease past 1000, play one shot, then whatever other distance dec past triggers you have, then it would shut up since that's all it has to say.Gotta go bug the loco guys now, I'll be back.

Alert | IP

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

Charter Member · 24 posts

RE: No More WHONK!

Am I correct that with the Ignore3d() statement and with the Stereo() statement You loose the effect of noticing if the incoming sound is at Your right and at Your left, and furthermore You loose the nice Doppler effect? (that is if the incoming train whistles while it crosses You, You get a decreasing sound frequency)? If so and if it is not possible to increase the volume of the whistle/horn, I prefer to decrease the volume of the other sounds, so that the volume of the whistle/horn is well audible, increase the volume of my audio boxes and leave the whistle/horn sound with its 3d effects.Carlo Santucci

Alert | IP

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

Charter Member · 4600 posts

RE: No More WHONK!

Carried all this to a new thread, Carlos;http://www.train-sim.com/dcforum/DCForumID11/415.htmland got it all working, altho we trashed the Ignore3d() and replaced it with the Stereo() statement. Try the MOW rescue activity with the update, or if you have Port Ogden & Northern 6 (ponV6.zip) try the activities update for PO&N6 (PON6updt.zip), both utilize the new Invisocar horn sounds.

Alert | IP


[ Home | MSTS Forum | MSTS FAQ | File Library ] Copyright © 2002 by Nels Anderson. All Rights Reserved.

Restored from the Train-Sim.Com archive, captured September 29, 2003. About this archive.