Ну код под спойлером. Куда это все и с чем едят))Что ты не можешь сделать?
Последнее редактирование:
Ну код под спойлером. Куда это все и с чем едят))Что ты не можешь сделать?
Ну код под спойлером. Куда это все и с чем едят))
Item: Implode items across tracks into items on one trackКак объединить несколько миди-айтемов с нескольких дорожек в один айтем на одной? Именно чтобы один айтем получился, а не слои на одном треке.
Они встают слоями, не сливаясь в один айтем.Item: Implode items across tracks into items on one track
Эффекты на миди-айтемах терять, либо применять к миди-событиям. Понимаю, что это сработает только для какого-нибудь арпеджиатора, дилея и динамической обработки велосити нот. Если выделены и миди, и аудио айтемы, ставить слоями. Ведь есть же в Рипере дифференциация миди и аудио айтемов.@drumwizard,
А что если на миди айтемах есть эффекты, то как быть?
А если выделены и миди и аудио айтемы, то как быть?
Эффекты применять к миди-событиям не получится, т.к. миди айтем с эффектами при склейке превратится в аудио. Получится только либо потерять все эффекты, т.е. новый айтем будет без эффектов, либо все эффекты скопировать на новый айтем (но тут как говорится получится каша из эффектов))). Как лучше?Эффекты на миди-айтемах терять, либо применять к миди-событиям.
Слоями на одном треке или создать второй трек под аудио? Или вообще новые треки не создавать?Если выделены и миди, и аудио айтемы, ставить слоями.
Спасибо тебе огромное. Действительно, то что нужно. Только, возможно View: Zoom to content немного по глазам бьет, если минимум нот в сетке.. слишком крупно, непривычно.@BRG, В реапак закинул эти два скрипта.
Archie_MidiEditor; Activate next MIDI item - Select only this item - Set cursor to start items.lua
Archie_MidiEditor; Activate previous MIDI item - Select only this item - Set cursor to start items.lua
--=========================================
local function MODULE(file);
local E,A=pcall(dofile,file);if not(E)then;reaper.ShowConsoleMsg("\n\nError - "..debug.getinfo(1,'S').source:match('.*[/\\](.+)')..'\nMISSING FILE / ОТСУТСТВУЕТ ФАЙЛ!\n'..file:gsub('\\','/'))return;end;
if not A.VersArcFun("2.9.0",file,'')then;A=nil;return;end;return A;
end; local Arc = MODULE((reaper.GetResourcePath()..'/Scripts/Archie-ReaScripts/Functions/Arc_Function_lua.lua'):gsub('\\','/'));
if not Arc then return end;
local ArcFileIni = reaper.GetResourcePath():gsub('\\','/')..'/reaper-Archie.ini';
--=========================================
local CountSelItem = reaper.CountSelectedMediaItems(0);
if CountSelItem == 0 then no_undo() return end;
reaper.PreventUIRefresh(1);
reaper.Undo_BeginBlock();
------------------------
local _,st= Arc.Save_Selected_Items_Slot(1);
local midiItem = {};
local audioItem = {};
local AudioTrack,midiTrack;
for i = 1,#st do;
local take = reaper.GetActiveTake(st[i]);
local midi = reaper.TakeIsMIDI(take);
if midi then;
if not midiTrack then;
if AudioTrack then;
midiTrack = AudioTrack;
else;
midiTrack = reaper.GetMediaItem_Track(st[i]);
end;
----
local numb = reaper.GetMediaTrackInfo_Value(midiTrack,'IP_TRACKNUMBER');
reaper.InsertTrackAtIndex(numb-1,true);
midiTrack = reaper.GetTrack(0,numb-1);
end;
local retval,str = reaper.GetItemStateChunk(st[i],'',false);
---
str = str:gsub('BYPASS%s+%d+%s+%d+','BYPASS 1 1');
---
local nItem = reaper.CreateNewMIDIItemInProj(midiTrack,0,1,false);
reaper.SetItemStateChunk(nItem,str,false);
midiItem[#midiItem+1] = nItem;
else;
if not AudioTrack then;
if midiTrack then;
AudioTrack = midiTrack;
else;
AudioTrack = reaper.GetMediaItem_Track(st[i]);
end;
---
local numb = reaper.GetMediaTrackInfo_Value(AudioTrack,'IP_TRACKNUMBER');
reaper.InsertTrackAtIndex(numb-1,true);
AudioTrack = reaper.GetTrack(0,numb-1);
end;
local retval,str = reaper.GetItemStateChunk(st[i],'',false);
local nItem = reaper.CreateNewMIDIItemInProj(AudioTrack,0,1,false);
reaper.SetItemStateChunk(nItem,str,false);
audioItem[#audioItem+1] = nItem;
end;
end;
--------------------------------
reaper.SelectAllMediaItems(0,0);
--------------------------------
---MIDI----------------
for i = 1,#midiItem do;
reaper.SetMediaItemInfo_Value(midiItem[i],'B_UISEL',1);
end;
reaper.Main_OnCommand(42353,0);--Items: Set all take FX offline for selected media items
reaper.Main_OnCommand(40257,0);--Item: Glue items, ignoring time selection, including leading fade-in and trailing fade-out
local NewMidiItem = reaper.GetSelectedMediaItem(0,0);
-----------------------
--------------------------------
reaper.SelectAllMediaItems(0,0);
--------------------------------
---AUDIO---------------
for i = 1,#audioItem do;
reaper.SetMediaItemInfo_Value(audioItem[i],'B_UISEL',1);
end;
reaper.Main_OnCommand(40257,0);--Item: Glue items, ignoring time selection, including leading fade-in and trailing fade-out
local NewAudioItem = reaper.GetSelectedMediaItem(0,0);
-----------------------
reaper.SetMediaItemInfo_Value(NewMidiItem,'B_UISEL',1);
reaper.SetMediaItemInfo_Value(NewAudioItem,'B_UISEL',1);
reaper.Undo_EndBlock("---",-1);
reaper.PreventUIRefresh(-1);
Пожалуйста !Спасибо тебе огромное.
Интересно , как он может по глазам бить, если он в скрипте отключен ?Только, возможно View: Zoom to content немного по глазам бьет, если минимум нот в сетке.. слишком крупно, непривычно.
Офигеть! Но как, Холмс?!..@drumwizard, Оно ?
undefined
Ага, у меня тоже ошибка,только чуть другая.
Я в разных проектах проверил,даже без роутинга.Скрипт то работает,только сначало выбивает это окно.@drumwizard, @Red Bull, У меня норм. Специально только что проверил
Как то так...твоя ошибка не знаю из за чего, завтра посмотрю, сейчас не за компом. Сделай гиф на новом проекте, что ты делаешь, что бы я смог повторить твою ошибку.
В паре с аудио, корректно захватывает миди только с одного трека,если выделить еще (миди) на двух и более треках,то половина нот сбоит,причем в каком то своем порядке.@Red Bull, Исправил. И закинул скрипт в репозиторий.
Archie_Item; Glue selected items to separate track - Midi in midi - Audio in audio.lua
Открывал,а что должно быть?Что на картинке,то и внутри.@Red Bull, А попробуй открыть созданный айтем.
должно быть, что в миди редакторе все ноты присутствуют.а что должно быть?
Да это даже в пустом проекте.Не в мидяшках дело.должно быть, что в миди редакторе все ноты присутствуют.
Я не могу это повторить, скинь свои мидяшки, я попробую на них проверить.
Как я выше уже написал, что тут дело скорее всего, вовсе не в скрипте, а в включенном экшене^ , так что пойми как он работает и поймешь что происходит и куда деваются ноты.А как скрипт поймет какую ноту мне нужно оставить в данный момент