I happened to stumble upon this soundset (surf.zip), which is pretty good. However it's got the engine rev-up(F59_1, x_F59_1), but they're not referenced in the Surfliner .sms file... I tried having a go at it and only screwed up my .sms file.(Thank God for backups) How can this be added in properly? It's for engaging the throttle, thus after 'x_f59_idle/f59_idle' but before 'f59_2/x_f59_2'.
Announcement
Collapse
No announcement yet.
How to add in this file to the .sms?
Collapse
This topic is closed.
X
X
-
There may be a good reason why the original rev-up wave file was not used.
However, one simple way to add this wave is by adding a stream in each .sms and incrementing the stream count, such as:
Code:Stream ( Priority ( 6 ) Triggers ( 8 Skip( **** rev-up test **** ) Variable_Trigger ( Variable2_Inc_Past 0.01 PlayOneShot ( 1 File ( "x_gp_whistle1a.wav" -1 ) SelectionMethod ( SequentialSelection ) ) ) Variable_Trigger ( Variable2_Inc_Past 0.14 PlayOneShot ( 1 File ( "x_gp_whistle1a.wav" -1 ) SelectionMethod ( SequentialSelection ) ) ) Variable_Trigger ( Variable2_Inc_Past 0.26 PlayOneShot ( 1 File ( "x_gp_whistle1a.wav" -1 ) SelectionMethod ( SequentialSelection ) ) ) Variable_Trigger ( Variable2_Inc_Past 0.39 PlayOneShot ( 1 File ( "x_gp_whistle1a.wav" -1 ) SelectionMethod ( SequentialSelection ) ) ) Variable_Trigger ( Variable2_Inc_Past 0.51 PlayOneShot ( 1 File ( "x_gp_whistle1a.wav" -1 ) SelectionMethod ( SequentialSelection ) ) ) Variable_Trigger ( Variable2_Inc_Past 0.64 PlayOneShot ( 1 File ( "x_gp_whistle1a.wav" -1 ) SelectionMethod ( SequentialSelection ) ) ) Variable_Trigger ( Variable2_Inc_Past 0.76 PlayOneShot ( 1 File ( "x_gp_whistle1a.wav" -1 ) SelectionMethod ( SequentialSelection ) ) ) Variable_Trigger ( Variable2_Inc_Past 0.89 PlayOneShot ( 1 File ( "x_gp_whistle1a.wav" -1 ) SelectionMethod ( SequentialSelection ) ) ) ) )
You could also add a frequency curve and a volume curve to fine tune the sound for each throttle notch, and if your wave file is non-standard bit rate.
The above example assumes original diesel throttle notch percentages.
Your loco may have some other percentages for each throttle position in which case you will need to taylor the Variable2_Inc_Past n.nn figure.
I suppose there may be other ways do achieve your goal, but this one seems to me to be the simplest.
Comment
-
Originally posted by Armchair_Engo View PostThere may be a good reason why the original rev-up wave file was not used.
However, one simple way to add this wave is by adding a stream in each .sms and incrementing the stream count, such as:
Code:Stream ( Priority ( 6 ) Triggers ( 8 Skip( **** rev-up test **** ) Variable_Trigger ( Variable2_Inc_Past 0.01 PlayOneShot ( 1 File ( "x_gp_whistle1a.wav" -1 ) SelectionMethod ( SequentialSelection ) ) ) Variable_Trigger ( Variable2_Inc_Past 0.14 PlayOneShot ( 1 File ( "x_gp_whistle1a.wav" -1 ) SelectionMethod ( SequentialSelection ) ) ) Variable_Trigger ( Variable2_Inc_Past 0.26 PlayOneShot ( 1 File ( "x_gp_whistle1a.wav" -1 ) SelectionMethod ( SequentialSelection ) ) ) Variable_Trigger ( Variable2_Inc_Past 0.39 PlayOneShot ( 1 File ( "x_gp_whistle1a.wav" -1 ) SelectionMethod ( SequentialSelection ) ) ) Variable_Trigger ( Variable2_Inc_Past 0.51 PlayOneShot ( 1 File ( "x_gp_whistle1a.wav" -1 ) SelectionMethod ( SequentialSelection ) ) ) Variable_Trigger ( Variable2_Inc_Past 0.64 PlayOneShot ( 1 File ( "x_gp_whistle1a.wav" -1 ) SelectionMethod ( SequentialSelection ) ) ) Variable_Trigger ( Variable2_Inc_Past 0.76 PlayOneShot ( 1 File ( "x_gp_whistle1a.wav" -1 ) SelectionMethod ( SequentialSelection ) ) ) Variable_Trigger ( Variable2_Inc_Past 0.89 PlayOneShot ( 1 File ( "x_gp_whistle1a.wav" -1 ) SelectionMethod ( SequentialSelection ) ) ) ) )
You could also add a frequency curve and a volume curve to fine tune the sound for each throttle notch, and if your wave file is non-standard bit rate.
The above example assumes original diesel throttle notch percentages.
Your loco may have some other percentages for each throttle position in which case you will need to taylor the Variable2_Inc_Past n.nn figure.
I suppose there may be other ways do achieve your goal, but this one seems to me to be the simplest.
The reason it wasn't included in the first place, is the person who made it never included a .sms file. It was just drop in sound replacements, plus a bonus one. Here's what it has for it's engine sounds:
Streams ( 10
Stream (
Priority ( 6 )
Triggers ( 5
Skip( **** The engine/current related sounds - Stream 1 {Xfade} **** )
Initial_Trigger ( StartLoopRelease ( 1 File ( "x_F59_pstoidle.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Variable2_Inc_Past 0.100 ReleaseLoopRelease () )
Variable_Trigger ( Variable2_Inc_Past 0.250 StartLoop ( 1 File ( "x_F59_5.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Variable2_Dec_Past 0.250 ReleaseLoopRelease () )
Variable_Trigger ( Variable2_Dec_Past 0.100 StartLoop ( 1 File ( "x_F59_idle.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
)
FrequencyCurve(
Variable2Controlled
CurvePoints ( 7
0.000 11025
0.060 12025
0.330 10525
0.440 11025
0.530 11525
0.80 11750
1.000 11750
)
Granularity ( 100 )
)
VolumeCurve(
Variable2Controlled
CurvePoints ( 10
0.000 0.8
0.006 1.0
0.235 0.0
0.325 0.9
0.490 0.9
0.500 0.9
0.635 0.8
0.750 0.6
0.875 0.4
1.000 0.0
)
Granularity ( 0.05 )
)
)
Stream (
Priority ( 6 )
Triggers ( 6
Skip( **** The engine/current related sounds - Stream 2 {Xfade} **** )
Variable_Trigger ( Variable2_Inc_Past 0.002 StartLoop ( 1 File ( "x_F59_2.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Variable2_Inc_Past 0.400 ReleaseLoopRelease () )
Variable_Trigger ( Variable2_Inc_Past 0.530 StartLoop ( 1 File ( "x_F59_7.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Variable2_Dec_Past 0.530 ReleaseLoopRelease () )
Variable_Trigger ( Variable2_Dec_Past 0.400 StartLoop ( 1 File ( "x_F59_2.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Variable2_Dec_Past 0.002 ReleaseLoopRelease () )
)
FrequencyCurve(
Variable2Controlled
CurvePoints ( 7
0.000 9525
0.060 10025
0.120 11025
0.220 11525
0.330 12025
0.800 11025
1.000 11225
)
Granularity ( 100 )
)
VolumeCurve(
Variable2Controlled
CurvePoints ( 9
0.000 0.0
0.060 0.8
0.120 0.9
0.220 0.9
0.450 0.0
0.530 0.0
0.700 0.6
0.800 0.9
1.000 1.0
)
Granularity ( 0.05 )
)
)
Comment
-
Throttle notches are most easily viewed in the .eng file or the .cvf file.
This is the relevant snippet of the default GP38-2:
EngineControllers (
Throttle ( 0 1 0.125 0
NumNotches ( 9
Notch ( 0 0 Dummy )
Notch ( 0.125 0 Dummy )
Notch ( 0.25 0 Dummy )
Notch ( 0.375 0 Dummy )
Notch ( 0.5 0 Dummy )
Notch ( 0.625 0 Dummy )
Notch ( 0.75 0 Dummy )
Notch ( 0.875 0 Dummy )
Notch ( 1 0 Dummy )
)
)
The matching .cvf file has something like this:
Lever (
Type ( THROTTLE LEVER )
Position ( 324 418 160 62 )
Graphic ( Throttle.ace )
Style ( SPRUNG )
MouseControl ( 1 )
NumFrames ( 9 3 3 )
NumPositions ( 9 0 1 2 3 4 5 6 7 8 )
NumValues ( 9 0 0.125 0.250 0.375 0.50 0.625 0.75 0.875 1 )
Orientation ( 0 )
DirIncrease ( 1 )
ScaleRange ( 0 1 )
)
My example stream is set to PlayOneShot the added wave as the throttle passes each virtual notch as it increases past a certain Variable2 value, on the assumption that you want to run a short rev-up sound every time you notch up.
Comment
-
Originally posted by Armchair_Engo View PostThrottle notches are most easily viewed in the .eng file or the .cvf file.
This is the relevant snippet of the default GP38-2:
EngineControllers (
Throttle ( 0 1 0.125 0
NumNotches ( 9
Notch ( 0 0 Dummy )
Notch ( 0.125 0 Dummy )
Notch ( 0.25 0 Dummy )
Notch ( 0.375 0 Dummy )
Notch ( 0.5 0 Dummy )
Notch ( 0.625 0 Dummy )
Notch ( 0.75 0 Dummy )
Notch ( 0.875 0 Dummy )
Notch ( 1 0 Dummy )
)
)
The matching .cvf file has something like this:
Lever (
Type ( THROTTLE LEVER )
Position ( 324 418 160 62 )
Graphic ( Throttle.ace )
Style ( SPRUNG )
MouseControl ( 1 )
NumFrames ( 9 3 3 )
NumPositions ( 9 0 1 2 3 4 5 6 7 8 )
NumValues ( 9 0 0.125 0.250 0.375 0.50 0.625 0.75 0.875 1 )
Orientation ( 0 )
DirIncrease ( 1 )
ScaleRange ( 0 1 )
)
My example stream is set to PlayOneShot the added wave as the throttle passes each virtual notch as it increases past a certain Variable2 value, on the assumption that you want to run a short rev-up sound every time you notch up.
Comment
-
Originally posted by Komachi View PostOH okay, it TOOK me a couple days of looking at that to understand, but those values in the CVF file for the 'position' of the throttle at each notch, match up tot he values in the .sms file for the engine sounds for how they're played at different throttle notches, yes?
The default GP38 .sms does have to match the throttle notches because it is trying to use a wave file for each throttle notch.
Your F59 .sms uses less wave files and streches them out a bit with frequency curves. The frequency curves and volume curves exert fine control over the blending of the wave files in the two streams.
I tend to fiddle with my EMD .sms files so that the first notch does not rev up, in those applications where that is the normal behaviour for notch 1.
Comment
-
Originally posted by Armchair_Engo View PostWhen do you want the extra file to run? Between every notch up? Or only between idle and notch 1?
What notches does your .eng file have?
As for the eng,
EngineControllers (
Throttle ( 0 1 0.125 0
NumNotches ( 9
Notch ( 0 0 Dummy )
Notch ( 0.06 0 Dummy )
Notch ( 0.12 0 Dummy )
Notch ( 0.22 0 Dummy )
Notch ( 0.33 0 Dummy )
Notch ( 0.44 0 Dummy )
Notch ( 0.53 0 Dummy )
Notch ( 0.80 0 Dummy )
Notch ( 1 0 Dummy )
)
)
Comment
Comment