Я реализовал это дело так.
По скорости и частоте стуки разбиты на несколько частей (потоков), чтобы не было искажений. Проигрываемый файл - это только стуки на несколько секунд. При малой скорости сделаны вырезы шума качения между каждым стуком, на большой скорости вырезов нет, так как шум качения почти не слышен и не напрягает.
Пауза по времени собственно и задает интервал стука. Также я пробовал ставить паузу, зависящую от пройденного расстояния - работает, но по времени мне понравилось больше, сейчас уже не вспомню почему.
Для разнообразия у меня 5 видов стуков - ведь не свегда одинаковое количество стыков, и есть один длинный файл (long) - это звук стыкового пути, причем время звучания файла 24 секунды, чтобы не было накладок с временной паузой. Соответственно звучит длинный файл редко - вероятность выбора мала - он 1 на 9 коротких.
Stream (
Priority ( 6 )
Volume ( 1.0 )
Triggers ( 8
Random_Trigger ( Delay_Min_Max ( 25 35 ) Volume_Min_Max ( 0.95 1.0 ) PlayOneShot ( 10 File ( "stuk_45-65_1.wav" -1 )
File ( "stuk_45-65_2.wav" -1 )
File ( "stuk_45-65_3.wav" -1 )
File ( "stuk_45-65_3.wav" -1 )
File ( "stuk_45-65_3.wav" -1 )
File ( "stuk_45-65_4.wav" -1 )
File ( "stuk_45-65_long.wav" -1 )
File ( "stuk_45-65_2.wav" -1 )
File ( "stuk_45-65_3.wav" -1 )
File ( "stuk_45-65_4.wav" -1 ) SelectionMethod ( RandomSelection ) ) )
Initial_Trigger ( DisableTrigger( 1 ) )
Variable_Trigger ( Speed_Inc_Past 6.5 EnableTrigger ( 1 ))
Variable_Trigger ( Speed_Dec_Past 6.45 DisableTrigger ( 1 ))
Variable_Trigger ( Speed_Inc_Past 10.5 EnableTrigger ( 1 ))
Variable_Trigger ( Speed_Dec_Past 10.45 DisableTrigger ( 1 ))
)
FrequencyCurve(
SpeedControlled
CurvePoints ( 9
-17.900 23025
-15.000 21025
-10.000 19525
-8.500 19525
0.000 19025
8.500 19525
10.000 19525
15.000 21025
17.900 23025
)
Granularity ( 100 )
)
VolumeCurve(
SpeedControlled
CurvePoints ( 11
-17.95 0.0
-17.9 0.6
-15.0 0.5
-12.7 0.4
-12.65 0.0
0.000 0.0
12.65 0.0
12.7 0.4
15.0 0.5
17.9 0.6
17.95 0.0
)
Granularity ( 0.05 )
)
)
P.S. Если интересно, могу показать свой вариант звуков для квадратной ЭР2. Сделано только для кабины. Правда в неупакованном виде это весит около 50 Мб
|