Доброго времени суток всем! Как-то забыл освятить здесь о своей довольно свежей разработки для заморозки 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:
То есть когда второй слой айтемов не срендерится, звучание может получится совсем иным (когда будет сумма аудио + миди от инструмента). Также можно настроить чувствительность обнаружения перекрытия миди айтемов, чтобы не реагировать на случайные микроскопические перекрытия (например в связи с MIDI PPQ сеткой)
- При настройке, когда инструмент уходит в байпасс или оффлайн после рендера - скрипт предупреждает о том, что не все айтемы на треке выделены. Тогда оставшиеся миди айтемы на треке не будут звучать.
- Если изменен item volume или take volume, скрипт предупреждает, что они будут применены после Glue. И это иначе отразиться на велосити внутри миди айтема.
- Если есть активные Pre-FX envelopes на треках. Volume pre-FX может менять велосити на миди айтемах. После рендера в аудио Volume Pre-Fx envelope будет менять уже аудио Поэтому скрипт обязан увести в байпас Pre-FX envelopes после рендера, но предупреждает об этом факте.
Все предупреждения можно отключить! Но в основном предупреждения пригодятся, и в обычных сценариях не будут появляться. Тем самым скрипт безопасно отработает во всех ситуациях и не поломает проект.
Также насчет Glue. Пока что это вынужденная операция, которая позволяет правильно применить все параметры айтема в новый айтем с аудио тейком. Также она позволяет в первую очередь склеить все кусочки и правильно добавить хвост рендера (который по умолчанию надо ввести в окне). В дальнейшем я подумаю, и может реализую так, что для одного айтема Glue происходить не будет. Для этого надо учесть куча параметров, которые не должны примениться в аудио тейке. Еще Glue удаляет лишние аудио тейки, что было также частью моей задумки.
В целом и все! Некоторые мелочи описал, на мой взгляд скрипт на текущих версиях рипера будет работать без ошибок и без странных результатов.
Все пожелания или ошибки пишите в данном топике! Что смогу учту и поправлю.
Сам файл скрипта прикреплен под постом. В моем репозитории также доступен (в подписи).
Гифка как работает скрипт. Естественно это работает разом для нескольких треков, то есть можно кучку инструментов так заморозить.
Казалось бы тут все очень просто, но нет. Есть много заморочек, при которых скрипт может повести себя неверно. Аналогов именно этому скрипту пока нет, тут я "позанудничал" из-за всех сил По пунктам напишу некоторые особенности работы скрипта, которые отличают его, например, от старого Script: gen_Render selected item as new take, up to last VSTi.lua (это наиболее похожий на мой скрипт).
Итак - то, что сейчас доступно в API (и в ближайшем будущем вряд ли что-то поменяется), представляет из себя процесс достаточно схожий с макросом, хотя конечно же с кучей возможностей, которые не дают макросы.
1) Чтобы срендерить инструмент без применения эффектов после инструмента, нужно физически увести эффекты в байпас. А потом правильно восстановить им активное состояние (скажем если вы уже что-то забайпасили, это трогать не нужно вообще). И главный здесь подвох в том, что при наличии bypass envelope для эффекта, блокируется возможность увести в байпас эффект на протяжении всего трека. Поэтому нужно сначала отключить bypass envelope, потом уже байпасить эффект. Потом все восстановить. Ни один похожий скрипт это не учитывает, а момент очень-очень важный, иначе рендер произойдет некорректно (в итоге два раза применится один и тот же эффект)
2) Скрипт четко ограничивает некорректные сценарии, либо предупреждает о не очень подходящих сценариях, при которых он срендерит инструмент, а именно:
а) Несколько инструментов на одном треке. На всякий случай, кто делает подобное и догадается применить скрипт - не получится. Скрипт блокируется, в первую очередь потому что API не дает возможности найти все инструменты, только первый из них. Во вторую очередь это просто нелогично, да и порядок эффектов и инструментов в рипере может быть любым. Поэтому актуальна только схема - миди эффекты (если есть) + инструмент + аудио эффекты (если есть).
б) Нету инструмента на треке. Тут понятно, тогда звучать ничего не будет. Скрипт блокируется.
в) Не выбраны только миди тейки. Понятно, тогда инструмент не будет принимать никакие сигналы. Скрипт блокируется.
г) На миди тейке есть эффекты или автоматизации. Автоматизации и так не работают (они предназначены для аудио), а миди эффекты будут применяться после Glue (то есть удалятся) - получится не приемлемо. Я тестировал, в результате некоторые миди эффекты не корректно применяются, пока так.
д) Далее есть предупреждения:
- При настройке, когда инструмент не уходит в байпасс или оффлайн после рендера - скрипт предупреждает о том, что среди перекрывающихся миди айтемов не все айтемы выделены. Например ситуация когда есть item lanes:
То есть когда второй слой айтемов не срендерится, звучание может получится совсем иным (когда будет сумма аудио + миди от инструмента). Также можно настроить чувствительность обнаружения перекрытия миди айтемов, чтобы не реагировать на случайные микроскопические перекрытия (например в связи с MIDI PPQ сеткой)
- При настройке, когда инструмент уходит в байпасс или оффлайн после рендера - скрипт предупреждает о том, что не все айтемы на треке выделены. Тогда оставшиеся миди айтемы на треке не будут звучать.
- Если изменен item volume или take volume, скрипт предупреждает, что они будут применены после Glue. И это иначе отразиться на велосити внутри миди айтема.
- Если есть активные Pre-FX envelopes на треках. Volume pre-FX может менять велосити на миди айтемах. После рендера в аудио Volume Pre-Fx envelope будет менять уже аудио Поэтому скрипт обязан увести в байпас Pre-FX envelopes после рендера, но предупреждает об этом факте.
Все предупреждения можно отключить! Но в основном предупреждения пригодятся, и в обычных сценариях не будут появляться. Тем самым скрипт безопасно отработает во всех ситуациях и не поломает проект.
Также насчет Glue. Пока что это вынужденная операция, которая позволяет правильно применить все параметры айтема в новый айтем с аудио тейком. Также она позволяет в первую очередь склеить все кусочки и правильно добавить хвост рендера (который по умолчанию надо ввести в окне). В дальнейшем я подумаю, и может реализую так, что для одного айтема Glue происходить не будет. Для этого надо учесть куча параметров, которые не должны примениться в аудио тейке. Еще Glue удаляет лишние аудио тейки, что было также частью моей задумки.
В целом и все! Некоторые мелочи описал, на мой взгляд скрипт на текущих версиях рипера будет работать без ошибок и без странных результатов.
Все пожелания или ошибки пишите в данном топике! Что смогу учту и поправлю.
Сам файл скрипта прикреплен под постом. В моем репозитории также доступен (в подписи).
Гифка как работает скрипт. Естественно это работает разом для нескольких треков, то есть можно кучку инструментов так заморозить.
Вложения
Последнее редактирование: