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

  • Автор темы Автор темы @Michael
  • Дата начала Дата начала
Как-то он странно работает, чють двинет нотки, но не по сетке, а рандомно
Свинг не учитывает, видать старый уже

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

Вложения

Последнее редактирование:
К сожалению всё ещё квантует по сетке, в зависимости от зума в проекте. :(
 
Помогите, пожалуйста, со скриптом или кастом экшеном. Хотел сделать следующее: 1 - выделенный мидиайтем должен открыться в миди редакторе, 2 - сам миди редактор должен переключиться в режим докер, 3 - в миди редакторе должен включиться режим MIDI inputs as step input mode.
И второй скрипт обратное действие - 1 - выключить режим MIDI inputs as step input mode, 2 - миди редактор выключить из режима докер, 3- закрыть миди редактор.
Может можно и стандартными экенами решить, я соответствующие экшены нашел, но застрял на том, что не могу добавить в кастом экшены из разных секций. Потому как первый относится к секции экшенов Main, а следующие к секции экшенов Midi Editor.
P.S. Вроде сам через скрипт сделал. Разобрался)
 
Последнее редактирование:
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
@Archchie, Отлично, все работает. А как бы мне это на одну кнопку сделать, типа со статусом Toggle. Нажал кнопку - работает первое условие, отжал - работает второе. Через цикл экшн что-то не пойму как сделать.
 
А как бы мне это на одну кнопку сделать, типа со статусом 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
Подскажите как можно организовать такую штуку. Пишу в режиме вставки, поэтому Рипер отключает запись на трек в конце тайм-селекшина. Однако воспроизведение продолжается после отключения записи. Как сделать так, чтобы в конце тайм-селекшн останавливалась и запись, и воспроизведение?
Экшн "Xenakios/SWS: Toggle stop playback at end of time selection" естественно такого поведения не дает. Что-то должно висеть и анализировать тайм-лайн и при достижении правого края тайм-селекшн отключить воспроизведение и запись
 
@Supa75, Archie_Playback; Toggle stop playback at end of time selection.lua
 
Последнее редактирование:
  • Like
Реакции: Supa75
Я не правильно выразился... Скорее с кнопкой, что бы нажал-команда выполняется, отжал-не выполняется. И если можно, подскажите, как загрузить экшн в старт проекта?
 
Я не правильно выразился... Скорее с кнопкой, что бы нажал-команда выполняется, отжал-не выполняется.
Для этого ТАК должен быть написан скрипт. В общем ЛЮБОЙ скрипт можно сделать ТАКИМ, как вы хотите, только нужно ведь понимать, что есть ведь действия скриптов, которые если вы вот так повесите на исполнение до вашего останова, просто чудеса начнут творить в вашем проекте и работать не дадут. По этому - всё это индивидуально и с подключением людей, которые уже прониклись пониманием скриптов.
И если можно, подскажите, как загрузить экшн в старт проекта?
В Экстеншинах SWS есть такая опция - внимательно посмотрите.
 
  • Like
Реакции: shuco
@Supa75, Archie_Playback; Toggle stop playback at the end of time selection.lua
данный экшн не работает для записи (что собственно следует из названия), т.е. в режиме вставки Рипер всё же думает, что идет запись, а не воспроизведение, поэтому ничего не останавливает даже после отключения записи.
 
данный экшн не работает для записи
А причем тут экшен, это не экшен а скрипт, название то надо читать внимательней от начала до конца!!!
Это экшен:
"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
@Archchie, странно, что данный скрипт не работает у Cycle-action для условий. При сохранении, цикл-редактор пишет, что экшн не может быть зарегестрирован, т.к. не видит статуса on/off в скрипте. Но в экшинах видно, что такой статус существует (on/off). Что может быть не так?
Screenshot_3.jpg
 
странно, что данный скрипт не работает у Cycle-action для условий.
Cycle-action не у одного скрипта не видит этот статус. Почему я не знаю. Где то не так давно это уже обсуждали.
В принципе если сильно надо, то я могу сделать тебе этот статус через экшен dummy, то тогда цикл экшен увидит его, вот только если ты где нибудь еще в кастомах используешь экшен dummy, то они могут конфликтовать
 
еще в кастомах используешь экшен dummy, то они могут конфликтовать
даже не понимаю, в чем смысл dummy. Если это эти экшены SWS/S&M: Dummy toggle 1...8, - то нет, нигде не использую. Сделай плиз, чтобы можно было использовать в циклах для условий. Спасибо
 
Если это эти экшены 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 уже вставлять не надо
 

Вложения

@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 аудио-треков и с убранными папками работать неудобно.
 
Последнее редактирование:
Вроде раньше в паке был скрипт создающий стретч-маркеры на выделеном айтеме по сетке, сейчас не найду.. Поделитесь пожалуйста))
 
Друзья помогите.Хочу сделать кнопку вст эфекта(не инструмента) нашол такое видео но есть одно но.как сделать что б добавленый еффект по умолчанию открывался автоматически. а может есть еще какие то способы.Подскажите пожалуйста.Спасибо
 
@zenykmusic,
ПКМ по нужному плагину
upload_2019-1-28_20-43-31.png
назначаешь шоткат и ищешь этот плагин в экшенах
upload_2019-1-28_20-44-43.png
[DOUBLEPOST=1548679663][/DOUBLEPOST]
как сделать что б добавленый еффект по умолчанию открывался
В каком смысле "по умолчанию открывался автоматически"?
 
вот это тема спасибо.А как сделать что б плагин открывался без рамочки цепи эффектов.Спасибо
 
Огромнишое спасибо Вы мне очень помогли.Простите за наглость но ище вопрос.Адля айтемов тоже самое можно сделать.Спасибо
 

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