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

  • Автор темы Автор темы @Michael
  • Дата начала Дата начала
@nondescript, что, чего, кого) простите, но я вообще в этом не разбираюсь)), но спасибо вам в любом случае.
"Нет никакого смысла пытаться помочь людям, которые не пытаются помочь себе сами." - Эндрю Карнеги
-
должно сработать
Код:
-- Эту строку из предыдущего скрипта заменить
local masterTrack = reaper.GetMasterTrack(0)

-- на эти
local numTracks = reaper.CountTracks(0)
local masterTrack = reaper.GetTrack(0, numTracks - 1) -- Получаем трек, находящийся перед последним треком (мастер-трек)
Ищет мастер-трек, который будет располагаться справа от всех других треков в микшере.
 
Последнее редактирование:
@Noih, Вы сам с собой общаетесь или тут вам личный блог где вы свои чувства выражаете? Название темы первые два слова "Помогите создать...". Создать и Найти\заюзать готовый - это разные вещи. Вам выше человек разжевал достаточно неплохо. (Надеюсь у вас есть самоирония, я без зла). Просто прямо Пишите "Я не шарю как делать вообще сделайте за меня"

@nondescript, Кстати спасибо за инфу! Если не сложно можно ссылку на гитхаб на доки?
в основном гит https://github.com/ReaTeam/ReaScripts - на основе примеров и базовых, можно что-то собрать)
официальное https://www.reaper.fm/sdk/js/js.php и форум https://forum.cockos.com/ ,
и тут часть: https://github.com/0xf0f/reaper-api
 
Последнее редактирование:
Здравствуйте, может мне кто-нибудь, пожалуйста, объяснить откуда все числовые значения в этих функциях?
 

Вложения

  • Снимок экрана (28).png
    Снимок экрана (28).png
    5,7 KB · Просмотры: 94
@serpen, Думал, что это какая-то супер-оптимизация, но спустя 10 минут всё равно не понимаю, почему там эти цифры.
[/QUOTE]
Эти же цифры используются много где, но я вроде нашел способ, обоснованный формулами. А то эти мощность и напряжение сильно путают
 
Здравствуйте, может мне кто-нибудь, пожалуйста, объяснить откуда все числовые значения в этих функциях?
Формула перевода единиц в дБ имеет множитель 20.
20*log10(x)
Обратное преобразование имеет в степени знаменатель 20.
10^(x/20)
в качестве оптимизации вычислений можно использовать натуральный логарифм с преобразованным коэффициентом. Тогда:
20*log10(x)=8.68??????????? * log(x)
эти два выражения равны, только вычислять натуральный логарифм машине быстрее чем десятичный.

с обратным преобразованием таже ситуация
10^(x/20)=e^(x/8.68??????)
вот только время на вычисление деления расходуется несравненно больше чем на умножение. Поэтому 1/8.68 посчитаем заранее. Тогда
10^(x/20)=e^(x/8.68??????)=e^(x*0.11512?????)
 
Товарищи заметил такую фигню с оператором деления остатка'%'. Как пример: [- 5%2 = 1;](те возвращает абсолютное значение). Это баг или фича и у всех ли так..... Или я что-то не правильно делаю в расчетах? (яп-EEL2) Также ещё вопрос на условное ветвление в выражениях-->кто-нибудь может поведать практическое применение конструкции типа: [a ? : c] - это синоним? выражению [a? b] или что-то другое или это аналог [a ? null : c] (только объекта null в EEL2 вроде как нет ,только значение "0" при отсутствии инициализации переменной]. Все представленные конструкции по усл. ветвлению в EEL2 валидные. Чего-то зарапортовался мальца с ветвлением.)
 
@Trasher, numerator % denominator -- divides two values as integers and returns the remainder
---
division (/)
Владимир -делимое отрицательное[-5] делитель положительный[2] --> всегда возвращает положительный остаток. Посмотрел в калькуляторе_win --> тот возвращает [-1].
 
  • Wow
Реакции: belovw
Товарищи заметил такую фигню с оператором деления остатка'%'. Как пример: [- 5%2 = 1;](те возвращает абсолютное значение). Это баг или фича и у всех ли так..... Или я что-то не правильно делаю в расчетах? (яп-EEL2) Также ещё вопрос на условное ветвление в выражениях-->кто-нибудь может поведать практическое применение конструкции типа: [a ? : c] - это синоним? выражению [a? b] или что-то другое или это аналог [a ? null : c] (только объекта null в EEL2 вроде как нет ,только значение "0" при отсутствии инициализации переменной]. Все представленные конструкции по усл. ветвлению в EEL2 валидные. Чего-то зарапортовался мальца с ветвлением.)
Отвечу самсебе)) a?:c ===== a?[null]|[скорее даже -->do_nothing()]:c [сокращенная/упрощенная запись]
Java:
// x1   - триггер_переменная для изменения значения переменной h
// x1<0 - условие для выполнения выражения ветвления [?:]
// если  x1 < 0 - [doNothing()]
//UPD если  x1 >= 0 - [h assign 123]

x1 = -5;
h  =  1;
(x1<0)?:h = 123;

вопрос?)) какого типа оператор[?:][binary,ternary]
 
Последнее редактирование:
@Trasher, не пойму суть вопроса. Попобуй спросить по проще.
Владимир нашел у разраба на гитхабе ответ--оператор [?:] - бинарный с условием всегда ЛОЖЬ в отличии от оператора [?] у которого условие всегда ИСТИНА.

Код:
if_else_expr        := logical_and_or_expr
                     | logical_and_or_expr '?' if_else_expr ':' if_else_expr    
                     | logical_and_or_expr '?' ':' if_else_expr    
                     | logical_and_or_expr '?' if_else_expr

[/SPOILER]

UPD частный случай --->
| logical_and_or_expr '?' ':' if_else_expr
 
  • Like
Реакции: belovw
Владимир нашел у разраба на гитхабе ответ--оператор [?:] - бинарный с условием всегда ЛОЖЬ в отличии от оператора [?] у которого условие всегда ИСТИНА.
это сокращенная запись условия(-ий) if else
-
условие ? соответствие_условию : несоответствие_условию
-
ниже пример из php:
Код:
$i = 10; // задали значение переменной

echo ($i == 5) ? "да, i = 5" : "нет, i не равно 5";

/*
* Проверяем, является  ли заданная переменная равной той, с которой сравниваем.
* Равно ли то значение которые мы задали в переменной $i(задали 10), значению 5 в условии ($i == 5)
* В нашем случае, на выходе будет: нет, i не равно 5
*/

// ниже, обычный вариант записи вышеуказанного сокращения условия
$i = 10;
if($i == 5){
    echo "да, i = 5";
} else {
    echo "нет, i не равно 5";
}
 
Последнее редактирование:
  • Like
Реакции: Trasher
это сокращенная запись условия(-ий) if else
-
условие ? соответствие_условию : несоответствие_условию
-
ниже пример из php:
Код:
$i = 10; // задали значение переменной

echo ($i == 5) ? "да, i = 5" : "нет, i неравно 5";
/* Проверяем, является  ли заданная переменная равной той, с которой сравниваем.
* Равно ли то значение которые мы задали в переменной $i(задали 10), значению 5 в условии ($i == 5)
*/
это сокращенная запись условия(-ий) if else
-
условие ? соответствие_условию : несоответствие_условию
-
ниже пример из php:
Код:
$i = 10; // задали значение переменной

echo ($i == 5) ? "да, i = 5" : "нет, i не равно 5";

/*
* Проверяем, является  ли заданная переменная равной той, с которой сравниваем.
* Равно ли то значение которые мы задали в переменной $i(задали 10), значению 5 в условии ($i == 5)
* В нашем случае, на выходе будет: нет, i не равно 5
*/

// ниже, обычный вариант записи вышеуказанного сокращения условия
$i = 10;
if($i == 5){
    echo "да, i = 5";
} else {
    echo "нет, i не равно 5";
}
@nondescript в eel2/jsfx нет ключевых слов if else, иcпользуется только сокращенная запись.
В итоге имеем три оператора if_else_expr :
1.Тернарный - [[?]...[:]...] ---> (cond) ? [some_code for IF_Branch == true] : [some_code for ELSE_Branch == true].
2.Бинарный - [?:]----------> (cond) ?: [some_code for ELSE_Branch == true].
3.Бинарный - [?]-----------> (cond) ? [some_code for IF_Branch == true].
Но это не точно.)
 
Последнее редактирование:
В 6.82 запилили include() для eel2/jsfx))
Вот некоторые личные наблюдения и как один из вариантов использования фичи[поместить папку include_test в effects].Тыц.
 
Продублирую сюда: нужен скрипт, который будет выключать итемы на которых уровень сигнала будет ниже предложенного. То есть гейт - детектор, по сути, с фильтром по низу и регулировкой толерантности срабатывания

ТЗ для заинтересовавшихся распишу подробнее, конечно,

— детали сделки обсуждаются)
 
И я, если можно продублирую ---
Временно работаю на винде, (Хак в ремонте), и уже приблизительно Reaper 7 rc поднастроил, но не могу найти некоторые скрипты, а именно
1) (которые на макоси оч.часто юзал) на выделенном трэке ,что- то типа go to cursor next item и go to cursor previous item , или move cursor ?????
Перебирать на трэке айтемы.
2)Распаковал тему,с помощью 7-Zip, кое-что подправил ,но Не могу запаковать Theme. На маке это делал легко...
3) в Цикл Экщн Эдиторе не могу войти в Экщенлист... (см фото)
Все ,что есть Экщенах похожее - перебрал , Реапак синхронизировал... И

Вложения
 
просто пакуете в zip и меняете расширение.
В макоси просто убирал точку перед zip, а здесь как, (что-то туплю ).. в свойствах файла не получается.. .....Упс!!! ... Разобрался с расширением...
 
Последнее редактирование:
Ну а по пункту 1)
Команды типа - go to cursor next item и go to cursor previous item , или move cursor next item?????
Может в 7 версии с реапаком траблы, но я не нашел ничего похожего...
 
Ну а по пункту 1)
Команды типа - go to cursor next item и go to cursor previous item , или move cursor next item?????
Может в 7 версии с реапаком траблы, но я не нашел ничего похожего...
Поищите в дефолтных экшенах:

- Item navigation: Select and move to next item
- Item navigation: Select and move to previous item

Кажется, похоже на то, что вы описываете =)
select and  move.gif
 
  • Like
Реакции: nazarol-jk35
Продублирую сюда: нужен скрипт, который будет выключать итемы на которых уровень сигнала будет ниже предложенного. То есть гейт - детектор, по сути, с фильтром по низу и регулировкой толерантности срабатывания
Я читал ваш запрос в другой теме. Не могу ТОЧНО представить себе все нюансы, так как никогда не занимался такой деятельностью. И не смогу участвовать серьёзно в обсуждении, так как не умею делать скрипты, хотя, иногда делаю. Но могу натолкнуть на мысль. Например, такой скрипт замьютирует все выделенные айтемы, у которых максимальный пик ниже, чем -30 дб:
Код:
local MaxPeak = -30
reaper.PreventUIRefresh(1)
reaper.Undo_BeginBlock()
local CountSelItem = reaper.CountSelectedMediaItems(0);
if CountSelItem then
for i = 1, CountSelItem do;
local SelItem = reaper.GetSelectedMediaItem(0,i-1);
local SelIteMaxPeak = reaper.NF_GetMediaItemMaxPeak(SelItem)
if SelIteMaxPeak < MaxPeak then
reaper.SetMediaItemInfo_Value(SelItem,"B_MUTE",1)
end
end
end
reaper.PreventUIRefresh(-1);
reaper.UpdateArrange()
reaper.Undo_EndBlock("Mute sel item if the max peak is less than n db",-1)
Может быть, что он даже и подойдёт.
Значение максимального пика можно отрегулировать, изменив его в первой строке кода. Оно условно.
Можно попробовать ориентироваться, например на показания RMS. Скрипт получится несколько иным. Но я не пробовал. Надо копаться.
Там есть несколько функций типа "NF_ ", как вариант.
Просто подсказываю, если кто-то захочет сделать это более грамотно.
 
  • Like
Реакции: DmitrijSorokin

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