Reaper для "Чайников". Любые вопросы.

@burn255, у Слэйта в подписке есть проекты к курсам, в т.ч. под рипер. Ещё Audio Legends есть
 
Ох.... А вас что сподвигло вместо ответа вот это вот всё писать? Видимо тоже с ответами проблема?

Так я и не позиционирую себя как сколько-нибудь сведущего по вопросам, касающимся Рипера. Такой же чайник, если не более.)
.. Всё, всё, ушел в поиск..) Всем добра.
 
Последнее редактирование:
А еще полезнее этой темы была бы тема где целые проекты выкладывали бы, в разных жанрах.
Вот это дело.
Кстати никто случаем не знает, может на забугорных сайтах где -то есть. Это просто кладезь информации. Целый готовый проект.
АПСОЛЮТНО бесполезная штука чужие проекты. Чтоб была от них польза, нужно ещё и чужие мозги себе в башку заиметь.
 
А человека, который с пол оборота ЕЩЕ И БОЛЬШИМИ буквами требует - «ДАЙТЕ ОТВЕТ, мне некогда его самому искать, ну что вам жалко?» -
в общем то хочется его сразу отправить в тот самый Поиск, о котором он, обидевшись, и подумал.
Я не очень понимаю что вы имеете в виду. Вы приводите в пример какую-то воображаемую ситуацию и критикуете воображаемую позицию какого-то собирательного образа, у которого вагон времени, чтобы ждать пока ему ответят на то, что он мог моментально узнать из поиска. Да, глупая позиция, глупый образ (если он вовсе существует). Но я то-тут при чем?
 
  • Like
Реакции: Igor Leontyev
При некоторых манипуляциях с midi_item-ом (транспонирование, склеивание) CC envelop принимает значение square, хотя был Linear. И по умолчанию в Midi Editor был выставлен, как Linear. Как победить?
У себя я проверил и заметил, что на самом деле он оставляет Linear, просто первую точку рисует как Square. Если подвинуть точку или поставить новую, будет Linear. МБ и баг
 
Но я то-тут при чем?
Я не знаю при чём тут вы. Тут уж сами разберитесь.
Но ответа на свой вопрос вы так и не получили, а значит проблема была не в отсутствии ветки для чайников.
 
  • Like
Реакции: Archie's и @Michael
микрогайд по поиску на форуме:
1) в адресной строке браузера натыкиваем на клаве англыйскими буквами
google.ru
2) в строке поиска гугля пишем такую молитву:
site:rmmedia.ru "вапрос: хАчу замутить в крутом Reaper блэкджека с бабами как у кубоведов"
3) тыкаем указательным пальцем клавишу "enter", и пытаемся читать - шо оно такое тута есть...
4) Если нечитается - могу посоветовать букварь посмотреть перед скуриванием...

Cheers guis, happy finding)))
 
  • Like
Реакции: Лукьян и Archie's
У себя я проверил и заметил, что на самом деле он оставляет Linear, просто первую точку рисует как Square. Если подвинуть точку или поставить новую, будет Linear. МБ и баг
Иначе получается.
До:
179441


SWS/FNG: Transpose selected MIDI items down a semitone
После:
179444
 
Иначе получается.
До:
Посмотреть вложение 179441

SWS/FNG: Transpose selected MIDI items down a semitone
После:
Посмотреть вложение 179444
Ну SWS это все таки расширение, поэтому надо писать разрабам SWS
Я использую такой скрипт, транспортит и аудио и миди (все что выделено). Value вводится в окошке
А если без скриптов, я полагаю что траспонирование делается внутри айтема (в миди редакторе) выборочно, как в большинстве DAW :)
P.S По коду я даже узнаю, что сначала писал скрипт Archie, но я что-то точно поменял, т.к. сохранил у себя под новым именем.
P.P.S. Скорее всего изначально скрипт весь проект транспортил. Оригинал с реапака Move all notes in all midi items in semitones(User Input)


PHP:
    -----------------------------------------------------------------------------
    local function No_Undo()end; local function no_undo()reaper.defer(No_Undo)end
    -----------------------------------------------------------------------------



    local CountItem = reaper.CountSelectedMediaItems(0);
    if CountItem == 0 then no_undo() return end;


    local Midi;
    for i = 1,CountItem do;
        local item = reaper.GetSelectedMediaItem(0,i-1);
        local CountTake = reaper.CountTakes(item);
        for i2 = 1,CountTake do;
            local take = reaper.GetMediaItemTake(item,i2-1);
            local midi = reaper.TakeIsMIDI(take);
            if midi then;
               Midi = "Active"
               break
            end
        end
    end

    ::START::
    local ret, val = reaper.GetUserInputs("Transpose selected items...",1,
                                  "Set value...", 0);
    if ret then
    val = tonumber(val);                   
    if not ret or val == 0 or not val then reaper.MB('No value. Please enter a number', 'Error', 0) goto START end


    local retval   =  {};
    local sel      =  {};
    local mute     =  {};
    local startppq =  {};
    local endppq   =  {};
    local chan     =  {};
    local pitch    =  {};
    local vel      =  {};
    local semitone = val;
    local Undo_BegBlock ;


    for i = 1,CountItem do;
        reaper.PreventUIRefresh(1)
        local item = reaper.GetSelectedMediaItem(0,i-1);
        local CountTake = reaper.CountTakes(item);
        for i2 = 1,CountTake do;
            local take = reaper.GetMediaItemTake(item,i2-1);
            local midi = reaper.TakeIsMIDI(take);
            if midi == true then;
                local ret,notecnt,ccevtcnt,textsyxevtcnt = reaper.MIDI_CountEvts(take);
                for i3 = notecnt-1,0,-1 do;
                   retval  [i3],
                   sel     [i3],
                   mute    [i3],
                   startppq[i3],
                   endppq  [i3],
                   chan    [i3],
                   pitch   [i3],
                   vel     [i3] = reaper.MIDI_GetNote(take,i3);
                   reaper.MIDI_DeleteNote(take,i3);
                end;
                for i4 = notecnt-1,0,-1 do;
                    reaper.MIDI_InsertNote(take,
                                           sel     [i4],
                                           mute    [i4],
                                           startppq[i4],
                                           endppq  [i4],
                                           chan    [i4],
                                           pitch   [i4]+semitone,
                                           vel     [i4],
                                                  true);
                end;
                reaper.MIDI_Sort(take);
                Undo_BegBlock = "Active";
            elseif midi == false then;
              local dafault_pitch = reaper.GetMediaItemTakeInfo_Value(take, 'D_PITCH')
              reaper.SetMediaItemTakeInfo_Value(take, 'D_PITCH', dafault_pitch+val)
            end;
        end
        reaper.PreventUIRefresh(-1)
    end;
    else return end


    reaper.UpdateArrange();

    if Undo_BegBlock == "Active" then;
        reaper.Undo_BeginBlock();
        reaper.Undo_EndBlock("Transpose selected items",-1);
    else;
        no_undo();
    end;
 
Последнее редактирование:
  • Like
Реакции: Astor-Piazzolla
@borisuperful, это же просто праздник какой-то!:Dle21:
179498


Я только чуть урезал опциональность, чтоб поменьше нажимать. (мне чаще просто на полтона надо)
PHP:
    -----------------------------------------------------------------------------
    local function No_Undo()end; local function no_undo()reaper.defer(No_Undo)end
    -----------------------------------------------------------------------------



    local CountItem = reaper.CountSelectedMediaItems(0);
    if CountItem == 0 then no_undo() return end;


    local Midi;
    for i = 1,CountItem do;
        local item = reaper.GetSelectedMediaItem(0,i-1);
        local CountTake = reaper.CountTakes(item);
        for i2 = 1,CountTake do;
            local take = reaper.GetMediaItemTake(item,i2-1);
            local midi = reaper.TakeIsMIDI(take);
            if midi then;
               Midi = "Active"
               break
            end
        end
    end
--[[
    ::START::
    local ret, val = reaper.GetUserInputs("Transpose selected items...",1,
                                  "Set value...", 0);
    if ret then
    val = tonumber(val);                  
    if not ret or val == 0 or not val then reaper.MB('No value. Please enter a number', 'Error', 0) goto START end
--]]

    local retval   =  {};
    local sel      =  {};
    local mute     =  {};
    local startppq =  {};
    local endppq   =  {};
    local chan     =  {};
    local pitch    =  {};
    local vel      =  {};
    local semitone = 1;
    local Undo_BegBlock ;


    for i = 1,CountItem do;
        reaper.PreventUIRefresh(1)
        local item = reaper.GetSelectedMediaItem(0,i-1);
        local CountTake = reaper.CountTakes(item);
        for i2 = 1,CountTake do;
            local take = reaper.GetMediaItemTake(item,i2-1);
            local midi = reaper.TakeIsMIDI(take);
            if midi == true then;
                local ret,notecnt,ccevtcnt,textsyxevtcnt = reaper.MIDI_CountEvts(take);
                for i3 = notecnt-1,0,-1 do;
                   retval  [i3],
                   sel     [i3],
                   mute    [i3],
                   startppq[i3],
                   endppq  [i3],
                   chan    [i3],
                   pitch   [i3],
                   vel     [i3] = reaper.MIDI_GetNote(take,i3);
                   reaper.MIDI_DeleteNote(take,i3);
                end;
                for i4 = notecnt-1,0,-1 do;
                    reaper.MIDI_InsertNote(take,
                                           sel     [i4],
                                           mute    [i4],
                                           startppq[i4],
                                           endppq  [i4],
                                           chan    [i4],
                                           pitch   [i4]-semitone,
                                           vel     [i4],
                                                  true);
                end;
                reaper.MIDI_Sort(take);
                Undo_BegBlock = "Active";
            elseif midi == false then;
              local dafault_pitch = reaper.GetMediaItemTakeInfo_Value(take, 'D_PITCH')
              reaper.SetMediaItemTakeInfo_Value(take, 'D_PITCH', dafault_pitch+val)
            end;
        end
        reaper.PreventUIRefresh(-1)
    end;
   -- else return end


    reaper.UpdateArrange();

    if Undo_BegBlock == "Active" then;
        reaper.Undo_BeginBlock();
        reaper.Undo_EndBlock("Transpose selected items",-1);
    else;
        no_undo();
    end;
 
Последнее редактирование:
PHP:
    -----------------------------------------------------------------------------
    local function No_Undo()end; local function no_undo()reaper.defer(No_Undo)end
    -----------------------------------------------------------------------------



    local CountItem = reaper.CountSelectedMediaItems(0);
    if CountItem == 0 then no_undo() return end;


    local Midi;
    for i = 1,CountItem do;
        local item = reaper.GetSelectedMediaItem(0,i-1);
        local CountTake = reaper.CountTakes(item);
        for i2 = 1,CountTake do;
            local take = reaper.GetMediaItemTake(item,i2-1);
            local midi = reaper.TakeIsMIDI(take);
            if midi then;
               Midi = "Active"
               break
            end
        end
    end
--[[
    ::START::
    local ret, val = reaper.GetUserInputs("Transpose selected items...",1,
                                  "Set value...", 0);
    if ret then
    val = tonumber(val);                   
    if not ret or val == 0 or not val then reaper.MB('No value. Please enter a number', 'Error', 0) goto START end
--]]

    val = -1;
    local retval   =  {};
    local sel      =  {};
    local mute     =  {};
    local startppq =  {};
    local endppq   =  {};
    local chan     =  {};
    local pitch    =  {};
    local vel      =  {};
    local semitone = val;
    local Undo_BegBlock ;


    for i = 1,CountItem do;
        reaper.PreventUIRefresh(1)
        local item = reaper.GetSelectedMediaItem(0,i-1);
        local CountTake = reaper.CountTakes(item);
        for i2 = 1,CountTake do;
            local take = reaper.GetMediaItemTake(item,i2-1);
            local midi = reaper.TakeIsMIDI(take);
            if midi == true then;
                local ret,notecnt,ccevtcnt,textsyxevtcnt = reaper.MIDI_CountEvts(take);
                for i3 = notecnt-1,0,-1 do;
                   retval  [i3],
                   sel     [i3],
                   mute    [i3],
                   startppq[i3],
                   endppq  [i3],
                   chan    [i3],
                   pitch   [i3],
                   vel     [i3] = reaper.MIDI_GetNote(take,i3);
                   reaper.MIDI_DeleteNote(take,i3);
                end;
                for i4 = notecnt-1,0,-1 do;
                    reaper.MIDI_InsertNote(take,
                                           sel     [i4],
                                           mute    [i4],
                                           startppq[i4],
                                           endppq  [i4],
                                           chan    [i4],
                                           pitch   [i4]+semitone,
                                           vel     [i4],
                                                  true);
                end;
                reaper.MIDI_Sort(take);
                Undo_BegBlock = "Active";
            elseif midi == false then;
              local dafault_pitch = reaper.GetMediaItemTakeInfo_Value(take, 'D_PITCH')
              reaper.SetMediaItemTakeInfo_Value(take, 'D_PITCH', dafault_pitch+val)
            end;
        end
        reaper.PreventUIRefresh(-1)
    end;
   -- else return end


    reaper.UpdateArrange();

    if Undo_BegBlock == "Active" then;
        reaper.Undo_BeginBlock();
        reaper.Undo_EndBlock("Transpose selected items",-1);
    else;
        no_undo();
    end;
 
Народ, очень нужна ваша помощь!

Проблема: миди-клава м-аудио кейстешн, нормально всё подключается работает. Но стоит включить какой-нибудь FX или что-то поделать, то она отваливается и не работает до перезагрузки программы.
При этом, если инпут переключить на виртуальную - всё ок, она не валится.
Дело не во времени, у меня она лежала подключённая и работала.
Даже если отваливается, лампочки все горят.
Внешней аудио-карты нет пока, возможно, с этим как-то связано.

Прям оч нужен фидбек, если у кого-то было подобное, ибо я максимум нуб в этом деле
 
@darkwine, попробуйте портативную новую установку рипера и в ней проверить, сохраняется ли эффект. Всякие "чудеса" бывают.

Внешней аудио-карты нет пока, возможно, с этим как-то связано.

Это вряд ли. Но с драйвером можно поэкспериментировать. Так же возможны проблемы со шнуром или с драйвером шнура и с юсб портами (точнее с контроллерами на материнской плате) бывают проблемы.
 
Или он еще что-то ненужное транспонирует?
Он не показывает транспонирования, только после склеивания (наверно), а тот экшн транспонирует всё на лету и это видно.
 
  • Like
Реакции: Astor-Piazzolla и PianoIst
Есть же shift+0, shift+9
А я искал transpose. Pitch применять к midi для меня было неочевидно.
Да и правда, поведение не совсем желаемое.
А вот этот скриптик - то, что нужно. [1, -1, 12, -12] назначил на хоткеи и красота теперь.
 
как полностью удалить Рипер со всеми концами, удалив все настройки? Хочу поставить с нуля, т.к. какая-то непонятная хрень творится - скрипты не работают, настройки буфера карты не меняются...
 
  • Like
Реакции: AbramoV
@DAZZER, если была обычная(не портативная) установка, то через пуск найти "REAPER (reset configuration to factory defaults)" и настройки сбросятся.
 
  • Like
Реакции: Astor-Piazzolla
Удалил Рипер, удалил его папку в Program Files, удалил папку AppData\Roaming\REAPER. Установил заново и наблюдаю в Диспетчере задач загрузку процессора в 97% при включенном воспроизведении в Рипере. При том, что Рипер показывает 0.5% в окошке заугрузки плагинов. Если повесить бридженный плагин какой-нибудь куда, то может внезапно прыгать до 17%... Звук хрипит, приходиться ставить буфер на 512 сэмплов.
буфер переключает хоть, просто галочку не оставляет на новом положении, она так и висит на минимальных 32, но в проэкте и микшере звуковухи переключает. Очевидно такой визуальный глюк с дровами Lynx. Что делать с такой загрузкой проца? Это началось после того, как установил Озон 9 и TC electronics, хотя в проэкте они не загружены.
 
Подскажите как настроить такой момент. У меня есть проект в рипере называется например - Бум. Я хочу из этого проекта оставить барабаны , все остальное удалить и писать другую песню. Писать хочу так, чтобы снова записанные аудиотреки сохранялись в отдельную папку. И чтобы при очистке через меню (см . картинку) ненужных файлов , они не удалялись из других песен. А только с этого нового проекта. А то,я создал проект, по своей схеме, сижу пишу иногда чищу его, и при очистке у меня удалились аудиофайлы из песни с другого (предыдущего) проекта. И второй вопрос , как при редактировании айтемов (подрезке, подгонке) экран шел за курсором, а сейчас - при обрезке айтема и нажатии плэй, курсор уезжает а экран остается на месте редактипрования ( а нужно на лету редактировать, идет прокрутка экрана вместе с курсором).
Спасибо.
 

Вложения

  • IMG_3108.JPG
    IMG_3108.JPG
    671,4 KB · Просмотры: 197
1) File > Save Proj as , Сохраняешь с новым именем проект, Удаляешь из него все ненужное, затем применяешь "Clean current project directory"
2)
View: Toggle auto-view-scroll during playback​
View: Continuous scrolling during playback​
 
  • Like
Реакции: burn255 и Лукьян
иногда чищу его, и при очистке у меня удалились аудиофайлы из песни с другого (предыдущего) проекта
При пересохранении проекта "Save proj as" не забудь поставить галочки
181227

Потом можешь второй раз пересохранить и выключить copy.
 
  • Like
Реакции: burn255 и Лукьян
@burn255, как вариант, выделяешь все барабанные треки, нажимаешь на одном из них правой кнопкой, выбираешь save tracks as track templates, в появившемся окне ставишь галки

181234



В новом проекте жмёшь правой кнопкой на tcp и выбираешь incert track from template, и выбираешь из списка сохраненный темплэйт.

Этот вариант удобен, если ты собираешься пользоваться этими барабанами не один раз.
 
@burn255, как вариант, выделяешь все барабанные треки, нажимаешь на одном из них правой кнопкой, выбираешь save tracks as track templates, в появившемся окне ставишь галки

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


В новом проекте жмёшь правой кнопкой на tcp и выбираешь incert track from template, и выбираешь из списка сохраненный темплэйт.

Этот вариант удобен, если ты собираешься пользоваться этими барабанами не один раз.
А если один, то просто ещё одну вкладку с проектом открываем и ctrl+c и ctrl+v
 

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