Заморозка VST инструментов без FX (1 онлайн

borisuperful

Well-Known Member
31 Янв 2013
2.017
1.152
113
Доброго времени суток всем! Как-то забыл освятить здесь о своей довольно свежей разработки для заморозки VSTi инструментов без эффектов - что позволяет эффективно разгрузить ASIO буфер и при этом продолжать сводить аранжировку. Правда это актуально не для многоканальных VSTi, только для одиночек, но и это уже неплохо. Скрипт делает рендер инструмента в новый аудио тейк, который перекрывает миди тейк. Тем самым инструмент обходится и перестает быть активным.

Казалось бы тут все очень просто, но нет. Есть много заморочек, при которых скрипт может повести себя неверно. Аналогов именно этому скрипту пока нет, тут я "позанудничал" из-за всех сил :) По пунктам напишу некоторые особенности работы скрипта, которые отличают его, например, от старого Script: gen_Render selected item as new take, up to last VSTi.lua (это наиболее похожий на мой скрипт).
Итак - то, что сейчас доступно в API (и в ближайшем будущем вряд ли что-то поменяется), представляет из себя процесс достаточно схожий с макросом, хотя конечно же с кучей возможностей, которые не дают макросы.

1) Чтобы срендерить инструмент без применения эффектов после инструмента, нужно физически увести эффекты в байпас. А потом правильно восстановить им активное состояние (скажем если вы уже что-то забайпасили, это трогать не нужно вообще). И главный здесь подвох в том, что при наличии bypass envelope для эффекта, блокируется возможность увести в байпас эффект на протяжении всего трека. Поэтому нужно сначала отключить bypass envelope, потом уже байпасить эффект. Потом все восстановить. Ни один похожий скрипт это не учитывает, а момент очень-очень важный, иначе рендер произойдет некорректно (в итоге два раза применится один и тот же эффект)

2) Скрипт четко ограничивает некорректные сценарии, либо предупреждает о не очень подходящих сценариях, при которых он срендерит инструмент, а именно:
а) Несколько инструментов на одном треке. На всякий случай, кто делает подобное и догадается применить скрипт - не получится. Скрипт блокируется, в первую очередь потому что API не дает возможности найти все инструменты, только первый из них. Во вторую очередь это просто нелогично, да и порядок эффектов и инструментов в рипере может быть любым. Поэтому актуальна только схема - миди эффекты (если есть) + инструмент + аудио эффекты (если есть).
б) Нету инструмента на треке. Тут понятно, тогда звучать ничего не будет. Скрипт блокируется.
в) Не выбраны только миди тейки. Понятно, тогда инструмент не будет принимать никакие сигналы. Скрипт блокируется.
г) На миди тейке есть эффекты или автоматизации. Автоматизации и так не работают (они предназначены для аудио), а миди эффекты будут применяться после Glue (то есть удалятся) - получится не приемлемо. Я тестировал, в результате некоторые миди эффекты не корректно применяются, пока так.
д) Далее есть предупреждения:
- При настройке, когда инструмент не уходит в байпасс или оффлайн после рендера - скрипт предупреждает о том, что среди перекрывающихся миди айтемов не все айтемы выделены. Например ситуация когда есть item lanes:

1630437245159.png

То есть когда второй слой айтемов не срендерится, звучание может получится совсем иным (когда будет сумма аудио + миди от инструмента). Также можно настроить чувствительность обнаружения перекрытия миди айтемов, чтобы не реагировать на случайные микроскопические перекрытия (например в связи с MIDI PPQ сеткой)
- При настройке, когда инструмент уходит в байпасс или оффлайн после рендера - скрипт предупреждает о том, что не все айтемы на треке выделены. Тогда оставшиеся миди айтемы на треке не будут звучать.
- Если изменен item volume или take volume, скрипт предупреждает, что они будут применены после Glue. И это иначе отразиться на велосити внутри миди айтема.
- Если есть активные Pre-FX envelopes на треках. Volume pre-FX может менять велосити на миди айтемах. После рендера в аудио Volume Pre-Fx envelope будет менять уже аудио :) Поэтому скрипт обязан увести в байпас Pre-FX envelopes после рендера, но предупреждает об этом факте.

Все предупреждения можно отключить! Но в основном предупреждения пригодятся, и в обычных сценариях не будут появляться. Тем самым скрипт безопасно отработает во всех ситуациях и не поломает проект.
Также насчет Glue. Пока что это вынужденная операция, которая позволяет правильно применить все параметры айтема в новый айтем с аудио тейком. Также она позволяет в первую очередь склеить все кусочки и правильно добавить хвост рендера (который по умолчанию надо ввести в окне). В дальнейшем я подумаю, и может реализую так, что для одного айтема Glue происходить не будет. Для этого надо учесть куча параметров, которые не должны примениться в аудио тейке. Еще Glue удаляет лишние аудио тейки, что было также частью моей задумки.

В целом и все! Некоторые мелочи описал, на мой взгляд скрипт на текущих версиях рипера будет работать без ошибок и без странных результатов.
Все пожелания или ошибки пишите в данном топике! Что смогу учту и поправлю.
Сам файл скрипта прикреплен под постом. В моем репозитории также доступен (в подписи).

Гифка как работает скрипт. Естественно это работает разом для нескольких треков, то есть можно кучку инструментов так заморозить.

77672399cb767bb7cfff8.gif
 

Вложения

Последнее редактирование:

borisuperful

Well-Known Member
31 Янв 2013
2.017
1.152
113
Да, еще надо было написать - фишка с виду похожа на transform instrument track из S1. Но не уверен, что скрипт ее повторяет, т.к. здесь инструмент легко возвращается в строй, а там он превращается в аудио трек. Может я уже забыл S1, но кажется там так :) По крайней мере там точно нельзя было заморозить таким образом только часть трека.
 

YuriOl

Well-Known Member
6 Май 2005
1.060
590
113
55
Луганск
youtube.com
@borisuperful, Спасибо! Нужный и удобный скрипт. А как можно отключить диалог ввода хвоста при применении скрипта?
Я просто никогда не использую эту функцию. Если хвост нужен, то миди айтем я делаю длиннее. А так получается всегда выскакивающее окошко.
И я так понял это обновление? У меня в твоём репозитории есть такой)
 

borisuperful

Well-Known Member
31 Янв 2013
2.017
1.152
113
И я так понял это обновление? У меня в твоём репозитории есть такой)
Да, возможно с тех пор уже обновил. Грядет еще одна обнова. Там я с Cancel render (точнее с Glue и Render to take) разобрался как сделать, чтобы все верно восстанавливалось.

А как можно отключить диалог ввода хвоста при применении скрипта?
Вначале скрипта есть параметр user_inputs, ставишь false
 
  • Like
Реакции: YuriOl

borisuperful

Well-Known Member
31 Янв 2013
2.017
1.152
113
@YuriOl, а так все там работает сейчас вполне добротно. Ошибки конечно всегда будут, но сильно критические судя по всему не попадутся так просто. То есть не каждый догадается нажать Cancel render, при котором там также сейчас ничего не ломается, но некорректно восстанавливаются Pre-FX envelopes (остаются в байпасе как по задумке после рендера) + инструмент не возвращается в онлайн/анбайпасс (если по настройкам должен уйти в оффлайн или байпасс). Завтра сюда залью обнову :)
 
Последнее редактирование:
  • Like
Реакции: sve, Antonio и YuriOl

borisuperful

Well-Known Member
31 Янв 2013
2.017
1.152
113
И я так понял это обновление? У меня в твоём репозитории есть такой)
Да, тот же скрипт уже был пол года назад, поэтому я может и слукавил, что он свежий, но и не старый.
В любом случае именно в свежей версии в посте (на данный момент) все эти особенности.
 
  • Like
Реакции: YuriOl

YuriOl

Well-Known Member
6 Май 2005
1.060
590
113
55
Луганск
youtube.com
@borisuperful, уже давно пользуюсь твоим замечательным скриптом - Script: Yaunick_Float instruments from insert or send at selected track or toggle folder collapse.lua и только недавно заметил странность.)
Скрипт от горячей клавиши работает везде отлично, а если запускать с кнопки на панели, то тоже работает, но кроме функции toggle folder collapse. Не переключает папки. Из-за чего это происходит?
Мультик: s.gif
 

borisuperful

Well-Known Member
31 Янв 2013
2.017
1.152
113
@borisuperful, уже давно пользуюсь твоим замечательным скриптом - Script: Yaunick_Float instruments from insert or send at selected track or toggle folder collapse.lua и только недавно заметил странность.)
Скрипт от горячей клавиши работает везде отлично, а если запускать с кнопки на панели, то тоже работает, но кроме функции toggle folder collapse. Не переключает папки. Из-за чего это происходит?
Мультик: Посмотреть вложение 207541
Ответ в репозитории - этот скрипт только для mouse modifiers, то есть он определяет какой трек в TCP он или в MCP под курсором мыши. Там нужны разные действия для работы папки. Соответственно когда мыши над треком нету, он ничего не делает, кроме инструмента.
 
  • Like
Реакции: YuriOl

YuriOl

Well-Known Member
6 Май 2005
1.060
590
113
55
Луганск
youtube.com
Ответ в репозитории - этот скрипт только для mouse modifiers, то есть он определяет какой трек в TCP он или в MCP под курсором мыши. Там нужны разные действия для работы папки. Соответственно когда мыши над треком нету, он ничего не делает, кроме инструмента.
Понял. Спасибо! :)
 

borisuperful

Well-Known Member
31 Янв 2013
2.017
1.152
113
Понял. Спасибо!
Можно там конечно сменить алгоритм, за счет чего убрать определение трека под курсором мыши. К примеру когда открыт микшер, то открыть/скрыть папку одновременно в TCP + MCP. Но в этом скрипте не хочу это делать, задумка была иная
 

borisuperful

Well-Known Member
31 Янв 2013
2.017
1.152
113
@borisuperful, да нормально и так. Я просто не мог понять почему так происходит. Теперь всё понятно! :)
Мои скрипты теперь есть в реапаке. Теперь там стало намного проще все делать с темплейтом и ботом для индексирования.
Вот ссылка. https://github.com/Yaunick/Yannick-ReaScripts
Имя скриптов и папки будут новыми, чтобы не перепутать. В соответствии с папкой в реапаке помечается категория скрипта.
На момент написания сообщения пока моей ссылки нету в листе репозиториев на сайте Reapack, должна появится.
 
  • Like
Реакции: sve и YuriOl

YuriOl

Well-Known Member
6 Май 2005
1.060
590
113
55
Луганск
youtube.com
Мои скрипты теперь есть в реапаке. Теперь там стало намного проще все делать с темплейтом и ботом для индексирования.
Вот ссылка. https://github.com/Yaunick/Yannick-ReaScripts
Имя скриптов и папки будут новыми, чтобы не перепутать. В соответствии с папкой в реапаке помечается категория скрипта.
На момент написания сообщения пока моей ссылки нету в листе репозиториев на сайте Reapack, должна появится.
А которые из под питона) обновлялись удалять теперь? Или просто py файлы удалить только?
 

borisuperful

Well-Known Member
31 Янв 2013
2.017
1.152
113
А которые из под питона) обновлялись удалять теперь? Или просто py файлы удалить только?
Можешь все удалять. Их я соответственно не буду поддерживать, пока существует реапак :) Но если что восстановим
 
  • Like
Реакции: YuriOl

borisuperful

Well-Known Member
31 Янв 2013
2.017
1.152
113
А инструменты должны сами байпаситься?
Приветствую, байпасятся если поставить здесь настройку!

208766


Но практический смысл именно в том, что инструмент в быстром доступе для возврата с помощью переключения тейка. При этом аудио тейки перекрывает миди и инструмент обходится. А ASIO буфер в основном освобождается именно от того, что инструмент не играет, то есть необязательно выгружать, это важнее для ОЗУ
 
  • Like
Реакции: sve и Elijah K

shuco

Active Member
26 Ноя 2005
439
109
43
58
Новосибирск
@borisuperful, приветствую, подскажи пожалуйста, как отключить в скрипте предупреждение о том, что не все айтемы на треке выделены (перекрывающиеся айтемы)?
 

Вложения

Последнее редактирование:

Сейчас онлайн (Пользователей: 0, Гостей: 1)