ReaScripts (скрипты для Reaper) - делимся

Что это означает. Я нашол етот компресор а как мне сделать чтобы он отображался в рипере.
 
Последнее редактирование:
Добрый день, где то видел , но потерял..

Интересует скрипт , который берет сообщения от педали sustian и конвертирует это в удлинение нот , удаляя из айтема соответственно сообщение 64.
 
  • Like
Реакции: shuco
Это скорее в раздел "Помогите создать экшн / кастом экшн / скрипт". Для меня тоже вопрос злободневный, ибо фортепианные треки в этом ключе приходится править через день. Использую вот этот экшн:Edit: Trim right edge of note to edit cursor. Можно сделать кастом в паре вот с этим:Script: Delete Notes Overlaps(poly).lua
 
Последнее редактирование:
@shuco, соглашусь я бы и сам сделал но в экшн нет ни одного действия , которое бы продлевало ноту например до правой границы выделения или лупа ( так можно было обозначить вручную например ту самую точку педаль of )
 
@shuco, соглашусь я бы и сам сделал но в экшн нет ни одного действия , которое бы продлевало ноту например до правой границы выделения или лупа ( так можно было обозначить вручную например ту самую точку педаль of )
dima4321, я себе грубо состряпал скрипт для аранжа и кастом для эдитора. Самое главное работает! Рипер действительно гениален! Я о такой простенькой фиче в кубейсе лет десять мечтал))).
 

Вложения

  • ar.gif
    ar.gif
    1.002,4 KB · Просмотры: 344
  • edit.gif
    edit.gif
    3,2 MB · Просмотры: 365
Последнее редактирование:
  • Like
Реакции: dima4321
function do_actions_from_main_and_midi_sections()(



Main_OnCommand(40109, 0); // MAIN section action "open selected items in primeri MIDI editor"

active_MIDI_editor = MIDIEditor_GetActive(); //get MIDI editor ID
MIDIEditor_LastFocused_OnCommand(40746, 0); //Select all notes in time selection

MIDIEditor_LastFocused_OnCommand(NamedCommandLookup("_BR_ME_SAVE_CURSOR_POS_SLOT_13"), 0); // ME action: "SWS/BR: Save edit cursor position, slot 13"

MIDIEditor_OnCommand(active_MIDI_editor, 40881); // ME action: "Move cursor to end of time selection"

MIDIEditor_OnCommand(active_MIDI_editor, 40791); // ME action: "Trim right edge of note to edit cursor"

MIDIEditor_LastFocused_OnCommand(NamedCommandLookup("_RS7d3c_0e9ffdc242cf1ec9080bf27ec6722c0f926cecfb"), 0); // ME action: "Script: Delete Notes Overlaps(poly)"

MIDIEditor_LastFocused_OnCommand(NamedCommandLookup("_BR_ME_RESTORE_CURSOR_POS_SLOT_13"), 0); // ME action: "SWS/BR: Restore edit cursor position, slot 13"

MIDIEditor_OnCommand(active_MIDI_editor, 2); // ME action: "Close MEditor"

Main_OnCommand(40635, 0); // MAIN section action "Remove time selection"

);

do_actions_from_main_and_midi_sections();
 

Вложения

  • pedal.jpg
    pedal.jpg
    23,1 KB · Просмотры: 241
@shuco, попробовал, да это хорошая штука. Но т.к. я человек совсем новенький в рипере , проясни пару моментов.

Скрипт написан на языке eel как я понял , по крайней мере я поставил это расширение в блокнот файле.

В итоге скрипт работает корректно и в поле arrange и в midi editor.

Но в миди едиторе почему то после выполнения действия сразу выкидывает в arrange , получается надо каждый раз снова заходить в mid editor и править очередную партию нот. Вместо того чтобы все время сидеть там .

И прокомментируй вложение pedal , это расширение sws и прописанная последовательность действий в итоге генерирует сам скрипт - код ?
 
Но т.к. я человек совсем новенький в рипере...
Я сам его месяц только осваиваю.
Вложение pedal это кастом экшн именно для миди эдитора. А чтобы скрипт не выкидывал обратно в аранж нужно строчку Close MEditor убрать. И первую конечно( "open selected items in primeri MIDI editor")
function do_actions_from_main_and_midi_sections()(

active_MIDI_editor = MIDIEditor_GetActive(); //get MIDI editor ID
MIDIEditor_LastFocused_OnCommand(40746, 0); //Select all notes in time selection

MIDIEditor_LastFocused_OnCommand(NamedCommandLookup("_BR_ME_SAVE_CURSOR_POS_SLOT_13"), 0); // ME action: "SWS/BR: Save edit cursor position, slot 13"

MIDIEditor_OnCommand(active_MIDI_editor, 40881); // ME action: "Move cursor to end of time selection"

MIDIEditor_OnCommand(active_MIDI_editor, 40791); // ME action: "Trim right edge of note to edit cursor"

MIDIEditor_LastFocused_OnCommand(NamedCommandLookup("_RS7d3c_0e9ffdc242cf1ec9080bf27ec6722c0f926cecfb"), 0); // ME action: "Script: Delete Notes Overlaps(poly)"

MIDIEditor_LastFocused_OnCommand(NamedCommandLookup("_BR_ME_RESTORE_CURSOR_POS_SLOT_13"), 0); // ME action: "SWS/BR: Restore edit cursor position, slot 13"

Main_OnCommand(40635, 0); // MAIN section action "Remove time selection"

);

do_actions_from_main_and_midi_sections();
Но лучше кастом собрать.
 
Последнее редактирование:
  • Like
Реакции: dima4321 и riko
Коллеги, нигде не встретил скрипта по добавлению/удалению стретч-маркера под курсором мыши с одной и той же клавиши, написал сам.
Может, кому то тоже пригодится:

Код:
  ----------------------------------------------------------------------------------------
  function nothing() end; function noundo() reaper.defer(nothing) end
  ----------------------------------------------------------------------------------------
  function main()
    -- locals
      local sm_id, item, item_pos, take, pos, rate, _; local r = reaper
      _,_,_ = r.BR_GetMouseCursorContext()
      take = r.BR_GetMouseCursorContext_Take()
      pos = r.BR_GetMouseCursorContext_Position()
      sm_id = r.BR_GetMouseCursorContext_StretchMarker()
      if not take then noundo() return end
    -- remove SM
      if sm_id > -1 then
        r.Undo_BeginBlock()
        r.DeleteTakeStretchMarkers(take, sm_id)
        r.Undo_EndBlock("Remove stretch marker at mouse cursor", -1)
      else
    -- add SM
        if r.TakeIsMIDI(take) then noundo() return end
        r.Undo_BeginBlock()
        item_pos = r.GetMediaItemInfo_Value(r.GetMediaItemTake_Item(take), "D_POSITION")
        rate = r.GetMediaItemTakeInfo_Value(take, "D_PLAYRATE")
        r.SetTakeStretchMarker(take, -1, (pos-item_pos)*rate)
        r.Undo_EndBlock("Add stretch marker at mouse cursor", -1)
      end
    r.UpdateArrange()
  end
  ----------------------------------------------------------------------------------------
  main()

SM at mouse.gif
 
Папка как в Cubase / Folder items (like Cubase, StudioOne)


Ссылки на скрипты под видео на ютубе
 
Последнее редактирование:
  • Like
Реакции: Moyses
Автозум трека при выборе, прикольно достаточно



Скрипт в описании под видео

Привет, понимаю ,что прошло четыре года... я о том что под видео уже ссылка не действительна. А где бы этот скрипт таки взять?))
 
Коллеги, нигде не встретил скрипта по добавлению/удалению стретч-маркера под курсором мыши с одной и той же клавиши, написал сам.
Может, кому то тоже пригодится:

Код:
  ----------------------------------------------------------------------------------------
  function nothing() end; function noundo() reaper.defer(nothing) end
  ----------------------------------------------------------------------------------------
  function main()
    -- locals
      local sm_id, item, item_pos, take, pos, rate, _; local r = reaper
      _,_,_ = r.BR_GetMouseCursorContext()
      take = r.BR_GetMouseCursorContext_Take()
      pos = r.BR_GetMouseCursorContext_Position()
      sm_id = r.BR_GetMouseCursorContext_StretchMarker()
      if not take then noundo() return end
    -- remove SM
      if sm_id > -1 then
        r.Undo_BeginBlock()
        r.DeleteTakeStretchMarkers(take, sm_id)
        r.Undo_EndBlock("Remove stretch marker at mouse cursor", -1)
      else
    -- add SM
        if r.TakeIsMIDI(take) then noundo() return end
        r.Undo_BeginBlock()
        item_pos = r.GetMediaItemInfo_Value(r.GetMediaItemTake_Item(take), "D_POSITION")
        rate = r.GetMediaItemTakeInfo_Value(take, "D_PLAYRATE")
        r.SetTakeStretchMarker(take, -1, (pos-item_pos)*rate)
        r.Undo_EndBlock("Add stretch marker at mouse cursor", -1)
      end
    r.UpdateArrange()
  end
  ----------------------------------------------------------------------------------------
  main()


а можно версию с привязкой к сетке? и чтоб swing соблюдала?
спс
 
  • Like
Реакции: Nagor
а можно версию с привязкой к сетке? и чтоб swing соблюдала?
спс
Archie_Item; Add Remove stretch marker under mouse cursor.lua
Archie_Item; Add Remove stretch marker to nearest grid under mouse cursor.lua
Archie_Item; Add Remove stretch marker under mouse cursor and snap to nearest grid.lua
Archie_Item; Add-Remove stretch marker under mouse cursor and snap to previous grid.lua
Archie_Item; Add Remove stretch marker under mouse cursor and snap to next grid.lua
 
Последнее редактирование:
  • Like
Реакции: chiibiis
Archie_Item; Add Remove stretch marker under mouse cursor.lua
Archie_Item; Add Remove stretch marker to nearest grid under mouse cursor.lua
Archie_Item; Add Remove stretch marker under mouse cursor and snap to nearest grid.lua
Archie_Item; Add-Remove stretch marker under mouse cursor and snap to previous grid.lua
Archie_Item; Add Remove stretch marker under mouse cursor and snap to next grid.lua

Отлично работает!!!
А реально сделать скрипт, чтобы edit cursor не сдвигался?
А то после установки stretch marker-ов всё время приходится устанавливать курсор вручную для воспроизведения..

PS Задонатил чуток )
 
  • Like
Реакции: Archie's
@Archchie а как сделать чтобы марекры выставлялись по edit cursor ? (toogle, поставить-удалить)
 
@Archchie Item: Add stretch marker at cursor ставит маркер, хотелось бы чтобы при повторном нажатии удалял маркер.
 
@vax, Не понял. Там же не куда не сдвигается edit cursor.

когда использую add stretch marker - курсор остаётся на своём месте.
когда твой скрипт или старые скрипты по добавлению стретч маркера и квантайзу - курсор двигается к тому месту, куда stretch marker привязывается.
 
когда твой скрипт или старые скрипты по добавлению стретч маркера и квантайзу - курсор двигается к тому месту, куда stretch marker привязывается.
У меня никуда курсор не двигается, вот гиф
Или наоборот надо что бы он прыгнуть к добавленному маркеру ?
 

Вложения

  • 111.gif
    111.gif
    100,9 KB · Просмотры: 582
Последнее редактирование:

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