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

  • Автор темы Автор темы @Michael
  • Дата начала Дата начала
А что это ?
он не отслеживает состояние режимов и начинает работать инвертированно, т.е. неправильно в следующих ситуациях: 1. Если изменить режим не с помощью экшна, а вручную в меню
У меня почему то не начинает работать инвертировано, просто если ты в менюшке поменяешь значение, то кнопка у тебя как горела, так и останется гореть, но если ты нажмешь на кнопку, то она потухнет, но значения в менюшке не поменяются и ни как не будет работать инвертировано.
Но раз говоришь что у тебя инвертируется, то попробуй так
171963
 
@Дима Горелик, Archie_Render; Render stems Template(`).lua
Шаблон Рендера треков с настройками на все случаи жизни))
Кому зашел данный скрипт, не стесняйтесь нажимать кнопочку Donate: Спасибо!
--------------------

Archie_FX; Offline all Fx in project with delay (PDC) over 256 samples(`).lua

спасибо! задонатил чуток ))

а что Archie_Render; Render stems Template(`).lua делает?
я его попробовал - просто делает стэмы выделенных дорог... верно?
 
  • Like
Реакции: Archie's
@vax Привет, Андрей. Нет, он делает рендер стемов 1xoffline Render ExtremeHQ, в состоянии префейдера. Дело в том, что кроме обычного удобства данного скрипта, и очевидного качества рендера 1xoffline (кстати это чистая аномалия, разработчики судя по всему не знают, почему этот рендер лучше, но это очень многие тестировали и слышат разницу) есть ещё один ньюанс. Судя по всему отличается аудио посланное на карту через pre-fader и через post fader. (По результатам тестов моих, Shibata (Юрий Ильин), J.F.O. и других они отличаются даже по громкости. Даже когда fader, pan и pan law в 0. Что заставило меня подумать, а как можно прорендерить Pre-Master или просто трек до фейдера и панорамы в 1xOffline? При помощи этого скрипта это стало возможно.
 
Последнее редактирование:
  • Like
Реакции: Archie's и vax
@vax не совсем. Ты пользуешься как минимум одним сендом. Master track на звуковую карту. Во вторых по сути дела folder это тот же сенд. Так вот, если будет время, можешь поменять мастер трек, на пре-мастер (многие так делают, по очень разным причинам, но не в этом суть). С мастер трека удалить hardware output. И поставить hardware output на pre-master. И потвикать - pre-fader и post fader (при том что всё в 0). Хоть мы и занимаемся разной музыкой, я почти уверен, что ты услышишь разницу и большую (они отличаются даже по громкости). Так вот, на данном этапе pre-fader мне нравится больше, и я хочу рендерить именно его.
 
  • Like
Реакции: Archie's и vax
мне когда-то написали экшен, чтобы при засолированной дороге, я мог стрелками вверх-вниз менять фокус соло.
типа, выделил дорогу, нажал s (засолировал) и стрелками up/down переключаюсь между дорогами в режиме соло, прослушиваю их..

Script: X-Raym_Select previous visible track only with conditional solo exclusive.eel
Script: X-Raym_Select next visible track only with conditional solo exclusive.eel

автор скрипта сказал, что всё сделал, но на больших проектах будет тормозить.
так оно и происходит! ))

можно ли как-то поправить/оптимизировать/переделать?

спс
 
спасибо! задонатил чуток ))
Спасибо!
а что Archie_Render; Render stems Template(`).lua делает?
я его попробовал - просто делает стэмы выделенных дорог... верно?
Верно - делает только стемы, но очень гибко настраивается внутри, т.е. практически все настройки с рендер окна, рендер в один трек, рендер не в один трек, через мастер, не через мастер или просто мастер при выделении, PreFx, PostFx, PrePan,PostPan, PreFade, PostFade и т.д. Я его просто сделал шаблоном, что бы каждый копировал необходимое количество раз и настраивал под свои нужды.

можно ли как-то поправить/оптимизировать/переделать?
Нет, к сожалению этот скрипт быстрее сделать не получился.


Нашёл вот что - окно не появляется.
Не появляется - потому что ты ввел неверное значение, я же примеры специально в описании сделал типа =1, =0, = true, ='-stem-'.
Обрати внимание на кавычки, true, false и номера пишешь без кавычек, а строки в кавычках.
 
Как сделать кнопку, чтобы последний прослушанный файл с media explorer открылся в ReaSamplOmatic5000?
PS. нашел похожее, Script: mpl_Open and Close Media Explorer when single item is inserted, export chromatically to RS5k (background).lua
но одной кнопкой было бы удобнее.
 
Спасибо!

Верно - делает только стемы, но очень гибко настраивается внутри, т.е. практически все настройки с рендер окна, рендер в один трек, рендер не в один трек, через мастер, не через мастер или просто мастер при выделении, PreFx, PostFx, PrePan,PostPan, PreFade, PostFade и т.д. Я его просто сделал шаблоном, что бы каждый копировал необходимое количество раз и настраивал под свои нужды.

а как настроить? вот мне интересно через мастер прогонять стемы.
но когда я скрипт запускаю, он просто ренедерит стемы, никакого диалогового окна для настройки нет (
 
а как настроить? вот мне интересно через мастер прогонять стемы.
но когда я скрипт запускаю, он просто ренедерит стемы, никакого диалогового окна для настройки нет (
Да, окон для настройки нет, редактировать надо внутри скрипта. Можно конечно было нарисовать Gui для этих настроек и что бы он автоматом копировал настроенный скрипт, но это будет бесполезный и очень огромный код. Я думаю проще ручками скопировать и исправить несколько цифр в скрипте, чем писать код в тысячу строк, только для того, что бы скрипт автоматом копировался.
А запускать из gui - это получится своего рода второе своеобразное окно рендера, с постоянными настройками, что можно сделать и через окно рендера и потом переместить что куда нужно. Так что я сразу затачивал скрипт, что бы он работал от одной кнопки.

Загляни внутрь скрипта, там увидишь список с настройками, которые можно редактировать. Пробегись по всему списку и настрой под свою задачу. Далее скопируй скрипт, обзови его в соответствии с настройками (можно конечно не копировать, но если я что то обновлю в скрипте и ты обновишь реапак, то твои редактирования сбросятся). Для следующей (другой) задачи так же настраиваешь, копируешь, все тоже самое.
172087



172088
 
Последнее редактирование:
  • Like
Реакции: Subers, sve и vax
открыл Archie_Render; Render stems Template(`) и ВОЗРАДОВАЛСЯ! ))

возникли вопросы )
1) а можно сделать так, чтобы дороги рендерились в папку РЯДОМ с файлом проекта rpp?
2) можно сделать так, чтобы рендер треков только в файл происходил и дороги НЕ ВСТАВЛЯЛИСЬ потом в проект?
3) можно сделать, чтобы при экспорте имя такое же было как у дорожек, только с припиской render? а то у меня "-stem--001" и тд
 
А что это ?

У меня почему то не начинает работать инвертировано, просто если ты в менюшке поменяешь значение, то кнопка у тебя как горела, так и останется гореть, но если ты нажмешь на кнопку, то она потухнет, но значения в менюшке не поменяются и ни как не будет работать инвертировано.
Но раз говоришь что у тебя инвертируется, то попробуй так
Посмотреть вложение 171963
Не заработало так. Тогл это то что само отслеживает состояние вкл/выкл функций которые в него входят, если я меняю это состояние через меню тогл самостоятельно отслеживает эту смену и сам нажимается/отжимается, здесь этого не происходит. Если мне это нужно делать каждый раз самому вручную это не имеет смысла, т.к. смысл сделать всё в один клик. Зайти в меню, посмотреть какой там выбран пункт, и если он не совпадает, вручную дважды нажать/отжать кнопку экшна, т.к. при первом клике ничего не произойдет, и опять зайти в меню чтобы убедиться что кнопка приняла правильное значение это 4 действия при каждом открытии проекта
 
возникли вопросы )
1) а можно сделать так, чтобы дороги рендерились в папку РЯДОМ с файлом проекта rpp?
2) можно сделать так, чтобы рендер треков только в файл происходил и дороги НЕ ВСТАВЛЯЛИСЬ потом в проект?
3) можно сделать, чтобы при экспорте имя такое же было как у дорожек, только с припиской render? а то у меня "-stem--001" и тд
Все добавил.
1) задай имя директории пробел
172091

2) Добавил параметр
172092

3) задай имя
172095
, можно все спецсимволы использовать из окна рендера типа "$track - $day$month$year2".
 
  • Like
Реакции: sve и vax
В общем, потребовалось сделать 2 отдельных экшна, первый который меняет режимы, второй который отображает эту смену режимов на кнопке
 
Все добавил.
1) задай имя директории пробел Посмотреть вложение 172091
2) Добавил параметр Посмотреть вложение 172092
3) задай имя Посмотреть вложение 172095, можно все спецсимволы использовать из окна рендера типа "$track - $day$month$year2".

спасибо!!!

два момента
1) почему-то дорогу с МОНО ITEM-ом рендерит в стерео wav файл (я рендерю через МАСТЕР канал)
2) local Render_Directory = ' ' пробовал с пробелом и с именем директории. всё равно экспортит по пути, который у меня прописан в окне экспорта "render to file"... мне нужно чтобы создавалась рядом с файлом проекта папка !MULTI и туда экспортировались дороги.
export to folder near RPP.png
 
1) почему-то дорогу с МОНО ITEM-ом рендерит в стерео wav файл
Не знаю, у меня моно рендерит в моно вот гиф.
А вот это у тебя единица стоит ?
172111



2) local Render_Directory = ' ' пробовал с пробелом и с именем директории. всё равно экспортит по пути, который у меня прописан в окне экспорта "render to file"... мне нужно чтобы создавалась рядом с файлом проекта папка !MULTI и туда экспортировались дороги.
Да действительно, если в префах прописан путь целиком, то рендерит в ту папку.
Исправил.
В скрипте вроде понятно описал, путь проекта - это "XXRPP", т.е. в твоем случае путь должен выглядеть так "XXRPP/!MULTI"

ps Если скрипт не будет обновляться, то обнови через Browse packages, потому как я переписал старую версию и версия скрипта осталась прежней и простое обновление может не подцепить его, а скрипт обновился.
 
  • Like
Реакции: vax
(я рендерю через МАСТЕР канал)
Да действительно так и это баг рипера, с этим я ничего не смогу поделать.
Через рендр окно также рендерит, и рендер через мастер не обращает внимания на вот эти галки.
172123

Тут выход только один, на версии "через мастер" делать отдельные копии на моно/стерео и выставлять в настройках конкретные каналы
172125
 
  • Like
Реакции: vax
Да действительно, если в префах прописан путь целиком, то рендерит в ту папку.
Исправил.
В скрипте вроде понятно описал, путь проекта - это "XXRPP", т.е. в твоем случае путь должен выглядеть так "XXRPP/!MULTI"

ps Если скрипт не будет обновляться, то обнови через Browse packages, потому как я переписал старую версию и версия скрипта осталась прежней и простое обновление может не подцепить его, а скрипт обновился.

Спасибо! Задонатил чуток! ))
 
  • Like
Реакции: Archie's
Спасибо! Задонатил чуток! ))
Большое Спасибо!

Тогл это то что само отслеживает состояние вкл/выкл функций которые в него входят, если я меняю это состояние через меню тогл самостоятельно отслеживает эту смену и сам нажимается/отжимается, здесь этого не происходит.
Нет, нет и еще раз нет !!!
Toggle - это всего лишь переключатель, всего лишь кнопочка on/off и не более, т.е. тоже самое что у тебя дома в стене включает - выключает свет. Как подключил, так и будет работать. Подключишь наоборот, он и будет работать наоборот, замкнешь - взорвется все к чертям, ну а если сделаешь так же второй выключатель, то он не будет работать без первого, так что ничего он не отслеживает и не должен.
А отслеживает уже система автоматического мониторинга и это уже абсолютно другой прибор (или код или функция)!
Держи, не умеешь ты мотивировать.
JavaScript:
    --41329 Options: New recording creates new media items in separate lanes (layers)
    --41330 Options: New recording splits existing items and creates new takes (default)
    -- reaper.Main_OnCommand( command, flag )
    
    
    -------------------------------------------------
    function no_undo()reaper.defer(function()end)end;
    -------------------------------------------------
    
    local Toggle = reaper.GetToggleCommandStateEx(0,41329);
    if Toggle == 0 then;
        reaper.Main_OnCommand(41329,0);
    else;
        reaper.Main_OnCommand(41330,0);
    end;
    
    
    local ActiveOn,ActiveOff;
    local ActiveDoubleScr,stopDoubleScr;
    local _,extnameProj,sec,cmd,_,_,_ = reaper.get_action_context();
  
  
    local function loop();
      
        ----- stop Double Script -------
        if not ActiveDoubleScr then;
            stopDoubleScr = (tonumber(reaper.GetExtState(extnameProj,"stopDoubleScr"))or 0)+1;
            reaper.SetExtState(extnameProj,"stopDoubleScr",stopDoubleScr,false);
            ActiveDoubleScr = true;
        end;
      
        local stopDoubleScr2 = tonumber(reaper.GetExtState(extnameProj,"stopDoubleScr"));
        if stopDoubleScr2 > stopDoubleScr then  return  end;
        --------------------------------
      
        local Toggle = reaper.GetToggleCommandStateEx(0,41329);
      
        if Toggle == 0 then;
            if not ActiveOff then;
                reaper.SetToggleCommandState(sec,cmd,0);
                reaper.RefreshToolbar2(sec, cmd);
                ActiveOn = nil;
                ActiveOff = true;
            end;
        else;
            if not ActiveOn then;
                reaper.SetToggleCommandState(sec,cmd,1);
                reaper.RefreshToolbar2(sec, cmd);
                ActiveOff = nil;
                ActiveOn = true;
            end;
        end;
        reaper.defer(loop);
    end;
  
   loop();
   no_undo();
 
  • Like
Реакции: vax
требуется automation item load and stretch to selection )))

нужно реализовать:
1) загрузку automation item-a с заданным именем в выделенную область на выделенный automation трек
2) stretch automation item-a по выделенной области, так как иногда это пол такта, иногда 4 такта и тд..
automation item load and stretch to selection.png
 
вопрос по загрузке темплейтов

когда загружаю project template через file -> project templates, при нажатии на ctrl+s Рипер спрашивает куда сохранять новый проект.
если пользуюсь скриптом Xenakios/SWS: [Deprecated] Load project template , то при нажатии ctrl+s Рипер пишет сразу поверх template файла, что дико не удобно.
это как-то лечится или надо скрипт писать?
спс
 
  • Like
Реакции: YuriOl
Подскажите, может кто знает, как сделать такую штуку. Хочется, например, выделить item и сделать с него time selection, но таким хитрым образом, чтобы этот time selection был больше item-а на N-ое количество секунд как справа, так и слева. Пробовал искать в Reapack что-то не нашлось подходящего)
 
требуется automation item load and stretch to selection )))
Если только так через стандартное окно.
А что бы прописать путь в скрипте или сделать такую же менюшку, я не нашел способ, как загрузить итем в проект на трек.
JavaScript:
   local EnvTr = reaper.GetSelectedTrackEnvelope(0);
   if EnvTr then;
      
       reaper.PreventUIRefresh(1);
       reaper.Undo_BeginBlock();
      
       local startLoop,endLoop = reaper.GetSet_LoopTimeRange(0,0,0,0,0);
       local Cur = reaper.GetCursorPosition();
      
       reaper.GetSet_LoopTimeRange(1,0,9^9,(9^9)+1,0);
      
       reaper.Main_OnCommand(42082,0)--Insert automation item
       reaper.Main_OnCommand(42086,0)--Delete automation items
       reaper.GetSet_LoopTimeRange(1,0,startLoop,endLoop,0);
       reaper.SetEditCurPos(Cur,false,false);
      
       reaper.Main_OnCommand(42093,0)--load
      
       if startLoop ~= endLoop then;
          
           local CountAutoItem = reaper.CountAutomationItems(EnvTr);
           for i = 1,CountAutoItem do;
               local Sel = reaper.GetSetAutomationItemInfo(EnvTr,i-1,"D_UISEL",0,0);
               if Sel == 1 then;
                   reaper.GetSetAutomationItemInfo(EnvTr,i-1,"D_POSITION",startLoop,1);
                  
                   local leng = reaper.GetSetAutomationItemInfo(EnvTr,i-1,"D_LENGTH",0,0);
                   local rate =  reaper.GetSetAutomationItemInfo(EnvTr,i-1,"D_PLAYRATE",0,0);
                  
                   local timSel = endLoop - startLoop;
                   local NewRate = (leng * rate) / timSel;
                   reaper.GetSetAutomationItemInfo(EnvTr,i-1,"D_PLAYRATE",NewRate,1);
                   reaper.GetSetAutomationItemInfo(EnvTr,i-1,"D_LENGTH",timSel,1); 
               end;
           end;
       end;
       reaper.Undo_EndBlock("Insert and stretch automation item by time selection",-1);
       reaper.PreventUIRefresh(-1);
   end;
вопрос по загрузке темплейтов
Это уже как то обсуждали и на оф форум писали, но там не ответили.
Можно в принципе так попробовать
Где id_script вписываешь ид экшена Xenakios/SWS: [Deprecated] Load project template и так для каждого экшена (слота).
172212

JavaScript:
       local id_script = "_XENAKIOS_LOADPROJTEMPL01"
     
       reaper.Main_OnCommand(reaper.NamedCommandLookup(id_script),0);
       reaper.Main_SaveProject(0,true);
 
Последнее редактирование:
  • Like
Реакции: vax
@alexnineoff, :Dle37::Dle50::Dle7:
JavaScript:
    local Left =   0.2
    local Right = -0.2
    
    
    reaper.Undo_BeginBlock();
    reaper.PreventUIRefresh(1);
    
    local SelTrack = reaper.GetSelectedMediaItem(0,0);
    if not SelTrack then return end;
    
    reaper.Main_OnCommand(40290,0);
    
    local startLoop,endLoop = reaper.GetSet_LoopTimeRange(0,0,0,0,0);
    
    startLoop = startLoop - (Left or 0);
    if startLoop < 0 then startLoop = 0 end;
    
    endLoop = endLoop + (Right or 0);
    
    if startLoop > endLoop then endLoop = startLoop end
    reaper.GetSet_LoopTimeRange(1,0,startLoop,endLoop,0);
    
    reaper.PreventUIRefresh(-1);
    reaper.Undo_EndBlock("Tine sel",-1);
 
Если только так через стандартное окно.
А что бы прописать путь в скрипте или сделать такую же менюшку, я не нашел способ, как загрузить итем в проект на трек.
JavaScript:
   local EnvTr = reaper.GetSelectedTrackEnvelope(0);
   if EnvTr then;
     
       reaper.PreventUIRefresh(1);
       reaper.Undo_BeginBlock();
     
       local startLoop,endLoop = reaper.GetSet_LoopTimeRange(0,0,0,0,0);
       local Cur = reaper.GetCursorPosition();
     
       reaper.GetSet_LoopTimeRange(1,0,9^9,(9^9)+1,0);
     
       reaper.Main_OnCommand(42082,0)--Insert automation item
       reaper.Main_OnCommand(42086,0)--Delete automation items
       reaper.GetSet_LoopTimeRange(1,0,startLoop,endLoop,0);
       reaper.SetEditCurPos(Cur,false,false);
     
       reaper.Main_OnCommand(42093,0)--load
     
       if startLoop ~= endLoop then;
         
           local CountAutoItem = reaper.CountAutomationItems(EnvTr);
           for i = 1,CountAutoItem do;
               local Sel = reaper.GetSetAutomationItemInfo(EnvTr,i-1,"D_UISEL",0,0);
               if Sel == 1 then;
                   reaper.GetSetAutomationItemInfo(EnvTr,i-1,"D_POSITION",startLoop,1);
                 
                   local leng = reaper.GetSetAutomationItemInfo(EnvTr,i-1,"D_LENGTH",0,0);
                   local rate =  reaper.GetSetAutomationItemInfo(EnvTr,i-1,"D_PLAYRATE",0,0);
                 
                   local timSel = endLoop - startLoop;
                   local NewRate = (leng * rate) / timSel;
                   reaper.GetSetAutomationItemInfo(EnvTr,i-1,"D_PLAYRATE",NewRate,1);
                   reaper.GetSetAutomationItemInfo(EnvTr,i-1,"D_LENGTH",timSel,1);
               end;
           end;
       end;
       reaper.Undo_EndBlock("Insert and stretch automation item by time selection",-1);
       reaper.PreventUIRefresh(-1);
   end;

Это уже как то обсуждали и на оф форум писали, но там не ответили.
Можно в принципе так попробовать
Где id_script вписываешь ид экшена Xenakios/SWS: [Deprecated] Load project template и так для каждого экшена (слота).
Посмотреть вложение 172212
JavaScript:
       local id_script = "_XENAKIOS_LOADPROJTEMPL01"
    
       reaper.Main_OnCommand(reaper.NamedCommandLookup(id_script),0);
       reaper.Main_SaveProject(0,true);

СПАСИБО!!! Задонатил чуток!
 
  • Like
Реакции: Archie's
@vax, Что подошел такой вариант ? Просто я позже увидел твой скрин, где ты указываешь на mute и подумал что тебе такой вариант не подойдет, что ты хочешь прописать имя внутри скрипта, что бы мьютить горячей клавишей.
СПАСИБО!!! Задонатил чуток!
Спасибо большое - но что то ничего не приходило(.
 
Последнее редактирование:
@vax, Что подошел такой вариант ? Просто я позже увидел твой скрин, где ты указываешь на mute и подумал что тебе такой вариант не подойдет, что ты хочешь прописать имя внутри скрипта, что бы мьютить горячей клавишей.

Спасибо большое - но что то ничего не приходило(.

За неимением других вариантов, подошёл этот ))
Проверил - действительно транзакция не прошла (
В понедельник ещё раз задонатю, со смартфона не вижу ссылки.
 
  • Like
Реакции: Archie's
@alexnineoff, :Dle37::Dle50::Dle7:
JavaScript:
    local Left =   0.2
    local Right = -0.2
   
   
    reaper.Undo_BeginBlock();
    reaper.PreventUIRefresh(1);
   
    local SelTrack = reaper.GetSelectedMediaItem(0,0);
    if not SelTrack then return end;
   
    reaper.Main_OnCommand(40290,0);
   
    local startLoop,endLoop = reaper.GetSet_LoopTimeRange(0,0,0,0,0);
   
    startLoop = startLoop - (Left or 0);
    if startLoop < 0 then startLoop = 0 end;
   
    endLoop = endLoop + (Right or 0);
   
    if startLoop > endLoop then endLoop = startLoop end
    reaper.GetSet_LoopTimeRange(1,0,startLoop,endLoop,0);
   
    reaper.PreventUIRefresh(-1);
    reaper.Undo_EndBlock("Tine sel",-1);
Спасибо за скрипт. Только он странно работает. При его запуске Time Selection просто смещается влево немного, правая граница тоже. Так что это не "расширение", а перемещение, грубо говоря)
 
Спасибо за скрипт. Только он странно работает. При его запуске Time Selection просто смещается влево немного, правая граница тоже. Так что это не "расширение", а перемещение, грубо говоря)
Вот здесь установи отступы какие нужно, я сделал такие отступы, что бы понятно было что они могут быть отрицательными.
172279
 
Последнее редактирование:
  • Like
Реакции: vax

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