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

EUGEN27771

Well-Known Member
23 Апр 2010
2.293
1.995
113
а тишину сейчас ты тоже пишешь?
В JS стоит порог.Но он настроен чуть выше шума денормализации,это специальный сверхнизкоуровневый сигнал.
То есть JS срабатывает на любой сигнал.Не пишется только "абсолютная" тишина.
Заморачиваться с обычной тишиной слишком сложно,если просто писать-нет проблем.остановить итерацию и при поступлении сигнала возобновить.Если с привязкой к проекту и времени-это сложно.
 

lil-burn

Well-Known Member
15 Авг 2012
903
638
93
Екатеринбург
можно ли, когда нажата кнопка, назначенная на скрипт, выполнять один экшен, а когда отпущена - другой?
 

diggidon

Administrator
Команда форума
26 Май 2008
6.837
7.491
113
51
Днепр UA
Внешний контроллер, подключенный по протоколу Mackie Control (через плагин klinke MCU 0.8), отлично справляется. Причём не только нажать/отпустить push encoder (два разных экшна), но и покрутить влево/вправо - тоже два разных, изумительно всё работает.
С обычной компьютерной клавой такого сделать емнип нельзя.
 
  • Like
Реакции: lil-burn

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.068
113
62
Киев
можно ли, когда нажата кнопка, назначенная на скрипт, выполнять один экшен, а когда отпущена - другой?
Можно такой скрипт сделать, чтоб при его запуске запускался один экшин, а при остановке - другой.
Михаил постил пример скриптовой кнопки с фиксацией - вот в ней на 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()
Для наглядности - этот скрипт при старте запускает Экшин создающий Первый Трэк, а при выходе - удаляет его.
 
Последнее редактирование:

diggidon

Administrator
Команда форума
26 Май 2008
6.837
7.491
113
51
Днепр UA
Да уж, круто)))

Да ладно..... В Рипере есть что-то, чего нельзя сделать?
Вот если бы кто-нибудь запилил пресеты (банки, сэты) для кей-комманд с возможностью их переключения "на лету" (по типу contextual toolbar) - это был бы вообще высший пилотаж.
Например, редактируем айтем - вызываем один набор кей-комманд, работаем с кривыми автоматизации - другой, и т.д.
 

belovw

Well-Known Member
22 Апр 2009
9.473
8.683
113
50
RK Almaty
@diggidon, а это идея. Было бы клёво иметь разный набор кей команд. Через скрипт поидее можно было бы принудительно загружать конкретные пресеты кей мапингов.
 

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.068
113
62
Киев
@diggidon, Ну так формулируй конкретно - я в своих силах не уверен, но Михаил и Женя - это реально сила.
[DOUBLEPOST=1450028927,1450028695][/DOUBLEPOST]@belovw, а в каком файле они храняться? Писать в файл что угодно мы ведь уже умеем....
Вот только, если нужно будет вписывать/дописывать - эх........, прийдётся LUA дальше копать..., ну или Михаила просить скелет писать и доращивать его.
 

diggidon

Administrator
Команда форума
26 Май 2008
6.837
7.491
113
51
Днепр UA
Ну так формулируй конкретно
Саша, да куда уж конкретнее))
Хотелось бы иметь возможность сохранять наборы юзерных кей-команд в пресеты, и по хоткею загружать эти пресеты.
Дальше уже полёт фантазии...
Например, залочить 5 (10? 15? определяется юзером?) клавиш как глобальные, на которые перезагрузка пресета влиять не будет - на них можно как раз назначить загрузку определённого пресета.
 

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.068
113
62
Киев
Т.е. инструментарий должен быть универсальным и не требовать от Пользователя копаться в скриптах?
Тут две проблемы-
1. Шоткаты на все штатные Action не хранятся в доступных редактированию файлах, кажется.
Этот факт в общем можно было-бы обойти - сделав на все нужные для этого дела Action тупо Custom Action и переназначить на них шоткаты - тогда все они появятся в редактируемом и понятном файле - reaper-kb.ini -
Но тут вторая засада - перезаписать этот файл с совсем другой раскладкой шоткатов можно - но Рипер его "новый" увидит только после перезагрузки. Пока не очень понимаю как Рипер заставить это увидеть не перегрузив его.
PS: Хотя.... одна идея есть - сейчас проверю!
2. Самой большой проблемой в таком инструменте, есть собственно интерфейс пользовательский.
 
Последнее редактирование:
  • Like
Реакции: diggidon

@Michael

Well-Known Member
14 Дек 2010
971
1.463
93
Орёл / Москва
Ну, можно конечно дампануть kb.ini в extstate, а потом экшнами таскать оттуда его вариации. Но всё равно для того, чтобы изменения вступили в силу, придётся перезагружать рипер, что сводит юзабельность подобного к нулю.
 
  • Like
Реакции: diggidon

belovw

Well-Known Member
22 Апр 2009
9.473
8.683
113
50
RK Almaty
Но всё равно для того, чтобы изменения вступили в силу, придётся перезагружать рипер, что сводит юзабельность подобного к нулю.
@@Michael, Миша, только что проверил. Создал два кеймаппинга. Импортировал по очереди - изменения раскладки клавиатуры входили в силу без перезагрузки хоста. !!!
[DOUBLEPOST=1450033069,1450032959][/DOUBLEPOST]Расширение у этих файлов *.ReaperKeyMap
 

@Michael

Well-Known Member
14 Дек 2010
971
1.463
93
Орёл / Москва
Ну вот, а теперь попробуй от руки вычисти reaper-kb.ini и посмотри изменится ли что-нибудь в экшн листе)) Естественно если тебе не жалко своих кей комманд, сделай бэкап для начала, ибо все сохранённых хоткеи улетят после первого ребута рипера
 

belovw

Well-Known Member
22 Апр 2009
9.473
8.683
113
50
RK Almaty
@@Michael, я не про reaper-kb.ini говорю. А про вариант импорат кеймэпингов в окне экшен чс помощью кнопки импорт.
 

belovw

Well-Known Member
22 Апр 2009
9.473
8.683
113
50
RK Almaty
Imort KM.jpg

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

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.068
113
62
Киев
Не, Парни, всё можно проще - но муторошнее.
Во, сделал два KeyPreset меняющие действие по нажатию 1, 2, 3 на клаве с выбора Маркеров на выбор Треков на лету (ой как я это давно хотел сделать с разными вещами.....) -

 

belovw

Well-Known Member
22 Апр 2009
9.473
8.683
113
50
RK Almaty
Саша, так а как?
Как?!
[DOUBLEPOST=1450034525,1450034085][/DOUBLEPOST]
Например, залочить 5 (10? 15? определяется юзером?) клавиш как глобальные, на которые перезагрузка пресета влиять не будет - на них можно как раз назначить загрузку определённого пресета.
@diggidon, на эти клавиши можно назначить одно и тоже действие во всех пресетах, и тогда они (эти клавиши) станут" глобальными".
 

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.068
113
62
Киев
Сейчас расскажу, погодите!
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
 

Вложения

Последнее редактирование:

belovw

Well-Known Member
22 Апр 2009
9.473
8.683
113
50
RK Almaty
@diggidon, если парни решат вариант через загрузку кей мапингов, то тогда можно сделать защиту от дурака - загружать пресетный кеймап и вдогонку кеймап с глобальными клавишами. Предварительно принудительно в глобальном кеймапе блокнотом оставить только глобальные клавиши, и тогда будут загружаться только они, а остальные останутся как по ранее загруженному пресету. Проверено только что.
 
  • Like
Реакции: diggidon

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.068
113
62
Киев
Теперь расскажу как -
Те две кнопки на тулбаре, это два Скрипта - !_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

belovw

Well-Known Member
22 Апр 2009
9.473
8.683
113
50
RK Almaty
@Aleksandr Oleynik, Саша, я посмотрел содержимое скриптов и разобрался с логикой их работы. Давай попробуем белее юзабельный вариант как предложил я. Есть ли какая-нибудь команда в скриптах что бы как в батнике загружать какой-то конкретный файл кеймапа без выдачи каких-либо предупреждений?
 

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.068
113
62
Киев
Володя, и при таком вот методе достаточно легко создавать и Глобальные ШотКаты, это понятно - их просто назначить по Человечески, а не через этот вот метод.
Кроме того - перезапись файла reaper-kb.ini, который вы сохранили до процесса создания ШотКат Пресетов - вернёт всё в зад по дефолту.
Нужно подумать, можно какой-то Рестор сделать и Скриптом сразу (типпа оригинальный файл reaper-kb.ini сохранять с расширением back, а при ресторе - менять местами).
[DOUBLEPOST=1450036369,1450036245][/DOUBLEPOST]
Есть ли какая-нибудь команда в скриптах что бы как в батнике загружать какой-то конкретный файл кеймапа без выдачи каких-либо предупреждений?
Я не знаю такой, чтоб Рипер, будучи запущенным, перечитал ini файл.
По этой причине и родилась вот та идея, что я реализовал - это работает на лету!

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

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

PSS: Плюс такого метода ещё и в том, что благодаря тому, что команды выполняются по сути не Action, а Script - можно сразу делать ШотКат Пресеты с теми вещами, которые можно реализовать только скриптами.
 
Последнее редактирование:
  • Like
Реакции: diggidon

belovw

Well-Known Member
22 Апр 2009
9.473
8.683
113
50
RK Almaty
  • Like
Реакции: Aleksandr Oleynik

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.068
113
62
Киев
Вариант с экспортом и импортом настроек 5 тулбара и кей команд пахать будет 100%
С Тулбаром да!
А вот с кей командами есть нюанс - файл reaper-kb.ini имеет определенный порядок записи строк и я его нарушаю (нарушил вот сейчас). В общем у меня этот фокус пахал всегда нормально, но фиг его знает, может есть причина по которой он структурирован.... нужно бы проверить у других.
 

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.068
113
62
Киев
Если Михаил найдёт как Скриптом делать Export и Import *.ReaperKeyMap файлов - всё это будет делать как минимум проще, хотя...... - я подумаю над Юзабилити своего варианта, он то УЖЕ работает как хотелось.
[DOUBLEPOST=1450037308,1450037246][/DOUBLEPOST]
Твой вариант дописок не сработал - джаст э минитс
Вообще-то должен. Я проверял на чистом Рипере тоже.
 

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