When I first started retrofitting my vacuum-braked equipment with the brake squeal sound, I soon found out that the way vacuum brake cylinders worked was the opposite of air brake cylinders--in an air-brake system, the cylinder pressure increases upon application and decreases upon release, but with vacuum brakes the cylinder pressure decreases upon application and increases upon release.
Aside from having to invert the variable triggers and any brake-cylinder-related volume curves, there are some odd side effects:
1. Differing pipe and cylinder pressures for different equipment.
In the UK, most vacuum brakes release at 21 Inches of Mercury. Converted to PSI, this amounts to 10.31 PSI. However, the brakes usually don't begin to apply until the brake cylinder pressure drops below 18 Inches of Mercury (8.84 PSI). With that in mind, here's how that'd be configured:
Stream ( Skip ( Brake squeal ) Priority ( 6 ) Triggers ( 2 Variable_Trigger ( BrakeCyl_Dec_Past 8.84 StartLoop ( 1 File ( "brakesqueal.wav" -1 ) SelectionMethod ( RandomSelection ) ) ) Variable_Trigger ( BrakeCyl_Dec_Past 8.84 ReleaseLoopRelease () ) ) FrequencyCurve( SpeedControlled CurvePoints ( 5 -30 43800 -1 44100 0 49000 1 44100 30 43800 ) Granularity ( 0.001 ) ) VolumeCurve( BrakeCylControlled CurvePoints ( 4 0 1.0 8.83 0.14 8.84 0.0 10.31 0.0 ) Granularity ( 0.01 ) ) VolumeCurve( SpeedControlled CurvePoints ( 5 -.4 1.0 -.1 0.05 0 0.0 .1 0.05 .4 1.0 ) Granularity ( 0.001 ) ) VolumeCurve( DistanceControlled CurvePoints ( 3 10 1.0000 40 0.2500 200 0.0000 ) Granularity ( .001 ) ) )
However, on the Great Western Railway (GWR) the brakes release at 25 Inches of Mercury (12.27 PSI) instead. So then the code would be:
Stream ( Skip ( Brake squeal ) Priority ( 6 ) Triggers ( 2 Variable_Trigger ( BrakeCyl_Dec_Past 10.81 StartLoop ( 1 File ( "brakesqueal.wav" -1 ) SelectionMethod ( RandomSelection ) ) ) Variable_Trigger ( BrakeCyl_Dec_Past 10.81 ReleaseLoopRelease () ) ) FrequencyCurve( SpeedControlled CurvePoints ( 5 -30 43800 -1 44100 0 49000 1 44100 30 43800 ) Granularity ( 0.001 ) ) VolumeCurve( BrakeCylControlled CurvePoints ( 4 0 1.0 10.80 0.14 10.81 0.0 12.27 0.0 ) Granularity ( 0.01 ) ) VolumeCurve( SpeedControlled CurvePoints ( 5 -.4 1.0 -.1 0.05 0 0.0 .1 0.05 .4 1.0 ) Granularity ( 0.001 ) ) VolumeCurve( DistanceControlled CurvePoints ( 3 10 1.0000 40 0.2500 200 0.0000 ) Granularity ( .001 ) ) )
However, when one runs a mix of GWR and non-GWR equipment, there are some false side effects. When a non-GWR loco is hauling a mix of GWR and non-GWR equipment, then the result is that the GWR equipment sounds like their brakes are still applied even though the brakes are technically fully released. Likewise, if a GWR loco is hauling a similar mix of equipment, then the non-GWR equipment sounds like their brakes are fully released even though (according to the extended HUD's brake and forces information section) the brakes are starting to apply.
2. What do you do when the locomotive has both a vacuum and a steam brake?
When I modified the CTN Merchant Navy to use the BrakeCyl-controlled brake squeal code, I overlooked the fact that it also has a steam brake for its independent (engine) brake. Since a steam brake acts like an air brake (and thus is the opposite of a vacuum brake) it caused the loco to sound as if the brakes were applied in full-strength when, in fact, BOTH the vacuum and steam brakes were released. In the end I decided the only way around this was disabling the engine brake in the loco *.eng file.
If any of you guys (especially the folks across the pond) could give me some advice (and also let the ORTS developers know about this so they can come up with a workaround), that'd be great! Thanks in advance!