Помогите создать экшн / кастом экшн / скрипт

  • Автор темы Автор темы @Michael
  • Дата начала Дата начала
@Aleksandr Oleynik, Пишет в 13 строчке ошибка с end
local freeze_track = 41223
local unfreeze_track = 41644

counttracks = reaper.CountSelectedTracks( 0 ) --- считаю выделенные треки?
if counttracks == nil then return end ----- если их нет стоп
for i = 1, counttracks do ------ считаю с первого до того столба ( а где указано их количество?)
select_tracks = reaper.GetSelectedTrack(0,i-1) - получаю выделенные треки-------
if select_tracks then ------ если их нет зачем это? если в пятой строке уже спрашивали????
frez_track = reaper.BR_GetMediaTrackFreezeCount( select_tracks ) - проверяем состояние на фриз то количество выделенных что нашли???? Опять же я не пойму как получить количество выделенных
if frez_track == 0 then - если не за фризены ТО
for i = 1, select_tracks do --- Это луп????? или "loop" это?
reaper.Main_OnCommand(freeze_track, 0)
else
reaper.Main_OnCommand(unfreeze_track, 0)
end
 
Последнее редактирование:
В конце нужно ещё один end, так, на вскидку с iPad -а
Но кажется у вас там билиберда написана, доберусь до компа - отвечу
Для каждого for, открывающего цикл, должен быть свой end, его закрывающий.
Колличество - это и есть count
 
  • Like
Реакции: Maestro Sound
@Aleksandr Oleynik, Тут уже без ошибок но не смотрит какой зафризен какой нет
local freeze_track = 41223
local unfreeze_track = 41644

counttracks = reaper.CountSelectedTracks(0)
if counttracks == nil then return end
for i = 1, counttracks do
select_tracks = reaper.GetSelectedTrack(0,i-1)
end
frez_track = reaper.BR_GetMediaTrackFreezeCount( select_tracks )
if frez_track == 0 then
reaper.Main_OnCommand(freeze_track, 0)
else
reaper.Main_OnCommand(unfreeze_track, 0)
end
 
Потому как с ошибками :)
Второе end в конце должно быть, так как условие if ...... заканчивающееся своим end, должно быть внутри цикла выбора выделенных треков.
 
Потому как с ошибками :)
Второе end в конце должно быть, так как условие if ...... заканчивающееся своим end, должно быть внутри цикла выбора выделенных треков.
Не понял, добавил второе end та же ситуация. Но отличие у меня 1 трек забит под ретроспектив. А вот если 2 трек не зафризен а третий зафризен то при выделении обоих применяя скрипт, он выводит 3 трек из фриза а 2 трек не трогает. А если на оборот 2 зафризен третий нет при применении, фризит 3 трек Второй снова не трогает
 
Последнее редактирование:
@Maestro Sound, не добавить, а перенести.
Выражение с условием if должно быть внутри цикла по выделенным трекам!
Нужно В ЭТОЙ логике циклов и условий вам разобраться на 100%, иначе дальше двигаться по скриптам не выйдет.
Метод тыка не проходит тут ни разу...
 
Выражение с условием if должно быть внутри цикла по выделенным трекам!
Ткните пожалуйста меня носом может я пойму почему именно ТАК.

Вот тут второе end ругается что оно должно тут быть хотя для него if нет

counttracks = reaper.CountSelectedTracks(0)
if counttracks == nil then return end - если этого условия нет то это end не считается?
for i = 1, counttracks do
select_tracks = reaper.GetSelectedTrack(0,i-1)
end
 
@Maestro Sound, а не будет этот скрипт работать по простому, даже если исправите синтаксис.
И причина в том, что запускаемые Экшины требуют время для выполнения рендера и скрипт тупо принимает зафризенный трек как не зафризенный в процессе рендера.

Вот так вот простенький скрипт превращается плавно в недельную работу над поиском условий и исключений.
 
  • Like
Реакции: Maestro Sound
@Aleksandr Oleynik, Просто не могу понять почему он так работает? Вот на моем видео он работает как и стандартные фризы, а на последнем фризе в видео, он фризит все Почему?
Если бы не этот последний фриз на видео, он бы работал как стандартный фриз и анфриз. В большинстве случаев он понимает, что все выделенные в одном состоянии. просто нужно указать ему точку от которой берется состояние треков. а дальше пусть он их не проверяет. То есть перед действием он создает карту выделенных треков на фриз и уже потом по ней делает соответствующие действия Если конечно такое возможно в скрипте
 

Вложения

  • Freez 2 in 1-04.gif
    Freez 2 in 1-04.gif
    3,3 MB · Просмотры: 56
А вы поствьте на трек по больше айтемов - и он будет работать вообще как прийдётся.
Он вам ещё и все родные айтемы поудаляет - то, о чём я предупреждал.
В общем - сейчас у меня нет возможности разбираться с этим скриптом - как его заставить ЖДАТЬ пока Экшин рендерит (фризит) айтемы на треке.
 
  • Like
Реакции: Maestro Sound
Я честно сейчас не могу разделить мозги на три части.
На две как то получается...
Все нормально это подождет. Занимайтесь то к чему душа ближе. По одному треку здорово работает Для "временного" пойдет
 
Последнее редактирование:
Вопрос знатокам: можно ли так сделать, чтобы при клике по кнопке плагина с модификатором он "солировался" (оставался один включенным, а остальные байпасились), а при повторном клике по тому же плагу с тем же модификатором функция "солирования" отключалась (дабы вручную потом остальные из байпаса не выводить, хотя для планируемой области применения можно и без этого обойтись)? Применение - быстрое сравнение плагинов на дорожке с выбором наилучшего варианта для данного трека.
Идея возникла после знакомства с https://www.audiovitamins.com/contra/
Хотя там совершенно другая реализация (гоняется отрывок выбранной длины по кругу с автопереключением плагов на каждом круге) и есть функция автоподстройки уровней, но туда к примеру не засунуть JSFX.
 
Саша - что угодно можно. Но лучше хорошенько продумай функционал, не в чём себя не ограничивая.
 
  • Like
Реакции: Alex_HS
@Aleksandr Oleynik, Да хватило бы и того, что выше написал. Просто по отдельности плагины включать и байпасить - проходит небольшой отрезок времени, нету элемента мгновенности и ухо может сбиваться. Повесил 5 компрессоров к примеру для сравнения и переключайся одним кликом.
Хотя Контра тоже интересна по-своему, она на первом цикле производит автокалибровку уровней всех плагов, а дальше переключает инсёрты автоматом по выбранному циклу (от одного до кажется 32 тактов).
 
Повесил 5 компрессоров к примеру для сравнения и переключайся одним кликом.
Для этого можно использовать экшены Bypass all FX (except "номер плагина в треке" ) for selected tracks . Плохо , что если например , есть другие плагины на треке , которые не надо сравнивать , но они тоже байпаситься будут . В скрипт бы как-нить их бы загрузить отдельно , и в скрипте б выбирать . Было б здорово .
 

Вложения

  • ПЛАГИ.gif
    ПЛАГИ.gif
    1,5 MB · Просмотры: 56
  • Like
Реакции: naash_g и Alex_HS
@Alex_HS, сделаю, но работать будет чуть иначе -
на тулбаре кнопка - скрипт, нажал, она горит (значит включен вот этот вот режим), в открытом Track FX Windows активным будет всегда только выбранный FX.
Выбор что не байпас можно будет делать только в этом окне -
2017-11-23_012718.png
Так подходит?
Просто я не нашёл и скорее всего нет возможности в Маус Мадифаере изменить поведение мыши и модификатора в зоне инсёртов и сендов.
[DOUBLEPOST=1511392966][/DOUBLEPOST]
В скрипт бы как-нить их бы загрузить отдельно , и в скрипте б выбирать . Было б здорово .
Можно и так, но в разы сложнее - нужно делать GUI для скрипта :(
 
Последнее редактирование:
  • Like
Реакции: Alex_HS
@Alex_HS, не самый правильный вариант, по быстрому.
если Женю уговорю - сделаем с GUI интереснее, самому нужно часто бывает - чтоб можно было из ряда FX на треке выделять те, что не будут байпасится ни при каких обстоятельствах.
 
@Supa75, Я сейчас попробую сделать так, чтоб в переборе участвовали только те плагины, которые перед запуском скрипта были в байпасе.
Исключение для VSTi сделать очень просто, сейчас сделаю.
Ловите вариант не трогающий инструменты -
 

Вложения

Последнее редактирование:
  • Like
Реакции: Alex_HS и Broojacker
Я сейчас попробую сделать так, чтоб в переборе участвовали только те плагины, которые перед запуском скрипта были в байпасе.
а вот это необязательно :)))))))))

Исключение для VSTi сделать очень просто, сейчас сделаю.
буду ждать. Спасибо за труды
 

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