buzz456 wrote:The sound pack is still here in the library. EMD SD40 Sound Pack by Aidan (simer4) Berard. It is very well done. One thing I didn't care for on the DTG locomotive is the sound doesn't have much of any dynamic brake sound. Aidan's pack has a dynamite whine when you are in dynamic brake mode.
Ah, yes! I just found it. You're correct. And I agree with you completely on the dynamic brake sounds.
ESzczesniak and mrennie,
As a follow up to the last comment - it wasn't too hard to add the air hiss sounds to get them back in the cab, if using the simer4 sound pack.
If you're familiar with sound file blueprint editing, just add these lines of code to the "
Class SD40 Cab.proxyxml" file under DTG\SoldierSummit\Audio\RailVehicles\Diesel\SD40\Cab folder. NOTE: I never edit the files which are zipped in the SoldierSummitAssets.ap file - I always just add new folders and files under the main SoldierSummit asset folder using the same file structure and the sim uses these instead. This way, if you mess anything up, all you do is delete the added files and it reverts back to the intact .ap file. If this is confusing, I dont recommend trying to do this...
Under the <Sound> section at top:
- Code: Select all
<kLoud-cSingleSampleSound d:id="12010">
<Name d:type="cDeltaString">TrainBrakeAirHissStart</Name>
<IsLooped d:type="bool">0</IsLooped>
<Priority d:type="sUInt32">50</Priority>
<BaseVolume d:type="sFloat32">1</BaseVolume>
<VolumeVariation d:type="sFloat32">0</VolumeVariation>
<BasePitchShift d:type="sFloat32">1</BasePitchShift>
<PitchShiftVariation d:type="sFloat32">0</PitchShiftVariation>
<AttenuationStartDist d:type="sFloat32">50</AttenuationStartDist>
<NoFutherAttenuationDist d:type="sFloat32">300</NoFutherAttenuationDist>
<InstanceGroup d:type="ref">0</InstanceGroup>
<Sample>
<kLoud-cSampleID>
<Filename d:type="cDeltaString">DTG\SoldierSummit\Audio\RailVehicles\Diesel\SD40\Cab\TrainBrakeAirHissStart.dav</Filename>
</kLoud-cSampleID>
</Sample>
</kLoud-cSingleSampleSound>
<kLoud-cSingleSampleSound d:id="12023">
<Name d:type="cDeltaString">TrainBrakeAirHissLoop</Name>
<IsLooped d:type="bool">1</IsLooped>
<Priority d:type="sUInt32">50</Priority>
<BaseVolume d:type="sFloat32">1</BaseVolume>
<VolumeVariation d:type="sFloat32">0</VolumeVariation>
<BasePitchShift d:type="sFloat32">1</BasePitchShift>
<PitchShiftVariation d:type="sFloat32">0</PitchShiftVariation>
<AttenuationStartDist d:type="sFloat32">50</AttenuationStartDist>
<NoFutherAttenuationDist d:type="sFloat32">300</NoFutherAttenuationDist>
<InstanceGroup d:type="ref">0</InstanceGroup>
<Sample>
<kLoud-cSampleID>
<Filename d:type="cDeltaString">DTG\SoldierSummit\Audio\RailVehicles\Diesel\SD40\Cab\TrainBrakeAirHissLoop.dav</Filename>
</kLoud-cSampleID>
</Sample>
</kLoud-cSingleSampleSound>
<kLoud-cSingleSampleSound d:id="12036">
<Name d:type="cDeltaString">TrainBrakeAirHissEnd</Name>
<IsLooped d:type="bool">0</IsLooped>
<Priority d:type="sUInt32">50</Priority>
<BaseVolume d:type="sFloat32">1</BaseVolume>
<VolumeVariation d:type="sFloat32">0</VolumeVariation>
<BasePitchShift d:type="sFloat32">1</BasePitchShift>
<PitchShiftVariation d:type="sFloat32">0</PitchShiftVariation>
<AttenuationStartDist d:type="sFloat32">50</AttenuationStartDist>
<NoFutherAttenuationDist d:type="sFloat32">300</NoFutherAttenuationDist>
<InstanceGroup d:type="ref">0</InstanceGroup>
<Sample>
<kLoud-cSampleID>
<Filename d:type="cDeltaString">DTG\SoldierSummit\Audio\RailVehicles\Diesel\SD40\Cab\TrainBrakeAirHissEnd.dav</Filename>
</kLoud-cSampleID>
</Sample>
</kLoud-cSingleSampleSound>
Then the <ModifierChain> section:
- Code: Select all
<kLoud-cModifierChain d:id="12153">
<Name d:type="cDeltaString">TrainBrake</Name>
<Modifier>
<kLoud-cVolumeCurveModifier d:id="12156">
<ControllerIsGlobal d:type="bool">0</ControllerIsGlobal>
<ControllerName d:type="cDeltaString">TrainBrakeHandle</ControllerName>
<Curve d:type="ref">12103</Curve>
</kLoud-cVolumeCurveModifier>
<kLoud-cPitchCurveModifier d:id="12160">
<ControllerIsGlobal d:type="bool">0</ControllerIsGlobal>
<ControllerName d:type="cDeltaString">TrainBrakeHandle</ControllerName>
<Curve d:type="ref">12124</Curve>
</kLoud-cPitchCurveModifier>
</Modifier>
</kLoud-cModifierChain>
<kLoud-cModifierChain d:id="12164">
<Name d:type="cDeltaString">EngineBrake</Name>
<Modifier>
<kLoud-cPitchCurveModifier d:id="12167">
<ControllerIsGlobal d:type="bool">0</ControllerIsGlobal>
<ControllerName d:type="cDeltaString">EngineBrakeHandle</ControllerName>
<Curve d:type="ref">12088</Curve>
</kLoud-cPitchCurveModifier>
</Modifier>
</kLoud-cModifierChain>
Then the <Loop> sections:
- Code: Select all
<kLoud-cControlledLoop d:id="12195">
<PlayState d:type="cDeltaString">BOTH</PlayState>
<Name d:type="cDeltaString">TrainBrakeHissLoop</Name>
<Sound d:type="ref">12023</Sound>
<ModifierChain d:type="ref">12153</ModifierChain>
<ControllerName d:type="cDeltaString">TrainBrakeSound</ControllerName>
<LoopCondition d:type="cDeltaString">ValueInRange</LoopCondition>
<ActiveRangeStartValue d:type="sFloat32">0.01</ActiveRangeStartValue>
<ActiveRangeEndValue d:type="sFloat32">1</ActiveRangeEndValue>
<ValueIsChangingGateTime d:type="sFloat32">0</ValueIsChangingGateTime>
<InstanceGroup d:type="ref">0</InstanceGroup>
</kLoud-cControlledLoop>
<kLoud-cControlledLoop d:id="12206">
<PlayState d:type="cDeltaString">BOTH</PlayState>
<Name d:type="cDeltaString">EngineBrakeHissLoop</Name>
<Sound d:type="ref">12023</Sound>
<ModifierChain d:type="ref">12164</ModifierChain>
<ControllerName d:type="cDeltaString">EngineBrakeSound</ControllerName>
<LoopCondition d:type="cDeltaString">ValueInRange</LoopCondition>
<ActiveRangeStartValue d:type="sFloat32">0.01</ActiveRangeStartValue>
<ActiveRangeEndValue d:type="sFloat32">1</ActiveRangeEndValue>
<ValueIsChangingGateTime d:type="sFloat32">0</ValueIsChangingGateTime>
<InstanceGroup d:type="ref">0</InstanceGroup>
</kLoud-cControlledLoop>
And finally the <Oneshot> section:
- Code: Select all
<kLoud-cTriggeredOneshot d:id="12468">
<PlayState d:type="cDeltaString">BOTH</PlayState>
<Name d:type="cDeltaString">EngineBrakeHissStart</Name>
<Sound d:type="ref">12010</Sound>
<ModifierChain d:type="ref">12164</ModifierChain>
<ControllerName d:type="cDeltaString">EngineBrakeSound</ControllerName>
<TriggerType d:type="cDeltaString">ValueIncreasePast</TriggerType>
<TriggerValue d:type="sFloat32">0.001</TriggerValue>
<ValueIsChangingGateTime d:type="sFloat32">0</ValueIsChangingGateTime>
<InstanceGroup d:type="ref">0</InstanceGroup>
</kLoud-cTriggeredOneshot>
<kLoud-cTriggeredOneshot d:id="12478">
<PlayState d:type="cDeltaString">BOTH</PlayState>
<Name d:type="cDeltaString">EngineBrakeHissStop</Name>
<Sound d:type="ref">12036</Sound>
<ModifierChain d:type="ref">12164</ModifierChain>
<ControllerName d:type="cDeltaString">EngineBrakeSound</ControllerName>
<TriggerType d:type="cDeltaString">ValueDecreasePast</TriggerType>
<TriggerValue d:type="sFloat32">0.011</TriggerValue>
<ValueIsChangingGateTime d:type="sFloat32">0</ValueIsChangingGateTime>
<InstanceGroup d:type="ref">0</InstanceGroup>
</kLoud-cTriggeredOneshot>
<kLoud-cTriggeredOneshot d:id="12488">
<PlayState d:type="cDeltaString">BOTH</PlayState>
<Name d:type="cDeltaString">TrainBrakeReleaseStart</Name>
<Sound d:type="ref">12010</Sound>
<ModifierChain d:type="ref">12153</ModifierChain>
<ControllerName d:type="cDeltaString">TrainBrakeHandle</ControllerName>
<TriggerType d:type="cDeltaString">ValueDecreasePast</TriggerType>
<TriggerValue d:type="sFloat32">0.169</TriggerValue>
<ValueIsChangingGateTime d:type="sFloat32">0</ValueIsChangingGateTime>
<InstanceGroup d:type="ref">0</InstanceGroup>
</kLoud-cTriggeredOneshot>
<kLoud-cTriggeredOneshot d:id="12498">
<PlayState d:type="cDeltaString">BOTH</PlayState>
<Name d:type="cDeltaString">TrainBrakeReleaseEnd</Name>
<Sound d:type="ref">12036</Sound>
<ModifierChain d:type="ref">12153</ModifierChain>
<ControllerName d:type="cDeltaString">TrainBrakeHandle</ControllerName>
<TriggerType d:type="cDeltaString">ValueIncreasePast</TriggerType>
<TriggerValue d:type="sFloat32">0.17</TriggerValue>
<ValueIsChangingGateTime d:type="sFloat32">0</ValueIsChangingGateTime>
<InstanceGroup d:type="ref">0</InstanceGroup>
</kLoud-cTriggeredOneshot>
<kLoud-cTriggeredOneshot d:id="12508">
<PlayState d:type="cDeltaString">BOTH</PlayState>
<Name d:type="cDeltaString">TrainBrakeApplyStart</Name>
<Sound d:type="ref">12010</Sound>
<ModifierChain d:type="ref">12153</ModifierChain>
<ControllerName d:type="cDeltaString">TrainBrakeSound</ControllerName>
<TriggerType d:type="cDeltaString">ValueIncreasePast</TriggerType>
<TriggerValue d:type="sFloat32">0.001</TriggerValue>
<ValueIsChangingGateTime d:type="sFloat32">0</ValueIsChangingGateTime>
<InstanceGroup d:type="ref">0</InstanceGroup>
</kLoud-cTriggeredOneshot>
<kLoud-cTriggeredOneshot d:id="12518">
<PlayState d:type="cDeltaString">BOTH</PlayState>
<Name d:type="cDeltaString">TrainBrakeApplyEnd</Name>
<Sound d:type="ref">12036</Sound>
<ModifierChain d:type="ref">12153</ModifierChain>
<ControllerName d:type="cDeltaString">TrainBrakeSound</ControllerName>
<TriggerType d:type="cDeltaString">ValueDecreasePast</TriggerType>
<TriggerValue d:type="sFloat32">0.011</TriggerValue>
<ValueIsChangingGateTime d:type="sFloat32">0</ValueIsChangingGateTime>
<InstanceGroup d:type="ref">0</InstanceGroup>
</kLoud-cTriggeredOneshot>
Using this method, you can also add the defect detector sections and the switch click sections, too.