PDA

Просмотр полной версии : ТЭД электрички


сандро
18.08.2012, 09:17
На локомотивах МСТС, тэд работает следующим образом - громкость прямо пропорциональна току, а частота обратно пропорциональна. В электроне все по другому - частот зависит лишь от скорости. Чем больше скорость, тем выше тон. Как прописать в sms такой тип двигателя?

Rocket
26.08.2012, 21:13
Надо внести в sms-файле следующие параметры звукового потока:

Stream (
Priority ( 6 )
Volume(1.5)
Triggers ( 4
Variable_Trigger ( Variable2_Inc_Past 0.001 StartLoopRelease ( 1 File ( "msts_E_ECS_motor.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Variable2_Dec_Past 0.001 ReleaseLoopRelease () )
Variable_Trigger ( Variable3_Inc_Past 0.001 StartLoopRelease ( 1 File ( "msts_E_ECS_motor.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Variable3_Dec_Past 0.001 ReleaseLoopRelease () )
)
FrequencyCurve(
SpeedControlled
CurvePoints ( 5
-100.0 130000
-1.0 600
0.000 0
1.0 600
100.0 130000
)
Granularity ( 10 )
)
VolumeCurve(
SpeedControlled
CurvePoints ( 7
-10.00 0.5
0.000 0.5
20.00 0.5
40.00 0.7
60.0 0.7
80.0 0.8
100.0 1
)
Granularity ( 0.05 )
)
)

В этом потоке звук настроен на включение при разгоне [Variable2_Inc_Past 0.001 StartLoopRelease ( 1 File ( "msts_E_ECS_motor.wav" -1 ) ] и при рекуперативном торможении [Variable3_Inc_Past 0.001 StartLoopRelease ( 1 File ( "msts_E_ECS_motor.wav" -1 ) ]. Соответственно выключение звука прописано при отключении тяги [Variable2_Dec_Past 0.001 ReleaseLoopRelease () ] и при выключении электрического торможения (рекуперативного) [Variable3_Dec_Past 0.001 ReleaseLoopRelease ()].

Частота звука меняется при настройке следующих кривых:
FrequencyCurve(
SpeedControlled
CurvePoints ( 5
-25.0 22050
-[скорость сэмпла данной частоты м/с] -12.5 11025 - частота дискретизации - выше, чем качественнее звук, меняется звуковыми редакторами
0.000 0
[скорость сэмпла данной частоты м/с] например, 45 км/ч соответствует скорость 12,5 м/c 11025
25.0 22050
)
Granularity ( 10 )
).

Для того, чтобы звук был реалистичен требуются следующие действия:
Звук редуктора теперь воспроизводится точно по частоте прохождения зубцов по шестерни в зависимости от скорости. Формула расчета частоты звучания редуктора у меня имеется.
По новому стандарту на всех звуках тяговых двигателей и редукторов доолжна быть именно определенная частота в соответствии с определенной скоростью. Для каждого локомотива и
моторного вагона она рассчитывается по величине Гц в зависимости от скорости м/с.
Для того чтобы определить частоту сэмпла (звук который мы используем в потоке редуктора-ТЭД) для звука редуктора, нужно запускать генератор частот (скоро выложу в этой теме) и получить соответствующий сэмплу результат генератора. Потом эта величина рассчитывается по скорости, которой соответствует данная частота. Остальное в настройках sms-файла доделать легче. Соответствующей скорости приписывается частота дискретизации сэмпла (та, которая обычно составляет обычно у звуков для МСТС 11025 или 22050 Гц) - этой частоте в звуковом потоке соответствует заданная частота у нашего сэмпла, которую мы определили по формуле расчета для заданной скорости, после чего настройки звука по частоте frequenceCurve мы увеличиваем частоту воспроизведения звука в 2 раза, как и скорость, рассчитаную в м/с. На нуле пишим нулевую частоту. Таким образом, новый стандартный сэмпл-луп звука редуктора становится готов в звуковом потоке Stream.

сандро
26.08.2012, 21:46
Я не согласен с формулой - дело в том, что редуктора ревут по разному не только у ЭР2, ЭР2Т и ЭТ2М, но и даже в разных вагонах одного поезда. Я ехал в Сестрорецк в те выходные в ЭР2 1025 и в одном вагоне даже урчания шестеренок не было слышно. По уму надо бы с GPS навигатором проехаться, но у меня его нет.

Rocket
26.08.2012, 22:38
Держите. Там есть файлы *.xmcd (MathCad), в которых выведены значения частоты в зависимости от скорости, рассчитанные по приведенной формуле для электропоездов. А также включен и сам генератор частот.
http://rusfolder.com/32308360

Добавлено через 19 минут
Я не согласен с формулой - дело в том, что редуктора ревут по разному не только у ЭР2, ЭР2Т и ЭТ2М, но и даже в разных вагонах одного поезда.Естественно, что в моторных вагонах слышно хорошо, в прицепных - еле-еле. Кроме того, не в каждом вагоне включены все тяговые электродвигатели. Потому и разное звучание. Оно, кстати, меняется в зависимости от скорости, но я не вижу в этом никакой проблемы. Потому что предела совершенствованию звуковых потоков нет. В новых звуках для ЭР9Т я применил несколько сэмплов, которые меняют друг друга на разной скорости. Можно также прописать в каждый моторный вагон свой смс-файл, чтобы звуки различались - опять же не вижу в этом никакой проблемы.

П.С. Звуки для ЭР9Т задерживаются для выпуска по причине того, что нет новой кабины для ЭР9Т. Звуки давно готовы и "пылятся" в моем архиве.:o

сандро
26.08.2012, 23:23
Дело в том, что редукторы разной степени убитости. Отсюда "ноги и растут". При любом раскладе в тамбуре при открытой двери в торце вагона (будь то моторный вагон или прицепной) урчание шестеренок и хотя бы слабый вой ТЭД будет слышен (подача напряжения на ТЭД для урчания шестеренок не требуется), а тут вообще ничего - только шум подшипников, я был удивлен.

Rocket
28.08.2012, 13:10
По просьбам трудящихся разработчиков выкладываю краткую инструкцию по пользованию программой "Генератор частот".

1. Открываете свой звуковой файл, выбранный для звучания редукторов, желательно записать его на медленном разгоне поезда после включения тяговых двигателей с выбега на тягу. Такой звук будет иметь меньшее искажение при увеличении скорости, и можно найти в программе SoundForge наилучший по звучанию loop (луп) звука, зациклить его командой CreateSampleLoop.

2. Открываете программу "Генератор частот" и выбираете в поле Frequency частоту, например, 50 Гц. Включаете выбранный звук в программе, например, WinAmp или выбранный луп в SoundForge, запоминаете его частоту на слух и ставите в программе "Генератор частот" требуемое значение частоты (в правом и левом канале одинаковое), меняете его до тех пор, пока оно полностью не совпадет по тональности со звуком. Узнав частоту звука, заходите в MAthCad и открываете файл формулы частоты в зависимости от скорости поезда.

3. Вводите параметры вашего поезда в MathCad (конструкционную скорость, Z - число зубцов редуктора, z - число зубцов шестерни, m (мю) - число передаточного отношения редуктора, d - диаметр ведущих колес электропоезда).

4. Выводите в MathCad методом подбора такую скорость, при которой воспроизводится данная частота редуктора и помещаете свой файл в звуковой поток Stream, прописав на полученной скорости частоту вашего файла при воспроизведении во Frequency 11025 Гц. Если звук более качественный и имеет большую частоту дискретизации, то ставить её. Обычно, она бывает 22050 Гц.

5. Пропишите в звуковом потоке Stream увеличенную вдвое скорость движения электропоезда (втрое, если скорость лупа менее 50 км/ч) и увеличьте также вдвое (втрое) частоту дискретизации звука.

6. На нуле поставьте нулевую частоту и скорость движения поезда.
Звук готов.:drinks:

сандро
28.08.2012, 19:49
2. Не понятно.

А вообще вой у всех разный (у разных вагонов и особенно у разных составов), как разброс частот так и тональность.

Добавлено через 1 час 20 минут
Не ставится маткад, говорит что ему нужен net 3.5. У меня есть и 3.5 и 4. Я попробовал поставить не через setup.exe а из папки запустил Mathcad15WixInstaller.msi , вроде поставил, но маткад вылетает.

сандро
23.10.2012, 21:41
Ну и чего спрашивается надо?
http://s019.radikal.ru/i604/1210/cf/0d8c0ec79d44.jpg

SIMISA@@@@@@@@@@JINX0x1t______

Tr_SMS (
ScalabiltyGroup ( 5
Activation (
ExternalCam ()
Distance (1000)
)
Deactivation (
CabCam ()
PassengerCam ()
Distance (1000)
)
Volume(0.7)
Streams ( 1
Skip ( *** STUK-KOLES *** )
Stream (
Priority ( 6 )
Triggers ( 4
Dist_Travelled_Trigger ( Delay_Min_Max ( 25 50 ) Volume_Min_Max ( 0.0 0.3 ) PlayOneShot ( 1 File ( "stuk-15-20.wav" -1 ) SelectionMethod (SequentialSelection) ) )
Initial_Trigger ( DisableTrigger( 1 ) )
Variable_Trigger ( Speed_Inc_Past 0.0 EnableTrigger ( 1 ))
Variable_Trigger ( Speed_Dec_Past 4.166 DisableTrigger ( 1 ))
Variable_Trigger ( Speed_Inc_Past 4.166 EnableTrigger ( 1 ))
Variable_Trigger ( Speed_Dec_Past 0.0 DisableTrigger ( 1 ))
)
FrequencyCurve(
SpeedControlled
CurvePoints ( 4
-2.0 23200
-0.0 15742
0.0 15742
2.0 23200
)
Granularity ( 0.2 )
)
VolumeCurve(
SpeedControlled
CurvePoints ( 4
-4.166 0.3
-0.0 0.0
0.0 0.0
4.166 0.3
)
Granularity ( 0.11 )
)
)

)
)
)
)

сандро
30.10.2012, 13:20
Надо внести в sms-файле следующие параметры звукового потока:

Stream (
Priority ( 6 )
Volume(1.5)
Triggers ( 4
Variable_Trigger ( Variable2_Inc_Past 0.001 StartLoopRelease ( 1 File ( "msts_E_ECS_motor.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Variable2_Dec_Past 0.001 ReleaseLoopRelease () )
Variable_Trigger ( Variable3_Inc_Past 0.001 StartLoopRelease ( 1 File ( "msts_E_ECS_motor.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Variable3_Dec_Past 0.001 ReleaseLoopRelease () )
)
FrequencyCurve(
SpeedControlled
CurvePoints ( 5
-100.0 130000
-1.0 600
0.000 0
1.0 600
100.0 130000
)
Granularity ( 10 )
)
VolumeCurve(
SpeedControlled
CurvePoints ( 7
-10.00 0.5
0.000 0.5
20.00 0.5
40.00 0.7
60.0 0.7
80.0 0.8
100.0 1
)
Granularity ( 0.05 )
)
)


Переделал на такую запись, как ты посоветовал (ранее была просто зависимость от скорости на период отладки) - итог баги. Звуки пропадают случайным образом (игра с параметром гранулирити не подходит), более того, здесь есть привязка к контроллеру. У меня порядка 8 звуков для разных скоростей, все они микшируются определенным образом и вот, как только я перевожу ручку на более низкие позиции часть звуков исчезает. Как я понял, это подходит для одного звука.

Я по просматривал другие смс файлы от других локов и обнаружил другую запись для ТЭД. В чем разница?

)
Stream (
Priority ( 6 )
Volume(1.0)
Triggers ( 23
Initial_Trigger ( SetStreamVolume ( 0.00 ) )
Variable_Trigger ( Speed_Inc_Past 0.400 SetStreamVolume ( 0.10 ) )
Variable_Trigger ( Speed_Inc_Past 0.800 SetStreamVolume ( 0.20 ) )
Variable_Trigger ( Speed_Inc_Past 1.200 SetStreamVolume ( 0.30 ) )
Variable_Trigger ( Speed_Inc_Past 1.600 SetStreamVolume ( 0.40 ) )
Variable_Trigger ( Speed_Inc_Past 2.000 SetStreamVolume ( 0.50 ) )
Variable_Trigger ( Speed_Inc_Past 2.400 SetStreamVolume ( 0.60 ) )
Variable_Trigger ( Speed_Inc_Past 2.800 SetStreamVolume ( 0.70 ) )
Variable_Trigger ( Speed_Inc_Past 3.200 SetStreamVolume ( 0.80 ) )
Variable_Trigger ( Speed_Inc_Past 3.600 SetStreamVolume ( 0.90 ) )
Variable_Trigger ( Speed_Inc_Past 4.000 SetStreamVolume ( 1.00 ) )

Variable_Trigger ( Speed_Dec_Past 4.000 SetStreamVolume ( 0.90 ) )
Variable_Trigger ( Speed_Dec_Past 3.600 SetStreamVolume ( 0.80 ) )
Variable_Trigger ( Speed_Dec_Past 3.200 SetStreamVolume ( 0.70 ) )
Variable_Trigger ( Speed_Dec_Past 2.800 SetStreamVolume ( 0.60 ) )
Variable_Trigger ( Speed_Dec_Past 2.400 SetStreamVolume ( 0.50 ) )
Variable_Trigger ( Speed_Dec_Past 2.000 SetStreamVolume ( 0.40 ) )
Variable_Trigger ( Speed_Dec_Past 1.600 SetStreamVolume ( 0.30 ) )
Variable_Trigger ( Speed_Dec_Past 1.200 SetStreamVolume ( 0.20 ) )
Variable_Trigger ( Speed_Dec_Past 0.800 SetStreamVolume ( 0.10 ) )
Variable_Trigger ( Speed_Dec_Past 0.400 SetStreamVolume ( 0.00 ) )

Variable_Trigger ( Variable2_Inc_Past 0.10 StartLoop ( 1 File ( "../../tsrLoco_CHS2-Alias/Sound/x-motor.wav" -1 ) SelectionMethod ( SequentialSelection ) ) )
Variable_Trigger ( Variable2_Dec_Past 0.10 ReleaseLoopRelease () )
)
FrequencyCurve(
SpeedControlled
CurvePoints ( 5
-50.000 20000
-25.000 13750
0.000 7500
25.000 13750
50.000 20000
)
Granularity ( 100 )
)
VolumeCurve(
Variable2Controlled
CurvePoints ( 4
0.000 0.00
2.0 0.4
32.0 0.8
50.0 1.0
)
Granularity ( 0.05 )
)
)

сандро
31.10.2012, 00:15
Попробовал обкатать подобную схему, как я понял громкость меняется в пределах SetStreamVolume и надо понимать не плавно? Вообщем эта схема не подходит в моем случае - тэд не глохнет при переводе ручки в 0