I have begun work on a series of diesel engine improvements that have been at the back of my mind for some time. To start, sound.
Existing diesel engines have had pretty limited capabilities for sounds, which has similarly limited how immersive those sounds can be. Really the only thing the sound system gives you is "Variable2" which depends on engine RPM but is measured on a scale of 0-1 for whatever reason. On locomotives with multiple engines, you can't make sounds that depend on what other engines are doing (Variable2 is based on the first engine only). You can't make sounds for the engine starting up or shutting down (Variable2 returns 0.0 when the engine is idle, but it also returns 0.0 when the engine is off, can't tell the difference). And the big annoyance is that there just isn't a way to make sounds that depend on how hard the engine is working (Variable2 will be 1.0 when the engine is a full speed whether the reverser is in neutral or the engine is actually working hard at full power).
To address that, I have added sound controls for engine RPM (like, actual engine RPM, not Variable2), engine power, and engine torque, all of which work with multiple engines. And there are also controls for the tractive effort and power at the wheels, which diesel locomotives didn't have access to before, and those might be useful for transmission or motor sounds.
This is only in unstable versions or OR, as well as the latest NewYear MG, I think. But I know a bunch of you have felt disconnected from new features, and I think there are some folks here who would find these features useful. I'm not the expert in sounds, I've just done a little messing around is all, so there might be other ideas that would be useful that I didn't think of. Do give it a try and share ideas:
New sound variable! EngineRPMControlled
New sound variable! EnginePowerControlled
New sound variable! EngineTorqueControlled
New sound variable (for all locomotives)! TractiveEffortControlled
New sound variable (for all locomotives)! TractivePowerControlled
Don't know what newton-meters of torque your engine is producing? Use the updated sound debug window (Alt + S) and select the locomotive from the list of sound sources to see the W, N, N-m, etc values used by the sound system without the need to manually do a bunch of conversions.
Existing diesel engines have had pretty limited capabilities for sounds, which has similarly limited how immersive those sounds can be. Really the only thing the sound system gives you is "Variable2" which depends on engine RPM but is measured on a scale of 0-1 for whatever reason. On locomotives with multiple engines, you can't make sounds that depend on what other engines are doing (Variable2 is based on the first engine only). You can't make sounds for the engine starting up or shutting down (Variable2 returns 0.0 when the engine is idle, but it also returns 0.0 when the engine is off, can't tell the difference). And the big annoyance is that there just isn't a way to make sounds that depend on how hard the engine is working (Variable2 will be 1.0 when the engine is a full speed whether the reverser is in neutral or the engine is actually working hard at full power).
To address that, I have added sound controls for engine RPM (like, actual engine RPM, not Variable2), engine power, and engine torque, all of which work with multiple engines. And there are also controls for the tractive effort and power at the wheels, which diesel locomotives didn't have access to before, and those might be useful for transmission or motor sounds.
This is only in unstable versions or OR, as well as the latest NewYear MG, I think. But I know a bunch of you have felt disconnected from new features, and I think there are some folks here who would find these features useful. I'm not the expert in sounds, I've just done a little messing around is all, so there might be other ideas that would be useful that I didn't think of. Do give it a try and share ideas:
New sound variable! EngineRPMControlled
- Allows for programming sounds to respond based on actual engine RPM values, instead of a unitless value from 0 to 1.
- Works for all RPM values, even below idle RPM or above max RPM.
- Special setup in the parser allows for an arbitrary number of engines to be supported. EngineXRPMControlled will respond to the RPM of the Xth engine, so Engine2RPMControlled will use the RPM of the second engine. (If the engine number specified is invalid, or the locomotive has no diesel engines, the control will always return 0 RPM. If the value "X" is not present, the 1st engine is used.)
- For triggers, EngineRPM_Inc_Past and EngineRPM_Dec_Past can be used, and this also supports multiple engines EngineXRPM_Inc_Past and EngineXRPM_Dec_Past
New sound variable! EnginePowerControlled
- Controls sounds in response to actual instantaneous engine power output, with all values assumed to be in watts unless power units are given in the .sms file. Very useful for making sounds that change depending on how hard the engine is working, instead of how fast it is spinning.
- Also supports multiple engines, following the syntax EngineXPowerControlled, eg ``Engine2PowerControlled``. As before, if there is no engine "X", the control will return 0 kW, and if the value is not present then the power output of the 1st engine will be used.
- For triggers, use EnginePower_Inc_Past or EnginePower_Dec_Past, and for multiple engines EngineXPower_Inc_Past and EngineXPower_Dec_Past.
New sound variable! EngineTorqueControlled
- Similar to engine power, but for personal preference some creators may find torque more appropriate to measure instantaneous power output. All torque values specified in the .sms file are assumed to be newton-meters.
- For multiple engines, use EngineXTorqueControlled. Same rules as usual, if engine number "X" doesn't exist, a value of 0 is used, and if "X" isn't included the 1st engine is assumed.
- On triggers, use EngineTorque_Inc_Past and EngineTorque_Dec_Past for single engine locomotives, and EngineXTorque_Inc_Past and EngineXTorque_Dec_Past on multi engine locomotives.
New sound variable (for all locomotives)! TractiveEffortControlled
- Control sounds depending on the tractive effort applied by the locomotive, regardless of type, using values in newtons by default (or other force units as defined in the .sms file), instead of arbitrary 0-1 values.
- Positive tractive effort values indicate tractive effort in the same direction as motion, but negative values will be produced as well to indicate effort opposite the direction of travel (such as dynamic braking).
- This also has triggers, TractiveEffort_Inc_Past and TractiveEffort_Dec_Past.
New sound variable (for all locomotives)! TractivePowerControlled
- Influence sounds using the power, in watts unless other power units are specified in the .sms, applied at the rail, regardless of locomotive type. Note that this is after all transmission losses, set values accordingly.
- Like tractive effort, positive power is in the same direction as the direction of travel (like when accelerating), while negative power will be returned if power is in the opposite direction to the direction of travel (like dynamic braking).
- Triggers are TractivePower_Inc_Past and TractivePower_Dec_Past.
Don't know what newton-meters of torque your engine is producing? Use the updated sound debug window (Alt + S) and select the locomotive from the list of sound sources to see the W, N, N-m, etc values used by the sound system without the need to manually do a bunch of conversions.






Comment