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

@Michael

Well-Known Member
14 Дек 2010
969
1.461
93
Орёл / Москва
MOD.
Важно!
http://rmmedia.ru/threads/119732/
---------------------------------------------


Привет.
Заметил, что на форуме нет до сих пор треда, посвящённого именно скрипт реквестам, наподобии этого треда на официальном форуме Cockos. Есть обсуждение, но оно не подразумевает написание скриптов / кастомов. И, насколько мне известно, есть множество ребят, способных помочь в этом деле. Общими усилиями проще находить решения проблем ;)

Предлагаю постить сюда все ваши вопросы в стиле "как сделать такое то действие", при условии того, что вы целую вечность бились и к настоящему моменту всё ещё не нашли как.
 
Последнее редактирование:

nounaim

Active Member
29 Авг 2010
274
52
28
ок, начну тогда)
1)запуск скрипта для piano roll(mouse modifiers) через левый клик без перемещения эдит курсора так и не получилось сделать, двигается даже с пустым экшеном, можно было б ставить ноты с велосити последней выбраной ноты, это было б мега удобно, как во фруктах, save restore не помогает с undo move cursor тоже как то криво выходит и через set edit cursor тоже никак, уже спрашивал но может кто понял уже.
2)экшен duplicate events не работает если piano roll timebase - source beats, и midi item сдвинут онтосительно начала проекта, пробовал скриптом через copy paste не получилось ,без copy paste
duplicate делается столко раз сколько нот в других миди каналах айтем, такая ерунда:
PHP:
act_editor = MIDIEditor_GetActive();
take = MIDIEditor_GetTake(act_editor);
fntk=extension_api("FNG_AllocMidiTake", take);
chan=MIDIEditor_GetSetting_int(MIDIEditor_GetActive(), "default_note_chan");

notescount=extension_api("FNG_CountMidiNotes", fntk);
extension_api("FNG_FreeMidiTake", fntk);

MIDI_Sort(take);

i=0;
i2=0;

//Count selected notes
loop(notescount,
MIDI_GetNote(take, i2, selectedOut, mutedOut, startppqpos, endppqposOut, chanOut, pitchOut, event_value);
//MIDI_SetNote(take, 2, 1, mutedOut, 0, 2, chanOut, pitchOut, event_value);
selectedOut ==1 ? (
Count_selected=Count_selected+1;
);
i2=i2+1;
);

//duplicate((
loop(notescount,
MIDI_GetNote(take, i, selectedOut, mutedOut, startppqpos, endppqposOut, chanout, pitchOut, event_value);
//MIDI_SetNote( take, i, 0,mutedOut, startppqpos, endppqposOut, chanout, pitchOut, event_value);
MIDI_InsertNote(take, 0, 0, startppqpos+3840, endppqposOut+3840, chan, pitchOut, 96);
i=i+1;
);
получилось сделать только так что скопированые ноты не выделены и если нужно сделать duplicate несколько раз нужно выделять их снова
 

Tito

Active Member
17 Янв 2005
236
60
28
56
Питер
Посетить сайт
Продолжу :).
Очень хотелось бы иметь возможность открывать "морду" ревербератора (к примеру) прямо из трека,с которого организован посыл в микшере(аналог кнопки "е" на сенде в Кубэйсе).
В микшере ПКМ на сенде есть команда "Go To Send Destination Track" .От этого,по идее,можно "плясать",но вот как это скриптом реализовать?
 

Tito

Active Member
17 Янв 2005
236
60
28
56
Питер
Посетить сайт
float ReaVerb in send of selected track, в plugname (первая строка) в кавычках имя своего плагина.
Ага,разобрался.Упростил для себя :).
Код:
sel_track = reaper.GetSelectedTrack(0,0)
send_track = reaper.BR_GetMediaTrackSendInfo_Track(sel_track, 0, 0, 1)
reaper.TrackFX_Show(send_track, 0, 3)
Показывает первый FX для первого сенда выбранного трека.
Если я правильно понял,пока в API BR_GetMouseCursorContext параметров для сендов нет,написать "мышкозависимый" скрипт не получится?
 

@Michael

Well-Known Member
14 Дек 2010
969
1.461
93
Орёл / Москва
Смотря что хочешь написать. Там есть контекст для трека (а значит и трека в качестве посыла).
Как мне объяснил BReeder, в теории конечно можно настрогать на C++ контекст для плагинов/посылов под курсором в микшере, кнопок всяких в тулбарах и т.д., но эти дела все упираются в Walter, что увеличивает сложность написания таких операторов в разы.
 
  • Like
Реакции: Strannicom и Tito

Tito

Active Member
17 Янв 2005
236
60
28
56
Питер
Посетить сайт
Ну,идеально было бы открывать FX того сенда,который под курсором.А так можно сделать срипт для 1-2-3-сенда,запихать их в цикл и листать одной кнопкой,к примеру.Только не понял пока,как избавиться от ошибки,если при "переборе" сендов пустой попадается. (
 

lil-burn

Well-Known Member
15 Авг 2012
903
638
93
Екатеринбург
Добрый день! Не соображу пока, как реализовать выделение нескольких треков с помощью shift + вверх/вниз. Интересует поведение, аналогичное выделению нескольких файлов в windows.
Пока реализовано в таком виде
2.JPG
1.JPG

Но данные кастомы не умеют снимать выделение с последних выделенных треков, что не удобно, если случайно были выделены лишние треки
 

lil-burn

Well-Known Member
15 Авг 2012
903
638
93
Екатеринбург
что-то под вечер совсем запутался: если перед кастомом поставить Unselect all tracks, так ведь со всех треков снимется выделение. вроде как. а нужно, чтобы было вот как
1.gif
 

@Michael

Well-Known Member
14 Дек 2010
969
1.461
93
Орёл / Москва
Да, Unselect all tracks не нужно. Тут определённо нужен скрипт.
Только зачем, если удерживая shift можно выбрать хоть 100500 треков без клацания хоткеями?
если случайно были выделены лишние треки
Да и заменять один лишний клик по нужному треку целым скриптом - это уже извращение.
 
Последнее редактирование:

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.063
113
62
Киев

RJ Baker

Well-Known Member
16 Июл 2006
1.093
588
113
Мариуполь
Так у многих "крышу срывает" от возможностей Рипера - вот и ....... изобретают то, что уже давно есть и так.
Спрашивал выше... А поисковый запрос в MediaExplorer уже есть в скрипте или его еще изобретают?))
 

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.063
113
62
Киев
@RJ Baker, если @@Michael ни чего не ответил - значит нет.
А зачем, если не секрет?
Чем не устраивает поиск в самом Media Explorer-е?
PS: Пока писал Михаил ответил.
 

RJ Baker

Well-Known Member
16 Июл 2006
1.093
588
113
Мариуполь
@RJ Baker, если @@Michael ни чего не ответил - значит нет.
А зачем, если не секрет?
Чем не устраивает поиск в самом Media Explorer-е?
Молчание можно трактовать по-разному. Хотелось по старинке - словами.
А вбивать ручками - это совет дельный. Заменяет любой скрипт и экшн впринципе.
А надо мне было для того же что и всем - автоматизировать некоторые рутинные операции по поиску медиаконтента. Ну да ладно. ClipX в помощь! Спасибо.
 

Mateush1982

Active Member
5 Авг 2009
433
197
43
42
Krasnoyarskiy kray
Нашел в сети замечательный custom action "copy selected take to new track"
Вопрос, помогите пожалуйста реализовать то же самое, но с использованием time selection (выбранный кусок тейка на новый трек в ту же самую позицию)
Заранее огромное спасибо!
Screen Shot 2015-08-10 at 12.10.38.png
 
  • Like
Реакции: Andrey Marchenko

Mateush1982

Active Member
5 Авг 2009
433
197
43
42
Krasnoyarskiy kray
Спасибо!!!! А можно сделать так , что бы не удалялись исходники? Вдруг какие нибудь куски дублей еще пригодятся в дальнейшем
исходник
Screen Shot 2015-08-12 at 13.28.27.png


После применения
Screen Shot 2015-08-12 at 13.28.47.png

То есть исходники пропали!
 

Mateush1982

Active Member
5 Авг 2009
433
197
43
42
Krasnoyarskiy kray
@@Michael,Спасибо огромное - большое дело делаете. может хоть "кошелек" добавите? , все таки труд велик и на радость всем, а он должен вознаграждаться !!!!
 

Mateush1982

Active Member
5 Авг 2009
433
197
43
42
Krasnoyarskiy kray
@@Michael, Все работает как часы!
[DOUBLEPOST=1439365790,1439365129][/DOUBLEPOST]@@Michael, Кстати а не планируете допиливать Quantize tool , и какие у Вас задумки по доработке данного скрипта?
 

Oppositionist

терапевт
13 Янв 2008
233
62
28
Санкт-Петербург
Можно ли как-нибудь осуществить посыл выделенных треков на заранее определенный (к примеру, первый) трек одной клавишей (в идеале тугл).
 

fruitcore

Active Member
14 Дек 2013
275
70
28
NN
А в lua возможно добавить конкретный плагин на выделенный трек (или несколько треков).
Это можно сделать средствами cycle action, но в случае, если этот плагин уже есть на треке, то он больше не добавляется, просто открывается его окошечко.
Может быть средствами скриптов это можно обойти?
 

fugas20051

New Member
26 Янв 2009
18
1
3
Есть много дорожек, на них много атемов мютованых и нет. как в одно движение: 1 выделить только немютованые айтем. 2 скопировать их на новый трек. 3 старые немютованые треки покрасить в один цвет и заглушыть?
 

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.063
113
62
Киев
@fugas20051, вы в самом деле ПОДОБНЫЕ действия делаете каждый день по десять раз подряд?
Потому как если нет, то смысла писать Кастом Экшин или Скрипт на эту последовательность нет!!!!!, будет дольше, чем сделать это ручками пару-тройку раз.
Ставить задачу для написания скрипта можно ТОЛЬКО, если эта задача ПОСТОЯННО ПОВТОРЯЕТСЯ В РАБОТЕ.
 
  • Like
Реакции: borisuperful и @Michael

EUGEN27771

Well-Known Member
23 Апр 2010
2.293
1.995
113
Можно ли устанавливать параметры МИДИ-эдитора,прерыл весь API,нашел только,как считать,конкретно интересует-
Снимок.PNG

Есть,конечно, обходной путь,устанавливать через экшны next snap scale root и next snap scale,считывать и сверять,покуда не будет соответствия.
Но,может,я не заметил и все проще,через API?
 

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