Добавление КОНКРЕТНЫХ аудиоклипов через горячие клавиши

  • Автор темы Автор темы kapetz
  • Дата начала Дата начала

kapetz

aka sec0ndskin
7 Дек 2004
1.467
589
113
42
M/S COW
www.sec0ndskin.com
Друзья-коллеги, всем привет!
Надеюсь, ваш каранти самоизоляция протекает продуктивно:)
Вопрос следующий: можно ли назначить добавление определенного набора семплов на горячие клавиши? Простой пример: часто для озвучивания некоего видеоряда требуется один и тот же звуковой эффект, который хочется ставить (например) с цифровой клавиатуры, где никакие команды не назначены по умолчанию.
Возможно ли?

Заранее извиняюсь, если (ну вдруг!) тема такая была, я как только не искал в сети, находится все не то.
Спасибо!
 
Ну, судя по ветке - в Рипере :)
Семплеры не устраивают, потому что нужно ДОБАВЛЯТЬ аудиоклипы на таймлайн (под видеоряд, напомню, там много мелких деталей, которые должны быть озвучены аудио). Семплером неудобно, да и с миди неохота возиться.
 
@kapetz, В первой строке вписываешь путь к файлу и назначаешь этот скрипт на нужную тебе кнопку.

Редактировано:
PHP:
    local Path = [[C:\Users\User\bla\bla\File.wav]];
 
 
 
    -------------------------------------------------------
    local function no_undo()reaper.defer(function()end)end;
    -------------------------------------------------------
    
    
    
    local file = reaper.file_exists(Path);
    if not file then no_undo() return end;
    
    local CountSelTracks = reaper.CountSelectedTracks(0);
    if CountSelTracks == 0 then no_undo() return end;
    
    local Cur = reaper.GetCursorPosition();
    
    reaper.PreventUIRefresh(1);
    
    for i = 1,CountSelTracks do;
        
        local track = reaper.GetSelectedTrack(0,i-1);  
        local item = reaper.CreateNewMIDIItemInProj(track,Cur,1,false);
        local take = reaper.GetActiveTake(item);
        reaper.BR_SetTakeSourceFromFile(take,Path,true);
        local source = reaper.GetMediaItemTake_Source(take);
        local retval,lengthIsQN = reaper.GetMediaSourceLength(source);
        if lengthIsQN then;
            retval = reaper.TimeMap_QNToTime(retval)
        end;
        
        reaper.SetMediaItemInfo_Value(item,'D_LENGTH',retval);  
    end;  
    
    reaper.PreventUIRefresh(-1);
    no_undo();
 
Последнее редактирование:
@kapetz, В первой строке вписываешь путь к файлу и назначаешь этот скрипт на нужную тебе кнопку.

PHP:
    local Path = [[C:\Users\User\bla\bla\File.wav]];
 
 
 
    -------------------------------------------------------
    local function no_undo()reaper.defer(function()end)end;
    -------------------------------------------------------
 
 
 
    local file = reaper.file_exists(Path);
    if not file then no_undo() return end;
 
    local CountSelTracks = reaper.CountSelectedTracks(0);
    if CountSelTracks == 0 then no_undo() return end;
 
    local Cur = reaper.GetCursorPosition();
 
    reaper.PreventUIRefresh(1);
 
    for i = 1,CountSelTracks do;
     
        local track = reaper.GetSelectedTrack(0,i-1);
        local item = reaper.CreateNewMIDIItemInProj(track,Cur,1,false);
        local take = reaper.GetActiveTake(item);
        reaper.BR_SetTakeSourceFromFile(take,Path,true);
        local source = reaper.GetMediaItemTake_Source(take);
        local retval,lengthIsQN = reaper.GetMediaSourceLength(source);
        reaper.SetMediaItemInfo_Value(item,'D_LENGTH',retval);
    end;
 
    reaper.PreventUIRefresh(-1);
    no_undo();
КРУТОТЕНЬ!!!! Спасибо!!!
 
так, апдейт: сам скрипт РАБОТАЕТ (круто!спасибо еще раз!!), но только я не понял,как его в кастом экшн превратить (если это надо - простити,я нуб немного в этой части)
Если отдельно сознаешь новый lua, туда переносишь все данные, и жмакаешь RUN - волшебство происходит.
Как к клавише привязать, чет не понял я((

UPD ААААА!! Я поняяяялл))))) надо было окно эдитора lua закрыть, и все заработало..пока оно открыто - не срабатывали быстрые кнопки.

УРРЯ!
 
а я так понял, что для КАЖДОГО звука надо будет сделать ОТДЕЛЬНЫЙ скрипт, и потом его привязать к клавише,так?
 
и еще: можно ли как-то в UNDO чтобы прописывались телодвижения? как я понял, там намеренно стоит no undo (я хз как ваще все устроено - я такое прочитал в строчках кода:)))
А то если ткнул не то, жмешь анду - и вообще чет отменяется ДО всего этого, совершеннейшая путаница 8-)
буду премного признателен!
 
а я так понял, что для КАЖДОГО звука надо будет сделать ОТДЕЛЬНЫЙ скрипт, и потом его привязать к клавише,так?
Да, совершенно верно, ты же хочешь для каждой клавиши свой семпл, так вот делаешь для каждой клавиши копию скрипта и назначаешь его на нужную клавишу.
и еще: можно ли как-то в UNDO чтобы прописывались телодвижения?
буду премного признателен!
JavaScript:
    local Path = [[C:\Users\User\bla\bla\File.wav]];
 
 
    local UNDO = 'текст отмены '..Path;
    
    
    -------------------------------------------------------
    local function no_undo()reaper.defer(function()end)end;
    -------------------------------------------------------
    
    
    
    local file = reaper.file_exists(Path);
    if not file then no_undo() return end;
    
    local CountSelTracks = reaper.CountSelectedTracks(0);
    if CountSelTracks == 0 then no_undo() return end;
    
    local Cur = reaper.GetCursorPosition();
    
    local CurX = 0;
    
    reaper.Undo_BeginBlock();
    reaper.PreventUIRefresh(1);
    
    for i = 1,CountSelTracks do;
        
        local track = reaper.GetSelectedTrack(0,i-1);  
        local item = reaper.CreateNewMIDIItemInProj(track,Cur,1,false);
        local take = reaper.GetActiveTake(item);
        reaper.BR_SetTakeSourceFromFile(take,Path,true);
        local source = reaper.GetMediaItemTake_Source(take);
        local retval,lengthIsQN = reaper.GetMediaSourceLength(source);
        if lengthIsQN then;
            retval = reaper.TimeMap_QNToTime(retval)
        end;
        
        reaper.SetMediaItemInfo_Value(item,'D_LENGTH',retval);
        CurX = math.max(CurX,retval+Cur);  
    end;  
    
    reaper.SetEditCurPos(CurX,true,false);
    
    reaper.PreventUIRefresh(-1);
    reaper.Undo_EndBlock(UNDO,-1);
 
если правильно понял, нужно это?
устанавливаете sws, ищите вкладку extensions - resources. выбираете media file вкладку, добавляете путь к семплу n количество и в экшенах назначаете клавиши на каждый слот, добавляет семплы куда надо
179571
 
Последнее редактирование:
если еще дальше пойти, то можно менюху замутить с семплами, обозначить там название семплов и через contextual toolbar добавлять через меню мышкой, двойным кликом по мышке на линии трека выводится меню и выбираете семпл. этот способ для того, чтоб не запутаться какие семплы где находятся в большом количестве.
111.gif
 
Последнее редактирование:
  • Love
  • Like
Реакции: kapetz и AlexLazer
@elektrozz, Или сделать кнопку со списком звучков с помощью Script: Archie_Var; Popup menu single-level.lua )
С кнопками тулбара по дабл клику будет конечно удобней, наверное. Всем разное подойдет.
 

Вложения

  • 123.gif
    123.gif
    87,9 KB · Просмотры: 108
Последнее редактирование:
@AlexLazer, тоже вариант) про скрипт незнал, только что заюзал. спасибо вам и Арчи. у вас там на кике фейн ин) давно вырубил его)
в итоге я все равно ищу все семплы и достаю из медиа эксплорер, удобней этого варианта нет)
 
Последнее редактирование:
@elektrozz, Согласен про эксплорер. А фейды включены, потому что в основном работаю с аудио рекламой (голос, фрагменты музыки), мне так удобней. А гифку просто для примера сделал)
 
друзья, я рад, что идея пошла в народ)))
спасибо всем, думаю, тут как минимум два решения рабочих уже есть!
Опробовал, подключив NI Maschine, и используя пэды как кейсвитчи - прикооольно)) осталось кастом собрать на 16 слотов (что вполне достаточно для моих целей) - и погнали!:)
 

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