Reaper - Оф.сайт.
Для работы с функциями необходимо скачать и подключить библиотеку "Arc_Function_lua"
а также для работы некоторых функций требуются расширение SWS и/или reaper_js_ReaScriptAPI
Если для работы каких либо функций требуются дополнительное расширение, то в конце функции стоит метка ..._SWS или ..._JS
Например:
Arc.function_SWS()
или
Arc.function_JS()
Arc.no_undo();
Что бы в ундо не прописывалось "ReaScript:Run"
if not --[[???]] then Arc.no_undo(); return end;
_
Arc.Action(Action id, [. . .] );
Выполняет стандартные действие, id вписать через запятую для запуска нескольких действий;
Arc.Action(id,id,id,id);
_
boolean Arc.TrackFx_Rename(MediaTrackTrack, idx idx_Fx, Str Rename);
Переименовать Fx в треке.
Вернет true если переименовал, в противном случае false.
_
str NameDefault, str Name = Arc.TrackFX_GetFXNameEx(MediaTrack Track, idx idx_Fx);
Получить Имя эффекта на треке.
Вернет Имя по умолчанию и Имя переименованное.
_
boolean Arc.RemoveAllSendTr( MediaTrack Track, idx category );
Удалить все посылы в треке send / receive / hardware,
Вернёт true если удаление произошло
Категория(category): < 0 для receives, 0 = sends, > 0 для аппаратных выходов.
_
boolean Arc.RemoveAllItemTr_Sel( MediaTrack Track, idx rem_Idx );
Удалить все / выделенные / невыделенные элементы в треке
rem_Idx = 0 Удалить все невыделенные, = 1 удалить все выделенные, = 2 удалить все;
Вернёт true если удаление произошло
_
Arc.SelectAllTracks( numb Sel );
Выделить Все Дорожки; Снять выделение со Всех Дорожек. (numb = 0 / 1)
_
Arc.SaveSoloMuteSelStateAllTracksGuidSlot_SWS( numb Slot );
Сохранить "Выделение, Соло, Mute" Состояние Всех Дорожек в слот "n".
Востановить с помощью: RestoreSoloMuteSelStateAllTracksGuidSlot_SWS
_
Arc.RestoreSoloMuteSelStateAllTracksGuidSlot_SWS( numb Slot, boolean clean );
Востановить "Выделение, Соло, Mute" Состояние Всех Дорожек из слота "n".
clean = true или 1 - чтобы зачистить сохраненный кэш.
Сохранить с помощью: SaveSoloMuteSelStateAllTracksGuidSlot_SWS
_
boolean Api_js, version = Arc.js_ReaScriptAPI( boolean warning message,numb JS_API_Version );
Проверяет, Установлено ли расширение 'reaper_js_ReaScriptAPI.
Если установлено вернет true, в противном случае false и предупреждения. И версию вернет.
warning message: true - показать окно с предупреждением, false - не показать окно с предупреждением.
JS_API_Version - Установить версию, ниже которой будет ошибка. ПО умолчанию 0
_
boolean Api_sws = Arc.SWS_API( boolean warning message );
Проверяет, Установлено ли расширение 'SWS'.
Если установлено вернет true, в противном случае false и предупреждения.
warning message: true - показать окно с предупреждением, false - не показать окно с предупреждением.
_
Arc.SetCollapseFolderMCP( MediaTrack Track, numb clickable, numb is_show );
Collapsed / Uncollapsed Track MCP (Свернуть / Развернуть Трек в Mикшере)
clickable: 0 скрыть кликабельный значок для папок, 1 показать кликабельный значок для папок, иначе -1;
is_show: 1 - скрыть, 0 показать:
_
string Path, Name = Arc.GetPathAndNameSourceMediaFile_Take_SWS( MediaTake take );
Получить путь и имя исходного медиафайла у тейка
В отличии от "reaper.GetMediaSourceFileName(source,filenamebuf)" не ломается на реверсных файлах и видит .png
Если тейк содержит миди, то вернет false
_
Arc.GetSetToggleButtonOnOff(numb onOff,boolean Set);
Установить переключатель вкл выкл (подсветка кнопки);
onOff: 0 выкл, 1 вкл. По умолчанию 0
Set: true = Set; false = Get
_
numb = Arc.HelpWindow_WithOptionNotToShow( String Text, String Header, str buf, boolean reset);
Окно справки с опцией не показывать;
buf: хоть что - обычно "Arc_Function_lua" для навигации по ini;
reset = true только для сброса, а так всегда false;
return: ok 1; cancel 0; otherwise -1
_
String name Scr = Arc.HelpWindowWhenReRunning( numb BottonText, str buf, boolean reset, str header);
Окно справки при повторном запуске скрипта.
BottonText: 1 "'TERMINATE INSTANCES'", 2 "'NEW INSTANCE'";
buf: хоть что 'strung' / обычно "Arc_Function_lua" для навигации по ini;
reset: true только для сброса, а так всегда false; Скриншот
header = string - "Заголовок" или "".
Вернет всегда имя скрипта.
_
Arc.DeleteMediaItem( MediaItem item );
Удалить элемент мультимедиа
_
table numb CountSamples_AllChannels, CountSamples_OneChannel, NumberSamplesAllChan, NumberSamplesOneChan, Sample_min, Sample_max, TimeSample = Arc.GetSampleNumberPosValue( MediaTake take, numb SkipNumberOfSamplesPerChannel, boolean FeelVolumeOfItem, boolean FeelVolumeOfTake, boolean FeelVolumeOfEnvelopeItem);
Получить у образца номер значение позицию;
Вернет: кол-во сэмплов во всех каналах, кол-во сэмплов в одном канале, номер сэмпла со всех каналов, номер сэмпла с одного канала, минимальное значение сэмпла, максимальное значение сэмпла, время сэмпла.
SkipNumberOfSamplesPerChannel: Сколько сэмплов пропустить в секунду (обычно плэйрейт делим на сто - получится 100 точек в секунду).
FeelVolumeOfItem: false - не реагировать на громкость элемента, true - реагировать на громкость элемента.
FeelVolumeOfTake: false - не реагировать на громкость тейка, true - реагировать на громкость тейка.
FeelVolumeOfEnvelopeItem: false - не реагировать на автоматизацию громкости элемента, true - реагировать на автоматизацию громкости элемента.
_
Arc.SetMediaItemLeftTrim2( number position, MediaItem item );
Удлинить / укоротить Медиа Элемент Слева
_
Arc.Save_Selected_Items_GuidSlot_SWS( numb Slot );
Устарело: используйте - Save_Selected_Items_Slot, Restore_Selected_Item_Slot
_
Arc.Restore_Selected_Items_GuidSlot_SWS( numb Slot, boolean clean );
Устарело: используйте - Save_Selected_Items_Slot, Restore_Selected_Item_Slot
_
Arc.SaveSoloMuteStateAllTracksGuidSlot_SWS( numb Slot );
Сохранить Соло Mute Состояние Всех Дорожек в слот "n"
Востановить с помощью: RestoreSoloMuteStateAllTracksGuidSlot_SWS
_
Arc.RestoreSoloMuteStateAllTracksGuidSlot_SWS( numb Slot, boolean clean );
Восстановить Соло Mute Состояние Всех Дорожек из слота "n"
clean = true или 1 - чтобы зачистить сохраненный кэш
Сохранить с помощью:SaveSoloMuteStateAllTracksGuidSlot_SWS
_
Arc.SaveMuteStateAllItemsGuidSlot_SWS( numb Slot );
Сохранить Mute Состояние Всех Дорожек в слот "n"
Востановить с помощью: RestoreMuteStateAllItemsGuidSlot_SWS
_
Arc.RestoreMuteStateAllItemsGuidSlot_SWS( numb Slot, boolean clean );
Восстановить Mute Состояние Всех Дорожек из слота "n"
clean = true или 1 - чтобы зачистить сохраненный кэш.
Сохранить с помощью: SaveMuteStateAllItemsGuidSlot_SWS
_
numb PosFirstIt, EndLastIt = Arc.GetPositionOfFirstItemAndEndOfLast();
Получить Позицию Первого Элемента И Конец Последнего Элемента.
_
numb PosFirstIt,EndLastIt = Arc.GetPositionOfFirstSelectedItemAndEndOfLast();
Получить Позицию Первого Выделенного Элемента И Конец Последнего Выделенного Элемента.
_
Arc.RemoveStretchMarkersSavingTreatedWave_Render_SWS( MediaTake take );
Удалить Маркеры Растяжки, Сохраняя Обработанную Волну, Удаление происходит при помощи рендера и это может замедлять процесс (Render)
_
Arc.SaveSelTracksGuidSlot_SWS( numb Slot );
Устарело: используйте - Save_Selected_Track_Slot, Restore_Selected_Track_Slot
_
Arc.RestoreSelTracksGuidSlot_SWS( numb Slot, boolean clean );
Устарело: используйте - Save_Selected_Track_Slot, Restore_Selected_Track_Slot
_
boolean Perf = Arc.GetPreventSpectralPeaksInTrack( MediaTrack Track );
Получить предотвращение спектральных пиков в треке
_
Arc.SetPreventSpectralPeaksInTrack( MediaTrack Track, boolean Perf );
Установить предотвращение спектральных пиков в треке. Perf = true - Вкл. Perf = false - Выкл
_
Arc.CloseAllFxInAllItemsAndAllTake( boolean chain, boolean float );
Закрыть Все Fx Во Всех Элементах И Во всех тейках.
chain: true - закрыть только fx из списка, false не закрывать.
float: true - закрыть только fx плавающие, false не закрывать.
_
Arc.SetShow_HideTrackMCP( MediaTrack Track, numb Setshow_hide );
Показать Скрыть дорожку в микшере (MCP). Setshow_hide: 0 или 1
_
Arc.CloseAllFxInAllTracks( booleanchain, booleanfloat );
Закрыть Все Fx На Всех Дорожках.
chain: true - закрыть только fx из списка, false не закрывать из списка.
float: true - закрыть только fx плавающие, false не закрывать плавающие.
_
Arc.CloseToolbarByNumber( idx ToolbarNumber );
Закрыть Панель Инструментов По Номеру. Несовместимо с верхним докером (top).
ToolbarNumber: 1-16
_
numb Arc.GetMediaItemInfo_Value( MediaItem item, Str parmname );
Получить атрибуты числового значения элемента мультимедиа.
parmname:
D_END : Конечная позиция элемента от старта проекта в секундах.
Так же СМ. другие атрибуты.
_
Arc.SetMediaItemInfo_Value( MediaItem item, Str parmname, numb val );
Установить атрибуты числовых значений элемента мультимедиа.
parmname:
D_END : Конечная позиция элемента от старта проекта в секундах.
Так же СМ. другие атрибуты.
_
String GridFormVal = Arc.Get_Format_ProjectGrid( numb divisionIn );
Форматирует значение сетки проекта в удобочитаемую форму СМ.
_
numb Arc.CountTrackSelectedMediaItems( MediaTrack Track );
Количество в треке Выбранных Элементов.
_
MediaItem Item = Arc.GetTrackSelectedMediaItems( MediaTrack Track, idx itemidx );
Получить в треке Выбранный Элемент.
_
numb = Arc.GetSetHeigthMCPTrack(MediaTrack Track, numb numbHeigth, numb Set);
Set 0: Вернет высоту трека от 0 до 1; 0 самый высокий, 1 самый маленький.
numbHeigth: от 0 до 1; 0 самый высокий, 1 самый маленький.
Set: 1 Set, 0 Get.
_
Arc.openFileURL(string pathUrl );
Открыть файл или url
pathUrl = путь/файл или url
_
String/numb id = Arc.GetIDByScriptName(string scriptName,string [scriptPath]);
Получить Id по имени скрипта или кастом экшена
scriptPath: Необязательный параметр, на случай если присутствует несколько скриптов с одинаковым именем
если присутствует несколько скриптов с одинаковым именем и если не указать scriptPath, то вернет первый найденный, а если указать scriptPath, то вернет точный результат
В случае неудачи вернет -1
_
String name = Arc.GetScriptNameByID(string id );
Получить имя скрипта или кастом экшена по ID
В случае неудачи вернет -1
_
number RecArm = Arc.GetTrackAutoRecArm(MediaTrack Track);
Получить значение автозаписи on/off
Вернет 1 если включена и 0 если выключена
_
Arc.SetTrackAutoRecArm(MediaTrack Track,number value);
Установите автозапись на треке / 0-1 / true-false;
_
boolean ret = Arc.SetHeightTrack_Env_TCP(MediaTrack Track,number Height [, number minHeigth, number resetHeigthEnv, number PercentageDefault ] );
Установить высоту трека совместно с огибающими
Height: Высота в пикселях которую нужно установить
minHeigth: минимальный размер трека(по умолчанию 24)
resetHeigthEnv: = 1 - при уменьшении env трека с пользовательской высотой,при достижении minHeigth сбросить в 0(по умолчанию 0)
PercentageDefault: Процент погибающей по умолчанию относительно трека TCP(по умолчанию 0.75)
minHeigth, resetHeigthEnv, PercentageDefault: Необязательные параметры
Вернет true в случае успеха
После изменения всех треков вызовите reaper.TrackList_AdjustWindows(false);
Погрешность +- 5 пикселей из за округления "I_HEIGHTOVERRIDE" каждой огибающей со стандартным размером
_
Arc.SetStartupScript(string nameAction,string id,string nameFun,string Clean);
С данной функцией нужно быть предельно аккуратным
Добавить скрипт в автозагрузку
Если нужно дважды добавить один и тот же скрипт в автозагрузку, то делаем цикл в скрипте и добавляем этот скрипт
Дважды один и тот же скрипт добавить в автозагрузку с помощью данной функции нельзя
nameAction: Имя экшена или скрипта добавляемого в автозагрузку
id: id экшена или скрипта добавляемого в автозагрузку
nameFun: Имя с которым будет создана функция в автозагрузке, обычно это свой ник. Например: "ArchieScript" *#8
Clean:
"ONE" удалить действие из автозагрузки из функции установленной в nameFun и с id установленного в id.(nameAction*)
"ALL" удалить все что в функции nameFun (id при ALL равен пустой строкой "").(nameAction*)
*nameAction при очистке может быть любой строкой(так как этот параметр не работает), но не менее 6 символов, для того что бы пропустила функция,.
See: GetStartupScript
_
boolean check_Id, boolean check_Fun = Arc.GetStartupScript(string id,string nameFun);
Получить - установлен ли скрипт в автозагрузке
id = id по которому искать скрипт в автозагрузке в функции установленной в "nameFun
nameFun = Имя функции в которой искать скрипт по id (установленом в id) в автозагрузке. *#8
Вернет true если скрипт с данным id присутствует в функции nameFun в противном случае false
Вернет имя функции, если функция присутствует в файле автозагрузки,в противном случае false
Ищет только то, что было установленно при помощи "SetStartupScript"
See: SetStartupScript
_
boolean retval,string nameAct,string id = Arc.EnumStartupScript(numb idx,string nameAction);
Перечислите данные, хранящиеся в автозапуске, для конкретного id /name.
Возвращает false, когда больше нет данных иначе true.
nameFun = Имя функции в которой искать скрипт по idx. *#8
idx = индекс на основе нуля
See: GetStartupScript
_
boolean ret, numb val = Arc.GetSetTerminateAllInstancesOrStartNewOneKB_ini(numb set,numb newState,string ScrPath,string ScrName);
Установите/получить - завершить все экземпляры или начать новый KB_ini
set = 0 / false
Если нашел запись скрипта в файле, то вернет (true,state)
Если не нашел запись скрипта в файле то вернет (false)
set = 1 / true
Если не нашел запись скрипта в файле то вернет (false)
Если нашел запись скрипта в файле, и значения равны с newState, то вернет (false,state), перезапись не будет производиться,сработает как get/
Если нашел запись скрипта в файле, и значения не равны с newState, то перепишет новое значения и вернет старое значение,true.
newState: 4=Reset; 260=TERMINATE INSTANCES; 516=NEW INSTANCES;
Требуется перезагрузка рипера
------------------------
reaper.defer(function();_
boolean val = Arc.ChangesInProject(string / number buf);
возвращает true при изменении состояния проекта
buf = Необязательный параметр, для использования функции в одном скрипте в
разных местах одновременно, buf должен быть разный (defer)
_
Arc.Save_Selected_Items_Slot( numb/str Slot );
Сохранить Выделенные элементы в слот "n" (внутри скрипта)
Востановить с помощью: Restore_Selected_Item_Slot
Вернет boolean и таблицу сохраненных элементов
_
Arc.Restore_Selected_Item_Slot( numb/str Slot, numb/boolean clean, numb/boolean noSelPrevIt, numb/boolean UpdateArrange );
Восстановить Выделенные элементы из слота "n"
clean = true или 1 - чтобы зачистить сохраненный кэш.
noSelPrevIt установить true или 1 что бы не снимать выделение с предыдущих элементов
Сохранить с помощью: Save_Selected_Items_Slot
_
Arc.Save_Selected_Track_Slot( numb/str Slot );
Сохранить Выделенные треки в слот "n" (внутри скрипта)
Востановить с помощью: Restore_Selected_Track_Slot
Вернет boolean и таблицу сохраненных треков
_
Arc.Restore_Selected_Track_Slot( numb/str Slot, numb/boolean clean, numb/boolean noSelPrevIt);
Восстановить Выделенные треки из слота "n"
clean = true или 1 - чтобы зачистить сохраненный кэш.
noSelPrevIt установить true или 1 что бы не снимать выделение с предыдущих треков
Сохранить с помощью: Save_Selected_Track_Slot
_
boolean Arc.If_Equals_Or( Str If_Equals_Or, Str ... );
Сократить условие. Вернет true при совпадении, иначе false.
boolean Arc.If_Equals_OrEx( Str If_Equals_Or, Str / table ... );
Тоже самое, что и If_Equals_Or , только ищет значения еще и в таблицах
Сравнить значение EqualsToThat на совпадения со значением из таблицы или переданным аргументом
numb boolean Arc.ValueFromMaxRepsIn_Table( table array, Str min_max );
Вернет значение из максимальных повторений в таблице.
array: таблица, min_max: "MIN", "MAX", "RANDOM"
numb String Arc.randomOfVal(numb Str ... );
Вернет случайное из значений.
пример: Val = randomOfVal("one","two",1,2); Вывод: "one" или "two" или 1 или 2.
numb number Arc.invert_number(numb X);
Инвертировать число из минуса в плюс и наоборот. Например: Arc.invert_number(20); вернет -20; Arc.invert_number(-20); вернет 20;
boolean Arc.iniFileWriteLua(strsection,str key, str value, str iniFile, boolean lua, boolean clean);
boolean 'lua' Необязательный параметр
Если установлен,будет добавлять комментарий 'два тире', полезно для записи в луа файл.
boolean 'clean', true=Очистка пустых строк, Необязательный параметр.
вернет true если данные былы записанны в файл, иначе false (запись не производится, если это не не обходимо)
[section]key=value
boolean Arc.iniFileReadLua(str section, str key, str iniFile, boolean lua);
boolean 'lua' - Смотреть function iniFileWrite, Необязательный параметр
Вернет value или ''
boolean Arc.iniFileRemoveSectionLua(str section, str iniFile, boolean lua);
Удалить всю секцию, со всеми ключами
boolean 'lua' - Смотреть function iniFileWrite, Необязательный параметр
вернет трие при успешном удалении, иначе false
boolean retval,str key,str val = Arc.iniFileEnumLua(str section, numb idx, str iniFile, boolean lua);
Перечислите данные, хранящиеся в ini для конкретного имени 'section'
Возвращает false, когда больше нет данных
idx На основе нуля
boolean 'lua' - Смотреть function iniFileWrite, Необязательный параметр
retval, key, val = iniFileEnum(section,idx,iniFile,lua);
tbl = Arc.iniFileReadSectionLua(str section, str iniFile, boolean lua);
boolean 'lua' - Смотреть function iniFileWrite, Необязательный параметр
Вернет в виде таблицы все ключи и их значения из указанной секции
tbl = Arc.iniFileWriteSectionLua(str section, table tbl, str iniFile, boolean lua, boolean clean);
boolean 'lua' - Смотреть function iniFileWrite, Необязательный параметр
Переписать всю секцию из таблицы
таблица должна иметь структуру как в из функции (iniFileReadSection)
tbl = {{key=1,val=1},{key=2,val=2},{key=3,val=3}}