whistle. post with a horn sequence?

justinroth

Well-known member
Is this possible? hornz trigger, sound.horn ect don't seem to work prototypically, not to criticize anyone but a trigger with sequence/duration.....could it happen? :)!
 
I'm sure someone came up with that idea not long ago, for coming up to a road crossing for eg.
 
I know at one time (on an old installation with a route that I don't have anymore) I had "W" posts that had a horn trigger built in. I don't remember if they were from DLS or a third party. I've also seen horn triggers for track placement that were invisible in Driver as well. Again, this was an old install so I don't have any KUIDs for you, but I know they're out there.

Edit: To clarify, the ones I had were just single blasts, I know someone was discussing trying to make a trigger that would do the US FRA's required grade crossing sequence (Long Long Short Long) but I don't know if they succeeded.
 
Last edited:
BNSF50 has made several different whistle signs that makes locomotives blow their whistles/horn, but instead of 'whistling' 'long-long-short-long', it's more light a 'short' whistle. He offeres three different versions: a left hand version, useful for double track mainlines, a right hand one, which is 'normally' used, and an 'invisible' one, which can be placed closer to the crossing so that it blows it's whistle/horn as it crosses the road and are invisible in Driver (you can see them in Surveyor). I use Bost's ATLS system for my railroad crossings, and I place the whistle post at the triggers farthest from the crossings. Go to the DLS and type in 'xing ahead'.
 
Hmm... Since I'm modeling a proto Frisco route I wonder if editing the config to set below ground level might work. Out of sight but effective.
I'm willing to bet adding surveyor only in the config would work to make it invisible in driver...not sure exactly how, I would have to look up an invisible asset to see how its done
 
@justinroth

BNSF50 made a trackside object for me <kuid:39134:100383> modeled after SLSF drawings. I wonder if I can copy the script of the B&M Whistle post and make a new version of to behave like the that?

What lines did you edit in the script to change the duration of the horn blasts?
 
Last edited:
I found some Bi Directional Horn and Bell sequencers on the DLS by: Scottbe8 and Bloodknock
Ring_Bell_BiDirectional
Sound_Horn_BiDirectional

I place them so that I get a: "Shave & A Haircut, Two Bits" hornsound (just for fun)
 
@justinroth

BNSF50 made a trackside object for me <kuid:39134:100383> modeled after SLSF drawings. I wonder if I can copy the script of the B&M Whistle post and make a new version of to behave like the that?

What lines did you edit in the script to change the duration of the horn blasts?
When you open the script up there are a series of lines, each accounting for some duration tohold the horn, and another to stop, I simply copied and pasted the lines to extend the horn blasts and silence in between them. I then figured out a formula for placement- track speed X 20=distance in feet to place before crossing so the sequence is finished just as the loco exits the crossing. ex. track speed is 35mph so 35X20=700 ft. I then place my ATLS triggers a little before the whistle post so the gates come down a couple seconds beforehand.
 
Thanks for the info. So if I wanted the pauses between blasts to be longer what lines am I copy and pasting?

// long
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(4.0f);
// long
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(3.0f);
// short
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(2.0f);
// lean on it!
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
 
Last edited:
Thanks for the info. So if I wanted the pauses between blasts to be longer what lines am I copy and pasting?

// long
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(4.0f);
// long
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(3.0f);
// short
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(2.0f);
// lean on it!
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
you would increase the number on "sleep" where it occours above long or short, denoting which blast it is.
 
Thanks. I changed the lines you suggested but now I'm getting a series of choppy blasts. This is what I have now. Note what I've edited in red.

// long
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(8.0f);
// long
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(8.0f);
// short
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(4.0f);
// lean on it!
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
Sleep(0.2f);
SendMessage(theTrain, "loco", "horn");
 
Last edited:
@drickets, it looks fine to me, at the top of the script there is a note stating it can sometimes be choppy, dependent on your computing power, I haven't noticed a problem though.
This is what mine looks like;
Code:
// long
      SendMessage(theTrain, "loco", "horn");
      Sleep(0.2f);
      SendMessage(theTrain, "loco", "horn");
      Sleep(0.2f);
      SendMessage(theTrain, "loco", "horn");
      Sleep(0.2f);
      SendMessage(theTrain, "loco", "horn");
      Sleep(0.2f);
      SendMessage(theTrain, "loco", "horn");
      Sleep(0.2f);
      SendMessage(theTrain, "loco", "horn");
      Sleep(0.2f);
      SendMessage(theTrain, "loco", "horn");
      Sleep(0.2f);
      SendMessage(theTrain, "loco", "horn");
      Sleep(4.0f);
// long
      SendMessage(theTrain, "loco", "horn");
      Sleep(0.2f);
      SendMessage(theTrain, "loco", "horn");
      Sleep(0.2f);
      SendMessage(theTrain, "loco", "horn");
      Sleep(0.2f);
      SendMessage(theTrain, "loco", "horn");
      Sleep(0.2f);
      SendMessage(theTrain, "loco", "horn");  
      Sleep(0.2f);
      SendMessage(theTrain, "loco", "horn");
      Sleep(0.2f);
      SendMessage(theTrain, "loco", "horn");
      Sleep(0.2f);
      SendMessage(theTrain, "loco", "horn");  
      Sleep(3.0f);
// short
      SendMessage(theTrain, "loco", "horn");
      Sleep(0.2f);
      SendMessage(theTrain, "loco", "horn"); 
      Sleep(0.2f);
      SendMessage(theTrain, "loco", "horn");
      Sleep(0.2f);
      SendMessage(theTrain, "loco", "horn"); 
      Sleep(2.0f);
// lean on it!
      SendMessage(theTrain, "loco", "horn");
      Sleep(0.2f);
      SendMessage(theTrain, "loco", "horn");
      Sleep(0.2f);
      SendMessage(theTrain, "loco", "horn");
      Sleep(0.2f);
      SendMessage(theTrain, "loco", "horn");
      Sleep(0.2f);
      SendMessage(theTrain, "loco", "horn");
      Sleep(0.2f);
      SendMessage(theTrain, "loco", "horn");
      Sleep(0.2f);
      SendMessage(theTrain, "loco", "horn");
      Sleep(0.2f);
      SendMessage(theTrain, "loco", "horn");
      Sleep(0.2f);
      SendMessage(theTrain, "loco", "horn");
      Sleep(0.2f);
      SendMessage(theTrain, "loco", "horn");
      Sleep(0.2f);
      SendMessage(theTrain, "loco", "horn");
      Sleep(0.2f);
      SendMessage(theTrain, "loco", "horn");
      Sleep(0.2f);
      SendMessage(theTrain, "loco", "horn");
      Sleep(0.2f);
      SendMessage(theTrain, "loco", "horn");
      Sleep(0.2f);
      SendMessage(theTrain, "loco", "horn");
      Sleep(0.2f);
      SendMessage(theTrain, "loco", "horn");
      Sleep(0.2f);
      SendMessage(theTrain, "loco", "horn");
      Sleep(0.2f);
      SendMessage(theTrain, "loco", "horn");
 
Thanks Justin. I was testing in an very dense urban area. After testing in a different area of my route I'm getting much better results. I've been working on a couple of invisible trackmarkers using his script with a few tweaks. Just working on some final details and hopefully I can get tem on the DLS soon.
 
Back
Top