Помогите создать экшн / кастом экшн / скрипт (2 онлайн)

borisuperful

Well-Known Member
31 Янв 2013
2.017
1.152
113
Как-то он странно работает, чють двинет нотки, но не по сетке, а рандомно
Свинг не учитывает, видать старый уже

Можно его изменить чтоб независимо от сетки квантовал по 1/16 со свингом который в Grid Setings указан?
 

Вложения

Последнее редактирование:

Andernik

Active Member
7 Апр 2009
338
207
43
К сожалению всё ещё квантует по сетке, в зависимости от зума в проекте. :(
 

BAYANBAYAN

Active Member
4 Мар 2010
515
246
43
Помогите, пожалуйста, со скриптом или кастом экшеном. Хотел сделать следующее: 1 - выделенный мидиайтем должен открыться в миди редакторе, 2 - сам миди редактор должен переключиться в режим докер, 3 - в миди редакторе должен включиться режим MIDI inputs as step input mode.
И второй скрипт обратное действие - 1 - выключить режим MIDI inputs as step input mode, 2 - миди редактор выключить из режима докер, 3- закрыть миди редактор.
Может можно и стандартными экенами решить, я соответствующие экшены нашел, но застрял на том, что не могу добавить в кастом экшены из разных секций. Потому как первый относится к секции экшенов Main, а следующие к секции экшенов Midi Editor.
P.S. Вроде сам через скрипт сделал. Разобрался)
 
Последнее редактирование:

Archie's

Well-Known Member
24 Окт 2017
1.936
1.296
113
1 - выделенный мидиайтем должен открыться в миди редакторе, 2 - сам миди редактор должен переключиться в режим докер, 3 - в миди редакторе должен включиться режим MIDI inputs as step input mode.
PHP:
    -----------------------------------------------------------------------------
    local function No_Undo()end; local function no_undo()reaper.defer(No_Undo)end
    -----------------------------------------------------------------------------

    local SelItem = reaper.GetSelectedMediaItem(0,0);
    if not SelItem then no_undo() return end;

    reaper.Main_OnCommand(40153,-1);
    reaper.Main_OnCommand(40153,-1);

    local toggle_state = reaper.GetToggleCommandStateEx(32060,40018);
    local MidiEditor = reaper.MIDIEditor_GetActive();
    if toggle_state == 0 then;                              
        reaper.MIDIEditor_OnCommand(MidiEditor,40018);
    end;

    local toggle_state = reaper.GetToggleCommandStateEx(32060,40481);
    if toggle_state == 0 then;    
        reaper.MIDIEditor_OnCommand(MidiEditor,40481);
    end;
1 - выключить режим MIDI inputs as step input mode, 2 - миди редактор выключить из режима докер, 3- закрыть миди редактор.
PHP:
    -----------------------------------------------------------------------------
    local function No_Undo()end; local function no_undo()reaper.defer(No_Undo)end
    -----------------------------------------------------------------------------

  
    local MidiEditor = reaper.MIDIEditor_GetActive();
    if not MidiEditor then no_undo() return end;


    local toggle_state = reaper.GetToggleCommandStateEx(32060,40018);
    if toggle_state == 1 then;                                      
    reaper.MIDIEditor_OnCommand(MidiEditor,40018);
    end;

    local toggle_state = reaper.GetToggleCommandStateEx(32060,40481);
    if toggle_state == 1 then;    
        reaper.MIDIEditor_OnCommand(MidiEditor,40481);
    end;

    reaper.MIDIEditor_OnCommand( MidiEditor, 40794 );
 
  • Like
Реакции: BAYANBAYAN

BAYANBAYAN

Active Member
4 Мар 2010
515
246
43
@Archchie, Отлично, все работает. А как бы мне это на одну кнопку сделать, типа со статусом Toggle. Нажал кнопку - работает первое условие, отжал - работает второе. Через цикл экшн что-то не пойму как сделать.
 

Archie's

Well-Known Member
24 Окт 2017
1.936
1.296
113
А как бы мне это на одну кнопку сделать, типа со статусом Toggle.
Screenshot_1.png
PHP:
    -----------------------------------------------------------------------------
    local function No_Undo()end; local function no_undo()reaper.defer(No_Undo)end
    -----------------------------------------------------------------------------


    local function SetToggleButtonOnOff(numb);
        local value,ScriptWay,sec,cmd,mod,res,val = reaper.get_action_context();
        reaper.SetToggleCommandState(sec,cmd,numb or 0);
        reaper.RefreshToolbar2(sec,cmd);
    end;


    local MidiEditor = reaper.MIDIEditor_GetActive();
    if not MidiEditor then;

        if reaper.GetSelectedMediaItem(0,0) then;
            reaper.Main_OnCommand(40153,-1);
            reaper.Main_OnCommand(40153,-1);
    
            local toggle_state = reaper.GetToggleCommandStateEx(32060,40018);
            local MidiEditor = reaper.MIDIEditor_GetActive();
            if toggle_state == 0 then;                            
                reaper.MIDIEditor_OnCommand(MidiEditor,40018);
            end;

            local toggle_state = reaper.GetToggleCommandStateEx(32060,40481);
            if toggle_state == 0 then;  
                reaper.MIDIEditor_OnCommand(MidiEditor,40481);
            end;
            SetToggleButtonOnOff(1);
        end;
    else;
    
        local toggle_state = reaper.GetToggleCommandStateEx(32060,40018);
        if toggle_state == 1 then;                                    
        reaper.MIDIEditor_OnCommand(MidiEditor,40018);
        end;
    
        local toggle_state = reaper.GetToggleCommandStateEx(32060,40481);
        if toggle_state == 1 then;  
            reaper.MIDIEditor_OnCommand(MidiEditor,40481);
        end;
    
        reaper.MIDIEditor_OnCommand( MidiEditor, 40794 );
        SetToggleButtonOnOff(0);
    
    end;


    function loop();
        if not reaper.MIDIEditor_GetActive() then;
            SetToggleButtonOnOff(0);
            return;
        end;
        reaper.defer(loop);
    end;

    loop();
 
Последнее редактирование:
  • Like
Реакции: BAYANBAYAN и smrz1

Supa75

Active Member
21 Мар 2017
672
164
43
48
Днепр, Украина
Подскажите как можно организовать такую штуку. Пишу в режиме вставки, поэтому Рипер отключает запись на трек в конце тайм-селекшина. Однако воспроизведение продолжается после отключения записи. Как сделать так, чтобы в конце тайм-селекшн останавливалась и запись, и воспроизведение?
Экшн "Xenakios/SWS: Toggle stop playback at end of time selection" естественно такого поведения не дает. Что-то должно висеть и анализировать тайм-лайн и при достижении правого края тайм-селекшн отключить воспроизведение и запись
 

Archie's

Well-Known Member
24 Окт 2017
1.936
1.296
113
@Supa75, Archie_Playback; Toggle stop playback at end of time selection.lua
 
Последнее редактирование:
  • Like
Реакции: Supa75

shuco

Active Member
26 Ноя 2005
439
109
43
58
Новосибирск
Я не правильно выразился... Скорее с кнопкой, что бы нажал-команда выполняется, отжал-не выполняется. И если можно, подскажите, как загрузить экшн в старт проекта?
 

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.063
113
62
Киев
Я не правильно выразился... Скорее с кнопкой, что бы нажал-команда выполняется, отжал-не выполняется.
Для этого ТАК должен быть написан скрипт. В общем ЛЮБОЙ скрипт можно сделать ТАКИМ, как вы хотите, только нужно ведь понимать, что есть ведь действия скриптов, которые если вы вот так повесите на исполнение до вашего останова, просто чудеса начнут творить в вашем проекте и работать не дадут. По этому - всё это индивидуально и с подключением людей, которые уже прониклись пониманием скриптов.
И если можно, подскажите, как загрузить экшн в старт проекта?
В Экстеншинах SWS есть такая опция - внимательно посмотрите.
 
  • Like
Реакции: shuco

Supa75

Active Member
21 Мар 2017
672
164
43
48
Днепр, Украина
@Supa75, Archie_Playback; Toggle stop playback at the end of time selection.lua
данный экшн не работает для записи (что собственно следует из названия), т.е. в режиме вставки Рипер всё же думает, что идет запись, а не воспроизведение, поэтому ничего не останавливает даже после отключения записи.
 

Archie's

Well-Known Member
24 Окт 2017
1.936
1.296
113
данный экшн не работает для записи
А причем тут экшен, это не экшен а скрипт, название то надо читать внимательней от начала до конца!!!
Это экшен:
"Xenakios/SWS: Toggle stop playback at end of time selection"
Он просто с багом, он как запись не видит, так и когда "repeat" включен, то тоже не работает.​
А это скрипт:
Archie_Playback; Toggle stop playback at end of time selection.lua
Он и запись видит и при включенном "repeat" не ломается.​
 
  • Like
Реакции: Supa75

Supa75

Active Member
21 Мар 2017
672
164
43
48
Днепр, Украина
@Archchie, странно, что данный скрипт не работает у Cycle-action для условий. При сохранении, цикл-редактор пишет, что экшн не может быть зарегестрирован, т.к. не видит статуса on/off в скрипте. Но в экшинах видно, что такой статус существует (on/off). Что может быть не так?
Screenshot_3.jpg
 

Archie's

Well-Known Member
24 Окт 2017
1.936
1.296
113
странно, что данный скрипт не работает у Cycle-action для условий.
Cycle-action не у одного скрипта не видит этот статус. Почему я не знаю. Где то не так давно это уже обсуждали.
В принципе если сильно надо, то я могу сделать тебе этот статус через экшен dummy, то тогда цикл экшен увидит его, вот только если ты где нибудь еще в кастомах используешь экшен dummy, то они могут конфликтовать
 

Supa75

Active Member
21 Мар 2017
672
164
43
48
Днепр, Украина
еще в кастомах используешь экшен dummy, то они могут конфликтовать
даже не понимаю, в чем смысл dummy. Если это эти экшены SWS/S&M: Dummy toggle 1...8, - то нет, нигде не использую. Сделай плиз, чтобы можно было использовать в циклах для условий. Спасибо
 

Archie's

Well-Known Member
24 Окт 2017
1.936
1.296
113
Если это эти экшены SWS/S&M: Dummy toggle 1...8, - то нет, нигде не использую. Сделай плиз, чтобы можно было использовать в циклах для условий. Спасибо
Да именно эти экшены Dummy toggle 1...8
Cycle-action должен выглядеть примерно так
upload_2019-1-22_18-16-31.png
Когда включаешь экшен, то в условие на первое место ставишь не скрипт, а dummy toggle 1, а за нам уже скрипт.
А вот когда выключаешь, то dummy уже вставлять не надо
 

Вложения

smrz1

Banned
25 Янв 2010
1.484
349
83
@Archchie, скрипт Archie_View; Enable spectral peaks on selected tracks.lua работает у меня не так как надо. Долго не писал по этому поводу, да и непонятно было, как это объяснить. В двух словах не получалось (отсутствие знаний по работе скриптов), но что происходит у меня в Reaper, снял в картинках, как мог, подробней. Придётся пользоваться спойлером...
1. Для «чистоты эксперимента» я удалил все reapeaks файлы, так как иногда пользовался Peaks: Toggle spectral peaks и этот экшен дописывает spectral peaks во все reapeaks файлы. При открытии проекта, Рипер восстановил их в оригинале (только normal peaks).
Начинаю применять скрипт Enable spectral peaks on selected tracks к выбранному треку (Bass.wav) и он сканирует все айтемы проекта. Его файл reapeaks увеличился в двое, но остальные reapeaks файлы остаются с прежним размером, зачем то он их просто сканировал, но не добавлял прорисовку spectral peaks.
Захват4.png
Применяю скрипт к следующему, выделенному треку S7_8 L Kick – с ним ничего не происходит. Как был в виде normal peaks (709 006), так и остаётся!
Захват6.png
Остальные треки, так же не реагируют… Смотрю в Action list… а там экшен Peaks: Toggle spectral peaks оказывается в положении (State) – on! Хотя он, изначально, был off. Получается, что при запуске, скрипт включает этот экшен и оставляет включенным, но не даёт ему дописывать данные spectral peaks в reapeaks файлы.
Захват15.png
Решил продолжить свой «эксперимент» и отключил Peaks: Toggle spectral peaks в off. Опять применяю скрипт к треку S7_8 L Kick, снова идёт сканирование всех файлов и теперь он переписывает свой reapeaks и появляется в виде spectral peaks. Между ними, двумя, теперь можно переключаться скриптом с normal peaks на spectral peaks, как и хотелось.
ГифЗапись_2.gif
П. с. Результат моих так сказать «экспериментов»:
Скрипт, после запуска, на выделенном треке, сканирует все айтемы пректа в пустую, но добавляет данные spectral peaks, в файл reapeaks, только выделенного трека, данные spectral peaks в другие файлы reapeaks не добавляются – их нет.
Просто, при повторном включении скрипта ничего не происходит, пока экшен Toggle spectral peaks не выключишь в ручную. Получается, на каждом выделенном треке будет идти «пустое» сканирование всех айтемов пректа, а измениться только один трек с айтемами и его файл reapeaks.

Как я могу использовать скрипт сейчас:
1. При открытии проекта, с самого начала, запускаю экшен Toggle spectral peaks, он прорисовывает все дорожки и добавляет данные картинок spectral peaks во все reapeaks файлы, я выключаю Toggle spectral peaks, возвращаются normal peaks.
2. Убираю из TCP Трек-Менеджером все Трек-папки, делаю треки максимально узкими и все их выделяю. Потом запускаю скрипт Archie_View; Enable spectral peaks on selected tracks на все дорожки, они опять становятся spectral peaks.
3. Снимаю выделение всех треков, запускаю Archie_View; Auto enable spectral peaks on selected tracks (с Auto enable гораздо удобней) на выделенном треке, можно работать и расширить как угодно все треки - скрипт работает без ошибок.
Запись_2019_01_26_22_41_26_982.gif
Но стоит вернуть из Трек-Менеджера все Трек-папки в TCP – опять начинается свистопляска – в каких то треках появляется spectral peaks, в каких то нет (в большинстве).
Иногда прорисовывает только, почему то, айтемы Mute, а работающие - нет. Факт главный: скрипт перестаёт нормально работать с треком, если в TCP есть его Трек-папка!
ГифЗапись_3.gif
Расширять треки можно сколько угодно, хоть на весь экран – всё работает…, главный враг этого скрипта - Трек-папка. Без неё - всё чётко.
Вопрос:
Можно ли сделать так, что бы при первом включении скрипта Auto enable spectral peaks on selected tracks, запускалась прорисовка всех дорожек в spectral peaks и добавлялись эти данные во все reapeaks файлы (а не пустое их сканирование), как это делает экшен Peaks: Toggle spectral peaks?
А когда скрипт выключаешь, демонстрация spectral peaks должна прекратится и вернуться к normal peaks (как при выключении экшена Peaks: Toggle spectral peaks).
И самое главное, как избавиться от зависимости скрипта к трекам, в "присутствии" их Трек-папки? Что то мешает ему корректно работать с треками при папке - стоит убрать папку из ТСР - всё нормально...
п. с. В проекте чуть больше 80 аудио-треков и с убранными папками работать неудобно.
 
Последнее редактирование:

Wefilev

Active Member
22 Мар 2015
198
26
28
Вроде раньше в паке был скрипт создающий стретч-маркеры на выделеном айтеме по сетке, сейчас не найду.. Поделитесь пожалуйста))
 

zenykmusic

Member
16 Авг 2018
233
7
18
44
Друзья помогите.Хочу сделать кнопку вст эфекта(не инструмента) нашол такое видео но есть одно но.как сделать что б добавленый еффект по умолчанию открывался автоматически. а может есть еще какие то способы.Подскажите пожалуйста.Спасибо
 

Archie's

Well-Known Member
24 Окт 2017
1.936
1.296
113
@zenykmusic,
ПКМ по нужному плагину
upload_2019-1-28_20-43-31.png
назначаешь шоткат и ищешь этот плагин в экшенах
upload_2019-1-28_20-44-43.png
[DOUBLEPOST=1548679663][/DOUBLEPOST]
как сделать что б добавленый еффект по умолчанию открывался
В каком смысле "по умолчанию открывался автоматически"?
 

zenykmusic

Member
16 Авг 2018
233
7
18
44
вот это тема спасибо.А как сделать что б плагин открывался без рамочки цепи эффектов.Спасибо
 

zenykmusic

Member
16 Авг 2018
233
7
18
44
Огромнишое спасибо Вы мне очень помогли.Простите за наглость но ище вопрос.Адля айтемов тоже самое можно сделать.Спасибо
 

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