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

  • Автор темы Автор темы @Michael
  • Дата начала Дата начала
Камрады, как это реализовать в рипере, возможно ли сделать экшн?
1. Выделяю участок айтема
2.нажимаю на горячую клавишу
3. айтем начинает проигрываться за 10 секунд до начала отрезка и сразу прескакивает на конец отрезка и продолжает дальше проигрывать айтем.

Штатная команда: Transport Play (skip time selection)
 
@kentforth,
Код:
local x = 5

local r = reaper; local function nothing() end; local function bla() r.defer(nothing) end
local ts_start, ts_end = r.GetSet_LoopTimeRange(0, 0, 0, 0, 0)
if ts_start == ts_end then bla() return end

local cur = r.GetCursorPosition()

r.Undo_BeginBlock() r.PreventUIRefresh(1)
r.SetEditCurPos(ts_start-x, 0, 0)
r.Main_OnCommand(40317,0)

r.SetEditCurPos(cur, 0, 0)

r.PreventUIRefresh(-1); r.Undo_EndBlock('Play (skip time selection)', 2)

первая строка задает длину предпрослушивания, сейчас это 5 секунд
 
  • Like
Реакции: kentforth
Скажите пожалуйста, можно ли вмешиваться в процесс копирования? Допустим с трек1 итем я копируют на трек2, и при этом он не просто копируется а, допустим, все ноты повышаются на октаву?
 
Скажите пожалуйста, можно ли вмешиваться в процесс копирования? Допустим с трек1 итем я копируют на трек2, и при этом он не просто копируется а, допустим, все ноты повышаются на октаву?
вот такой экшен как вариант
transpose item.jpg
 
  • Like
Реакции: dmitryga
@fruitcore, спасибо, но повышение на октаву я просто для примера привёл, там кое что другое будет)
 
У ReaScript пока нет ни OSC ни MIDI входа-выхода, хотя просим.
Ловить можно через параметры, сделав JS плагин с параметрами реагирующими на входные миди сообщения (например) - а вот изменение параметра в плагине скрипт уже видит.
 
  • Like
Реакции: lil-burn
@Aleksandr Oleynik, блин сори, я обычную клавиатуру имел ввиду

вообщем есть кнопка на тулбаре и нужно что б она реагировала по другому при зажатом ctrl
 
да и внутри скрипта бы запускались разные функции в зависимости от входных параметров
Скрипт не понимает что нажато на клавиатуре, он понимает только те параметры, которые есть в его функциях типпа - GET в API
 
@Aleksandr Oleynik,

Ловить можно через параметры, сделав JS плагин с параметрами реагирующими на входные миди сообщения

Мне вот как раз такой сейчас плагин нужен)

@EUGEN27771,
можешь сделать такой JS, который просто определяет, какая была нажата нота, и сохраняет ее номер в ProjExtState() ?

Тогда можно много прикольных скриптов сделать для работы с миди и не только
 
@lil-burn, ProjExtState мне лично не нравится - какой то он туповатый этот механизм памяти.
Почему просто не сделать слайдер с кратным нотному ряду числом целых чисел на шкале?
Нажал ноту, поменялся параметр - скрипт знает что за нота.
 
можешь сделать такой JS, который просто определяет, какая была нажата нота, и сохраняет ее номер в ProjExtState() ?
Конечно, но уже так есть такой - MIDI Examiner(но никуда не сохраняет - цепляться к слайдерам, как @Aleksandr Oleynik сказал).
JS пишут в память, скрипты читают из памяти - файл проекта - это только слепок опр. момента - можете проверить.
Если бы все шло через файл - там бы ничего не работало.
Фактически, использовать JS как переходник - это хорошее решение, не пойму, почему все называют костылем - схема кажется костыльной?
Так воспринимайте это как интерфейс.
Если использовать файл, как посредник - Вы потеряете в скорости в десятки, может сотни, тысячи раз
Скрипт не понимает что нажато на клавиатуре, он понимает только те параметры, которые есть в его функциях типпа - GET в API
Не совсем, 7-14 бит данных мы можем получить.
 
  • Like
Реакции: lil-burn
Не, от миди. От комп. клавы - если сделать 128 скриптов. Без вело, естественно.
От osc тоже, мы всегда можем получить что-то, и отправить тоже, это обходные пути, но хорошо, что они есть.
 
Последнее редактирование:
Мы в скрипте можем ловить внешнее midi сообщение?
Расскажи как.

От комп. клавы - если сделать 128 скриптов. Без вело, естественно
Ну так..... :) а @dmitryga хочет с Control менять функции в запущенном скрипте (ну или не запущенном).
на Control конечно можно повесить скрипт - но он же начнёт срабатывать всякий раз когда вы Control нажимаете.
 

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