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

@Mr_Tsonts, По поводу автоматического размножения, то там немножко все заморочено, и этот скрипт наврятли много копий наберет, так что проще вручную скопировать и вписать id.
Вот шаблон: В первых трех строках, вместо "0" вписать id нужного экшена/скрипта.
PHP:
    local Track    = '0';
    local Item     = '0';
    local Envelope = '0';
    
    
    local function main(Track,Item,Envelope);
        local t = {track = Track,item = Item,env = Envelope};
        local CursorContext = reaper.GetCursorContext2(true);
        if CursorContext == 0 then; -- tr
            reaper.Main_OnCommand(reaper.NamedCommandLookup(t.track),0);
        elseif CursorContext == 1 then; -- it
            reaper.Main_OnCommand(reaper.NamedCommandLookup(t.item),0);
        elseif CursorContext == 2 then; -- env
            reaper.Main_OnCommand(reaper.NamedCommandLookup(t.env),0);
        else;
            reaper.defer(function()end);
        end;
        reaper.SetCursorContext(CursorContext,nil);
    end;
    main(Track,Item,Envelope);
например, в моём, где выделенный трек или айтем движется вниз, я попытался использовать Script: Archie_Track; Move selected tracks down by one visible(`).lua, но при этом трек перемещается вниз только на одну позицию, дальше, если есть выделенный айтем, то движется он, если ничего, то просто прекращает работать.
Значит что то неправильно сделал! И кстати такой скрипт же есть уже готовый*.
У меня назначены эти перемещения так и вполне себе, даже удобно.
На стрелочку в лево назначен скрипт - Archie_Cont; Set focus on track panels.lua
На стрелочку в право назначен скрипт - Archie_Cont; Set focus on items - arrange.lua
На стрелочку в верх назначен скрипт - *Archie_Cont; Move tracks up or items up depending on focus(skip minimized track).lua
На стрелочку в низ назначен скрипт - *Archie_Cont; Move tracks down or items down depending on focus(skip minimized track).lua
 
Последнее редактирование:
  • Like
Реакции: Mr_Tsonts
Обновлен скрипт Archie_Var; Popup menu single-level(n).lua
Теперь не обязательно вручную вводить id и имя экшена при добавлении нового пункта в меню, достаточно просто выбрать нужный экшен/скрипт в списке экшенов и в скрипте нажать add и форма будет заполнена автоматически.
Это касается только вновь созданных скриптов из menu(n).
 
Значит что то неправильно сделал! И кстати такой скрипт же есть уже готовый*.
Так я ж рукожоп в этом деле пока ещё :Dle37:)))))) А твои скрипты нашёл. Сейчас ими пользуюсь. Всё Норм. За код большое спасибо. Просто я выдёргивал кусочек кода из определённого скрипта. Я ещё и не думал, почему не работает. Вот он, только там сейчас id не от твоего.
Код:
reaper.Undo_BeginBlock()
local CursorContext = reaper.GetCursorContext2(true);
    if CursorContext == 0 then;--track
        ---
        reaper.Main_OnCommand(reaper.NamedCommandLookup("_RSfe0993a43171b62e1efb12770c4fc7eb0d8fb6b2"),0);
        ---
    elseif CursorContext == 1 then;--item
        ---
        reaper.Main_OnCommand(40118,0);
        ---
    elseif CursorContext == 2 then;--env
        Envelope();
    end;
reaper.Undo_EndBlock("MoveTracItemDown.lua", -1)
Я тут даже енвелопе не трогал. В принципе, уже не важно, почему он плохо работал.
Так то у меня ещё маленькая база знания обо всём этом. В основном всё делаю интуитивно))) Ещё раз огромное спасибо!!!!!
 
  • Like
Реакции: Archie's
@Mr_Tsonts, Просто некоторые экшены могут снимать фокус, а ты в скрипте после использования экшена его не востонавливал.
Вот так должно работать без глюков.
Код:
reaper.Undo_BeginBlock()
local CursorContext = reaper.GetCursorContext2(true);
    if CursorContext == 0 then;--track
        ---
        reaper.Main_OnCommand(reaper.NamedCommandLookup("_RSfe0993a43171b62e1efb12770c4fc7eb0d8fb6b2"),0);
        ---
    elseif CursorContext == 1 then;--item
        ---
        reaper.Main_OnCommand(40118,0);
        ---
    elseif CursorContext == 2 then;--env
        Envelope();
    end;
    reaper.SetCursorContext(CursorContext,nil);
reaper.Undo_EndBlock("MoveTracItemDown.lua", -1)
 
  • Like
Реакции: Mr_Tsonts
Обновлен скрипт Archie_Var; Popup menu single-level(n).lua
Теперь не обязательно вручную вводить id и имя экшена при добавлении нового пункта в меню, достаточно просто выбрать нужный экшен/скрипт в списке экшенов и в скрипте нажать add и форма будет заполнена автоматически.
Это касается только вновь созданных скриптов из menu(n).
А я вот безболезненно поменял кучу старых на новые. Может кому-нибудь пригодится. Удалил экшн из экшнлиста, потом удалил из папки, где они хранятся. Создал его точно с таким же именем. Всё. Открываю кнопкой в меню, появляется экшн со всем содержимым, но с новыми возможностями. Единственное, при создании новых в названии игнорируется наличие "_", пробела, так сказать. Пришлось после создания удалить из экшнлиста, в папке его переименовать и заново открыть в экшнлисте.
 
@YuriOl, Я не могу у себя это повторить, значит я не знаю что исправлять. Пытайся уловить закономерность.
Какие у тебя настройки в скрипте? Кинь код сюда, может дело в настройках, хотя наврятли.
Какая версия рипера/sws ?
Рипер последний.
SWS v2.10.0
При открытии проекта не скролль вертикально (горизонтально не спасает)) , сразу режь айтемы, должен тогда этот баг проявиться. Ну а если не проявится, то наверное что-то с конфигом Рипера у меня..
Повторюсь, штатные резалки работают в этой ситуации, а вот связанные с позицией курсора иногда такое выдают.
Я этот баг ловлю не часто, но периодически проявляется в работе. когда есть папки, много треков, что-то зумирую...
 

Вложения

  • Split.rar
    Split.rar
    4,9 KB · Просмотры: 170
Последнее редактирование:
@YuriOl, Я не знаю, у меня и на твоем проекте не наблюдается таких глюков, вот гиф.
А ты пробовал назначить этот скрипт на что то другое ? Может дело вовсе не в скрипте, а в моус модефаере, хотя я тоже на клик колеса этот экшен добавил для проверки и у меня нету такого поведения, или вовсе не в том и не другом, а в мыши. Проверь мышь, может у нее клик по колесику иногда не срабатывает.
 

Вложения

  • 111_1.gif
    111_1.gif
    484,2 KB · Просмотры: 250
Проверь мышь, может у нее клик по колесику иногда не срабатывает.
На работе и дома разные мыши, а этот косяк иногда проскакивает и таи и там. Ладно, с этим жить можно. :) Это случается редко, да и противоядие нашёл в виде вертикального, небольшого скролла туда-сюда, когда это появляется.
 
почему unsolo visible track срабатывает после первого нажатия на кнопку, а unmute visible track только со второго ?
 
почему unsolo visible track срабатывает после первого нажатия на кнопку, а unmute visible track только со второго ?
Потому что, когда всплывает какое то окно, то нужно читать что в нем написано, а не тыкать на угад ! Для кого это окно создавалось то !?
К тому же оно после нажатия ок предупреждает еще раз, для таких как ты, но ты и тут не прочитал.
180592
________
180593


Теперь при закрытом рипере открываешь файл "reaper-kb.ini" и ищешь (ctrl+F) в нем название скрипта и в начале строки меняешь 260 на 516, т.е. вот это "SCR 260" меняешь на это "SCR 516".
 
  • Like
Реакции: Erundolog и YuriOl
А зачем хамить то ? Может быть просто непонятно написано никто не подумал об этом ? Да, эти два окна выскакивали. Они оба говорят, нет прям просят после прочтения нажать ок. Прочитал нажал. Других окон не выскакивало.
Ладно пошел ковырять reaper-kb.ini

Спасибо, заработало
 
@Archchie, По поводу на ты на вы никогда не парился. А вот хамство, это по моему сугубо личному мнению в тексте написано "для таких как ты" Ты меня знаешь какой я ?
Заматерел смотрю, когда какое-то время назад ты только начинал скрипты писать и я к тебе обращался ты себе такого не позволял. Ну судить не смею. Кто я такой.. Извини что зацепил regnum
 
А вот хамство, это по моему сугубо личному мнению в тексте написано "для таких как ты" Ты меня знаешь какой я ?
Мне не нужно знать какой ты, да мы не знакомы лично и я не могу что то про тебя сказать, а по поводу текста - "для таких как ты" - В смысле для таких которые не читают ! Мы тут говорили о скрипте, а не о личности, так что если у тебя что то с настроением, то не нужно сразу все под себя грести.
Заматерел смотрю, когда какое-то время назад ты только начинал скрипты писать и я к тебе обращался ты себе такого не позволял.
Я и сейчас не позволяю себе ничего лишнего, да и некогда не позволял.
Но тебе виднее, заматерел - значит Заматерел.

P.S.
Если судить по твоей логике, как ты прокомментировал это предложение
"К тому же оно после нажатия ок предупреждает еще раз, для таких как ты, но ты и тут не прочитал.", то получается что я оскорбил всех пользователей скрипта, тем что сделал второе окно предупреждения. Правильно ? А я его и сделал для тех кто не прочитает первое.

Спасибо, заработало
Пожалуйста.

Извини что зацепил
Да не за что извиняться, просто не нужно под себя все грести и текст нужно правильно читать и воспринимать.;):Dle8:

Извини если чем то задел, даже в мыслях не было.
 
Последнее редактирование:
  • Like
Реакции: vitalker и AlexLazer
Мне не нужно знать какой ты, да мы не знакомы лично и я не могу что то про тебя сказать, а по поводу текста - "для таких как ты" - В смысле для таких которые не читают ! Мы тут говорили о скрипте, а не о личности, так что если у тебя что то с настроением, то не нужно сразу все под себя грести.

Я и сейчас не позволяю себе ничего лишнего, да и некогда не позволял.
Но тебе виднее, заматерел - значит Заматерел.

P.S.
Если судить по твоей логике, как ты прокомментировал это предложение
о не прочитает первое.


Пожалуйста.


Да не за что извиняться, просто не нужно под себя все грести и текст нужно правильно читать и воспринимать.;):Dle8:

Извини если чем то задел, даже в мыслях не было.
Но для таких, как я, это было точно полезно:Dle22:
 
  • Like
Реакции: vitalker, smrz1 и Archie's
@Archchie, @Mr_Tsonts, самоизоляция достала?
Я тоже невнимательно читал (читаю) эти окна, но Арчи практически единственный кто это делает (про описание действия скрипта - вообще молчу) - у многих других кто умеет писать "правильные" скрипты принцип один - догадайся САМ! А это очень хреново... Тысячи скриптов, а что они делают - хрен знает... ИМХО.
Может там уже новый "закон Кулона" открыли - а я вот не в курсе... Потому у меня 70% скриптов Арчи - я могу читать:Dle17: и даже, при необходимости что изменять в скрипте!!!:Dle37::Dle47: Видимо это для таких как я - чистых как слеза - потребителей:Dle85::Dle11:

@Archchie, кстати, разобрался как удобно открывать плагины на которые сделан посыл с трека...:Dle26:
 
@Archchie, доброго времени суток!
Вот такой замороченный (для меня) вопрос:
У меня в мастер-канале стоит плагин NUGEN MasterCheck Pro. Он состоит из двух плагинов - NUGEN MasterCheck и NUGEN Audio Send.
Они у меня так: первым в линейке плагинов стоит NUGEN Audio Send, а последним - NUGEN MasterCheck. Между ними - все остальные для мастера: максимайзеры, лимитеры, эквалайзеры, фильтра и прочяя фигня.

Когда я запускаю оба плагина, NUGEN Send посылает сигнал на NUGEN MasterCheck минуя все плагины в Мастер-шине.
На NUGEN MasterCheck нажимаю на Offset to match и на колесо справа - у меня автоматически сравниваются по громкости оба сигнала - пре и пост мастер.
По факту, сигнал пост-мастера значительно громче чем пре-мастер, так как там стоят максимайзеры и т. п. и сравнивать пре и пост сигнал, на такой разнице громкости, просто не возможно... NUGEN MasterCheck Pro даёт такую возможность.

Нажимая на External ref (динамик справа), я поочерёдно сравниваю пре-мастер с пост-мастером, причём на равной громкости!
Есть возможность услышать и сравнить поочерёдно, как я "убил" своим мастерингом фонограмму! Как её сплющил и изуродовал динамику, максимайзерами и лимитерами, в "борьбе за громкость"

"Динамик" на External ref назначен на ручку на Мастер канале. А там крутить нехрена! Там только Off и On. Мне не ручка нужна (очень неудобно крутить быстро вкл/выкл), а нужна кнопка. Или хоткей... Называется этот переключатель External Listen.

Есть возможность этот переключатель как то "переключать"?
Вот картинка и кино
Запись_2020_05_06_23_39_45_316.gif


Захват1.png
 
самоизоляция достала?
Есть немного.)))
@Archchie, кстати, разобрался как удобно открывать плагины на которые сделан посыл с трека...:Dle26:
Так ты же об этом сразу написал - правый клик и Go to send destination track. Или что то другое нашел более удобное ?
@Archchie, доброго времени суток!
Доброе!)
Есть возможность этот переключатель как то "переключать"?
PHP:
    local fxname = 'NUGEN MasterCheck (NUGEN Audio)';
    local param = 8;
   
   
    local function no_undo()reaper.defer(function()end)end;
   
    local track = reaper.GetMasterTrack(0);
    --track =  reaper.GetSelectedTrack2(0,0,true);
    ----
    local iFx = reaper.TrackFX_GetByName(track,fxname,false);
    if iFx < 0 then no_undo() return end;
    local retval,minval,maxval = reaper.TrackFX_GetParam(track,iFx,param);
    if minval ~= retval then;
        retval = minval;
    else;
        retval = maxval;
    end;
    reaper.TrackFX_SetParam(track,iFx,param,retval);
 
    no_undo();
 
  • Like
Реакции: smrz1 и Mr_Tsonts
А риперовскими средствами же можно провернуть гейн матчинг? Мне кажется видел где то...
 
Так ты же об этом сразу написал - правый клик и Go to send destination track. Или что то другое нашел более удобное ?
Я тогда не правильно сформулировал вопрос. Точнее я его задал как хотел в идеале - как в Cubase. А потом оказалось можно 4 кнопки на 4 сенда поставить Script: sr_Toggle show UI of all FX in send 1.lua (их 4, send 1 - 4)

Ну всё, осталось окончательно проснуться (уснул в 10.00) испытать скрипт и я уверен - стоит нам с тобой слегка бухнуть... Пивка нормально же будет двум старым товарищам?:Dle8:

Просыпаться окончательно не стал - проверил скрипт... Идеально!!! Спасибо огромное! Всё, я побежал за пивом, жди в гости:Dle58:
 
Последнее редактирование:
  • Like
Реакции: Elijah K и Archie's
Есть немного.)))

Так ты же об этом сразу написал - правый клик и Go to send destination track. Или что то другое нашел более удобное ?

Доброе!)

PHP:
    local fxname = 'NUGEN MasterCheck (NUGEN Audio)';
    local param = 8;
  
  
    local function no_undo()reaper.defer(function()end)end;
  
    local track = reaper.GetMasterTrack(0);
    --track =  reaper.GetSelectedTrack2(0,0,true);
    ----
    local iFx = reaper.TrackFX_GetByName(track,fxname,false);
    if iFx < 0 then no_undo() return end;
    local retval,minval,maxval = reaper.TrackFX_GetParam(track,iFx,param);
    if minval ~= retval then;
        retval = minval;
    else;
        retval = maxval;
    end;
    reaper.TrackFX_SetParam(track,iFx,param,retval);

    no_undo();
Интересно, а почему у меня этот параметр срабатывает, если он не 8, а 6?
 

Вложения

  • Knob.gif
    Knob.gif
    2,1 MB · Просмотры: 180
Интересно, а почему у меня этот параметр срабатывает, если он не 8, а 6?
Ты уже второй по этому вопросу. У меня срабатывает именно 8! Может версии плагина разные и ручки как то по разному стоят в UI? Не 8, а 6? Я давно не обновлялся, да и не надо мне этого... Да и разве это проблема? Нажал UI и посчитал... Или всё сложнее?

Вообще то не ожидал, что вообще кого то эта тема заинтересует - вроде всё на поверхности, думал что давно такой скрипт есть...
 
Последнее редактирование:
  • Like
Реакции: Archie's
Ты уже второй по этому вопросу. У меня срабатывает именно 8! Может версии плагина разные и ручки как то по разному стоят в UI? Не 8, а 6? Я давно не обновлялся, да и не надо мне этого... Да и разве это проблема? Нажал UI и посчитал... Или всё сложнее?

Вообще то не ожидал, что вообще кого то эта тема заинтересует - вроде всё на поверхности, думал что давно такой скрипт есть...
Я и посчитал, на гифке видно.
 
  • Like
Реакции: Archie's

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