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

  • Автор темы Автор темы @Michael
  • Дата начала Дата начала
а тишину сейчас ты тоже пишешь?
В JS стоит порог.Но он настроен чуть выше шума денормализации,это специальный сверхнизкоуровневый сигнал.
То есть JS срабатывает на любой сигнал.Не пишется только "абсолютная" тишина.
Заморачиваться с обычной тишиной слишком сложно,если просто писать-нет проблем.остановить итерацию и при поступлении сигнала возобновить.Если с привязкой к проекту и времени-это сложно.
 
можно ли, когда нажата кнопка, назначенная на скрипт, выполнять один экшен, а когда отпущена - другой?
 
Внешний контроллер, подключенный по протоколу Mackie Control (через плагин klinke MCU 0.8), отлично справляется. Причём не только нажать/отпустить push encoder (два разных экшна), но и покрутить влево/вправо - тоже два разных, изумительно всё работает.
С обычной компьютерной клавой такого сделать емнип нельзя.
 
  • Like
Реакции: lil-burn
можно ли, когда нажата кнопка, назначенная на скрипт, выполнять один экшен, а когда отпущена - другой?
Можно такой скрипт сделать, чтоб при его запуске запускался один экшин, а при остановке - другой.
Михаил постил пример скриптовой кнопки с фиксацией - вот в ней на defer повесить запуск одного Экшина, а на atexit - второго.
В общем, я думаю, что уже ясно, что в Рипере можно реализовать любой сложности логические цепочки. Сложнее грамотно поставить задачу.
[DOUBLEPOST=1449990683,1449990529][/DOUBLEPOST]
С обычной компьютерной клавой такого сделать емнип нельзя.
Да ладно..... В Рипере есть что-то, чего нельзя сделать? :)
[DOUBLEPOST=1449995566][/DOUBLEPOST]@lil-burn, пример такого скрипта EEL (Кнопку с этим скриптом поместите на Тулбар) -

PHP:
///////////////////Start Action//////////////////////////
Main_OnCommand(NamedCommandLookup("_SWS_CREATETRK1"), 0);
///////////////////Start Action//////////////////////////
function start() (
  defer("start()");
);
start();

function exitnow() (
  ///////////////////Exit Action//////////////////////////
  Main_OnCommand(40939, 0);
  Main_OnCommand(NamedCommandLookup("_S&M_CUTSNDRCV1"), 0);
  ///////////////////Exit Action//////////////////////////
  get_action_context(_,sectionID,cmdID,_,_,_);
  SetToggleCommandState(sectionID, cmdID, 0);
  RefreshToolbar2(sectionID, cmdID);
  gfx_quit();
);

get_action_context(_,sectionID,cmdID,_,_,_);
SetToggleCommandState(sectionID, cmdID, 1);
RefreshToolbar2(sectionID, cmdID);
atexit("exitnow()");

Тоже в LUA -

PHP:
------------------------Start Action--------------------------
reaper.Main_OnCommand(reaper.NamedCommandLookup("_SWS_CREATETRK1"), 0)
------------------------Start Action--------------------------

function start ()
  reaper.defer(start)
end

function exitnow()
------------------------Exit Action--------------------------
  reaper.Main_OnCommand(40939, 0)
  reaper.Main_OnCommand(reaper.NamedCommandLookup("_S&M_CUTSNDRCV1"), 0)
------------------------Exit Action--------------------------
  _, _, sectionID, cmdID = reaper.get_action_context()
  reaper.SetToggleCommandState(sectionID, cmdID, 0)
  reaper.RefreshToolbar2(sectionID, cmdID)
  gfx.quit()
end

_, _, sectionID,cmdID = reaper.get_action_context()
reaper.SetToggleCommandState(sectionID, cmdID, 1)
reaper.RefreshToolbar2(sectionID, cmdID)

reaper.atexit(exitnow)
start()

Для наглядности - этот скрипт при старте запускает Экшин создающий Первый Трэк, а при выходе - удаляет его.
 
Последнее редактирование:
Да уж, круто)))

Да ладно..... В Рипере есть что-то, чего нельзя сделать?
Вот если бы кто-нибудь запилил пресеты (банки, сэты) для кей-комманд с возможностью их переключения "на лету" (по типу contextual toolbar) - это был бы вообще высший пилотаж.
Например, редактируем айтем - вызываем один набор кей-комманд, работаем с кривыми автоматизации - другой, и т.д.
 
@diggidon, а это идея. Было бы клёво иметь разный набор кей команд. Через скрипт поидее можно было бы принудительно загружать конкретные пресеты кей мапингов.
 
@diggidon, Ну так формулируй конкретно - я в своих силах не уверен, но Михаил и Женя - это реально сила.
[DOUBLEPOST=1450028927,1450028695][/DOUBLEPOST]@belovw, а в каком файле они храняться? Писать в файл что угодно мы ведь уже умеем....
Вот только, если нужно будет вписывать/дописывать - эх........, прийдётся LUA дальше копать..., ну или Михаила просить скелет писать и доращивать его.
 
Ну так формулируй конкретно
Саша, да куда уж конкретнее))
Хотелось бы иметь возможность сохранять наборы юзерных кей-команд в пресеты, и по хоткею загружать эти пресеты.
Дальше уже полёт фантазии...
Например, залочить 5 (10? 15? определяется юзером?) клавиш как глобальные, на которые перезагрузка пресета влиять не будет - на них можно как раз назначить загрузку определённого пресета.
 
Т.е. инструментарий должен быть универсальным и не требовать от Пользователя копаться в скриптах?
Тут две проблемы-
1. Шоткаты на все штатные Action не хранятся в доступных редактированию файлах, кажется.
Этот факт в общем можно было-бы обойти - сделав на все нужные для этого дела Action тупо Custom Action и переназначить на них шоткаты - тогда все они появятся в редактируемом и понятном файле - reaper-kb.ini -
Но тут вторая засада - перезаписать этот файл с совсем другой раскладкой шоткатов можно - но Рипер его "новый" увидит только после перезагрузки. Пока не очень понимаю как Рипер заставить это увидеть не перегрузив его.
PS: Хотя.... одна идея есть - сейчас проверю!
2. Самой большой проблемой в таком инструменте, есть собственно интерфейс пользовательский.
 
Последнее редактирование:
  • Like
Реакции: diggidon
Ну, можно конечно дампануть kb.ini в extstate, а потом экшнами таскать оттуда его вариации. Но всё равно для того, чтобы изменения вступили в силу, придётся перезагружать рипер, что сводит юзабельность подобного к нулю.
 
  • Like
Реакции: diggidon
Но всё равно для того, чтобы изменения вступили в силу, придётся перезагружать рипер, что сводит юзабельность подобного к нулю.
@@Michael, Миша, только что проверил. Создал два кеймаппинга. Импортировал по очереди - изменения раскладки клавиатуры входили в силу без перезагрузки хоста. !!!
[DOUBLEPOST=1450033069,1450032959][/DOUBLEPOST]Расширение у этих файлов *.ReaperKeyMap
 
Ну вот, а теперь попробуй от руки вычисти reaper-kb.ini и посмотри изменится ли что-нибудь в экшн листе)) Естественно если тебе не жалко своих кей комманд, сделай бэкап для начала, ибо все сохранённых хоткеи улетят после первого ребута рипера
 
@@Michael, я не про reaper-kb.ini говорю. А про вариант импорат кеймэпингов в окне экшен чс помощью кнопки импорт.
 
Imort KM.jpg

Вот оно. Тогда будет возможность на лету редактировать кеймэпинги и сохранять их.
[DOUBLEPOST=1450033684,1450033475][/DOUBLEPOST]
с помощью кнопки импорт.
и по хоткею загружать эти пресеты.
Верно Миша, верно. Т.е. то что обычно мы делаем кнопкой импорт, нужно заставить делать по хоткею с помощью скрипта. И что-то мне подсказывает что скрипт этот реализовать не проблема.
 
Последнее редактирование:
Не, Парни, всё можно проще - но муторошнее.
Во, сделал два KeyPreset меняющие действие по нажатию 1, 2, 3 на клаве с выбора Маркеров на выбор Треков на лету (ой как я это давно хотел сделать с разными вещами.....) -

KeyPreset001.gif
 
Саша, так а как?

Как?!
[DOUBLEPOST=1450034525,1450034085][/DOUBLEPOST]
Например, залочить 5 (10? 15? определяется юзером?) клавиш как глобальные, на которые перезагрузка пресета влиять не будет - на них можно как раз назначить загрузку определённого пресета.
@diggidon, на эти клавиши можно назначить одно и тоже действие во всех пресетах, и тогда они (эти клавиши) станут" глобальными".
 
Сейчас расскажу, погодите!
1. Закидываете скрипты из Архива в папку Scripts Рипера.
2. Дописываете в конце с новой строки (только не в обычном Notepad-е, а в Notepad ++) два файла -
reaper-kb.ini
вот этими строками -
PHP:
SCR 4 0 RS284c4ca664a0eacb8fe7e9cfa6a4e2946e125b25 "Custom: !_MakeKeyPresetForMarker.eel" !_MakeKeyPresetForMarker.eel
SCR 4 0 RS10353bb62950b9a282c23a8b2d5e970b2b8557c9 "Custom: !_MakeKeyPresetForSelectTrack.eel" !_MakeKeyPresetForSelectTrack.eel
SCR 4 0 RS830f1c7ad59f30bfb0a98f27baf58e6f76aef0d6 "Custom: !_Shotcut_key-1.eel" !_Shotcut_key-1.eel
SCR 4 0 RS758db9ee1d0b614e7b3db4c0c4cf289943a543f6 "Custom: !_Shotcut_key-2.eel" !_Shotcut_key-2.eel
SCR 4 0 RS2bbc0f928af9c96e642d4ace838355d5f1807aef "Custom: !_Shotcut_key-3.eel" !_Shotcut_key-3.eel
KEY 1 49 _RS830f1c7ad59f30bfb0a98f27baf58e6f76aef0d6 0
KEY 1 50 _RS758db9ee1d0b614e7b3db4c0c4cf289943a543f6 0
KEY 1 51 _RS2bbc0f928af9c96e642d4ace838355d5f1807aef 0

а файл - reaper-menu.ini
вот этими -

PHP:
[Floating toolbar 5]
icon_0=text_wide
icon_2=text_wide
item_0=_RS284c4ca664a0eacb8fe7e9cfa6a4e2946e125b25 !_Marker
item_1=-1
item_2=_RS10353bb62950b9a282c23a8b2d5e970b2b8557c9  !_Track
title=Toolbar 5

За одно проверим переносимость твика этих файлов в ручную у разных юзеров в конфигах (ну понятно, что сохранить оригиналы перед этим куда то нужно).
Рипер конечно перегружаем.
Те две кнопки - Пресеты, появятся в Toolbar 5 - это ясно.
Если нужно в другом - то туда и прописать содержимое между -
[Floating toolbar 5] и title=Toolbar 5
 

Вложения

Последнее редактирование:
@diggidon, если парни решат вариант через загрузку кей мапингов, то тогда можно сделать защиту от дурака - загружать пресетный кеймап и вдогонку кеймап с глобальными клавишами. Предварительно принудительно в глобальном кеймапе блокнотом оставить только глобальные клавиши, и тогда будут загружаться только они, а остальные останутся как по ранее загруженному пресету. Проверено только что.
 
  • Like
Реакции: diggidon
Теперь расскажу как -
Те две кнопки на тулбаре, это два Скрипта - !_MakeKeyPresetForMarker.eel и !_MakeKeyPresetForSelectTrack.eel
Каждый из которых, при их запуске создаёт три скрипта с одним и тем-же именем (переписывают их при нажатии полностью) - !_Shotcut_key-1.eel, !_Shotcut_key-2.eel и !_Shotcut_key-1.eel
В общем-то их можно было-бы вам и не бросать в архив, но не знаю как поведёт себя Рипер, если прописанные в reaper-kb.ini Экшины будут отсутствовать в нужной папке (по сути это при первом старте могут быть пустые файлы с этими именами).
На эти созданных три скрипта и вешаются Шот Каты - 1, 2 и 3 соответственно - и т.д. для любого кол-ва таких скриптов.
Работаете всё это так - Если жмёте кнопку привязанную к скрипту - !_MakeKeyPresetForMarker.eel он перезаписывает влёт скрипты !_Shotcut_key-1.eel, !_Shotcut_key-2.eel и !_Shotcut_key-1.eel в которых записан код для перехода по Маркерам,
А если нажмёте на кнопку привязанную к !_MakeKeyPresetForSelectTrack.eel, то он эти-же файлы - !_Shotcut_key-1.eel, !_Shotcut_key-2.eel и !_Shotcut_key-1.eel перезапишет совсем с другим кодом - который станет выделять треки.
 
  • Like
Реакции: diggidon и belovw
@Aleksandr Oleynik, Саша, я посмотрел содержимое скриптов и разобрался с логикой их работы. Давай попробуем белее юзабельный вариант как предложил я. Есть ли какая-нибудь команда в скриптах что бы как в батнике загружать какой-то конкретный файл кеймапа без выдачи каких-либо предупреждений?
 
Володя, и при таком вот методе достаточно легко создавать и Глобальные ШотКаты, это понятно - их просто назначить по Человечески, а не через этот вот метод.
Кроме того - перезапись файла reaper-kb.ini, который вы сохранили до процесса создания ШотКат Пресетов - вернёт всё в зад по дефолту.
Нужно подумать, можно какой-то Рестор сделать и Скриптом сразу (типпа оригинальный файл reaper-kb.ini сохранять с расширением back, а при ресторе - менять местами).
[DOUBLEPOST=1450036369,1450036245][/DOUBLEPOST]
Есть ли какая-нибудь команда в скриптах что бы как в батнике загружать какой-то конкретный файл кеймапа без выдачи каких-либо предупреждений?
Я не знаю такой, чтоб Рипер, будучи запущенным, перечитал ini файл.
По этой причине и родилась вот та идея, что я реализовал - это работает на лету!

А вот как реализовать Пользовательскую Юзабилити с этим вот вариантом моим - я подумаю!

PS: Но вы проверьте с Женей на своих Риперах, что этот вот вариант дописывания в ini файлы пашет!
Тогда всё это можно будет сделать при помощи запуска ОДНОГО LUA скрипта - он сам всё сделает.

PSS: Плюс такого метода ещё и в том, что благодаря тому, что команды выполняются по сути не Action, а Script - можно сразу делать ШотКат Пресеты с теми вещами, которые можно реализовать только скриптами.
 
Последнее редактирование:
  • Like
Реакции: diggidon
  • Like
Реакции: Aleksandr Oleynik
Вариант с экспортом и импортом настроек 5 тулбара и кей команд пахать будет 100%
С Тулбаром да!
А вот с кей командами есть нюанс - файл reaper-kb.ini имеет определенный порядок записи строк и я его нарушаю (нарушил вот сейчас). В общем у меня этот фокус пахал всегда нормально, но фиг его знает, может есть причина по которой он структурирован.... нужно бы проверить у других.
 
Если Михаил найдёт как Скриптом делать Export и Import *.ReaperKeyMap файлов - всё это будет делать как минимум проще, хотя...... - я подумаю над Юзабилити своего варианта, он то УЖЕ работает как хотелось.
[DOUBLEPOST=1450037308,1450037246][/DOUBLEPOST]
Твой вариант дописок не сработал - джаст э минитс
Вообще-то должен. Я проверял на чистом Рипере тоже.
 

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