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

  • Автор темы Автор темы @Michael
  • Дата начала Дата начала
А есть скрипт отправляющий выбранные дороги в сэнд, в каналы с фиксированными именами (hall, plate, etc)?
ЗЫ: существует ли какая-то база описаний скриптов в реапаке, например? Искать и читать их назначение. Или только бегать с вопросами?)
Нет - никакой базы не существует.
В 99 процентах все понятно из названия скрипта, что он делает.
В редких случаях, когда скрипт замороченный, может в начале скрипта присутствовать описание.

пс. Еще на оф форуме в поиске можешь ввести названия скрипта и в редких случаях может там быть описание скрипта.
 
  • Like
Реакции: zybex00
Спасибо.
А не подскажете, как изменить скрипт, чтобы окно не появлялось, а просто сделать кнопки посылающие треки в готовые имена? Т.е. сделать кнопку - послать в hall, послать в room.
 
Спасибо.
А не подскажете, как изменить скрипт, чтобы окно не появлялось, а просто сделать кнопки посылающие треки в готовые имена? Т.е. сделать кнопку - послать в hall, послать в room.
 
Спасибо.
А не подскажете, как изменить скрипт, чтобы окно не появлялось, а просто сделать кнопки посылающие треки в готовые имена? Т.е. сделать кнопку - послать в hall, послать в room.
Доброго, я сейчас залил разные скрипты в гитхаб, там же и мануал есть. Берете windowless версию. И сохраняете сколько нужно скриптов, где пишите имя треков в поле

192764


Вот ссылка https://github.com/Yaunick/Yaunick-Scripts
Скрипт Yaunick_Create send track or create sends from selected track to existed track (windowless).lua
 
  • Like
Реакции: sve и zybex00
Приветствую! Скажите пожалуйста, возможно ли сделать в Cycle Action вложение условия IF внутри ещё одного условия?
Сумбурно звучит, вобщем IF внутри IF.
Если можно, то как это правильно оформить?
Вот картинка для примера
192778
 
Сделал кнопки для добавления fx на канал (через ресурсы). Какой экшн нужно выполнить для того, чтобы окно добавленного плага открывалось после добавления?
 
Сделал кнопки для добавления fx на канал (через ресурсы). Какой экшн нужно выполнить для того, чтобы окно добавленного плага открывалось после добавления?
Тяжело это через кастом правильно сделать...Я также сделал скрипты на добавление FX :) Но там не только на трек, а туда, куда тыкнул. Если очень нужно на трек, сделаю позже
 
Тяжело это через кастом правильно сделать...Я также сделал скрипты на добавление FX :) Но там не только на трек, а туда, куда тыкнул. Если очень нужно на трек, сделаю позже
А как выше Andernik написал не будет работать? Скрипт Ваш где заценить?
 
Зачем кастомы / скрипты, если можно сделать штатными средствами.
333.gif
 
  • Like
Реакции: zybex00
А. Нужна кнопка на тулбаре.
Ну и делай кнопку, также как и любую кнопку делаешь. У тебя же плагины в экшен листе появляется!
333.gif
Б. Нужно чтобы добавленный плаг открывался во флоате.
А на гифки они открываются не во флоате ??? Они и открываются флоат . Или у тебя нет?.
 
Последнее редактирование:
  • Like
Реакции: zybex00
Ну и делай кнопку, также как и любую кнопку делаешь. У тебя же эффект в экшен листе появляется!

А на гифки они открываются не во флоате ??? Они и открываются флоат.
Сорри, не досмотрел гиф, думал она уже в лупе. Спасибо)
 
  • Like
Реакции: Archie's
Скрипт Ваш где заценить?
Там же где я кидал скрипт для отправки посылов https://github.com/Yaunick/Yaunick-Scripts
Штатный экшн почти кул, и работает почти также (блокировки обновления графики только нету), но у меня остался осадок, при переносе конфига как-то шорткаты не сохранились, скрипт надежнее оказался
А как выше Andernik написал не будет работать?
Будет, но только для трека, это раз, а два открытие плагинов будет работать сразу для всех эффектов, наверное же не нужно сразу 10 эквалайзеров добавить и сразу 10 открыть? :) Или не нужно открывать последний эффект, если новый не добавился. Вот тем кастомы и не очень, что им не объяснишь такие вещи
 
Последнее редактирование:
  • Like
Реакции: zybex00
при переносе конфига как-то не сохранились
Какую то галочку наверно просто снял случайно при сохранении конфига.
---
Я не знаю, может ты так и задумывал, но в твоем скрипте "Yaunick_Insert FX by name to master track or selected tracks or selected items.lua" если выделен мастер и простой трек, то плагин добавится только в мастер.
Если ты этого не задумывал и эта ошибка, то вот я условие немного подправил.
PHP:
--[[
* Category: Various
* Description: Insert FX by name to master track or selected tracks or selected items
* Author: Yaunick
* Contact: b.yanushevich@gmail.com
* Donation: https://paypal.me/yaunick?locale.x=ru_RU
--]]

  ------------Set FX name:----------
  name = 'ReaEQ (Cockos)'
  ----------------------------------
 
  reaper.Undo_BeginBlock()
  reaper.PreventUIRefresh(1)
 
    cursor = reaper.GetCursorContext2(true)
    master = reaper.GetMasterTrack(0)
   
    if cursor == 0 and reaper.IsTrackSelected(master) == true then
      local count_bef_master = reaper.TrackFX_GetCount(master)
      reaper.TrackFX_AddByName(master, name, false, -1)
      local count_aft_master = reaper.TrackFX_GetCount(master)
      if count_bef_master < count_aft_master and reaper.TrackFX_GetOffline(master, count_aft_master-1) == false then
        reaper.TrackFX_Show(master, count_aft_master-1, 3)
      end
    end
    if cursor == 0 then
      if reaper.CountSelectedTracks(0) > 0 then
        for i=0, reaper.CountSelectedTracks(0)-1 do
          local track = reaper.GetSelectedTrack(0,i)
          local count_bef_track = reaper.TrackFX_GetCount(track)
          reaper.TrackFX_AddByName( track, name, false, -1)
          local count_aft_track = reaper.TrackFX_GetCount(track)
          if count_bef_track < count_aft_track
          and reaper.CountSelectedTracks(0) == 1
          and reaper.TrackFX_GetOffline(track, count_aft_track-1) == false
          then
            reaper.TrackFX_Show(track, count_aft_track-1, 3)
          end
        end
      end
    elseif cursor == 1 then
      if reaper.CountSelectedMediaItems(0) > 0 then
        for i=0, reaper.CountSelectedMediaItems(0)-1 do
          local item = reaper.GetSelectedMediaItem(0,i)
          local take = reaper.GetActiveTake(item)
          local count_bef_take = reaper.TakeFX_GetCount(take)
          reaper.TakeFX_AddByName( take, name, -1)
          local count_aft_take = reaper.TakeFX_GetCount(take)
          if count_bef_take < count_aft_take
          and reaper.CountSelectedMediaItems(0) == 1
          and reaper.TakeFX_GetOffline(take, count_aft_take-1) == false then
            reaper.TakeFX_Show(take, count_aft_take-1, 3)
          end
        end
      end
    end
       
  reaper.Undo_EndBlock('Insert FX by name to selected tracks or items', -1)
  reaper.PreventUIRefresh(-1)
 
  • Like
Реакции: borisuperful
при переносе конфига как-то шорткаты не сохранились, скрипт надежнее оказался
А при чем тут скрипт ?))
Если шорткаты не сохранились (слетели), то они и у скриптов наверно так же слетели.
блокировки обновления графики только нету
Что это ?
 
  • Like
Реакции: borisuperful
А при чем тут скрипт ?))
Если шорткаты не сохранились (слетели), то они и у скриптов так же слетели.
Там кажется не шорткаты слетели, не так сказал, слетела привязка этих шорткатов к плагинам. То есть не распознавали их вновь.
PreventUIRefresh()
Если ты этого не задумывал и эта ошибка, то вот я условие немного подправил.
В принципе так и хотел, но можно и так :) А что изменилось? Не могу найти
UPD: А, вижу, elseif убрал :)
UPD2: Но в таком случае там еще одна ошибка появилась, надо чтобы не открывалось два эффекта на мастере и на одном треке, ща доделаю уж сам
 
Последнее редактирование:
  • Like
Реакции: Archie's
Короче вот так вроде без ошибок. Перезалил в гитхаб
PHP:
--[[
* Category: Various
* Description: Insert FX by name to master track or selected tracks or selected items
* Author: Yaunick
* Contact: b.yanushevich@gmail.com
* Donation: https://paypal.me/yaunick?locale.x=ru_RU
--]]

  ------------Set FX name:----------
  name = 'ReaEQ (Cockos)'
  ----------------------------------

  reaper.Undo_BeginBlock()
  reaper.PreventUIRefresh(1)

    cursor = reaper.GetCursorContext2(true)
    master = reaper.GetMasterTrack(0)
    add_to_master = false

    if cursor == 0 and reaper.IsTrackSelected(master) == true then
      local count_bef_master = reaper.TrackFX_GetCount(master)
      reaper.TrackFX_AddByName(master, name, false, -1)
      local count_aft_master = reaper.TrackFX_GetCount(master)
      if count_bef_master < count_aft_master then
        add_to_master = true
        if reaper.TrackFX_GetOffline(master, count_aft_master-1) == false
        and reaper.CountSelectedTracks(0) == 0 then
          reaper.TrackFX_Show(master, count_aft_master-1, 3)
        end
      end
    end
    if cursor == 0 then
      if reaper.CountSelectedTracks(0) > 0 then
        for i=0, reaper.CountSelectedTracks(0)-1 do
          local track = reaper.GetSelectedTrack(0,i)
          local count_bef_track = reaper.TrackFX_GetCount(track)
          reaper.TrackFX_AddByName( track, name, false, -1)
          local count_aft_track = reaper.TrackFX_GetCount(track)
          if count_bef_track < count_aft_track
          and reaper.CountSelectedTracks(0) == 1
          and reaper.TrackFX_GetOffline(track, count_aft_track-1) == false
          and add_to_master == false
          then
            reaper.TrackFX_Show(track, count_aft_track-1, 3)
          end
        end
      end
    elseif cursor == 1 then
      if reaper.CountSelectedMediaItems(0) > 0 then
        for i=0, reaper.CountSelectedMediaItems(0)-1 do
          local item = reaper.GetSelectedMediaItem(0,i)
          local take = reaper.GetActiveTake(item)
          local count_bef_take = reaper.TakeFX_GetCount(take)
          reaper.TakeFX_AddByName( take, name, -1)
          local count_aft_take = reaper.TakeFX_GetCount(take)
          if count_bef_take < count_aft_take
          and reaper.CountSelectedMediaItems(0) == 1
          and reaper.TakeFX_GetOffline(take, count_aft_take-1) == false then
            reaper.TakeFX_Show(take, count_aft_take-1, 3)
          end
        end
      end
    end
    
  reaper.Undo_EndBlock('Insert FX by name to selected tracks or items', -1)
  reaper.PreventUIRefresh(-1)
 
Последнее редактирование:
  • Like
Реакции: Archie's и zybex00
слетела привязка этих шорткатов к плагинам. То есть не распознавали их вновь.
Да было такое припоминаю, еще нельзя было добавлять более 100 вроде (не помню) плагинов. Но потом над этим вроде поработали и пофиксили все это.
А для чего это в этом скрипте ?
Эта функция не замораживает появления окна, если добавлять на несколько треков эффекты. Так что на мой взгляд она бесполезна в данном скрипте, только отжирание ресурсов, хоть и не значительных.
Но в таком случае там еще одна ошибка появилась, надо чтобы не открывалось два эффекта на мастере и на одном треке, ща доделаю уж сам
Не понял. Какие два эффекта ? Один вроде как открывается.
Короче вот так вроде без ошибок
Что то вообще не понял что ты сделал. Мне кажется что все что ниже строки "TakeFX_AddByName" - это лишний код. Или я не могу понять для чего он.
333.gif
 
Что то вообще не понял что ты сделал. Мне кажется что все что ниже строки "TakeFX_AddByName" - это лишний код. Или я не могу понять для чего он.
Если добавлен один эффект он должен бы желательно открыться, так задумано :) А если два или больше, то нафиг открывать. Типа также штатный FX шорткат работает.
Я этот код конечно довольно давно написал, может можно по умнее, особенно по части выявления есть ли FX с этим именем у рипера в ini файлах или нет. Но тут особенно нет смысла переделывать.
 
Последнее редактирование:
Для выявления наличия или отсутствия нового FX я просто считаю эффекты до добавления и после добавления, они не могут совпадать, после добавления станет на один больше :) Точно также я делал выявление в своих рендер-скриптах - если юзер нажмет cancel когда идет рендер, то новый трек в проекте не появится, и все должно иначе работать в скрипте, если есть действия после того как рендер закончился.
 
Последнее редактирование:
Если добавлен один эффект он должен бы желательно открыться, так задумано :) А если два или больше, то нафиг открывать. Типа также штатный FX шорткат работает.
Все равно не понял о чем ты :).
Ведь если ты добавишь эффект на несколько треков, например на два, то два эффекта и откроется.
А если ты имеешь в виду, что скрипт добавит несколько эффектов, то он никак не добавит несколько эффектов, потому что он изначально же написан для добавления одного эффекта.
Или я что то туплю ?

Точно также я делал выявление в своих рендер-скриптах - если юзер нажмет cancel когда идет рендер, то новый трек в проекте не появится, и все должно иначе работать в скрипте
Ну с рендером все понятно. А здесь вообще не понятно, потому что скрипт не может добавить более одного плагина.
 
А здесь вообще не понятно, потому что скрипт не может добавить более одного плагина.
Так там же цикл for i=0, reaper.CountSelectedTracks(0)-1 и т.д.... :) Поэтому скрипт добавит для всех выделенных треков или айтемов по индексу. Под этот же цикл попадет и один выбранный трек/айтем, поэтому в условии открыть эффект, если трек/айтем только один
 
Последнее редактирование:
...
Так там же цикл for i=0, reaper.CountSelectedTracks(0)-1 и т.д.... :) Поэтому скрипт добавит для всех треков или айтемов по индексу. Под этот же цикл попадет и один выбранный трек/айтем, поэтому в условии открыть эффект, если трек/айтем только один
Ну - Если мы добавляем на пять треков, то в любом случае откроются пять эффектов. Код ниже "AddByName" ничего не исполняет в любом случае.
Работа цикла:
Цикл от 0 до кол-во треков
получаем нулевой трек (это первый)
добавляем на него эффект
все (или)
получаем первый трек (это второй)
добавляем на него эффект
все.
и т.д.
---------
Так что я не понимаю, один трек, не один трек, какая разница. Ну да ладно, не понимаю, так не понимаю.
Если есть желание, то сделай гиф, при каких условиях скрипт откроет что то неадекватно, если убрать код ниже "AddByName". Просто самому интересно стало, что я понять не могу.:)
 
Если есть желание, то сделай гиф, при каких условиях скрипт откроет что то неадекватно, если убрать код ниже "AddByName". Просто самому интересно стало, что я понять не могу.:)
Если я удалю код после AddFXByname, то скрипт не будет открывать эффекты вообще, только добавит на трек/айтем :) То есть вот так не будет работать

oMRFV1nQ1I.gif

Я конечно может что-то не понял, но фукнция AddFXByname не умеет открывать плагин, только добавляет. Может поставить выбрать какой чейн (инпут или обычный), на какую позицию, но именно открыть нет
 
Я кажется понял в чем прикол :) Блин, это все дело в настройках конфига.
1607685558219.png
Если поставить там галку, то тогда действительно авто-флоат работает даже после функции addbyname. Блин, черти что :( Как теперь скрипты писать...
 
В рипере по дефолту там тоже ничего не стоит. Короче надо Warn сделать, что настройку скрипт снимет, другого выхода нет.
 
Так что я не понимаю, один трек, не один трек, какая разница. Ну да ладно, не понимаю, так не понимаю.
Если есть желание, то сделай гиф, при каких условиях скрипт откроет что то неадекватно, если убрать код ниже "AddByName". Просто самому интересно стало, что я понять не могу.:)
Параметр который надо настроить называется fxfloat_focus, судя по всему в битах записан, если разберешься как менять его через reaper.SNM_SetIntConfigVar, то напиши пожалуйста, я пока отойду от компа :)
 

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