Если нужен toggle, то вот скрипт zoom track.lua:минимизировать все дорожки в проекте (из изображения на первом скрине - сделать второй и обратно).
h1 = 36 -- pixels
h2 = 420
tr = reaper.GetSelectedTrack( 0, 0 )
if tr then
h0 = reaper.GetMediaTrackInfo_Value( tr, 'I_HEIGHTOVERRIDE' )
if math.abs(h0 - h1) >= math.abs(h0-h2) then h_out = h1 else h_out = h2 end
reaper.SetMediaTrackInfo_Value( tr, 'I_HEIGHTOVERRIDE', h_out)
reaper.TrackList_AdjustWindows( false )
reaper.UpdateArrange()
end
Ну Ё-маё. Оказывается, в Action надо выбирать Section (рука-лицо).В Actions выбираешь MIDIEditor
Это в принципе с самого начала изучения рипера уже узнаешь Добро пожаловать в скриптинг пиано роллаВот так открытие ))
Да я как-бы не новичок в Рипере. Но я не сам в нем настраиваю, а пользуюсь готовыми решениями. Там подсмотрю, тут импортирую. А потом, начинаю потихоньку затачивать под себя. Вот например зуммингом пользовался с нажанием ALT, а теперь хочу убрать эту кнопку.Это в принципе с самого начала изучения рипера уже узнаешь Добро пожаловать в скриптинг пиано ролла
Подскажите, есть ли в рипере возможность привязки тейка ни к сетке, а к позиции другого тейка на другом треке? Вот например, нужно чтобы два тейка заканчивались одновременно, я знаю только способ подогнать на глазок.
@Kokarev Maxim ну у меня эта галочка и так по дефолту стоит. Что с ней что без нее разницы никакой.
по правой границе
-- @description Trim items edges to nearest measure start
-- @version 1.0
-- @author me2beats
-- @changelog
-- + init
local r = reaper; local function nothing() end; local function bla() r.defer(nothing) end
local items = r.CountSelectedMediaItems()
local items_t = {}
local min = math.huge
for i = 0,items-1 do
local item = r.GetSelectedMediaItem(0,i)
local it_start = r.GetMediaItemInfo_Value(item, 'D_POSITION')
local it_end = it_start+r.GetMediaItemInfo_Value(item, 'D_LENGTH')
min = math.min(min,it_start)
items_t[#items_t+1] = {item,it_start,it_end}
end
for i = 0,1000 do msr = r.TimeMap_GetMeasureInfo(0, i) if msr >= min then iter = i break end end
function nearest_to_x(x,x1,x2)
local y,z = math.max(x,x1)-math.min(x,x1), math.max(x,x2)-math.min(x,x2)
if y<z then return x1 elseif y>z then return x2 else return math.min(x1,x2) end
end
r.Undo_BeginBlock()
for j = 1, #items_t do
local item, it_start, it_end = items_t[j][1],items_t[j][2],items_t[j][3]
for i = iter,1000 do
local msr = r.TimeMap_GetMeasureInfo(0, i)
if msr >= it_start then
startTime = nearest_to_x(it_start,msr,r.TimeMap_GetMeasureInfo(0, i-1))
break end
end
for i = iter,1000 do
local msr = r.TimeMap_GetMeasureInfo(0, i)
if msr >= it_end then
endTime = nearest_to_x(it_end,msr,r.TimeMap_GetMeasureInfo(0, i-1))
break end
end
r.BR_SetItemEdges(item, startTime, endTime)
end
r.Undo_EndBlock('Trim items edges to nearest measure start', -1)
года 3 назад тоже думал над этой проблемой. Не решил.... или срезает остатки нот или делает лишних пустых долей. Без скрипта ни как. Хотелось бы начинать конкретно в начале такта и срезать если ноты выходят за первую или вторую долю ровнять по следующей доле а если за 3 4 долю то по следующий тактА как это организовать автоматически? Чтобы после записи именно миди айтема, края автоматом привязывались к сетке, например как В Studio One ? Посмотреть вложение 150913
не знаю, мне он просто не нужен...Этот скрипт существует?