Reaper: вопросы присматривающихся к этой программе (1 онлайн

  • Автор темы Автор темы goa
  • Дата начала Дата начала
Здравствуйте Друзья! После переустановки ОС и загрузки своей конфигурации, почему то не отображается рисунок волны аудио айтемов в малом масштабе. Не могу в настройках найти - есть ли такая регулировка. Может кто знает. Хелп плиз
Попробуй обновить пики экшеном: Peaks: Rebuild all peaks
 
Осваивать для того что бы попробовать что это такое или осваивать в процессе работы?
При освоении сложной программы, а любой скриптовый язык не просто освоить, да ещё и заточенный под конкретное API, нужны либо хорошие примеры/туториалы, либо учитель.
Это для начала.
Потом, нужно также иметь с кем обсудить тупики и проблемы, и желательно на родном тебе языке.
 
пару человек я знаю, но сильно занятые, один в америке живёт.
Вадим, уже не вижу смысла в этом. Тем более, что я уверен на 100% - ни чего нового я там не найду, после скриптов Рипера и его постоянно развивающегося API.
 
Не могу найти эту команду в экшн листе.Имеется ли вообще такое?
 

Вложения

  • qFrGqycwjr.png
    qFrGqycwjr.png
    26,4 KB · Просмотры: 78
Даже сделать с виду трудно. Есть например команда reaper.SNM_SetIntConfigVar( varname, newvalue ), но она только зрит данные в project settigns или preference. А зрит именно то, что есть в файле reaper.ini
 
Кстати вот например скрипт, на основе этой команды, чтобы отобразить или скрыть пики (на глобальном уровне настроек)

PHP:
local showpeaks = reaper.SNM_GetIntConfigVar("showpeaks", -1)
local display_peaks = showpeaks&1 == 1
if display_peaks then
  reaper.SNM_SetIntConfigVar("showpeaks", showpeaks-1)
else
  reaper.SNM_SetIntConfigVar("showpeaks", showpeaks+1)
end
reaper.UpdateArrange()
Гиф
uWcPerr4Pa.gif
 
  • Like
Реакции: Antonio
Конечно же я сразу замечтал на основе этой команды сделать change buffer size для аудио девайса, но почему-то обломалось, пишешь название настройки, как в reaper.ini, то бишь "asio_bsize", а скрипт менять не хочет :(
 
  • Like
Реакции: Antonio

Вложения

  • iSzJmJHukn.png
    iSzJmJHukn.png
    20,3 KB · Просмотры: 88
Это понятно.Но вот многие думали что это тоже нельзя вывести.Но Арчи склепал.
Просто думал очки не протер, как говорится.
Так в этом и есть плюс Рипера, что конфиг можно заточить под свои задачи, которые у всех разные.
 
В миди редакторе создал кнопку, которая переключает следующий айтем и соответственно курсор переходит в начало такта. Использовал команды Activate next MIDI item и Navigate: Move edit cursor right one measure. Все вроде нормально, но в мэйне каждый последующий айтем остается выделенным. Вопрос: какая команда будет снимать выделение айтема и все выделенные на нем ноты? Не могу найти такой команды, подскажите.
 
JavaScript:
    -------------------------------------------------------
    local function no_undo()reaper.defer(function()end)end;
    -------------------------------------------------------
   
   
    local function Post_LMouseDownUp(hwnd, x, y);
        reaper.JS_WindowMessage_Post(hwnd, "WM_LBUTTONDOWN", 1, 0, x, y)
        reaper.JS_WindowMessage_Post(hwnd, "WM_LBUTTONUP", 0, 0, x, y)
    end
   
   
    local hWnd_action = reaper.JS_Window_Find("Snap/Grid Settings",true);
    local Dest = hWnd_action;;
    reaper.Main_OnCommand(40071,0)--Show snap/grid settings
    hWnd_action = reaper.JS_Window_Find("Snap/Grid Settings",true);
    if not hWnd_action then no_undo()return end;
    --[[----------------------------------------------------------
    for i = 0,0 do
        hW = reaper.JS_Window_FindChildByID(hWnd_action,i);
        if hW then
            sNm = reaper.JS_Window_GetTitle(hW,"")
        end
        reaper.ShowConsoleMsg(tostring(hW)..'--'..i..'--'..tostring(sNm)..'\n' )
    end
    --]]----------------------------------------------------------
    local combo = reaper.JS_Window_FindChildByID(hWnd_action,1043);
    Post_LMouseDownUp(combo,0,0);
   
    if not Dest then;
        --reaper.JS_Window_SetOpacity(hWnd_action,'ALPHA',1);
        reaper.JS_Window_Move(hWnd_action,-9999,-9999);
        reaper.defer(function()reaper.JS_Window_Destroy(hWnd_action)end);
    end;
 
Последнее редактирование:
  • Like
Реакции: Antonio и Red Bull
JavaScript:
    -------------------------------------------------------
    local function no_undo()reaper.defer(function()end)end;
    -------------------------------------------------------
  
  
    local function Post_LMouseDownUp(hwnd, x, y);
        reaper.JS_WindowMessage_Post(hwnd, "WM_LBUTTONDOWN", 1, 0, x, y)
        reaper.JS_WindowMessage_Post(hwnd, "WM_LBUTTONUP", 0, 0, x, y)
    end
  
  
    local hWnd_action = reaper.JS_Window_Find("Snap/Grid Settings",true);
    local Dest = hWnd_action;;
    reaper.Main_OnCommand(40071,0)--Show snap/grid settings
    hWnd_action = reaper.JS_Window_Find("Snap/Grid Settings",true);
    if not hWnd_action then no_undo()return end;
    --[[----------------------------------------------------------
    for i = 0,0 do
        hW = reaper.JS_Window_FindChildByID(hWnd_action,i);
        if hW then
            sNm = reaper.JS_Window_GetTitle(hW,"")
        end
        reaper.ShowConsoleMsg(tostring(hW)..'--'..i..'--'..tostring(sNm)..'\n' )
    end
    --]]----------------------------------------------------------
    local combo = reaper.JS_Window_FindChildByID(hWnd_action,1043);
    Post_LMouseDownUp(combo,0,0);
  
    if not Dest then;
        --reaper.JS_Window_SetOpacity(hWnd_action,'ALPHA',1);
        reaper.JS_Window_Move(hWnd_action,-9999,-9999);
        reaper.defer(function()reaper.JS_Window_Destroy(hWnd_action)end);
    end;
Ну вот!!Оказывается все можно,когда за дело берется профи))Премного благодарен!
Еще вот что хотел спросить.У тебя имеются некоторые скрипты по типу "Grid switch" ,в своей определенной оболочке.Просто интересно,возможен ли такой финт в теории, а именно вставка своих личных экшенов,вместо того что есть?Это смотрится довольно аккуратно и самое важное можно ужать до нужных размеров.
 
@BRG, снять выделение с нот - в секции MIDI Editor - Unselect all
а снять выделение с атема - Unselect all items
Да, но команда Unselect all items для секции Main и ее не получается забиндить на кнопку в Midi Editor. Но и на данный момент конструкция работает не так как хотелось бы.. Допустим нота длинной в два такта, а это один айтем, а мне нужно переключиться на второй айтем, тоесть на третий такт. Айтем переключается, но курсор падает в начало второго такта. В проекте айтемы разной длины, а курсор только по тактам идет. В общем хотелось бы чтобы всегда выделялся следующий айтем и курсор падал в начало этого айтема. Возможно такое сделать?
 
Еще вот что хотел спросить.У тебя имеются некоторые скрипты по типу "Grid switch" ,в своей определенной оболочке.Просто интересно,возможен ли такой финт в теории, а именно вставка своих личных экшенов,вместо того что есть?Это смотрится довольно аккуратно и самое важное можно ужать до нужных размеров.
Нет.
В нем все жестко закодировано. Очень много нужно будет редактировать в скрипте, что бы добиться этого.
 
Да, но команда Unselect all items для секции Main и ее не получается забиндить на кнопку в Midi Editor. Но и на данный момент конструкция работает не так как хотелось бы.. Допустим нота длинной в два такта, а это один айтем, а мне нужно переключиться на второй айтем, тоесть на третий такт. Айтем переключается, но курсор падает в начало второго такта. В проекте айтемы разной длины, а курсор только по тактам идет. В общем хотелось бы чтобы всегда выделялся следующий айтем и курсор падал в начало этого айтема. Возможно такое сделать?
Если честно, я не понял что именно :(
 
Но и на данный момент конструкция работает не так как хотелось бы..

Вот я об этом и писал,но потом удалил сообщение.Какой в этом смысл?Если второе действие,двигает курсор на один такт?
Я оставил первый экшн и добавил к нему Zoom content.Таким образом у меня перед глазами всегда в фул масштабе окно с нотами.
Скриптов для вставки курсора к next айтему,(в контексте миди эдитора,по умолчанию нет).Поэтому,нужно обходными путями это делать,забирая некоторые команды с maine.
Остается еще три команды по идеи.Для тех у кого выключена эта опция
188879

1 Создать Time selection,по айтему
2 Поставить к его началу курсор
3 Удалить Time selection
Я подобное делал,для других функций.
Но лучше конечно решить скриптом.
 
@BRG, Это нужно?
123.gif


PHP:
   -------------------------------------------------------
   local function no_undo()reaper.defer(function()end)end;
   -------------------------------------------------------
   local midieditor = reaper.MIDIEditor_GetActive();
   if not midieditor then no_undo()return end;
   reaper.MIDIEditor_OnCommand(midieditor,40833);--Activate next MIDI item
   local take = reaper.MIDIEditor_GetTake(midieditor);
   local item = reaper.GetMediaItemTake_Item(take);
   reaper.SelectAllMediaItems(0,0);
   local pos = reaper.GetMediaItemInfo_Value(item,'D_POSITION');
   reaper.SetEditCurPos(pos,true,false);
   reaper.SetMediaItemInfo_Value(item,'B_UISEL',1);
   reaper.UpdateArrange();
   no_undo();
 
  • Like
Реакции: Red Bull
@BRG, Это нужно?
Посмотреть вложение 188880

PHP:
   -------------------------------------------------------
   local function no_undo()reaper.defer(function()end)end;
   -------------------------------------------------------
   local midieditor = reaper.MIDIEditor_GetActive();
   if not midieditor then no_undo()return end;
   reaper.MIDIEditor_OnCommand(midieditor,40833);--Activate next MIDI item
   local take = reaper.MIDIEditor_GetTake(midieditor);
   local item = reaper.GetMediaItemTake_Item(take);
   reaper.SelectAllMediaItems(0,0);
   local pos = reaper.GetMediaItemInfo_Value(item,'D_POSITION');
   reaper.SetEditCurPos(pos,true,false);
   reaper.SetMediaItemInfo_Value(item,'B_UISEL',1);
   reaper.UpdateArrange();
   no_undo();
А как сделать previous и вариант с zoom content? А то у меня получается
1-ый фул
2-ой вне обзора
3 -ий снова фул
чередуются вообщем.
 
@Red Bull,
PHP:
   -------------------------------------------------------
   local function no_undo()reaper.defer(function()end)end;
   -------------------------------------------------------
   local midieditor = reaper.MIDIEditor_GetActive();
   if not midieditor then no_undo()return end;
   reaper.MIDIEditor_OnCommand(midieditor,40833);--Activate next MIDI item
   local take = reaper.MIDIEditor_GetTake(midieditor);
   local item = reaper.GetMediaItemTake_Item(take);
   reaper.SelectAllMediaItems(0,0);
   local pos = reaper.GetMediaItemInfo_Value(item,'D_POSITION');
   reaper.SetEditCurPos(pos,true,false);
   reaper.SetMediaItemInfo_Value(item,'B_UISEL',1);
   reaper.UpdateArrange();
   reaper.Main_OnCommand(40153,0)--Item: Open in built-in MIDI editor (set default behavior in preferences)
   -- reaper.MIDIEditor_OnCommand(midieditor,40466);--View: Zoom to content
   no_undo();
PHP:
   -------------------------------------------------------
   local function no_undo()reaper.defer(function()end)end;
   -------------------------------------------------------
   local midieditor = reaper.MIDIEditor_GetActive();
   if not midieditor then no_undo()return end;
   reaper.MIDIEditor_OnCommand(midieditor,40834);--Activate previous MIDI item
   local take = reaper.MIDIEditor_GetTake(midieditor);
   local item = reaper.GetMediaItemTake_Item(take);
   reaper.SelectAllMediaItems(0,0);
   local pos = reaper.GetMediaItemInfo_Value(item,'D_POSITION');
   reaper.SetEditCurPos(pos,true,false);
   reaper.SetMediaItemInfo_Value(item,'B_UISEL',1);
   reaper.UpdateArrange();
   reaper.Main_OnCommand(40153,0)--Item: Open in built-in MIDI editor (set default behavior in preferences)
   -- reaper.MIDIEditor_OnCommand(midieditor,40466);--View: Zoom to content
   no_undo();
 
  • Like
Реакции: Red Bull

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