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

MaxMusiMax; Razor Edit; Fast Mode

в состоянии SetButtonOFF вы можете вставить свои модификаторы
для этого в поиске окна "Actions" набрав это "Set default mouse modifier action for" найдите нужный вам

244740


PHP:
function print_rs (param)
    reaper.ShowConsoleMsg (tostring (param) .. "\n");
end
-- #######################################
reaper.PreventUIRefresh(1);
-- #######################################

function SetButtonON()
    is_new_value, filename, sec, cmd, mode, resolution, val = reaper.get_action_context()
    state = reaper.GetToggleCommandStateEx( sec, cmd )
    reaper.SetToggleCommandState( sec, cmd, 1 ) -- Set ON
    reaper.RefreshToolbar2( sec, cmd )
end


function SetButtonOFF()
    is_new_value, filename, sec, cmd, mode, resolution, val = reaper.get_action_context()
    state = reaper.GetToggleCommandStateEx( sec, cmd )
    reaper.SetToggleCommandState( sec, cmd, 0 ) -- Set OFF
    reaper.RefreshToolbar2( sec, cmd )
end


is_new_value, filename, sec, cmd, mode, resolution, val = reaper.get_action_context()
state = reaper.GetToggleCommandStateEx( sec, cmd )


if state == 1 then
    reaper.Main_OnCommand(39201, 0) -- Set default mouse modifier action for "Track left drag" to "Marquee select items"
    reaper.Main_OnCommand(39513, 0) -- Set default mouse modifier action for "Media item left click" to "Select item and move edit cursor" (factory default)
    reaper.Main_OnCommand(39001, 0) -- Set default mouse modifier action for "Media item left drag" to "Move item"
    reaper.Main_OnCommand(39033, 0) -- Set default mouse modifier action for "Media item bottom half left drag" to "Move item"

    SetButtonOFF()
else
    reaper.Main_OnCommand(27030, 0) -- Set default mouse modifier action for "Media item left drag" to "Select razor edit area"
    reaper.Main_OnCommand(39217, 0) -- Set default mouse modifier action for "Track left drag" to "Select razor edit area"
    reaper.Main_OnCommand(27062, 0) -- Set default mouse modifier action for "Media item bottom half left drag" to "Select razor edit area"

    SetButtonON()
end
-- #######################################
reaper.PreventUIRefresh(-1);
reaper.TrackList_AdjustWindows(0)  -- Updates the window view
reaper.UpdateArrange();  -- Updates the window view
 

Вложения

Последнее редактирование:
  • Like
Реакции: Andernik
О, так это ж буквально мой Слайсер, на том же коде :D

@iq.urbat-off, загляни сюда, там есть описание и инструкция на русском: https://forum.cockos.com/showthread.php?t=232914
Скрипт есть в ReaPack, то есть, сначала его нужно установить отсюда: https://reapack.com/
 
  • Like
Реакции: Andernik и Landre
Привет всем! Подскажите пожалуйста есть ли экшн для создания региона (или маркера) с конкретным именем? и можно ли перемещаться вправо/влево только между конкретным названием региона (к примеру 20 регионов с названием «SIB», что бы при перемещении не затрагивались регионы с названиями «verse» «chorus» и тд, а перемещались строго клавишами вправо влево по регионам «SIB»)
 
Привет всем! Подскажите пожалуйста есть ли экшн для создания региона (или маркера) с конкретным именем? и можно ли перемещаться вправо/влево только между конкретным названием региона (к примеру 20 регионов с названием «SIB», что бы при перемещении не затрагивались регионы с названиями «verse» «chorus» и тд, а перемещались строго клавишами вправо влево по регионам «SIB»)
Ответ на первый вопрос нашёл, осталось найти как одной клавишей перемещаться между регионами с определённым названием, не цепляя по пути другие регионы...
 
Так может поделитесь? =)
Скрипт для создания региона с нужным именем нашёл, «intro» в конце заменить на нужное:
function create_region(region_name)
local color = 0
local ts_start, ts_end = reaper.GetSet_LoopTimeRange(false, false, 0, 0, false)
if ts_start == ts_end then return end
reaper.AddProjectMarker2(0, true, ts_start, ts_end, region_name, -1, color)
reaper.Undo_OnStateChangeEx("Create region with predefined name", -1, -1)
end

create_region("intro")


Код для перемещения по конкретным регионам не цепляя регионы и маркеры с другими названиями сделал, всё работаетт, но пока не тестил, sib заменить на нужное. Для перемещения вперёд:

-- Функция для перемещения к следующему региону с именем "sib" и выделения его
function goToNextRegionWithNameAndSelect(regionName)
local numMarkers = reaper.CountProjectMarkers(0)
local currentPosition = reaper.GetCursorPosition()

for i = 0, numMarkers - 1 do
local retval, isRegion, pos, rgnend, name, markrgnindex, color = reaper.EnumProjectMarkers(i)
if isRegion and name == regionName and pos > currentPosition then
reaper.SetEditCurPos(pos, true, false)
reaper.GetSet_LoopTimeRange(true, false, pos, rgnend, false)
return
end
end
end

-- Основная функция скрипта
function main()
local regionName = "sib"
goToNextRegionWithNameAndSelect(regionName)
end

-- Запуск основной функции
main()


Для перемещения назад:


-- Функция для перемещения к предыдущему региону с именем "sib" и выделения его
function goToPreviousRegionWithNameAndSelect(regionName)
local numMarkers = reaper.CountProjectMarkers(0)
local currentPosition = reaper.GetCursorPosition()
local targetPosition = nil
local targetEnd = nil

for i = 0, numMarkers - 1 do
local retval, isRegion, pos, rgnend, name, markrgnindex, color = reaper.EnumProjectMarkers(i)
if isRegion and name == regionName and pos < currentPosition then
if targetPosition == nil or pos > targetPosition then
targetPosition = pos
targetEnd = rgnend
end
end
end

if targetPosition ~= nil then
reaper.SetEditCurPos(targetPosition, true, false)
reaper.GetSet_LoopTimeRange(true, false, targetPosition, targetEnd, false)
end
end

-- Основная функция скрипта
function main()
local regionName = "sib"
goToPreviousRegionWithNameAndSelect(regionName)
end

-- Запуск основной функции
main()


Если не нужно что-бы регион выделялся то удалить строчку «reaper.GetSet_LoopTimeRange(true, false, pos, rgnend, false)»
 
  • Like
Реакции: truemanofan
Ребят, всем привет, есть очень большая потребность в одном скрипте, но его как понимаю нет, может вы подскажите к кому обратится...Вообщем есть скрипт reposition items в режиме end мы выставляем на каком расстоянии от текущего айтема будет находится следующий. Все бы хорошо, но не хватает одной важной функции, хотелось бы, что-бы скрипту можно было указывать какие айтемы условно надо затрагивать а какие нет. Если более конкретно то предположим,что я не хочу двигать те айтемы которые находятся на расстоянии до 5ти секунд, а те которые находятся в расстоянии друг от друга больше 5 секунд те сдвинуть до 5ти секунд...
 
скрипты и тема от phaselab (покупка за 0):

Reanspiration is a collection of 3 scripts designed to provide a creative spark when you need it most, helping you start your songs with fresh, inspiring ideas: https://phaselabaudio.gumroad.com/l/Reanspiration

Reanspiration-Rhythms.lua
Reanspiration-Notes.lua
Reanspiration-Chords.lua


Reaplacer - Random Sample and Pattern Replacement Scripts: https://phaselabaudio.gumroad.com/l/reaplacer

phaselab_Reaplacer_Sample-Script-Creator.lua
phaselab_Reaplacer_Pattern-Script-Creator.lua


phaselab Reaper Theme: https://phaselabaudio.gumroad.com/l/reapertheme
 
  • Like
Реакции: mitinglas
Привет) такой вопрос тем, кто использовал ImGUI.. среди предлагаемых элементов есть только слайдеры, но не нахожу круглых кнобов. При этом вижу, что например paranormal fx router использует тоже imgui в интерфейсе, там например dry-wet сделан в виде кноба, но как ни искал, так и не понял, где он там закопан( куда копать, подскажите плз
 
Привет) такой вопрос тем, кто использовал ImGUI.. среди предлагаемых элементов есть только слайдеры, но не нахожу круглых кнобов. При этом вижу, что например paranormal fx router использует тоже imgui в интерфейсе, там например dry-wet сделан в виде кноба, но как ни искал, так и не понял, где он там закопан( куда копать, подскажите плз
Привет. Эт проще у них в профильной теме поискать. Вот, например: https://forum.cockos.com/showpost.php?p=2437088&postcount=157
 
  • Like
Реакции: fruitcore
Привет. Эт проще у них в профильной теме поискать. Вот, например: https://forum.cockos.com/showpost.php?p=2437088&postcount=157
спасибо!
Я кстати на Ваши скрипты поглядываю в плане отрисовки формы волны айтемов.. но до сих пор не разобрался с track acsessors, или как их там.. хочу сделать контроль loop source как в ableton, чтобы выбирать область на всём айтеме с отображением grid lines. Мне кажется, это было бы очень удобная фича
 
  • Like
Реакции: Andernik
249656

Пока что вот такое сделал, сыроватенько, но работает) причем функция BR_SetMediaSourceProperties работает с багом, у меня она портит путь к файлу, пришлось через chunk делать
 

Вложения

  • Like
  • Wow
Реакции: Kokarev Maxim и Andernik
Что-то странное происходит в MIDI Editor при создании дубликатов нот выделенной области (Duplicate Events Within Time Selection). Иногда срабатывает нормально, а иногда косячит.
Например. Выделяю область первой четверти такта, внутри выбираю третью и четвёртую шестнадцатые (есть ещё первая, но её копировать не надо). Применяю экшн/скрипт и... не получаю шестнадцатые внутри области второй четверти( Вместо этого выделенная область увеличилась на одну восьмую, шестнадцатые ноты оказались не на своём месте.
Базовые вещи. Как исправить?
 
Последнее редактирование:
Иногда срабатывает нормально, а иногда косячит
Разобрался! Оказалось, что иногда начало выделения Time Selection (в Midi editor) у меня уходило влево, за первый такт.
Интересно, это как-то можно запретить?
 
Привет. А существуют ли скрипты, затрагивающие тему лееринга..?
 
Всех приветствую. Подскажите, есть ли у кого скрипт следующего толка: надо, чтобы при перемещении аудио/миди элемента одновременно передвигался и курсор правки
 

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