0 Members and 1 Guest are viewing this topic.
В том примере частота колебаний диффузора определяется только параметрами аниматора (период) и не зависит от частоты сигнала, да и невозможно сделать, чтоб диффузор колебался с частотой 200 Гц, к примеру. Мы и в реалии колебания выше 20..25 Гц глазами не различаем, видим по сути дела лишь огибающую. Тут задача сымитировать толчки диффузора в такт басовому ритму (ударные, бас-гитара...).Добавил таблицу частот в "хитрости".
В скинах с усилителями...
Тут как раз всё просто: обычная кнопка связана с родным prvBalance, а выражениях связи: для левого канала - 0, для правого - 100. Ползунку только и останется самому дёргаться в нужную сторону.
Только есть ли смысл делать такие кнопки на самОм регуляторе баланса? Можно, ведь, просто ткнуть в край полоски слайдера.
... хочу выбросить регулятор и задать жёстко диапазон 0-10...
Колебания диффузоров СЧ динамиком и в натуре хаотичны, потому не стоит с ними особо и заморачиваться, там можно и уровень чувствительности задать фиксированным, без регулятора.
ИМХО, регулятор выбрасывать не стОит, его можно сделать всплывающим, никому мешать не будет, а треки сильно отличаются по уровню и спектру. Всё хочу сделать адаптивную подстройку под средний уровень за несколько выборок - вот тогда, возможно, удастся избавиться от регулятора "чуйки".
Диапазон частот 1..15 (он, ес-но, жёстко и задан этими значениями, регулировать их оперативно нет надобности) тоже выбран не случайно - плоды множества экспериментов, 0 брать вообще не рекомендуется - там какой-то хаотический шум почти на всех треках.
Можно анимировать раздельно по каналам, вызовы локальной функции тогда будут выглядеть так: GetMaxValue(0, 1, 15)... - НЧ, левый канал GetMaxValue(1, 1, 15)... - НЧ, правый канал ...
К слову - да, "независимую подвеску" для каналов надо бы организовать (есть у меня такие композиции). Для этого надо отдельный ScriptableVisualizationHandler на каждый динамик-аниматор или в рамках одного можно совместить?
Повторюсь, но диапазон частот 1..15 выбран не от балды, а чтобы приблизить работу аниматора к колебаниям НЧ-головок в реальной акустике, лучше даже сделать 1..20.Тоже самое относится и к регулятору чувствительности: для данного решения с учётом разброса характера треков его положение укладывается в диапазон 40..60, потому по умолчанию сделано 50.
Ес-но, всё в одном обработчике - для того и сделана в нём локальная функция, чтоб можно было её вызывать для разных каналов, частот и аниматоров.Но тут не стоит особо обольщаться - разделение каналов на низких частотах практически отсутствует (потому и делают общий саб), а на средних частотах колебания динамиков на глаз вообще не видны, поэтому СЧ динамики можно и не анимировать.
1. Правильно-ли я понял, что в "Параметрах связи" Value должно быть < значения, которое на 1 меньше количества кадров в аниматоре? При Value = количеству кадров в аниматоре, у меня анимация не останавливается, когда ScriptableVisualizationHandler перестаёт воздействовать на неё (например, при "Пауза" или "Стоп").
Есть-ли зависимость между интервалом и количеством кадров для анимирования
1. Правильно-ли я прописал это в ScriptableVisualizationHandler?
Тут кадры считаются с "0", как и в скриптах, 3-й кадр - это последний кадр аниматора, на нём он и должен останавливаться...
Нет. Тут простая арифметика: в аниматоре 4 кадра, при интервале в 30 мс вся анимация займёт 4х30=120 мс - это по сути дела максимальны интервал реагирования этой системы на превышение порога срабатывания, заданного нами регулятором. Если в течение этого времени скрипт сработает ещё раз, то колебания диффузора получатся не полными, он просто не успеет показат все кадры, будет каждый раз возвращаться к нулевому. Делать интервал меньше 20..30 мс, как показала практика тоже не резон - анимация становится размазанной, более 50 мс - частые пропуски.
Да, правильно.Если нет разделения каналов (Channel = 2), то второй аниматор (затормозив его) можно соединить с первым через биндинг по номеру кадра - он будет повторять первый, тогда в скрипте про него писать ничего не надо.
Уточню другое: этот 3-й, последний кадр - он же, получается есть визуально стартовым в том смысле, что именно он будет видимым, когда плеер на "Пауза" или "Стоп"?
Да, разумеется. Аниматор с такой связью (сам на себя) при любом числе кадров добежит до указанного в условии и остановится. А скрипт лишь посылает 0 в его счётчик кадров, что заставляет его снова заустится.Кадры аниматора расписаны в "... полезностях ...".
Хотя, если подумать (по скрипту я до сих пор часть всего не понял), то как бы логично, если аниматор проигрывается и останавливается, то последний кадр и должен был бы оставаться видимым.
У меня небольшой вопрос по Фонотеке: есть-ли практическая возможность разнести вот эти пункты отображения на три независимые кнопки?
Так он и виден - последний кадр №3 (счёт идёт с нуля). В том примере, что выложен в "полезностях", специально добавил дисплей, чтоб можно было увидеть номер активного кадра...
Если есть вопросы по скрипту - спрашивайте, может, что-то нужно добавить в описание примера.
...В связях у кнопок прописываем соответственно: 0, 1, 2...