ReaScripts (скрипты для Reaper) - делимся

@Michael

Well-Known Member
14 Дек 2010
971
1.638
93
Орёл / Москва
В этой теме можно и нужно делится всеми крутыми скриптами, что вы нашли.

Ресурсы:
http://ReaPack.com
http://www.admiralbumblebee.com/ReaperScripts.html

Как добавлять скрипты в Reaper:


1) у нас есть код, сохраняем через редактор (IDE)
выделяем весь текст
выделяем текст аккуратно, не удивляйся, что поплывут ошибки после того, как ты скопировал скрипт вместе с html мусором через Ctrl+A, или скачал по контекстному меню,
копируем,
идём в Action List,
жмём ReaScript - New
выбираем новый файл (не забываем указать правильное расширение (об этом ниже),
желательно сохранять в REAPER/Scripts, чтобы потом скрипты сохранялись вместе с конфигом
откроется окно редактора, туда и вставляем
закрываем, предложит сохранить
далее юзаем как экшн (суём в тулбары, мапим на действие мыши, горячие клавиши)
2) у нас есть файл, сохраняем из экшнлиста:
идём в Action List,
жмём ReaScript - Load, загружаем сохранённый файл


Как узнать расширение скрипта:
(лучше, если автор его сам указывает)
открываем скрипт, открывается блокнотом или любым текстовым редактором
смотрим внимательно на функции
если полно всякого, что начинается с "RPR_", перед нами скрипт на питоне (Python, .py)
если начинается с "reaper." - перед нами LUA скрипт (.lua)
если ничего такого не видно - скрипт написан на EEL (.eel)​

Крутяк, где этому всему научиться?
1) Python - требует своих библиотек
ищем в гугле, ресурсов море​
2) EEL - начиная с Reaper 5.0 работает "из коробки"
ищем тут и ... всё, больше ресурсов нет!​
3) LUA - начиная с Reaper 5.0 работает "из коробки"
годный русскоязычный путеводитель
тонны ресурсов и примеров на любой извращённый вкус​
4) Референс REAPER API помимо того, что можно сгенерить из редактора (Action list - ReaScript - New - API Help сверху справа), можно также использовать его же, но в более красивом и не вырвиглазном виде здесь
 
Последнее редактирование:
Send selected tracks to track under mouse cursor и Send selected tracks to track under mouse cursor (channel 3-4) - говорящее название, это тоже пришло из кубейса, где кажется с зажатым shift посылали все выделенные треки. 3-4 - для сайдчейна от выбранного трека
Вариант с сайдчейном у меня не работает, т.е. посыл создается, а звука нет, баг какой-то. Делаю аналогичную операцию вручную - все ОК. И еще один момент: хотелось бы, чтобы создавались только аудиопосылы, а посыл MIDI по умолчанию был отключен. По понятным причинам это часто приводит к каше (плагины в посыле реагируют на MIDI сообщения с сенд-трека). Иногда это нужно, но чаще, намного чаще - нет.
 
А звука и не должно быть, ты же шлёшь в дополнительную стереопару. Ну и в плагине само собой надо указывать, откуда брать сайдпару.
 
А звука и не должно быть, ты же шлёшь в дополнительную стереопару. Ну и в плагине само собой надо указывать, откуда брать сайдпару.
Спасибо, я в курсе. Но у меня скрипт периодически работает некорректно. Переподключаю посыл на каналы 3-4 вручную - баг пропадает. Тот, который отправляет на каналы 1-2, нормально работает. Что же, возможно это у меня какой-то частный случай.
Да, кстати, несмотря на снятую галочку в настройках (Sends send MIDI by default), скрипт по умолчанию МИДИ посыл все же делает. А хотелось бы, чтобы его все же не было.
 
Последнее редактирование:
Мой скрипт обходит преференсы, т.к. напрямую пишет данные в файл проекта.
MIDI посылы убрал. Насчёт бага с 3/4 хз.
 
Обновил свою страничку, часть бета-версий
3. https://github.com/MichaelPilyavski...Float_Custom_FX_on_send_of_selected_track.lua
Открывает интерфейс указанного плагина, который находится в посыле выделенного трека (например, если вы хотите открыть ревер, в который отправляется выделенный трек).

Приветствую!Всё сделал как показано тут http://rmmedia.ru/threads/49259/page-2#post-1882126 и ничего не происходит когда кликаю на посыл.Подскажите как дальше жить?)
 
Этот скрипт для кастомного плагина (если например в посыле несколько плагинов, например, фильтры висят перед ревером или ещё что-то, а надо открывать именно ревер). Его имя нужно вписать в первую строку, по образцу.
 
А возможно сделать скрипт для "toggle bypass" всех инстанций кастомного плагина в проекте?
На примере ReaEQ
PHP:
Undo_BeginBlock();
#fx_name = "ReaEQ";//set FX Name(ignoring case),Don't use "VST:" in name!!!
Add = 0;//Set 0 or 1(If the FX is not in the chain,it will be inserted)

trackcount = CountTracks(0);
i = 0;
loop(trackcount,
      Track_id = GetTrack(0,i);      
      FX_index = TrackFX_GetByName(Track_id, #fx_name, Add);  
      enabled = TrackFX_GetEnabled(Track_id, FX_index);
      enabled == 1 ? enabled = 0 : enabled = 1;
      TrackFX_SetEnabled(Track_id, FX_index, enabled);              
      i += 1;
     );

Undo_EndBlock("~Toggle Bypass FX on ALL Tracks by Name~", 0); //Undo End
 
Последнее редактирование:
Я пока не вижу,как получить данные о задержке плагина.
Для этого нужно чтоб эта информация могла быть полученна какой-то командой скриптовой.
Можно написать на форуме - они периодически добавляют ведь...
 
Ретроспектив рекорд(МИДИ).
Retrospective Record(MIDI).eel
12345.gif
Описание простейшее: просто запустить скрипт.
Запись в буфер в фоне, работает полностью аналогично обычной записи. При этом можно спокойно менять позицию проигрывания, включить проигрывание в цикле, прыгать по проекту и т.п., что при обычной записи невозможно.
Записываются Ноты, PKeyPressue, ControlChange, ProgramChange, ChanPressue, PWheel Change.
Остальные(специфические) сообщения для игры, наверное, и не нужны.
Буфер выкладывается на трек в виде тейков, то есть каждая смена позиции будет выкладываться в виде нового тейка.
Буфер начинает переписываться только при остановке и повторном нажатии Play(если при этом поступили новые миди-данные), либо после вставки буфера на трек.
До этого момента все сохраняется и доступно для извлечения на трек.
 
Последнее редактирование:
Retrospective Record(audio).eel для Аудио.
RRaudio demo.gif
Принцип тот же,все работает так же как и с миди.
При первом запуске нужно указать кол-во буферов.
Ресурсы процессора практически вообще не жрет.
Но пишет в память - поэтому, расшифрую:
Один буфер-около 380 секунд, 10 буферов - около 63 минут непрерывной записи.
Один буфер(только при заполнении) займет 256м RAM, потому ставить кол-во нужно по реальной необходимости!
Если не пишутся куски более 6 - 12 минут за раз, то соответственно - 1-2 буфера хватит с головой.
=============
 
Последнее редактирование:
Нарыл хороший скрипт, как временную альтернативу скрипту Sort_project_folder_garbage.lua от @Michael (который почему-то не хочет у меня работать).
http://forum.cockos.com/showthread.php?t=157898
Тестирую, всё отлично работает.
UPD.
С кириллицей в названиях файлов к сожалению не работает, в остальном - конфетка.
 
Домучал код который превращает любое кол-во скриптов - кнопок на тулбаре в тригерно-зависимые.
Вот такие -
triggerbutton001.gif


Код дописывается к каждому из скриптов, которые вы хотите превратить в подобные кнопки.
Если нужно запускать Action или Custom Action, то в начале каждого такого скрипта просто пишите одно из указанных выражений, или несколько.
PHP:
//Main_OnCommand(41051, 0);  // вместо 41051 пишем ID любого штатного Action
//Main_OnCommand(NamedCommandLookup("_SWS_RESTSELITEMS2"), 0);  // вместо _SWS_RESTSELITEMS2 пишем ID любого кастомного Action

//Если нужно ЭкшинСкриптом запускать ЭкшинСкрипт, то делать следует так -
cmd = NamedCommandLookup("_88696ecdd7464b6c9d54d65e071cfa5b"); // cmd - ID ЭкшинСкрипта
defer("Main_OnCommand(cmd, 0);");

/*Код, который следует дописать в конец каждого скрипта,
   если он одна из зависимых друг от друга кнопок*/
get_action_context(_,sectionID,cmdID,_,_,_);

GetExtState(ID,"Triger","cmdD");
strlen(ID) > 0 && ID !== cmdID ? (
  sprintf(#func, "cmd=%s;", ID);
  eval(#func);
  SetToggleCommandState(0, cmd, 0);
  RefreshToolbar2(sectionID, cmd);
);

  sprintf(ID, "%i", cmdID);
  SetExtState("Triger","cmdD", ID, 0);
SetToggleCommandState(sectionID, cmdID, 1);

Если нужно сделать несколько групп подобных кнопок, то в следующей группе в двух местах кода просто смените "Triger" на "Triger1" потом в следующей на "Triger2" и т.д.
Обсуждения все и пожелания, если нужно -
ЗДЕСЯ
Для просто кнопок: нажал - залипла, ещё раз нажал - отлипла ---- сделаю чуть позже.
 

Вложения

Последнее редактирование:
Delete Notes Overlaps(poly).lua
Работает и из Midi-Editor,и из Arrange,причем по разному,так и задумано.
Из Midi-Editor- с выделенными нотами
ME.gif
Из Arrange-со всеми нотами в выделенном тейке.
Arr.gif
Так как мне неизвестно,как Нуендо поступает с нотами внутри аккорда(не выходящими за пределы аккорда),сделал по-умолчанию вот так
notes ins chord.gif
И оставил на всякий случай флаг для другого варианта,когда ноты внутри тоже учитываются.
notes ins chord2.gif

=============
Скрипт по идее @belovw,
Explode multichannel Audio(Non-destructive).lua
Работает примерно аналогично заводскому экшну,только каналы исходного файла не дублируются физически,а просто меняются настройки в свойствах активного тейка.
Оригинальный айтем мьютируется,а айтемы с отдельными каналами собираются в папку.
Это выгодно для больших файлов.
123.gif

=============
Тоже по идее @belovw,
Open media item(source relative).lua
Скрипт выполняет разные экшны,в зависимости от содержимого(midi,wave,empty,rex и т.п) активного тейка выделенного айтема.
123.gif
Можно назначить другие экшны(в начале скрипта) - какие удобно, для каждого свои, я назначил пару -только для примера.
=============
 
Последнее редактирование:
Доброго дня. Прослышал, что есть скрипт который при создании проекта автоматом создает папку с подпапками с прописанными путями: Аудио, Save, Backup или вроде того.. Поделитесь, у кого есть?
 
@diggidon, из-за полнейшего нуля в английском ткните носом, пожалуйста. где конкретно, если возможно, скачать этот скрипт?
 
Друзья, кто пользуется Retro Rec Midi скриптом от EUGEN27771?
Нормально ли у вас работает скрипт в загружённом проекте?
Уже пару раз у меня глюканул.
Сначала распознаёт только половину или какую то часть сыгранного пассажа, а потом вообще перестал работать.
Открываю свежий проект - всё нормально.
С чем это связано?
P.S. Retro Rec Audio везде работает без глюков.
 
Простой скрипт - добавляет вколоченный префикс к именам выделеных треков
[DOUBLEPOST=1455311339,1455290120][/DOUBLEPOST]К скрипту добавляющему префикс, написал скрипт, который по введенному префиксу прячет все треки в Микшере, у которых такого префикса нет.
Префикс пока может состоять из трёх букв. Мне показалось достаточно. Если нужно больше - пишите в ветке обсуждения
"не документированные возможности :) " - если ввести восклицательный знак - делает видимыми все треки, если ни чего не ввести - ни чего и не происходит.
Если кому-то понадобиться, могу сделать, чтоб пряталось в окне аранжа или и там и та.
 

Вложения

Последнее редактирование:
Народ, где-то проскакивал скрипт который переносил бы выделеный трек(айтем) в Melodyne studio, а после правки вставлял его на ту же позицию, но дорожкой ниже? (что бы еще и исходник сохранялся в проекте (для сравнения типа До и После :)
PS на mac os

Прошу прощения не в ту тему написал - запарился ;-) но все же?
 
  • Like
Реакции: Furqat
Докладываю про проделанную работу о создании синхронного текста песни и создании
субтитров в Рипер-Студии, закончил, можно пользоваться.
Нужные скрипты:
1 HeDa_ Notes Reader (R5).eel- текстовый монитор
2 HeDa_Toggle Note's stretch to fit item of selected items.eel- растягивает текст в ITEM (опционально)
3 X-Raim_Quantize selected items start and end.lua- подготовка к экспорту, склеивает айтемы для полного экспорта в SCR (субтитры)/ Подсказал Beckoff/
4 HeDa_Export SRT.lua - экспорт субтитров.
5 HeDa_Import SRT.lua- импорт субтитров
6 _TXT import.eel- импорт из ТХТ
Также, напомню, тект из буфера обмена можно вставлять непосредственно в empty item из любого текстового приложения.
Успехов! Так у меня выглядит этот узел-

http://s36-temporary-files.radikal.ru/7eb1fe7f5876403dbf510de66547c3ec/-88693455.jpg
 
Последнее редактирование:
  • Like
Реакции: Doomsterion и Beckoff
Привет всем. вопрос. работаю с миди событиями а именно с бочкой хочу заменить её на аудио .полезный был бы скрипт если на ауди трек выбрать бочку и он по миди событиям раставил бочку по всему треку есть ли такой скрипт ?
 

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