Archie-reascript: обсуждение, пожелания, сообщения об ошибках. (1 онлайн

Maestro Sound

Active Member
1 Ноя 2007
721
86
28
@Archchie, Есть еще затребованость к скрипту inputFx Select Track А ИМЕННО. Нажимаем скрит и Выделенный трек-Треки активируются на запись (если не активированы ранее) активируется мониторинг и если в pre inputFx @не FX@ есть плагины , они становятся в рабочее состояние все разбайпасено и в работе . При повторном нажатии скрипта если выделенный трек в режиме записи, снять запись, снять мониторинг ( и по выбору пользователя Увести эффекты опять же если они присутствуют в pre inputFx, или в байпас или в офлайн или игнорим действие)
 
Последнее редактирование:

Andernik

Active Member
7 Апр 2009
338
207
43
Привет! Есть такие экшены SWS/S&M: Dummy toggle 1, 2, 3... Они к сожалению не запоминают своего положения, даже если включаешь Dummy и сохраняешь файл как темплет, при открытии они всегда в выключенном состоянии. Может сделаете десяток своих Dummy без этой проблемы? Так же было бы полезно кроме Toggle, сделать к каждой ещё по екшену на простое ON и OFF
Archchie Dummy toggle 1, Archchie Dummy 1 ON, Archchie Dummy 1 OFF
Спасибо.
 

Archie's

Well-Known Member
24 Окт 2017
1.936
1.296
113
@Andernik, Привет!
К сожалению Рипер так же не запоминает состояние скриптов и при перезагрузке Рипера все скрипты всегда так же в выключенном состоянии.
Кроме того, Sws не умеет видеть состояние скриптов и если даже сделать скрипты манекены, то они никогда не будут работать в цикл экшенах, а поэтому нету смысла их делать, т.к. они будут бесполезны, т.к. эти скрипты как правило и годятся только для цикл экшенов.
-------------------------------
Как вариант - Используй это:
1. Добавь скрипт в рипер.
PHP:
-- Monitoring state dummy action





    local Dummy_1 = tonumber(reaper.GetExtState("Dummy_toggle_1_@","key_Dummy_toggle_1_")) or 0;
    local Dummy_2 = tonumber(reaper.GetExtState("Dummy_toggle_2_@","key_Dummy_toggle_2_")) or 0;
    local Dummy_3 = tonumber(reaper.GetExtState("Dummy_toggle_3_@","key_Dummy_toggle_3_")) or 0;
    local Dummy_4 = tonumber(reaper.GetExtState("Dummy_toggle_4_@","key_Dummy_toggle_4_")) or 0;
    local Dummy_5 = tonumber(reaper.GetExtState("Dummy_toggle_5_@","key_Dummy_toggle_5_")) or 0;
    local Dummy_6 = tonumber(reaper.GetExtState("Dummy_toggle_6_@","key_Dummy_toggle_6_")) or 0;
    local Dummy_7 = tonumber(reaper.GetExtState("Dummy_toggle_7_@","key_Dummy_toggle_7_")) or 0;
    local Dummy_8 = tonumber(reaper.GetExtState("Dummy_toggle_8_@","key_Dummy_toggle_8_")) or 0;

    local
    StartProject_dummy_1,StartProject_dummy_2,StartProject_dummy_3,StartProject_dummy_4,
    StartProject_dummy_5,StartProject_dummy_6,StartProject_dummy_7,StartProject_dummy_8,
    Toggle_Dummy_1_X,Toggle_Dummy_2_X,Toggle_Dummy_3_X,Toggle_Dummy_4_X,
    Toggle_Dummy_5_X,Toggle_Dummy_6_X,Toggle_Dummy_7_X,Toggle_Dummy_8_X;
 
    local function loop();
       
        if not StartProject_dummy_1 then;
            local Toggle_Dummy_1 = reaper.GetToggleCommandState(reaper.NamedCommandLookup("_S&M_DUMMY_TGL1"));
            if Dummy_1 ~= Toggle_Dummy_1 then;
                reaper.Main_OnCommand(reaper.NamedCommandLookup("_S&M_DUMMY_TGL1"),-1);
            end;
            StartProject_dummy_1 = true;
        end;
         
        local Toggle_Dummy_1 = reaper.GetToggleCommandState( reaper.NamedCommandLookup("_S&M_DUMMY_TGL1"));
        if Toggle_Dummy_1 ~= Toggle_Dummy_1_X then;
            reaper.SetExtState("Dummy_toggle_1_@","key_Dummy_toggle_1_",Toggle_Dummy_1,true);
            Toggle_Dummy_1_X = Toggle_Dummy_1;
        end;
        --------------
       
   
        if not StartProject_dummy_2 then;
            local Toggle_Dummy_2 = reaper.GetToggleCommandState(reaper.NamedCommandLookup("_S&M_DUMMY_TGL2"));
            if Dummy_2 ~= Toggle_Dummy_2 then;
                reaper.Main_OnCommand(reaper.NamedCommandLookup("_S&M_DUMMY_TGL2"),-1);
            end;
            StartProject_dummy_2 = true;
        end;
         
        local Toggle_Dummy_2 = reaper.GetToggleCommandState( reaper.NamedCommandLookup("_S&M_DUMMY_TGL2"));
        if Toggle_Dummy_2 ~= Toggle_Dummy_2_X then;
            reaper.SetExtState("Dummy_toggle_2_@","key_Dummy_toggle_2_",Toggle_Dummy_2,true);
            Toggle_Dummy_2_X = Toggle_Dummy_2;
        end;
        --------------
   
   
        if not StartProject_dummy_3 then;
            local Toggle_Dummy_3 = reaper.GetToggleCommandState(reaper.NamedCommandLookup("_S&M_DUMMY_TGL3"));
            if Dummy_3 ~= Toggle_Dummy_3 then;
                reaper.Main_OnCommand(reaper.NamedCommandLookup("_S&M_DUMMY_TGL3"),-1);
            end;
            StartProject_dummy_3 = true;
        end;
         
        local Toggle_Dummy_3 = reaper.GetToggleCommandState( reaper.NamedCommandLookup("_S&M_DUMMY_TGL3"));
        if Toggle_Dummy_3 ~= Toggle_Dummy_3_X then;
            reaper.SetExtState("Dummy_toggle_3_@","key_Dummy_toggle_3_",Toggle_Dummy_3,true);
            Toggle_Dummy_3_X = Toggle_Dummy_3;
        end;
        --------------
   
   
        if not StartProject_dummy_4 then;
            local Toggle_Dummy_4 = reaper.GetToggleCommandState(reaper.NamedCommandLookup("_S&M_DUMMY_TGL4"));
            if Dummy_4 ~= Toggle_Dummy_4 then;
                reaper.Main_OnCommand(reaper.NamedCommandLookup("_S&M_DUMMY_TGL4"),-1);
            end;
            StartProject_dummy_4 = true;
        end;
         
        local Toggle_Dummy_4 = reaper.GetToggleCommandState( reaper.NamedCommandLookup("_S&M_DUMMY_TGL4"));
        if Toggle_Dummy_4 ~= Toggle_Dummy_4_X then;
            reaper.SetExtState("Dummy_toggle_4_@","key_Dummy_toggle_4_",Toggle_Dummy_4,true);
            Toggle_Dummy_4_X = Toggle_Dummy_4;
        end;
        --------------
   
   
        if not StartProject_dummy_5 then;
            local Toggle_Dummy_5 = reaper.GetToggleCommandState(reaper.NamedCommandLookup("_S&M_DUMMY_TGL5"));
            if Dummy_5 ~= Toggle_Dummy_5 then;
                reaper.Main_OnCommand(reaper.NamedCommandLookup("_S&M_DUMMY_TGL5"),-1);
            end;
            StartProject_dummy_5 = true;
        end;
         
        local Toggle_Dummy_5 = reaper.GetToggleCommandState( reaper.NamedCommandLookup("_S&M_DUMMY_TGL5"));
        if Toggle_Dummy_5 ~= Toggle_Dummy_5_X then;
            reaper.SetExtState("Dummy_toggle_5_@","key_Dummy_toggle_5_",Toggle_Dummy_5,true);
            Toggle_Dummy_5_X = Toggle_Dummy_5;
        end;
        --------------
   
   
        if not StartProject_dummy_6 then;
            local Toggle_Dummy_6 = reaper.GetToggleCommandState(reaper.NamedCommandLookup("_S&M_DUMMY_TGL6"));
            if Dummy_6 ~= Toggle_Dummy_6 then;
                reaper.Main_OnCommand(reaper.NamedCommandLookup("_S&M_DUMMY_TGL6"),-1);
            end;
            StartProject_dummy_6 = true;
        end;
         
        local Toggle_Dummy_6 = reaper.GetToggleCommandState( reaper.NamedCommandLookup("_S&M_DUMMY_TGL6"));
        if Toggle_Dummy_6 ~= Toggle_Dummy_6_X then;
            reaper.SetExtState("Dummy_toggle_6_@","key_Dummy_toggle_6_",Toggle_Dummy_6,true);
            Toggle_Dummy_6_X = Toggle_Dummy_6;
        end;
        --------------
   
   
        if not StartProject_dummy_7 then;
            local Toggle_Dummy_7 = reaper.GetToggleCommandState(reaper.NamedCommandLookup("_S&M_DUMMY_TGL7"));
            if Dummy_7 ~= Toggle_Dummy_7 then;
                reaper.Main_OnCommand(reaper.NamedCommandLookup("_S&M_DUMMY_TGL7"),-1);
            end;
            StartProject_dummy_7 = true;
        end;
         
        local Toggle_Dummy_7 = reaper.GetToggleCommandState( reaper.NamedCommandLookup("_S&M_DUMMY_TGL7"));
        if Toggle_Dummy_7 ~= Toggle_Dummy_7_X then;
            reaper.SetExtState("Dummy_toggle_7_@","key_Dummy_toggle_7_",Toggle_Dummy_7,true);
            Toggle_Dummy_7_X = Toggle_Dummy_7;
        end;
        --------------
   
   
        if not StartProject_dummy_8 then;
            local Toggle_Dummy_8 = reaper.GetToggleCommandState(reaper.NamedCommandLookup("_S&M_DUMMY_TGL8"));
            if Dummy_8 ~= Toggle_Dummy_8 then;
                reaper.Main_OnCommand(reaper.NamedCommandLookup("_S&M_DUMMY_TGL8"),-1);
            end;
            StartProject_dummy_8 = true;
        end;
         
        local Toggle_Dummy_8 = reaper.GetToggleCommandState(reaper.NamedCommandLookup("_S&M_DUMMY_TGL8"));
        if Toggle_Dummy_8 ~= Toggle_Dummy_8_X then;
            reaper.SetExtState("Dummy_toggle_8_@","key_Dummy_toggle_8_",Toggle_Dummy_8,true);
            Toggle_Dummy_8_X = Toggle_Dummy_8;
        end;
        --------------
       
         reaper.defer(loop);
    end; 

    loop();
2. Добавь этот скрипт в автозапуск проекта.
upload_2019-3-3_1-9-13.png
3. Запусти этот скрипт из экшен листа, для того, что бы он запомнил данное состояние экшенов dummy (если этого не сделать, то скрипт правильно заработает только после второй перезагрузки).
---
Все готово, больше этот скрипт никогда не трогай т.к. он в автозапуске и теперь этот скрипт будет следить за экшенами dummy и при запуске рипера скрипт будет всегда возвращать состояние dummy которое было на момент выключения рипера.
Далее сохраняешь project templates и Все.
 

Andernik

Active Member
7 Апр 2009
338
207
43
Спасибо! Я думаю будет проще добавить в автозапуск Dummy toggle 1 если нужно чтоб по умолчанию он был включен ))
 
  • Like
Реакции: Archie's

Archie's

Well-Known Member
24 Окт 2017
1.936
1.296
113
Спасибо! Я думаю будет проще добавить в автозапуск Dummy toggle 1 если нужно чтоб по умолчанию он был включен ))
Проще - если только надо что бы он всегда был включен при запуске, а если у него состояние всегда разное и его надо сохранить, то тогда не проще. ))
 

Andernik

Active Member
7 Апр 2009
338
207
43
Вот так у меня настроено, Если Dummy toggle 1 включена, то при выделении айтема создаётся и тайм селекшн на длинну айтема и курсор прыгает в начало айтема. На самом деле очень удобно, такое же поведение в Ableton.
Снимок экрана 2019-03-02 в 22.42.12.png
[DOUBLEPOST=1551548988][/DOUBLEPOST]
Проще - если только надо что бы он всегда был включен при запуске, а если у него состояние всегда разное и его надо сохранить, то тогда не проще. ))
Да, это я понял )) Спасибо
 

Maestro Sound

Active Member
1 Ноя 2007
721
86
28
@rocki,
Раз не можешь разобраться с кастомом, а с тем скриптом разобрался, то на держи, если тебе так удобнее.
Добавляет Fx по имени в выделенные треки и на Мастер трек и открывает эти Fx
MasterFx = пишешь имя плагина на мастер трек
Track_FX = пишешь имя плагина на обычный трек
PHP:
local MasterFx = "ReaEQ (Cockos)"
local Track_FX = "ReaEQ (Cockos)"


reaper.Undo_BeginBlock()
local
Master_tr = reaper.GetMasterTrack(0)
local Sel = reaper.IsTrackSelected(Master_tr)
if Sel then
    local Idx = reaper.TrackFX_AddByName(Master_tr,MasterFx,false,-1)
    reaper.TrackFX_Show(Master_tr,Idx,3)
end

--[
local TrackCount = reaper.CountSelectedTracks(0)
for i = 1,TrackCount do
    local track = reaper.GetSelectedTrack(0, i-1)
    local Idx = reaper.TrackFX_AddByName(track,Track_FX,false,-1)
    reaper.TrackFX_Show(track,Idx,3)
end
reaper.Undo_EndBlock("Insert FX Plugin",0)
С этим думаю разберешься, раз с предыдущим скриптом разобрался.
ЧУДНЫЙ СКРИПТ . А НЕЛЬЗЯ ЕГО НЕМНОГО УСОВЕРШЕНСТВОВАТЬ. Править самому . При добавлении закрывать окна уже открытых FX или оставлять. Открывать или не открывать добавленный FX. Ставить первым в списке или последним....... Скрипт удобен тем, что можно несколько инстанции одного и того же плагина добавлять на трек или мастертрек
 
Последнее редактирование:

Archie's

Well-Known Member
24 Окт 2017
1.936
1.296
113
ЧУДНЫЙ СКРИПТ . А НЕЛЬЗЯ ЕГО НЕМНОГО УСОВЕРШЕНСТВОВАТЬ.
МОЖНО.
При добавлении закрывать окна уже открытых FX или оставлять.
Закрывать все открытые FX в проекте или закрывать только у выделенных треков?
Скрипт удобен тем, что можно несколько инстанции одного и того же плагина добавлять на трек или мастертрек
Так через обычный экшен (который делаем через шорткат ) тоже же можно добавлять несколько инстанции одного и того же плагина.
 
Последнее редактирование:

Maestro Sound

Active Member
1 Ноя 2007
721
86
28
............Закрывать все открытые FX в проекте? ДА

посмотрите моё сообщение в той теме, откуда вы цитату взяли
Я вкурсе шоткатов....... Но помницццца при добавлении этой фишки (шоткат на FX) я проверки ради Забил N количество FXсов шоткат . И при достижении определенного количества (много но не помню сколько) Шоткаты перестали назначаться - видимо есть лимит.......... и все же Скрипты мне больше по душе
 

Archie's

Well-Known Member
24 Окт 2017
1.936
1.296
113
@Maestro Sound,
Кстати - есть же уже скрипт добавить FX, и по твоей же просьбе сделанный
"Archie_FX; Add Fx by Name in selected tracks (a description of settings inside script)(`).lua"
--------------------------
PHP:
--[[
   * Category:    FX
   * Description: Add Fx by name to selected tracks + Master track
   * Author:      Archie
   * Version:     1.0
   * AboutScript: Add Fx by name to selected tracks + Master track
   * О скрипте:   Добавить Fx по имени в выбранные треки + Мастер трек
   * GIF:         ---
   * Website:     http://forum.cockos.com/showthread.php?t=212819
   * Donation:    http://money.yandex.ru/to/410018003906628
   * Customer:    Maestro Sound(Rmm/forum)
   * Gave idea:   Maestro Sound(Rmm/forum)
   * Changelog: 
   *              +  initialе / v.1.0 [27032019]
   --=====================================================================================]]




    --======================================================================================
    --////////////  НАСТРОЙКИ  \\\\\\\\\\\\  SETTINGS  ////////////  НАСТРОЙКИ  \\\\\\\\\\\\
    --======================================================================================
 
 
 
 
    -- префикс, обозначающий тип "VST3:,VST2:,VST:,AU:,JS:, или DX:."
    -- с имени нужно удалить.
    -- Пример:"VST: ReaEQ (Cockos)"- неправильно, "ReaEQ (Cockos)"- правильно.
       ----------------------------------------------------------------------
    -- the prefix denoting the type with the name should be removed
    -- "VST3:,VST2:,VST:,AU:, JS:, or DX:.".
    -- Example: "VST: ReaEQ (Cockos)"- is incorrect, "ReaEQ (Cockos)"- is correct.
    ------------------------------------------------------------------------------
   
 
 
    local MasterFx = "ReaEQ (Cockos)"
                 -- Введите название плагина, который будет добавлен в мастер-трек
                 -- Enter the name of the plugin that will be added to the master track
                 ----------------------------------------------------------------------
 
 
    local Track_FX = "ReaEQ (Cockos)"
                  -- Введите название плагина, который будет добавлен на трек
                  -- Enter the name of the plugin that will be added to the track
                  ---------------------------------------------------------------
 
               
    local Open_FX = 1
               -- = 0 Не открывать эффект
               -- = 1 Открыть эффект
                      --------------
               -- = 0 do not open Fx
               -- = 1 Open Fx
               --------------
 
 
    local Position_FX = -1
                   -- = -1 добавить Fx на последнюю позицию
                   --   Иначе установите номер Fx
                        -------------------------
                   --  = -1 add Fx to last position
                   --       Otherwise, set the Fx number
                   -------------------------------------
 
 
    local CloseAllFX = 1
                  -- = 0 Не закрывать все предыдущие(открытые) Fx
                  -- = 1 Закрыть все предыдущие(открытые) Fx
                         -----------------------------------
                  -- = 0 Do not close all previous (open) Fx
                  -- = 1 Close all previous (open) Fx
                  -----------------------------------
               
 
 
 
    --======================================================================================
    --////////////// SCRIPT \\\\\\\\\\\\\\  SCRIPT  //////////////  SCRIPT  \\\\\\\\\\\\\\\\
    --======================================================================================
 
 
 
 
    -----------------------------------------------------------------------------
    local function No_Undo()end; local function no_undo()reaper.defer(No_Undo)end
    -----------------------------------------------------------------------------
 
 
 
    local countTrack = reaper.CountSelectedTracks2(0,true);
    if countTrack == 0 then no_undo() return end;
 
    reaper.PreventUIRefresh(1);
    reaper.Undo_BeginBlock();
 
 
    --------------
    if CloseAllFX == 1 then;
        local track,i;
        while countTrack do;
            i = (i or -2)+1;
            if i == -1 then;
                track = reaper.GetMasterTrack(0);
            else;
                track = reaper.GetTrack(0,i);
            end;
            if not track then break end;
            local countFx = reaper.TrackFX_GetCount(track);
            for j = 1, countFx do;
                reaper.TrackFX_SetOpen(track,j-1,0);
            end;
            if i == 100000 then break end;
        end;
    end;
    ----
 
 
    local TrackCount = reaper.CountSelectedTracks(0);
    for i = 0,TrackCount do;
        ----
        local track,name_FX;
        if i == 0 then;
            local Master_tr = reaper.GetMasterTrack(0);
            local Sel = reaper.IsTrackSelected(Master_tr);
            if Sel then;
                track = Master_tr;
                name_FX = MasterFx;
            end;
        else;
            track = reaper.GetSelectedTrack(0,i-1);
            name_FX = Track_FX;
        end;
        ----
        if track then;
         
            local Idx = reaper.TrackFX_AddByName(track,name_FX,false,-1);
            if Idx >= 0 then;
                ----
                if Position_FX > 0 then;
                    reaper.TrackFX_CopyToTrack(track,Idx,track,Position_FX-1,1);
                    local countFx = reaper.TrackFX_GetCount(track);
                 
                    if Position_FX > countFx then;
                        Idx = countFx-1;
                    else;
                        Idx = Position_FX-1;
                    end;
                end;
                ----
                if Open_FX == 1 then;
                    reaper.TrackFX_Show(track,Idx,3);
                end;
                ----
            end;
        end;
    end;
 
    reaper.Undo_EndBlock("Add Fx by name to selected tracks + Master track",-1);
    reaper.PreventUIRefresh(-1);
 
  • Like
Реакции: Maestro Sound

Maestro Sound

Active Member
1 Ноя 2007
721
86
28
@Maestro Sound,
Кстати - есть же уже скрипт добавить FX, и по твоей же просьбе сделанный
"Archie_FX; Add Fx by Name in selected tracks (a description of settings inside script)(`).lua"
--------------------------
PHP:
--[[
   * Category:    FX
   * Description: Add Fx by name to selected tracks + Master track
   * Author:      Archie
   * Version:     1.0
   * AboutScript: Add Fx by name to selected tracks + Master track
   * О скрипте:   Добавить Fx по имени в выбранные треки + Мастер трек
   * GIF:         ---
   * Website:     http://forum.cockos.com/showthread.php?t=212819
   * Donation:    http://money.yandex.ru/to/410018003906628
   * Customer:    Maestro Sound(Rmm/forum)
   * Gave idea:   Maestro Sound(Rmm/forum)
   * Changelog:
   *              +  initialе / v.1.0 [27032019]
   --=====================================================================================]]




    --======================================================================================
    --////////////  НАСТРОЙКИ  \\\\\\\\\\\\  SETTINGS  ////////////  НАСТРОЙКИ  \\\\\\\\\\\\
    --======================================================================================




    -- префикс, обозначающий тип "VST3:,VST2:,VST:,AU:,JS:, или DX:."
    -- с имени нужно удалить.
    -- Пример:"VST: ReaEQ (Cockos)"- неправильно, "ReaEQ (Cockos)"- правильно.
       ----------------------------------------------------------------------
    -- the prefix denoting the type with the name should be removed
    -- "VST3:,VST2:,VST:,AU:, JS:, or DX:.".
    -- Example: "VST: ReaEQ (Cockos)"- is incorrect, "ReaEQ (Cockos)"- is correct.
    ------------------------------------------------------------------------------
  


    local MasterFx = "ReaEQ (Cockos)"
                 -- Введите название плагина, который будет добавлен в мастер-трек
                 -- Enter the name of the plugin that will be added to the master track
                 ----------------------------------------------------------------------


    local Track_FX = "ReaEQ (Cockos)"
                  -- Введите название плагина, который будет добавлен на трек
                  -- Enter the name of the plugin that will be added to the track
                  ---------------------------------------------------------------

              
    local Open_FX = 1
               -- = 0 Не открывать эффект
               -- = 1 Открыть эффект
                      --------------
               -- = 0 do not open Fx
               -- = 1 Open Fx
               --------------


    local Position_FX = -1
                   -- = -1 добавить Fx на последнюю позицию
                   --   Иначе установите номер Fx
                        -------------------------
                   --  = -1 add Fx to last position
                   --       Otherwise, set the Fx number
                   -------------------------------------


    local CloseAllFX = 1
                  -- = 0 Не закрывать все предыдущие(открытые) Fx
                  -- = 1 Закрыть все предыдущие(открытые) Fx
                         -----------------------------------
                  -- = 0 Do not close all previous (open) Fx
                  -- = 1 Close all previous (open) Fx
                  -----------------------------------
              



    --======================================================================================
    --////////////// SCRIPT \\\\\\\\\\\\\\  SCRIPT  //////////////  SCRIPT  \\\\\\\\\\\\\\\\
    --======================================================================================




    -----------------------------------------------------------------------------
    local function No_Undo()end; local function no_undo()reaper.defer(No_Undo)end
    -----------------------------------------------------------------------------



    local countTrack = reaper.CountSelectedTracks2(0,true);
    if countTrack == 0 then no_undo() return end;

    reaper.PreventUIRefresh(1);
    reaper.Undo_BeginBlock();


    --------------
    if CloseAllFX == 1 then;
        local track,i;
        while countTrack do;
            i = (i or -2)+1;
            if i == -1 then;
                track = reaper.GetMasterTrack(0);
            else;
                track = reaper.GetTrack(0,i);
            end;
            if not track then break end;
            local countFx = reaper.TrackFX_GetCount(track);
            for j = 1, countFx do;
                reaper.TrackFX_SetOpen(track,j-1,0);
            end;
            if i == 100000 then break end;
        end;
    end;
    ----


    local TrackCount = reaper.CountSelectedTracks(0);
    for i = 0,TrackCount do;
        ----
        local track,name_FX;
        if i == 0 then;
            local Master_tr = reaper.GetMasterTrack(0);
            local Sel = reaper.IsTrackSelected(Master_tr);
            if Sel then;
                track = Master_tr;
                name_FX = MasterFx;
            end;
        else;
            track = reaper.GetSelectedTrack(0,i-1);
            name_FX = Track_FX;
        end;
        ----
        if track then;
        
            local Idx = reaper.TrackFX_AddByName(track,name_FX,false,-1);
            if Idx >= 0 then;
                ----
                if Position_FX > 0 then;
                    reaper.TrackFX_CopyToTrack(track,Idx,track,Position_FX-1,1);
                    local countFx = reaper.TrackFX_GetCount(track);
                
                    if Position_FX > countFx then;
                        Idx = countFx-1;
                    else;
                        Idx = Position_FX-1;
                    end;
                end;
                ----
                if Open_FX == 1 then;
                    reaper.TrackFX_Show(track,Idx,3);
                end;
                ----
            end;
        end;
    end;

    reaper.Undo_EndBlock("Add Fx by name to selected tracks + Master track",-1);
    reaper.PreventUIRefresh(-1);

Да но там нет Мастертрека
 

Maestro Sound

Active Member
1 Ноя 2007
721
86
28
@Archchie, Если можно , Добавь этому скрипту и влияние на мастер трек Add Fx by Name in selected tracks (a description of settings inside script)
 

Archie's

Well-Known Member
24 Окт 2017
1.936
1.296
113
Вопрос: можно ли сделать скрипты Script: !!!Archie_Track; ↑Move selected tracks in up on one и (down) так что бы они "молча" проходили мимо закрытых Трек-папок?
Совсем Забыл про тебя, что ты просил подправить скрипт! два месяца прошло уже :eek: и тут я вспомнил, что обещал посмотреть.:)
Обновил - Посмотри, может подойдет: Скрипты конечно не определяют свернуты папки или нет, как ты хотел в идеале, но все же определяют папки .
Archie_Track; Move selected tracks up by one visible(`).lua
Archie_Track; Move selected tracks down by one visible(`).lua
Работают также как и старые "↑Move selected tracks in up on one", только определяют скрытые треки, т.е. если скрыто например десять треков, то не будет такого как в старом - что он будет на одном месте стаять, пока ты десять раз нажмешь на него, (меняя только номер на треке).
------------------------
Archie_Track; Move selected tracks up by one visible (skip folders)(`).lua
Archie_Track; Move selected tracks down by one visible (skip folders)(`).lua
Перемещаемые треки не заходят в папки вообще, т.е. перепрыгивают через папки, так же определяют скрытые треки.
------------------------
Archie_Track; Move selected tracks up by one visible (request to skip folders)(`).lua
Archie_Track; Move selected tracks down by one visible (request to skip folders)(`).lua
Перед папкой спрашивают, перепрыгнуть папку или нет, так же определяют скрытые треки.
------------------------
Старые скрипты сломал!
 
  • Like
Реакции: smrz1

smrz1

Banned
25 Янв 2010
1.484
349
83
@Archchie, ого! Спасибо!!! Сейчас поюзаю... Как ни странно, именно сейчас работаю над проектом, прислали кучу треков, раскидываю какие треки в какие папки или мимо папок. Так сказать прямо в деле и посмотрю:rolleyes:
 
  • Like
Реакции: Archie's

smrz1

Banned
25 Янв 2010
1.484
349
83
@Archchie, "Старые скрипты сломал!" - старый скрипт, не только стоял перед скрытыми треками, меняя номера, но и как то мог сам скрываться (если скрытая папка попадалась) и перемещался только там, в Трек Менеджере... Но и польза от него (внутри папки) не малая!
По поводу новых - я объединил два их вида:
Первая пара - Move selected tracks up/down by one visible - эту пару я назначил на Alt+up/down, а на Alt+Shift+up/down назначил вторую пару: Move selected tracks up/down by one visible (skip folders).
Получается очень удобная штука - внутри папки двигаюсь с первой парой через Alt, а если надо прыгать через папку - добавляю Shift и "препятствие" преодолено!

Очень здорово что скрипты видят и обходят скрытые треки и папки - в начальной стадии работы я постоянно работаю с Трек-Менеджером и кучу треков и папок пригодиться скрывать, что бы не захламлять пространство и время от времени, в процессе сведения, что то меняется местами - открытые становятся скрытыми и наоборот. (аранжировщики:mad: бывают разные)

Но, опять стало неудобно "визуально" работать с первой парой, стало как раньше - трек доходил до края, начинается прокрутка и я не вижу что перед ним! Так стало и теперь...
В старом "сломанным" скипте это было супер - за 4 трека до края начиналась прокрутка и я видел что перед ним и куда я иду:cool: (надо прыгать или залезть в нужную папку)...

А можно ли первой паре - Move selected tracks up/down by one visible - вернуть такую способность прокрутки, за 4 трека до краяo_O? Это было бы идеально:rolleyes:!!!
 
  • Like
Реакции: Archie's

Archie's

Well-Known Member
24 Окт 2017
1.936
1.296
113
В старом "сломанным" скипте это было супер - за 4 трека до края начиналась прокрутка и я видел что перед ним и куда я иду
В старом "сломанном" скрипте этого уже не было, это было в первоначальном скрипте, который ты отдельно сохранял.o_O Которого в реапаке не существовало.:eek:

А можно ли первой паре - Move selected tracks up/down by one visible - вернуть такую способность прокрутки, за 4 трека до края? Это было бы идеально!!!
Добавил: Параметр (во все скрипты) "indent = n" равен 0 - отступа нет, как и сейчас; = 1 отступ в один трек; = 2 отступ в два трека; и т.д..
 
  • Like
Реакции: smrz1

smrz1

Banned
25 Янв 2010
1.484
349
83
@Archchie, ну это круто, сейчас обновлюсь, как раз нужны эти скрипты.
Одну из версий я оставил, в которой и была нужная прокрутка... Сохранил, кстати, по твоему совету. Даже и с неудобствами со скрытыми треками - отличный скрипт и пользуюсь им постоянно. Но сегодня его место займёт другой скрипт...:(, принесёт мне радость, а старика я на пенсию с проживанием в Архиве:D!
 
  • Like
Реакции: Archie's

Shico

(Шико)
10 Фев 2005
1.169
239
63
62
Добавил: Параметр (во все скрипты) "indent = n" равен 0 - отступа нет, как и сейчас; = 1 отступ в один трек; = 2 отступ в два трека; и т.д..
Класс! Большое спасибо!
@Archchie,
а можно как-то в личку стукнуть с вопросом по архивным скриптам, сейчас она закрыта?
 
  • Like
Реакции: Archie's

smrz1

Banned
25 Янв 2010
1.484
349
83
@Archchie, должен с грустью заявить:(, что сегодня утром, произошла депортация двух элементов из семейства !!!Archie_Track; ↑Move selected tracks in up/down on one. Они славно поработали, но были удалены из за свой близорукости! Не разглядели скрытых врагов:cool:...
Но на место этих достойных героев пришли новые, талантливые и зрячиеo_O.
Они не только всё видят, но не топчутся на месте, а идут вперёд и умело перепрыгивают все препятствия стоящие у них на пути:mad:!!!

Во какая речь!;)
Эти две пары: Move selected tracks up/down by one visible и Move selected tracks up/down by one visible (skip folders) теперь работают великолепно - всё именно так как нужно. Проверил на проекте, в котором куча скрытых треков и папок. Спасибо тебе огромнейшее!!!
 
Последнее редактирование:
  • Like
Реакции: Archie's

Shico

(Шико)
10 Фев 2005
1.169
239
63
62
Погонял сегодня повнимательней скрипты Move selected tracks up/down by one visible и Move selected tracks up/down by one visible (skip folders) и вот на что обратил внимание...
Во всех скриптах сделал отступ в верх и в низ два трека. И всё работает, но если папка находиться в свёрнутом виде, то перемещаемый трек доходит до края и дальше идёт через папку. Т.е. папка не появляется с отступом в 2 трека. А если папка развёрнута, то всё нормально и треки папки идут в соответствии с выставленными значениями.
Это так и должно?
 
Последнее редактирование:
  • Like
Реакции: Archie's

smrz1

Banned
25 Янв 2010
1.484
349
83
@Shico, я так понял, что скрипт папку за трек не считает. Он же отличает их, папку от трека...
 

Shico

(Шико)
10 Фев 2005
1.169
239
63
62
@smrz1, судя по всему, да, но было бы удобней если и папка входила в выставленное значение, просто для удобства.
Можно привыкнуть и запомнить, когда треки перестают прокручиваться, значит на подходе папка, но бывает, что кол-во треков много и тогда можно промахнуться.
В общем если можно, то хорошо, если нет, то и на этом спасибо.
 
  • Like
Реакции: Archie's

smrz1

Banned
25 Янв 2010
1.484
349
83
@Shico, да я и просил Archchie сделать этот скрипт потому что работаю постоянно с большим количеством треков.
Изначально, кашмаром, для меня в Рипере, было вообще перемещать мышкой эти треки. Чуть не попал - бац и создаётся папка из какого то трека! Просто не мог оперативно работать.

Я просил о возможности перемещать выбранные треки не "рукой", а хоткеем...
И чудо свершилось в исполнении автора. Скорость работы в начальной стадии (которая всегда не самая увлекательная) увеличилась в разы!

Я, вообще, только после этого скрипта окончательно решил переходить на Reaper... Как то так.
 
Последнее редактирование:
  • Like
Реакции: Archie's

Archie's

Well-Known Member
24 Окт 2017
1.936
1.296
113
@Archchie, должен с грустью заявить,
Я аж на секундочку подумал, что опять все не работает.:D

я так понял, что скрипт папку за трек не считает. Он же отличает их, папку от трека...
как это не считает:eek:, папка - это такай же трек.
-------------------------------------------------------

а можно как-то в личку стукнуть с вопросом по архивным скриптам, сейчас она закрыта?
Можно!
Не знаю - в каком это смысле закрыта,ничего не закрыта у меняo_O, другие мне как то пишут же в личку.

но если папка находиться в свёрнутом виде, то перемещаемый трек доходит до края и дальше идёт через папку. Т.е. папка не появляется с отступом в 2 трека. А если папка развёрнута, то всё нормально и треки папки идут в соответствии с выставленными значениями.
Это так и должно?
но было бы удобней если и папка входила в выставленное значение, просто для удобства.
Да это так и должно быть!:)
Кто сказал что папка не появляется с отступом.:eek:
Папка итак входит в выставленное значение.o_O

Отступ идет в ТРЕКАХ, и когда папка свернута, то там существует узенький трек (который свернутый)
111.png
И вот он отступает.
А то что вы этого не замечаете (то есть не работает у вас скролл у свернутых папок), то это последствия редактирования тем, так как у вас в теме выставлен размер свернутого трека в ноль, вот у вас по этой причине и происходит отступ в ноль пикселей, т.е никакого отступа!!!:eek:
111.gif

Завтра - после Завтра (как время будет), посмотрю что нибудь по этому поводу, может что придумаю, что бы работали свернутые папки, Но не обещаю.
В голове есть идея как это реализоватьo_O, но на практике не знаю, будет это работать или нет:confused: т.к. на практике зачастую идеи из головы не работают, пока времени нет проверить.:(.
 

smrz1

Banned
25 Янв 2010
1.484
349
83
@Archchie, "
@@Archchie, должен с грустью заявить,
Я аж на секундочку подумал, что опять все не работает."
Ну согласись, прикольно же получилось? А то музыканты (с которыми я работаю) говорят что у меня чувство юмора нет... Обидно, блин...:(
 
  • Like
Реакции: Archie's

Shico

(Шико)
10 Фев 2005
1.169
239
63
62
то это последствия редактирования тем, так как у вас в теме выставлен размер свернутого трека в ноль, вот у вас по этой причине и происходит отступ в ноль пикселей
Ах вот оно что, ну тогда понятно.

Завтра - после Завтра (как время будет), посмотрю что нибудь по этому поводу, может что придумаю
Это было бы славно.
 

Сейчас онлайн (Пользователей: 0, Гостей: 1)