ReaScripts (скрипты для Reaper) - обсуждение (2 онлайн)

Andernik

Active Member
7 Апр 2009
338
207
43
Если я правильно понял, нужно видеть отображение волны айтема автоматизации?

Рипер отображает волну, через свой Media Explorer. Где отображается волна аудио файла, там же, и волну автоматизации показывает.
Очень удобно смотреть пресеты.
Это как это? Можно скриншот пожалуйста?
 

ma3lstorm

New Member
2 Янв 2012
12
7
3
Всем привет! Возникла идея —

Во время создания аранжа или сведения возникает необходимость в gain staging. Внутренний перфекционист сильно не любит выкручивать фейдеры громкости TCP\MCP. Дабы обойти сие действие — кидаю Volume Adjustment на дорожку через хоткей. После этого могу влиять на балансы и громкости минуя\оставляя это под автоматизацию. Так сложилось. НО!

Придумал такую схему

1. Кидаю звук на дорожку — естественно он громкий
192896
2. Начинаю двигать фейдер до приемлемого уровня
192897
3. Выделяю дорожку — нажимаю на хоткей (скрипт) и магическим образом громкость её в TCP возвращается в 0, подгружается наш Volume Adjustment в значении -12. ИЛИ! Если он уже был — обновляет данные в зависимости от прошлой громкости (было +6 минусуем 12 получаем -6)
192898

Плагины вроде GainMatch, AB_LM, какие то решения на базе JS, не прижились. А ещё, они вроде как не работают адекватно на миди дорожках с сэмплерами, синтезаторами. Ну и ресурс. Да и не их это функция. На мастер можно, но это уже оффтоп.

А вот мой реальный сценарий:

Я делаю аранжировку или микс, играю балансы, экспериментирую, кручу фейдеры. В определенный момент — начинаю выстраивать с фундамента, и иду своей цепочкой. Крутанул, отстроил — нажал хоткей. Дорожка в ноль, глазу приятно от своеобразной метки. Чуть убрал громкость на шине, нажал хоткей, ноль. Зато потом +- 2 децибела и микс по сути готов.

Ищу единомышленников. Может есть тут кто, кто разделяет мои подход? Или есть гораздо простые и очевидные способы и их решения?

Спасибо за внимание
 
  • Like
Реакции: riko

Archie's

Well-Known Member
24 Окт 2017
1.936
1.296
113
@ma3lstorm,

PHP:
    local FXNAME = 'utility/volume_pan_sample_accurate_auto';
    local PARAM = 0;
   
   
    -----------------------------------------------------
    local CountSelTrack = reaper.CountSelectedTracks(0);
    if CountSelTrack > 0 then;
        ----
        reaper.PreventUIRefresh(1);
        reaper.Undo_BeginBlock();
        ----
        for i = 1,CountSelTrack do;
            local SelTrack = reaper.GetSelectedTrack(0,i-1);
            local FX = reaper.TrackFX_AddByName(SelTrack,FXNAME,false,1);
            if FX > -1 then;
                local vol = reaper.GetMediaTrackInfo_Value(SelTrack,'D_VOL');
                local DB = 20*math.log(vol,10);
                local retval,minval,maxval = reaper.TrackFX_GetParam(SelTrack,FX,PARAM);
                local newVal = retval+DB;
                reaper.TrackFX_SetParam(SelTrack,FX,PARAM,newVal);
                reaper.SetMediaTrackInfo_Value(SelTrack,'D_VOL',1);
            end;
        end;
        ----
        reaper.Undo_EndBlock("Set vol",-1);
        reaper.PreventUIRefresh(-1);
        ----
    else;
        reaper.defer(function()end);
    end;
 
Последнее редактирование:

Archie's

Well-Known Member
24 Окт 2017
1.936
1.296
113
В случае повторного изменения громкости фейдера загружается новая инстанция плагина. Можно ли сделать, чтобы данные обновлялись в предыдущем? Спасибо
В смысле ? Код так и написан что если плагин уже существует, то обновить данные в нем и второй он не добавляет.
У тебя не так разве?

111.gif
 
Последнее редактирование:
  • Like
Реакции: ma3lstorm

Archie's

Well-Known Member
24 Окт 2017
1.936
1.296
113
@ma3lstorm,
Не знаю почему у тебя так, этого не должно происходить.
Такое ощущение что у тебя плагин добавляется и переименовывается.
Попробуй имя переписать.

111.gif
 
  • Like
  • Love
Реакции: riko и ma3lstorm

ma3lstorm

New Member
2 Янв 2012
12
7
3
@Archie's

Спасибо большое! Это облегчит мне жизнь! Заработало после удаления "utility/" в названии FX name.

Вопрос на засыпку — можно ли сменить имя инстанции для эстетики? Я попробовал сменить названия js через блокнот на Gain Stage. Потом взял это название и скопировал в FX name. Не работает
 

Lucik530

Member
21 Ноя 2014
31
13
8
ЯНАО
В смысле ? Код так и написан что если плагин уже существует, то обновить данные в нем и второй он не добавляет.
У тебя не так разве?

А как сделать чтобы окно c плагином не открывалось постоянно, а работало в фоне?
 

Archie's

Well-Known Member
24 Окт 2017
1.936
1.296
113
А как сделать чтобы окно c плагином не открывалось постоянно, а работало в фоне?
JavaScript:
    local FXNAME = 'utility/volume_pan_sample_accurate_auto';
    local PARAM = 0;
   
    
    
    
    
    --[-------------------------------------------------------------
    local fxfloat = reaper.SNM_GetIntConfigVar('fxfloat_focus',0);
    if fxfloat&4 == 4 then;
        local fxfloat2 = fxfloat&~(fxfloat&4);
        reaper.SNM_SetIntConfigVar('fxfloat_focus',fxfloat2);
        reaper.defer(function()reaper.SNM_SetIntConfigVar('fxfloat_focus',fxfloat)end);     
    end;
    --]]-------------------------------------------------------------
    local CountSelTrack = reaper.CountSelectedTracks(0);
    if CountSelTrack > 0 then;
        ----
        reaper.PreventUIRefresh(1);
        reaper.Undo_BeginBlock();
        ----
        for i = 1,CountSelTrack do;
            local SelTrack = reaper.GetSelectedTrack(0,i-1);
            local vol = reaper.GetMediaTrackInfo_Value(SelTrack,'D_VOL');
            if vol ~= 1 then
                local FX = reaper.TrackFX_AddByName(SelTrack,FXNAME,false,1);
                if FX > -1 then;
                    local DB = 20*math.log(vol,10);
                    local retval,minval,maxval = reaper.TrackFX_GetParam(SelTrack,FX,PARAM);
                    local newVal = retval+DB;
                    reaper.TrackFX_SetParam(SelTrack,FX,PARAM,newVal);
                    reaper.SetMediaTrackInfo_Value(SelTrack,'D_VOL',1);
                    
                    ---
                    newVal = tonumber(string.format("%.1f",newVal))
                    xpos,ypos = reaper.GetMousePosition()
                    reaper.TrackCtl_SetToolTip('Volume\n'..newVal,xpos+10,ypos-25,false)
                    ---
                    
                end;
            end;
        end;
        ----
        reaper.Undo_EndBlock("Set vol",-1);
        reaper.PreventUIRefresh(-1);
        ----
    else;
        reaper.defer(function()end);
    end;
 
  • Like
Реакции: Lucik530 и Darek

Lucik530

Member
21 Ноя 2014
31
13
8
ЯНАО
JavaScript:
    local FXNAME = 'utility/volume_pan_sample_accurate_auto';
    local PARAM = 0;
   
    
    
    
    
    --[-------------------------------------------------------------
    local fxfloat = reaper.SNM_GetIntConfigVar('fxfloat_focus',0);
    if fxfloat&4 == 4 then;
        local fxfloat2 = fxfloat&~(fxfloat&4);
        reaper.SNM_SetIntConfigVar('fxfloat_focus',fxfloat2);
        reaper.defer(function()reaper.SNM_SetIntConfigVar('fxfloat_focus',fxfloat)end);     
    end;
    --]]-------------------------------------------------------------
    local CountSelTrack = reaper.CountSelectedTracks(0);
    if CountSelTrack > 0 then;
        ----
        reaper.PreventUIRefresh(1);
        reaper.Undo_BeginBlock();
        ----
        for i = 1,CountSelTrack do;
            local SelTrack = reaper.GetSelectedTrack(0,i-1);
            local vol = reaper.GetMediaTrackInfo_Value(SelTrack,'D_VOL');
            if vol ~= 1 then
                local FX = reaper.TrackFX_AddByName(SelTrack,FXNAME,false,1);
                if FX > -1 then;
                    local DB = 20*math.log(vol,10);
                    local retval,minval,maxval = reaper.TrackFX_GetParam(SelTrack,FX,PARAM);
                    local newVal = retval+DB;
                    reaper.TrackFX_SetParam(SelTrack,FX,PARAM,newVal);
                    reaper.SetMediaTrackInfo_Value(SelTrack,'D_VOL',1);
                    
                    ---
                    newVal = tonumber(string.format("%.1f",newVal))
                    xpos,ypos = reaper.GetMousePosition()
                    reaper.TrackCtl_SetToolTip('Volume\n'..newVal,xpos+10,ypos-25,false)
                    ---
                    
                end;
            end;
        end;
        ----
        reaper.Undo_EndBlock("Set vol",-1);
        reaper.PreventUIRefresh(-1);
        ----
    else;
        reaper.defer(function()end);
    end;
Спасибо)
 
  • Like
Реакции: Archie's

nazarol-jk35

старый лабух не промажет.
5 Июл 2008
713
236
43
63
Budapest
Мужики, а был ли такой скрипт ?
Мутирование трека между активных айтемов?
Выделил все айтемы на треке, нажал кнёпочку и все замутировалось ,как на гифке...
Вроде что-то мелькало, но мне показалось ненужным,, В Экщон в поисковике все варианты перепробовал....
 

Вложения

PianoIst

Well-Known Member
19 Май 2010
4.090
4.140
113
29
Kirchberg, kreis Zwickau
soundcloud.com

Ну вот, «ядро» добил, и даже кое-какой обвес)
Правда, пока понятия не имею, сколько там багов, вон, на записи парочку пришлось быстренько пофиксить. Но по крайней мере, уже можно пытаться делать что-то полезное)

Но это даже пока не альфа, тут ни доков, ни установки, ничего) Боюсь, добивать буду уже неспешно, сейчас мне и этого хватит.

Вообще праздники прошли «плодотворно»))
18577428_457242580.jpg
 

Mr_Tsonts

Well-Known Member
18 Апр 2019
1.656
1.341
113
56
Киев
Доброго дня всем. Нашёл интересный скрипт для себя. Script: ausbaxter_Render item columns.lua. Не знаю, почему я его раньше не видел. Работает как раз как мне надо, могу сэкономить кучу времени и движений. Но странно ведёт себя в мультитрековых темплейтах. В случаях установки рендера через родительский трек папку на выходе получаю ноль. Установить рендер через аудио трек - нет возможности, пробовал в этом случае создать шину - не работает. Только в случае, если внутри уже готовой папки подчинить миди трек его аудио треку и установить выходом этот аудио трек как папку - получается всё как надо, но при этом нет смысла пользоваться этим скриптом. Тем более, если в темплейте на один миди трек может оказаться несколько аудио треков. Собственно, мультик прилагаю.
Render item columns.gif

Последнее появление автора скрипта на форуме Кокоса датировано 2019ым годом. Предчувствую, что писать ему бесполезно. Никаких тем по этому скрипту тоже там не нашёл.
Мне кажется, что в коде можно кое-что исправить, но что, пока не могу понять. Ведь, по сути, на треке папке у меня есть аудио сигнал, и установка рендера через неё должна работать. Возможно, что-то не так с установками солирования и мьютирования треков в процессе работы скрипта. Пока не могу найти. Может, кто-нибудь поможет разобраться?
Сам скрипт есть в ReaPack.
 
Последнее редактирование:

Mr_Tsonts

Well-Known Member
18 Апр 2019
1.656
1.341
113
56
Киев
@AlexLazer, не, я так пробовал. Засунуть одно трековый, типа Спайра в папку - всё будет работать, вот в темплейте типа контакта или омнисферы, как у меня, когда весь темплейт в папке - не хочет. А дрянь в конце, потому что стоит tail по умолчанию в преференсах.
 

Mr_Tsonts

Well-Known Member
18 Апр 2019
1.656
1.341
113
56
Киев
Сделал вот так:

Render item columns_2.gif


и он, зараза, заработал как надо. Но я сегодня не выспался...))))))):Dle32:
 
Последнее редактирование:

Mr_Tsonts

Well-Known Member
18 Апр 2019
1.656
1.341
113
56
Киев
Всё таки 2 лучше всего, если кому интересно. При 0 хватает в рендер куски с других айтемов. Но остаётся солирование некоторых треков, добавил себе в скрипт унсоло всех треков. но это совсем необязательно.
 

X-Tropic

Неординарная личность
25 Июл 2007
489
234
43
37
Евпатория
А встречал ли кто скрипт, который показывает UI плагина посыла через контекстное меню сенда выбраного канала?

По идее логика не сложна: контекстное меню под курсором мыши, затем проследить путь до дорожки сенда и открыть 1 slot.
Форум кокоса перерыл и ничего подобного отдельно не нашел, есть только в HeDa Track Inspector.

Нашел только скрипт, который открывает все UI сендов которые задействованы на канале, но это не удобно и загромождает экран окнами лишних плагинов.
 
Последнее редактирование:

X-Tropic

Неординарная личность
25 Июл 2007
489
234
43
37
Евпатория
Помогите пожалуйста отредактировать скрипт. Изначально я его нашел на этом форуме, но мне нужен чуть другой функционал. Мне не хватает знаний чтобы переделать его под себя.

Изначально скрипт убирает тайм селекшн и закрывает миди эдитор. биндится на клавишу ESC.
В скрипте указаны вроде бы как Floating Windows. Но мне нужно, чтобы закрывался миди эдитор, который в доке.

Поэтому логика работы должна быть такой:

Если открыт эдитор = закрыть его.
Если эдитор закрыт = убрать тайм селекшн

то есть через if/else должно работать. Если миди-эдитор закрыт, то штатно убираем тайм селекшн...
 

Вложения

X-Tropic

Неординарная личность
25 Июл 2007
489
234
43
37
Евпатория
Получилось, благодаря разбору скрипта от Арчи. Моя ошибка была в том, что я при выполнении скрипта забывал сохранить внесенные изменения и поэтому ничего не работало.

Код:
    local MidiEditor = reaper.MIDIEditor_GetActive()
    sel_start, sel_end = reaper.GetSet_LoopTimeRange(false, false, 0, 0, false)
    time_selection_exists = sel_start ~= sel_end
    
    if MidiEditor then
      reaper.MIDIEditor_OnCommand( MidiEditor, 40794 )--View: Toggle show MIDI editor windows
    
      reaper.Undo_BeginBlock()
      reaper.Undo_EndBlock( "Close Midi Editor", 1 )
    else
     reaper.Main_OnCommand(40020, 0); -- remove selection
    end
 
  • Like
Реакции: Mr_Tsonts

Znqn

Active Member
19 Окт 2017
168
26
28
36
reaper не удалось найти совместимую версию языка phyhon
reaper, phyhon последние версии, Windows 10 LTSC, последние обновления 2018 года.
В настойках рипер пытался указать каталог, файл dll в ручную.
204935
 

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