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

  • Автор темы Автор темы @Michael
  • Дата начала Дата начала
То есть вот так не будет работать
Сначала мне показалось, что ты показал на гиф другой скрипт. А оказывается
Я кажется понял в чем прикол :) Блин, это все дело в настройках конфига.
что он просто не работал с той настройкой и не понятно было чего ты добиваешься.

-----------------

Блин, черти что :( Как теперь скрипты писать...
Вот так баги и ищются и постепенно исправляются.
Параметр который надо настроить называется fxfloat_focus,
Ага, я знаю.
судя по всему в битах записан, если разберешься как менять его через reaper.SNM_SetIntConfigVar, то напиши пожалуйста
В самое начало скрипта вставь это:

JavaScript:
    ---------------------------------------------------------------
    local fxfloat = reaper.SNM_GetIntConfigVar('fxfloat_focus',0);
    if fxfloat&4 == 4 then;
        local fxfloat2 = fxfloat&~(fxfloat&4);
        reaper.SNM_SetIntConfigVar('fxfloat_focus',fxfloat2);
        reaper.defer(function()reaper.SNM_SetIntConfigVar('fxfloat_focus',fxfloat)end);     
    end;
    ---------------------------------------------------------------
 
Вы там как разберетесь хоть финальный вариант опубликуйте)) А то читаешь, но половина непонятно
 
Вы там как разберетесь хоть финальный вариант опубликуйте)) А то читаешь, но половина непонятно
Да все разобрались уже. :)
Нужно тот "выше" код в начало скрипта вставить, что бы та настройка не ломала скрипт и все.
 
Да все разобрались уже. :)
Нужно тот "выше" код в начало скрипта вставить, что бы та настройка не ломала скрипт и все.
Спасибо, работает :) Надо бы мне подтянуть эту тему плохо понимаю
 
  • Like
Реакции: Archie's
Вы там как разберетесь хоть финальный вариант опубликуйте)) А то читаешь, но половина непонятно
На гитхаб все залью, шас лог допишу :) Но это Archie себе поставил настройку, у большинства людей она будет снята с заводского рипера :)
 
  • Like
Реакции: Archie's
@borisuperful, Просто интересно :), а зачем ты переделал функцию которую я написал и заставляешь людей принудительно отключить настройку ?
Зачем ее отключать, если она людям нужна, ведь то что я написал - это работает так: Если эта настройка включена, то данная функция отключит ее, далее произойдет работа самого скрипта и по завершению скрипта эта настройка включится обратно, ну а если эта настройка отключена, то ничего не произойдет, просто выполнится работа скрипта.
 
Последнее редактирование:
@borisuperful, Просто интересно :), а зачем ты переделал функцию которую я написал и заставляешь людей принудительно отключить настройку ?
Подумал что обратно криво будет работать....Ладно сделаю с возвратом :)
 
Вот вы пишете - "поменяй то-то в скрипте", "добавь это в скрипт". Где? Где, чорд возьми, это делается?? Спалил стул, сижу час как баран, пробовал в блокноте открывается какая-то дичь, пробовал в редактировании рипера - какая-то дичь. Программисты безумны)
Без имени-1.jpg
 
Вот вы пишете - "поменяй то-то в скрипте", "добавь это в скрипт". Где? Где, чорд возьми, это делается?? Спалил стул, сижу час как баран, пробовал в блокноте открывается какая-то дичь, пробовал в редактировании рипера - какая-то дичь. Программисты безумны)
Посмотреть вложение 192956
Ты не то скачал :) И там я уже обновил последний раз, ничего не надо редактировать.
Скачать надо так, сначала зайти в скрипт
1607859696057.png
 
  • Like
Реакции: zybex00
Ты не то скачал :) И там я уже обновил последний раз, ничего не надо редактировать.
Скачать надо так, сначала зайти в скрипт
Посмотреть вложение 192957
Спасибо) Вроде получилось, а зачем там master send отключается?

Догадался 1 поставить в скрипте) Теперь не отключается. (Но зачем)
 
Спасибо) Вроде получилось, а зачем там master send отключается?

Догадался 1 поставить в скрипте) Теперь не отключается. (Но зачем)
Ну если нужна шина, зачем удваивать сигнал? :) В большинстве случаев как раз не нужно
 
Не знаю, мне для посыла на эффекты это нужно. На ревер в основном.
Ну так я сделал вариант, надо было только указать что 1 или 0 это есть или нет мастер посыла - уже перезалил скрипт с объяснением :)
А версия с окном позволяет всегда указать то, что нужно, поэтому я их (окна) делаю в первую очередь, чтобы лишние скрипты не плодить
 
Подскажите, есть ли скрипт, устанавливающий высоту(height) выделенного трека(треков) в значениях, с возможностью прописать это значение в скрипте?
 
Подскажите, есть ли скрипт, устанавливающий высоту(height) выделенного трека(треков) в значениях, с возможностью прописать это значение в скрипте?
Я пользуюсь таким скриптом
Код:
local height_track = 110

selected_track = reaper.CountSelectedTracks( 0 )
 for i = 0, selected_track -1 do
      selected_track =  reaper.GetSelectedTrack( 0, i )
   if selected_track ~= nil then
      reaper.SetMediaTrackInfo_Value( selected_track, "I_HEIGHTOVERRIDE", height_track )
   end
 end
reaper.TrackList_AdjustWindows(false)
reaper.UpdateArrange()
Значение прописываю себе в первой строчке. Это на случай, если нужен скрипт с постоянным значением.
 
Я пользуюсь таким скриптом
Код:
local height_track = 110

selected_track = reaper.CountSelectedTracks( 0 )
for i = 0, selected_track -1 do
      selected_track =  reaper.GetSelectedTrack( 0, i )
   if selected_track ~= nil then
      reaper.SetMediaTrackInfo_Value( selected_track, "I_HEIGHTOVERRIDE", height_track )
   end
end
reaper.TrackList_AdjustWindows(false)
reaper.UpdateArrange()
Значение прописываю себе в первой строчке. Это на случай, если нужен скрипт с постоянным значением.
А как сделать чтоб этот скрипт не действовал на треки с залоченной высотой (Lock track height) ?
 
  • Like
Реакции: YuriOl
@Andernik, по идее, вот так, но у меня через раз работает почему-то.
Код:
local height_track = 110

selected_track = reaper.CountSelectedTracks( 0 )
for i = 0, selected_track -1 do
      selected_track =  reaper.GetSelectedTrack( 0, i )
   if selected_track ~= nil then
      reaper.SetMediaTrackInfo_Value( selected_track, "I_TCPH", height_track )
   end
end
reaper.TrackList_AdjustWindows(false)
reaper.UpdateArrange()
Может, кто-нибудь из продвинутых поправит. Я только учусь, (иногда), просто поделился тем, что работает у меня.
 
  • Like
Реакции: Andernik
@Andernik, вроде нашёл правильный код:
Код:
local height_track = 200
local selected_track = reaper.CountSelectedTracks( 0 )
for i = 0, selected_track -1 do
      selected_track =  reaper.GetSelectedTrack( 0, i )
local heightLock = reaper.GetMediaTrackInfo_Value(selected_track,"B_HEIGHTLOCK")  
   if heightLock == 0 then
         reaper.SetMediaTrackInfo_Value( selected_track, "I_HEIGHTOVERRIDE", height_track )
   end
end
reaper.TrackList_AdjustWindows(false)
reaper.UpdateArrange()
Вот так залоченный трек не трогает.
 
Последнее редактирование:
  • Like
Реакции: YuriOl и Andernik
@Andernik, вроде нашёл правильный код:
Код:
local height_track = 200
local selected_track = reaper.CountSelectedTracks( 0 )
for i = 0, selected_track -1 do
      selected_track =  reaper.GetSelectedTrack( 0, i )
local heightLock = reaper.GetMediaTrackInfo_Value(selected_track,"B_HEIGHTLOCK") 
   if heightLock == 0 then
         reaper.SetMediaTrackInfo_Value( selected_track, "I_HEIGHTOVERRIDE", height_track )
   end
end
reaper.TrackList_AdjustWindows(false)
reaper.UpdateArrange()
Вот так залоченный трек не трогает.
Спасибо!
 
  • Like
Реакции: Mr_Tsonts
Экшенами запилить не получилось (( Может кто скрипт встречал? Нужно по хоткею вешать определенный эффект в monitoringFX. Для обычного трека и мастера это получается (либо штатными способами, либо скриптом Archie's), а вот как вставить отдельный эффект или сохраненную цепь в monitoring FX - не пойму
 
Подскажите скрипт, который может залочить группу, что бы разъединение происходило только определённым экшеном?
 

Вложения

  • Скрин.png
    Скрин.png
    7,9 KB · Просмотры: 101
Подскажите скрипт, который может залочить группу, что бы разъединение происходило только определённым экшеном?
Если честно, вопрос не понятен. На картинке обычный набор треков, объединённый в трек папку. Группы треков - целый раздел. нуждающийся в специальном изучении, но это не то, что у вас на рисунке. Возможно, вы имеете в виду, как треки так собрать в папку, чтобы разобрать обратно можно было только специальным скриптом?
 
@Mr_Tsonts, Нужно чтобы групповой трек (который выделен на скрине) не разгрупировался случайно, было такое в проекте. Нужно что то типо экшена, который мог бы залочить.
 
@Martin111, Группой в Рипере называется совершенно другое. У вас Парент трек с чайлд треками.
Залочить их »родство» возможно и можно, нужно глянуть что можно лочить, но тогда будут лочится ВСЕ подобные связи.
 
Здравствуйте. Ищу экшн для возможности выбирать следующий/предыдущий треки с помощь MIDI CC/OSC. Очень удобно выделять треки с помощью крутилки, не могу найти ответ, в Reaper ничего подобного не нашёл.
На форуме кокоса нашёл такой скрипт, но он с помощью крутилки листает только вверх, а хотелось бы выбирать следующий трек при прокрутке вправо, выбирать предыдущий трек при прокрутке влево. Буду рад любой помощи.
local is_new_value, filename, sectionID, cmdID, mode, resolution, val = reaper.get_action_context()
-- The EXPECTED knob behaviour(configure your midi device to achieve this if possible):
-- RELATIVE 2 (63 = -1 , 65 = +1)
-- Val will contain a value of -1 or 1, depending on which way the midi knob was turned
if val < 0 then -- move time selection end point left by 1 frame
reaper.Main_OnCommand(reaper.NamedCommandLookup("_XENAKIOS_SELNEXTTRACK"),0)
reaper.Main_OnCommand(40913,0)
elseif val > 0 then -- move time selection end point left by 1 frame
reaper.Main_OnCommand(reaper.NamedCommandLookup("_XENAKIOS_SELPREVTRACK"),0)
reaper.Main_OnCommand(40913,0)
end
reaper.SetMixerScroll(reaper.GetSelectedTrack(0, 0)) -- centres the view on the selected track
 
На форуме кокоса нашёл такой скрипт, но он с помощью крутилки листает только вверх
есть стандартные экшены с той же функцией. Xenakios/SWS: Select previous tracks Xenakios/SWS: Select next tracks. к сожалению не знаю как заставить их работать на одной cc
 
@keepfoot, попробуй это:
JavaScript:
    local SelTrack = reaper.GetSelectedTrack(0,0);
    if not SelTrack then reaper.defer(function()end)return end;
 
    local val = ({reaper.get_action_context()})[7];
 
    local ExtState = tonumber(reaper.GetExtState('SELNEXPREVTRACK_MIDICCOSC','MIDICCOSC_1'))or 0;
 
    if (ExtState < val) or val < 0 then;
        reaper.Main_OnCommand(reaper.NamedCommandLookup("_XENAKIOS_SELNEXTTRACK"),0);
        reaper.Main_OnCommand(40913,0);
    else;
        reaper.Main_OnCommand(reaper.NamedCommandLookup("_XENAKIOS_SELPREVTRACK"),0);
        reaper.Main_OnCommand(40913,0);
    end;
 
    reaper.SetExtState('SELNEXPREVTRACK_MIDICCOSC','MIDICCOSC_1',val,false);
 
    local SelTrack = reaper.GetSelectedTrack(0,0);
    if SelTrack then;
        reaper.defer(function()reaper.SetMixerScroll(SelTrack)end);
    end;
 
    reaper.defer(function()end);




ЭТОТ КОД ПРОПУСКАЕТ СВЕРНУТЫЕ ТРЕКИ, НО ДЛЯ ЕГО РАБОТЫ ТРЕБУЕТСЯ УСТАНОВИТЬ РЕАПАК И МОЙ РЕПОЗИТОРИЙ:

JavaScript:
    local SelTrack = reaper.GetSelectedTrack(0,0);
    if not SelTrack then reaper.defer(function()end)return end;
 
    local val = ({reaper.get_action_context()})[7];
 
    local ExtState = tonumber(reaper.GetExtState('SELNEXPREVTRACK_MIDICCOSC','MIDICCOSC_1'))or 0;
 
    local ResourcePath = reaper.GetResourcePath()..'/Scripts/Archie-ReaScripts/MAIN/Track/';
 
    if (ExtState < val) or val < 0 then;
        local script = 'Archie_Track; Select next tracks(skip minimized folders)(`).lua';
        dofile(ResourcePath..script);
    else;
        local script = 'Archie_Track; Select previous tracks(skip minimized folders)(`).lua';
        dofile(ResourcePath..script);
    end;
 
    reaper.SetExtState('SELNEXPREVTRACK_MIDICCOSC','MIDICCOSC_1',val,false);
 
    local SelTrack = reaper.GetSelectedTrack(0,0);
    if SelTrack then;
        reaper.defer(function()reaper.SetMixerScroll(SelTrack)end);
    end;
 
    reaper.defer(function()end);

PS Если треков много и крутилки не хватает что бы докрутить до нужного трека, то попробуй РЕЗКО / БЫСТРО крутануть ее назад. Из за того что резко крутанул, в обратку выберется только пару треков и далее потихоньку крути далее в нужном направлении.
 
Последнее редактирование:
  • Like
Реакции: keepfoot и Antonio

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