Помогите создать экшн / кастом экшн / скрипт (2 онлайн)

kentforth

Active Member
25 Ноя 2011
444
113
43
37

belovw

Well-Known Member
22 Апр 2009
9.309
8.501
113
50
RK Almaty
Камрады, как это реализовать в рипере, возможно ли сделать экшн?
1. Выделяю участок айтема
2.нажимаю на горячую клавишу
3. айтем начинает проигрываться за 10 секунд до начала отрезка и сразу прескакивает на конец отрезка и продолжает дальше проигрывать айтем.
Штатная команда: Transport Play (skip time selection)
 

lil-burn

Well-Known Member
15 Авг 2012
903
638
93
Екатеринбург
@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

dmitryga

Active Member
12 Июн 2008
238
116
43
Скажите пожалуйста, можно ли вмешиваться в процесс копирования? Допустим с трек1 итем я копируют на трек2, и при этом он не просто копируется а, допустим, все ноты повышаются на октаву?
 

fruitcore

Active Member
14 Дек 2013
281
72
28
NN
Скажите пожалуйста, можно ли вмешиваться в процесс копирования? Допустим с трек1 итем я копируют на трек2, и при этом он не просто копируется а, допустим, все ноты повышаются на октаву?
вот такой экшен как вариант
transpose item.jpg
 
  • Like
Реакции: dmitryga

dmitryga

Active Member
12 Июн 2008
238
116
43
@fruitcore, спасибо, но повышение на октаву я просто для примера привёл, там кое что другое будет)
 

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.064
113
62
Киев
У ReaScript пока нет ни OSC ни MIDI входа-выхода, хотя просим.
Ловить можно через параметры, сделав JS плагин с параметрами реагирующими на входные миди сообщения (например) - а вот изменение параметра в плагине скрипт уже видит.
 
  • Like
Реакции: lil-burn

dmitryga

Active Member
12 Июн 2008
238
116
43
@Aleksandr Oleynik, блин сори, я обычную клавиатуру имел ввиду

вообщем есть кнопка на тулбаре и нужно что б она реагировала по другому при зажатом ctrl
 

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.064
113
62
Киев
да и внутри скрипта бы запускались разные функции в зависимости от входных параметров
Скрипт не понимает что нажато на клавиатуре, он понимает только те параметры, которые есть в его функциях типпа - GET в API
 

lil-burn

Well-Known Member
15 Авг 2012
903
638
93
Екатеринбург
@Aleksandr Oleynik,

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

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

Тогда можно много прикольных скриптов сделать для работы с миди и не только
 

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.064
113
62
Киев
@lil-burn, ProjExtState мне лично не нравится - какой то он туповатый этот механизм памяти.
Почему просто не сделать слайдер с кратным нотному ряду числом целых чисел на шкале?
Нажал ноту, поменялся параметр - скрипт знает что за нота.
 

EUGEN27771

Well-Known Member
23 Апр 2010
2.293
1.995
113
можешь сделать такой JS, который просто определяет, какая была нажата нота, и сохраняет ее номер в ProjExtState() ?
Конечно, но уже так есть такой - MIDI Examiner(но никуда не сохраняет - цепляться к слайдерам, как @Aleksandr Oleynik сказал).
JS пишут в память, скрипты читают из памяти - файл проекта - это только слепок опр. момента - можете проверить.
Если бы все шло через файл - там бы ничего не работало.
Фактически, использовать JS как переходник - это хорошее решение, не пойму, почему все называют костылем - схема кажется костыльной?
Так воспринимайте это как интерфейс.
Если использовать файл, как посредник - Вы потеряете в скорости в десятки, может сотни, тысячи раз
Скрипт не понимает что нажато на клавиатуре, он понимает только те параметры, которые есть в его функциях типпа - GET в API
Не совсем, 7-14 бит данных мы можем получить.
 
  • Like
Реакции: lil-burn

EUGEN27771

Well-Known Member
23 Апр 2010
2.293
1.995
113
Не, от миди. От комп. клавы - если сделать 128 скриптов. Без вело, естественно.
От osc тоже, мы всегда можем получить что-то, и отправить тоже, это обходные пути, но хорошо, что они есть.
 
Последнее редактирование:

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.064
113
62
Киев
Мы в скрипте можем ловить внешнее midi сообщение?
Расскажи как.

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

Сейчас онлайн (Пользователей: 0, Гостей: 2)