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

  • Автор темы Автор темы @Michael
  • Дата начала Дата начала
Там есть несколько функций типа "NF_ ", как вариант.
Я попробовал, с Average RMS вроде заработало, но я не писатель тоже.
В данном примере Average RMS=-15

Код:
local AverageRMS = -15 -- set Average RMS (dB) value
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 SelItemAverageRMS = reaper.NF_GetMediaItemAverageRMS(SelItem)
    if SelItemAverageRMS < AverageRMS then
      reaper.SetMediaItemInfo_Value(SelItem,"B_MUTE",1)
    end
  end
end
reaper.PreventUIRefresh(-1);
reaper.UpdateArrange()
reaper.Undo_EndBlock("Mute sel item if the average rms is less than 15 db",-1)

Может, кто подскажет, как с LUFS провернуть так же?
Мне кажется, здесь надо использовать NF_AnalyzeTakeLoudness_IntegratedOnly
 
  • Like
Реакции: Mr_Tsonts
Может, кто подскажет, как с LUFS провернуть так же?
Мне кажется, здесь надо использовать NF_AnalyzeTakeLoudness_IntegratedOnly
https://www.extremraym.com/cloud/reascript-doc/#NF_AnalyzeTakeLoudness_IntegratedOnly

Вот так. Код работает, но я не тестировал глубже:

Код:
local LUFS = -15 -- set LUFS (dB) value
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);
        if SelItem then   
           Take = reaper.GetActiveTake( SelItem )
           local retval, SelItemLUFS = reaper.NF_AnalyzeTakeLoudness_IntegratedOnly( Take )
           if SelItemLUFS < LUFS then
              reaper.SetMediaItemInfo_Value(SelItem,"B_MUTE",1)
           end
       end
  end
end
reaper.PreventUIRefresh(-1);
reaper.UpdateArrange()
reaper.Undo_EndBlock("Mute sel item if the LUFS is less than 15 db",-1)
 
  • Like
Реакции: Mr_Tsonts и DmitrijSorokin
Вот так. Код работает, но я не тестировал глубже:
Работает, хотя очень медленно, наверное, минуты 2 ждал на 3-х минутном файле.
Вариант с RMS тоже медленный, но в несколько раз быстрее.
 
  • Like
Реакции: Kokarev Maxim
Просчитать нужную величину, кстати можно с помощью экшена calculate для айтемов. Выделить выборочно нормальные айтемы, на глаз одни из самых тихих))), и некоторые из тех, которые нужно заглушить, посмотреть значения и определиться с порогом.
 

Вложения

  • calculate.gif
    calculate.gif
    727,5 KB · Просмотры: 80
  • Like
Реакции: Kokarev Maxim
Приветствую! Ищу скрипт для инкремента/декремента fade in-ов и out-ов треков с кнопок клавиатуры.
 

Вложения

  • Reaper_fade.jpg
    Reaper_fade.jpg
    59,9 KB · Просмотры: 85
  • Reaper_enlarge.jpg
    Reaper_enlarge.jpg
    40,6 KB · Просмотры: 79
Последнее редактирование:
  • Like
Реакции: variator
Ищу скрипт, позволяющий двигать края айтема (resize), не ловя их границу. Просто навести курсор на левую/правую область, зажать shortcut и тянуть.
Reaper-Resize.gif
 
Последнее редактирование:
amagalma_Split item at mouse cursor position ( use defined crossfade and selection settings ).lua

Люди добрые, подскажите, пожалуйста, чего/где поменять в этом скрипте , чтобы при разрезании айтема под курсором мыши сбрасывалось предыдущее выделение айтемов?

P.S. Вообще, с этими «разрезаниями под курсором» запарился изрядно. Имею кучу групповых айтемов и эти скрипты/экшены по-разному ведут себя при сплитировании.
 
@drumwizard, ну, наверное самое простое - это сделать кастом экшн:
- Item: Unselect (clear selection of) all items
- Script: amagalma_Split item at mouse cursor position ( use defined crossfade and selection settings ).lua
split under mouse cursor.gif
 
amagalma_Split item at mouse cursor position ( use defined crossfade and selection settings ).lua

Люди добрые, подскажите, пожалуйста, чего/где поменять в этом скрипте , чтобы при разрезании айтема под курсором мыши сбрасывалось предыдущее выделение айтемов?

P.S. Вообще, с этими «разрезаниями под курсором» запарился изрядно. Имею кучу групповых айтемов и эти скрипты/экшены по-разному ведут себя при сплитировании.
Я не знаю, что в этом скрипте, но любой скрипт можно легко модифицировать, добавив строчку с обычным экшном. Например, вот эта строчка сбросит всё выделение айтемов:
Код:
reaper.Main_OnCommand(40289, 0)

Подменяя цифры на любой другой ID экшна, можно получать любую другую команду.
 
Здравствуйте, вопрос может не в тему, но возможно ли создать условие "если хх секунд курсор неподвижен, то ....." ??
 
Подскажите можно ли реализовать средствами каких-то нативных js плагинов такой функционал:

1) переназначаем миди клавиши по некоей карте например

C1 = C0
D1 = E0
E1 = G0
и т.д.

чтобы при нажатии клавиши играла не та клавиша которая нажата а та которая привязана к нажатой

2) переключаем заранее настроенные карты привязки клавиш на лету во время игры, например

С-1 - 1 карта привязки
D-1 - 2 карта привязки
E-1 - 3 карта привязки


Это попытка воссоздать функционал плагина "Scaler 2" который глючный и тяжелый. Суть в том что последовательность аккордов переключается левой рукой например в -1 октаве, а правая рука играет по одним и тем же белым клавишам в 1 октаве, которые, на лету меняют свое значение в зависимости от включенного левой рукой "аккорда", только хотелось бы не просто аккорда а скажем трех аккордов один октавой выше другой ниже, чтоб это можно было свободно "замаппить", пусть даже в некоем текстовом файле и переключать на лету эти файлы карт привязки.
 
Как перевести аудио файл (например дорожку с хетами) в миди партию ReaSamplOmatic5000 ?
 

Вложения

  • Скрин.jpg
    Скрин.jpg
    57,1 KB · Просмотры: 52
@D-Forest, Можно. Но в первую голову затея разбивается об «записать в файл» ‒ потому что надо либо писать в файл проекта, либо не писать в файл вообще. Иначе через пару недель проект можно будет выбрасывать.
А отсюда вытекает необходимость минимального интерфейса. И вот придумать и запилить на JSFX подобного рода интерфейс ‒ сложна.
Как промежуточный вариант ‒ можно писать мапу в файле, загружать его в JSFX и потом уже хранить в инстанции плагина.

Но опять-таки, это скриптинг на пару вечеров, как минимум…
 
@Martin111, сразу оговорюсь, что я сварщик не настоящий и есть какие-то более продвинутые техники и плагины, типа MK Slicer, но если рассматривать на таком простом примере, как у вас на скрине, то я бы сделал так:
1) на дорожку с хетами вешаю встроенный риперовский Audio To MIDI Drum Trigger - настройки я обычно оставляю по дефолту и все работает; но если что - похоже, что там такие же настройки как в Dynamic Split, так что можно открыть его и визуально посмотреть какие выбрать параметры для открытия/закрытия трешхолда
2) Выделяю все айтемы на дорожке, правой кнопкой на любом айтеме- Apply take/track FX to items as new take (MIDI output) - создастся новый тейк с миди
3) Удаляю Audio To MIDI Drum Trigger из FX, дублирую трек, делаю Crop to active take (alt+shift+t) - на одном оставляю оригинал с хетами, на втором только миди
4) Как можно увидель, миди ноты не совсем чтоб в нужном месте по сетке - для этого выделяю все айтемы, glue items, захожу в эдитор и квантизирую через Q
5) Вешаю на дорожку с миди ReaSamplOmatic5000, выделяю любой из айтемов с хетами и в плагине жму Import item from arrange
Собственно все, дорожку с аудио можно удалять если не нужна =)
audio to midi.gif
 
@PianoIst, я нашел кое какие миди плагины пытающиеся с переменным успехом делать нечто подобное но ни один из них не делает именно то что нужно, не говоря уже о том чтобы делать это хорошо.

Насчет интерфейса просто мысли вслух:

два ряда клавиш пианино - нижний задает ноту которую надо отредактировать, в верхнем выбираем на какую ноту изменить выбранную в нижнем ряду. Так можно выбрать для всех клавиш нижнего ряда.

Опционально - возможность выбирать не одну а несколько клавиш в верхнем ряду что реализует аккорд или интервал по 1 клавише нижнего ряда.

Весь набор выбранных клавиш целиком сохраняется в матрицу из 16 пэдов нарисованных тут же сбоку от двух рядов пиано-клавиш.
При выборе пэда загружается привязанная к нему карта настроенных клавиш.

К любой ноте выбранной в нижнем ряду пиано-рола можно привязать не только любую ноту из верхнего пиано рола но и любой пэд из 16 для реализации переключения карт на лету во время игры.

Получаем 16 карт которые можно забиндить например на черные клавиши миди клавиатуры тогда как две-три октавы белых клавиш будут работать как принудительный гармонайзер согласно настроенным картам.

Все это целиком позволит программировать последовательности аккордов с их обращениями и добавочными нотами, после чего импровизировать на них на самых простых и удобных клавишах без необходимости знать и попадать в нужные ноты. Почти всё это есть в "Scaler 2", но повторюсь он тяжелый, глючный, неудобный и заброшенный разработчиками.
 
два ряда клавиш пианино - нижний задает ноту которую надо отредактировать, в верхнем выбираем на какую ноту изменить выбранную в нижнем ряду. Так можно выбрать для всех клавиш нижнего ряда.
Вот это на JSFX уже займёт на порядок больше кода, чем собственно сам функционал) Нет у него строительных блоков для такого типа интерфейсов. Есть пара библиотек разной степени удобства для простых кнопочек…

Так что нечто подобное, теоретически, легче запилить на каком-нибудь VSTi конструкторе, типа HISE. Просто, как и писал, задача как минимум на пару хороших вечеров работы…
 
@PianoIst, я в принципе сам программист, просто с вст никогда не сталкивался, но если вы говорите задача на пару вечеров, то надо наверно попробовать поковырять...
 
@D-Forest, Мне кажется, в качестве теста можно даже попробовать в Kontakt как мульти-скрипт сверстать. Это не ахти как оптимально по памяти, но зато пишешь на интерпретаторе, без всяких компиляций и перезагрузок DAW.
 
@Martin111, раз уж вы написали в тему про скрипты и кастом экшены, то я тут попробовал соорудить кастом экшен по вашему вопросу:
audio to midi custom action.jpg

Громоздко получилось, но, кажется работает =) Естественно не истина в последней инстанции, а скорее гайдлайн - там уже смотрите и кастомизируйте по своим задачам. Этот кастом, например, если нужно перевести в миди прям все айтемы на дорожке и при дефолтных настройках Audio To MIDI Drum Trigger. Если для работы с тайм селекшн - думаю будет несложно подправить. Да, для кастома нужно будет предварительно сделать шорткаты для плагинов, один скрипт из ReaPack и чтоб были SWS extensions.
Вот как это все работает:
audio to midi custom action.gif

Все по сетке, все играет, а если в ReaSamplOmatic5000 скрутить в ноль атаку и релиз - будет вообще полное вычитание с оригиналом, только надо чтоб на айтемах c аудио не было фейдов =)
P.S. Кстати, может кто-то знает - реально сделать на экшн с нажатием какой-то конкретной кнопки в плагине? Вот как в данном примере, чтоб был экшен, который сам нажмет Import item from arrange.
 
Последнее редактирование:
  • Wow
  • Like
Реакции: Antonio и Martin111
@truemanofan, если аудио айтем стоит не по сетке, то миди нота смещается.
 

Вложения

  • Скрин.png
    Скрин.png
    28,3 KB · Просмотры: 48
@Martin111, да, действительно =) тогда, наверное, не имеет смысла еще что-то выдумывать, уходить дальше в какие-то дебри и городить огород - все таки обратите внимание на MK Slicer
Я ним особо не пользовался, но судя по всему очень навороченный и грамотный скрипт, который можно крутить-вертеть как угодно
В режиме семплера сделает все красиво, сразу в RS5K, с предварительной настройкой той же атаки и релиза
В режиме триггер сделает просто миди, и все сразу будет на местах и не важно по сетке или не по сетке стоят семплы и т.д.
Вообщем, очень рекомендую =)
mk slicer.gif
 
  • Like
Реакции: Antonio и Martin111
Привет, всем! Подскажите пожалуйста, есть ли скрипт запускающий каждый раз экшн Send all-notes-off and all-sounds-off to all MIDI outputs/plug-ins при выделении трека (либо при назначении/снятии трека на запись)?
Хочу использовать рипер с миди клавой в лайве и переключаться между VSTi путем выделения трека с режимом automatic record-arm when track selected. Но возникла проблема, если я переключаюсь на другой трек с зажатой педалью сустейна, то звук предыдущего VSTi продолжает звучать.
 
Последнее редактирование:
@Diroll, можно кастом сделать. Точнее несколько, по количеству трэков. Много трэков?

241396


С помощью этих экшенов довольно удобно получается.

241397
 
Последнее редактирование:
@Diroll, можно кастом сделать. Точнее несколько, по количеству трэков. Много трэков?

Посмотреть вложение 241396

С помощью этих экшенов довольно удобно получается.

Посмотреть вложение 241397
А что это даст? Сейчас объясню подробнее. У меня есть миди клава NI Komplete Kontrol S61 mk2, у неё есть интеграция с рипером, которая даёт отображение микшера на экране, с названиями треков, где можно регулировать громкость/панораму и кнопками выбирать (выделять) треки и это очень удобно, но вот есть одна проблема, если не отжал педаль и переключился на другой трек - педаль так и остаётся звучать. И это не проблема клавиатуры и её интеграции, проблема в рипере.
 

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