Мультиченал FX Chain или modularchain

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
19.913
113
62
Киев
Появилась реальная возможность сделать Сумасшедший Функционал по многоканальному FX роутингу в рамках одного трека на много более понятным и используемым (благодаря добавлению Джастином нескольких новых API функций).
@@Michael этим уже начал заниматься, когда время есть, и @EUGEN27771 заинтересовался не простой задачей.

По скольку я изначально был "подстрекателем" создания такого GUI скрипта, хочу провести более-менее расширенное обсуждение возможного по финалу работы функционала.

Михаил выложил корокую анимашку начала своей работы -
tesdt2gif_5496322_20884352.gif
Из которой видно, что он хочет повторить матрицу каналов для каждого плагина поместив их в одно пространство GUI, ну и потом дать возможность пользователю проводочкми плагины между собой соединять.
Такое представление БЕЗУСЛОВНО будет в 100 раз понятнее и нагляднее, чем открывать эти матрицы пинов в каждом эффекте последовательно и помня, что там было в предидущих, пытаться эти пины расставлять.
Но у меня есть масса вопросов по этому поводу, которые, если их учесть в работе над таким ОЧЕНЬ НЕ ПРОСТЫМ Скриптом, существенно повысят его Юзабилити!

Прошу тех, кто не может помочь в понимании этого функционала в целом и его Реальной Применяемости в частности, вопросы типпа - "а что это такое" - задавать в других темах Форума.
Здесь же очень бы хотелось видеть тех, кто реально собрал хоть несколько параллельных обработок в рамках одного трека.
[DOUBLEPOST=1456689260,1456688459][/DOUBLEPOST]Первое, что хотел бы попросить обсудить, тот факт, что в рамках функционала FX роутинга одного трека без дополнительных JS плагинов - сплитеров и микшеров, не получится реализовать даже Примитивню схему параллельной обработки.
 
Последнее редактирование:
Последнее редактирование:
круто, ещё было б здорово входить в менюшку add fx-add fx chain (которая появляется по правому клику на fx кнопке трека) через gfx окно и оттуда же добавлять эффекты имхо
 
Параллельной - кидать на другие каналы автоматом или руками
Михаил, сделай простой тестовый пример параллельной обработки на одном треке из двух плагинов.
Входной EQ, с него боковой канал на Компрессор, прямой на выход. После компрессора тоже на выход. Вход и выход - просто стерео 1-2.
Без всяких пока скриптов и GUI - ручками.
Может я чего-то не знаю, но для этой простой схемы, чтоб она работала также, как если бы её реализовать на разных треках, понадобятся два доп плагина - сплитер и микшер.
И моё мнение - их добовлять должен скрипт автоматом.
[DOUBLEPOST=1456738273,1456733695][/DOUBLEPOST]Я вообще считаю, что первое что нужно в GUI скрипта сделать, это выбор из 10-ка стандартных схем параллельной обработки и потом только плагины в кубики конкретные подставлять.
Вот это и будет на 99% используемый функционал. А вся эта сложная матрица, куда тянуть проводочек, как сплитовать, а потом миксить - в ней опять далеко не все разберуться, даже при наличии более понятного GUI.
 
Код:
BYPASS 0 0
<VST "VST: ReaEQ (Cockos)" reaeq.dll 0 "" 1919247729
  cWVlcu5e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAYAAAABAAAAAAAAAAIAAAAAAAAABAAAAAAAAAAIAAAAAAAAABAAAAAAAAAAIAAAAAAAAACgAAAAAQAAAAAAEAA=
  IQAAAAQAAAAAAAAAAQAAANi1FxgRLJJAgO21oPfGsD4AAAAAAAAAQAEIAAAAAQAAAEBrNICzxJJAJmPNPcUMH0AAAAAAAAAAQAEIAAAAAQAAAAAAAAAAQI9AAAAAAAAA
  8D8AAAAAAAAAQAEBAAAAAQAAAAAAAAAAiLNAAAAAAAAA8D8AAAAAAAAAQAEBAAAAAQAAAAAAAAAAAPA/AAAAAA==
  AAAQAAAA
>
WAK 0
BYPASS 0 0
<VST "VST: ReaComp (Cockos)" reacomp.dll 0 "" 1919247213
  bWNlcu9e7f4EAAAAAQAAAAAAAAACAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAGAAAABAAAAAAAAAAIAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAQAAAAAAAAACAAAAAAAAAA
  VAAAAAAAAAAAABAA
  776t3g3wrd6BeSs6GLhZPwAAAAAAAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAAAAAB4HdT8AAAAAzcxMPQAAAAAAAIA/AAAAAAAAAADZiZ09
  AAAQAAAA
>
WAK 0
BYPASS 0 0
<JS ix/Mixer_8xS-1xS ""
  -9.100000 -15.600000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>
WAK 0

Сплиттер/джойнер - это вполне нормально, не вижу проблемы.
 
Прошу не пинать если скажу глупость - просто хочу помочь чем могу. Крутая вещь будет!
1. Можно ли Bypass (или offline) кнопки равно как и Соло кнопку отобразить на контейнере плага? Чтобы прослушивать в одном окне все.
2. Сплиттеры-микшеры должны добавляться сразу при увеличении выходных или входных каналов контейнера с эффектом до или после по логике вещей. Понятно необходимо наличие опр. JS.
3. Нельзя ли провода потом как то цветом различить: один канал красным, другой (параллельный ему) синим и т.п. (лучше от светлого в темным тонам чтобы визуально было видно сколько каналов и где какой) И на самих плагах цвета чтоб менялись на портах входа-выхода под цвет проводов канала.
4. Сохраняться как можно - стандартно как Чейн или в скрипте или еще както...
5. Быстрая замена Плагов в окне возможна? (драгНдроп не поддерживается? или правой мышью на плаге - replace на свободном поле - add fx))
6. Линки и модуляции с плагинов можно отобразить ? возможно как опцию в этом же окне (понятно что каша м.б. но если окно увеличить на полэкрана то все ж влезет..
7. Клиппирование сигнала на выходе плага нельзя ли както отобразить индикатором (точкой черной-красной)? Имхо очень полезно было бы - я понимаю что 64bit float миксер но не всегда слышу когда заходит в плагах, звук меняется)
8. Блоки отдельно сохранять нельзя (как макросы) наверное гоню люто, но мало ли... Бывает там 1 на 3 и обратно на 1 нужно копипастить в какую то цепь, это возможно только в окне плагинов, просто понять это окно просто визуализации или едитинга тоже?
9. Еще как бы мозговой штурм - названия пресетов на окне плага (темным шрифтом, чтоб не отвлекало с возможностью пролистывания прямо в окне скрипта).
 
  • Like
Реакции: nounaim
В этом твоём FX Chain уже в ReaComp dry/wet работает просто как уровень громкости, а для сохранения логики работы плагина в обычных условиях, должен работать нормально и байпас его и Dry/Wet.
А если добавить после ReaEQ сплитер, то всё будет со всеми плагинами привычным образом -

PHP:
BYPASS 0 0
<VST "VST: ReaEQ (Cockos)" reaeq.dll 0 "" 1919247729
  cWVlcu5e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAYAAAABAAAAAAAAAAIAAAAAAAAABAAAAAAAAAAIAAAAAAAAABAAAAAAAAAAIAAAAAAAAACgAAAAAQAAAAAAEAA=
  IQAAAAQAAAAAAAAAAQAAADBjScUQX1RAgA+NuoQS2j8AAAAAAAAAQAEIAAAAAQAAANoWnHJ16WNAcAGVctwoCEDAmZmZmZnpPwEIAAAAAQAAAOXpGUZ9K7NAldCAa7JT
  AkBgMzMzMzPjPwEBAAAAAQAAAAAAAAAAiLNAAAAAAAAA8D8AAAAAAAAAQAEBAAAAAQAAAAAAAAAAAPA/AAAAAA==
  AAAQAAAA
>
WAK 0
BYPASS 0 0
<JS loser/3BandSplitter ""
  22000.000000 22000.000000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>
<JS_PINMAP
  6AMAADwAAADoAwAABgAAAAYAAAABAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAA6AMAAAYAAAAGAAAABQAAAAAAAAAKAAAA
  AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
>
WAK 0
BYPASS 0 0
<VST "VST: ReaComp (Cockos)" reacomp.dll 0 "" 1919247213
  bWNlcu9e7f4EAAAABAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAABAAAAAAAAAAIAAAAAAAAAAQAAAAAAAAACAAAAAAAAAAQAAAAAAAAACAAAAAAAAAA
  VAAAAAAAAAAAABAA
  776t3g3wrd6r5Ro+GLhZPwAAAAAAAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAAAAAFKRHD8AAAAAt3pOPQAAAAAAAIA/AAAAAAAAAADZiZ09
  AAAQAAAA
>
WET 0
WAK 0
BYPASS 0 0
<JS ix/Mixer_8xS-1xS ""
  -8.500000 -5.100000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
>
WAK 0
Только сплитер нужно сделать не с частотным разделением, а только канальным (пришлось обе полосы расширить до 22 kHz), но такого в стандартных JS не нашёл.
 
Последнее редактирование:
Добавить Reason-овский задний вид рэка с проводочками? Ага, наглядно, если только не увлекаться...
 
@RJ Baker, ваша программа Михаилу до конца жизни в реализации :)
Но в целом вы ВСЁ правильно написали, и даже не всё, что можно было-бы сделать, если было бы время и/или деньги.
 
Разработка и обновления происходят здесь: https://github.com/MichaelPilyavskiy/ReaScript_Test/blob/master/Beta/mpl_ModularChain.lua

Уже есть баг:
fhj.gif
Джастин в курсе, написал ему:
I still see bug with JS outputs(GetPinMappings always return 0 for output pins, and with VST everything is OK)

[DOUBLEPOST=1456762167,1456751339][/DOUBLEPOST]upd баг есть, но его можно обойти, поправил
про пикметры для каждого плагина сказал "посмотрит"
 
Михаил, а как вот такую версию распиновки сделать на твоём GUI -
pin009.png

Собственно сплит каналов 1-2 на 3-4.
[DOUBLEPOST=1456763533,1456763465][/DOUBLEPOST]
про пикметры для каждого плагина сказал "посмотрит"
Они почти бесполезны без крутилки гейна на входе в каждый плаг прям на GUI.
[DOUBLEPOST=1456763810][/DOUBLEPOST]PS: И на новой версии скрипта на некоторых треках вылетает ошибка.
 
Последнее редактирование:
О,мне сразу показалось,что важнее каналы,а in-out можно и ограничить.Большинство плагинов 2,ну пускай 4 для сайдчейна
 
важнее каналы,а in-out можно и ограничить.Большинство плагинов 2,ну пускай 4 для сайдчейна
Да и "конструкция" на более чем 2-а стерео входа и выхода, крайне редка, а вот сплиты и миксы внутри могут быть сильно разросшимися (с учётом организации того-же сайдчейна внутри.
 
Я пока ничего не рисовал,потому что времени абсолютно нет,но выглядеть оно по задумке может абсолютно точно также,только эти мелкие квадратики будут отображать каналы,а не входы-выходы
======
1234.gif
 
Последнее редактирование:
Собственно сплит каналов 1-2 на 3-4
Это внутри плагина происходит всё, я пишу только инпуты/аутпуты для цепи.

И на новой версии скрипта на некоторых треках вылетает ошибка.
Как по-твоему я должен исправить её, не видя?
 
Это внутри плагина происходит всё, я пишу только инпуты/аутпуты для цепи.
Т.е. при настройке прийдётся всё равно в матрицу каждого плагина лезть?
В общем я не понимаю сейчас, исходя из того, что есть и что ты поясняешь - как это будет.
Я наверное нарисую всё и спрошу.... Хорошо?
[DOUBLEPOST=1456775022,1456774896][/DOUBLEPOST]
Как по-твоему я должен исправить её, не видя?
Так у меня она какая-то рандомная, для каждого трека своя.... Поймаю закономерность - напишу.
Просто попробуй у себя сделать три-четыре трека с разными JS плагинами и повызывать скрипт и по выбирать разные треки.
 
Последнее редактирование:
Да, подобные плагины и ещё есть, но у них нет главого - Риперовской оболочки для каждого плагина. В них, например, нельзя сохранить и вызвать из вне пресет для каждого плагина в отдельности.
 
Последнее редактирование:
Может лучше вертикально сделать?
Безусловно!
По скольку плагинов последовательных будет больше, чем параллельных.
Ну и в инсёрте микшера Риперовского расположение FX-ов вертикальное - будет понятнее схема.
[DOUBLEPOST=1456777502,1456777099][/DOUBLEPOST]
Как по-твоему я должен исправить её, не видя?
Ну вот например -
C:\Reaper Stage\Scripts\Script_OL\mpl_ModularChain_v2.lua:144: attempt to concatenate a nil value (global 'outputPins')
При этом старая версия после этого открывается без ошибкиЮ а потом и новая уже тоже открывается нормально,

Но с соседним треком новая открывается опять с ошибкой, но другой -
C:\Reaper Stage\Scripts\Script_OL\mpl_ModularChain_v2.lua:375: attempt to concatenate a nil value (local 'fx_guid')
Старая опять открывается без ошибки.

Закономерность только одна - ошибка в новой версии только с треками: на которых есть JS-ы, с VST ошибок нет
[DOUBLEPOST=1456782928][/DOUBLEPOST]
В общем я не понимаю сейчас, исходя из того, что есть и что ты поясняешь - как это будет.
Я наверное нарисую всё и спрошу.... Хорошо?

Собственно нарисовал -

MultCnFx001.jpg


А в инсёрте трека это будет вот так -

insert001.png

Если скрипт будет автоматом вставлять узловые сплитера и микшеры и будет сам перемещать плагины в правильные места в инсёрте - мне тогда всё предельно ясно, и для меня это будет ОЧЕНЬ удобно.
При чём написанной и отлаженной программе не будет составлять труда следить за свободными каналами и правильно их выбирать при очередном разветвлении - Имею в виду 1-2 to 3-4, а в следующем узле 3-4 to 5-6.
[DOUBLEPOST=1456784217][/DOUBLEPOST]PS: Сейчас вот увидел, что входа-выхода нужно на прямоугольниках - плагинах располагать сверху-снизу, а не слева-права.
Будет меньше ветвлений проводов.
Потом сделаю.
[DOUBLEPOST=1456787087][/DOUBLEPOST]PSS: В общем Женя прав - на плагинах нужно делать пины не входов-выходов, а каналов!

MultCnFx002.png

входа-выхода если и понадобятся, то для сайдчейна межтрекового
 
Да, вроде того. Может лучше вертикально сделать?
Если есть возможность, то лучше тогда сделать рубильник, чтоб можно было выбирать, как выстраивать цепочку, вертикально или горизонтально. Больше инфы помещается в ширину, чем в высоту. Это особенность всех мониторов.
 
Появилось у image-line такое решение. Пока на уровне беты, но полностью рабочее. И можно бесплатно скачать (нужно зарегистрироваться на форуме) и покрутить. Оч. неплохо решено. Присутствуют фичи, о которых так сразу и не догадаешься. Ставится как обычный VST. Покрутил часок. Бета пока притормаживает, но работает стабильно.
Да, и есть главное - готовый образец :)
ссылка: http://www.image-line.com/documents/news.php?entry_id=1391136116
там же и видеопрезентация
 
Последнее редактирование:
@Mas Mortr, об этом решении все хорошо осведомленны. И появилось оно давно. И решений подобных куча.
Смысл не в том, чтобы использовать vst саб хосты как плагины в Рипере, а визуализировать удобным образом существующую в самом Рипере возможность.
Что касается решений типпа мини хоста или бидюли или блю кэтовского решения - все они имеют ряд существенных ограничений, по сравнению с нативным Рипровским мультичейном.
 
@Mas Mortr спасибо Вам конечно, но я и все остальные обыватели данной темы знают давно о существовании данного плагина. :) Вы бы на дату выпуска последней беты хоть глянули
 

Сейчас просматривают