Немного поправил первый пост. Если кому есть что дополнить (ссылки и прочие интересности) - дополню.
А свой такой можно написать? Очень бы удобно было бы!Можно всё, что угодно. Но разбираться с чужим скриптом - очень не хочется.
думаю в -в чем может быть проблема?
мак ос
local _,_,_,_,_,_,val = reaper.get_action_context()
function Peaks()
if val > 0 then
reaper.Main_OnCommand(40155, 0)
end
if val < 0 then
reaper.Main_OnCommand(40156, 0)
end
end
reaper.defer(Peaks)
В идеале надо просто эту функцию интегрировать, чтобы кривая формировалась как и в зависимости от настроек компрессора, так и в зависимости от настроек де-эссера, одновременно и вместеможно как то совместить эти скрипты или сделать, чтобы они друг друга не отменяли?
script_title = "Remove every odd stretch marker"
reaper.Undo_BeginBlock()
reaper.PreventUIRefresh(1)
function main()
count_items = reaper.CountSelectedMediaItems()
for i = 0, count_items-1 do
selitem = reaper.GetSelectedMediaItem(0,i)
if selitem == nil then return end
take = reaper.GetActiveTake(selitem)
num = reaper.GetTakeNumStretchMarkers(take)
for i = 0, num-1 do
retval, pos, srcpos = reaper.GetTakeStretchMarker( take, 0 )
reaper.DeleteTakeStretchMarkers( take, i-1,1 )
end
end
end
main()
reaper.UpdateArrange()
reaper.PreventUIRefresh(-1)
reaper.Undo_EndBlock(script_title,-1)
Подскажите, я правильно понял, что это надо назначать на колесо мыши в модификаторах? А в каком разделе модификатора?Простенький скрипт, чтобы увеличивать/уменьшать отображение пиков без необходимости нажимать на shift+стрелки, достаточно в нужную сторону покрутить колесо
[/code]
reaper.Undo_BeginBlock(1)
reaper.PreventUIRefresh(1)
local count_tracks = reaper.CountSelectedTracks(0)
local time_selection_start, time_selection_end = reaper.GetSet_LoopTimeRange( 0, 1, 0, 0, 0)
if time_selection_start == time_selection_end then return end
if count_tracks == 0 then return end
for i=0, count_tracks-1 do
local get_track = reaper.GetSelectedTrack(0,i)
local count_envelopes = reaper.CountTrackEnvelopes(get_track)
for j=0, count_envelopes-1 do
local get_envelope = reaper.GetTrackEnvelope(get_track, j)
local count_points = reaper.CountEnvelopePoints(get_envelope)
local _, point_value_start, _, _, _ = reaper.Envelope_Evaluate(get_envelope, time_selection_start, 0, 0)
local _, point_value_end, _, _, _ = reaper.Envelope_Evaluate(get_envelope, time_selection_end, 0, 0)
if count_points ~= 0 then
for h=0, count_points-1 do
reaper.DeleteEnvelopePointRange(get_envelope, time_selection_start, time_selection_end+0.00000000000001)
end
end
reaper.InsertEnvelopePoint(get_envelope, time_selection_start, point_value_start, 0, 0, 0, 0)
reaper.InsertEnvelopePoint(get_envelope, time_selection_end, point_value_start, 0, 0, 0, 0)
reaper.InsertEnvelopePoint(get_envelope, time_selection_end, point_value_end, 0, 0, 0, 0)
end
local count_items = reaper.CountTrackMediaItems(get_track)
for t=count_items, 0, -1 do
local get_item = reaper.GetTrackMediaItem(get_track, t)
if get_item then
reaper.SplitMediaItem( get_item, time_selection_end)
reaper.SplitMediaItem( get_item, time_selection_start)
end
end
local count_items_two = reaper.CountTrackMediaItems(get_track)
for z=count_items_two, 0, -1 do
local get_item_selection = reaper.GetTrackMediaItem(get_track, z)
if get_item_selection then
local info_start = reaper.GetMediaItemInfo_Value(get_item_selection,'D_POSITION')
if info_start >= time_selection_start and info_start <= time_selection_end-0.00000000000001 then
reaper.DeleteTrackMediaItem(get_track, get_item_selection)
end
end
end
end
reaper.Undo_EndBlock("Remove contents from selected items", -1)
reaper.UpdateArrange()
reaper.PreventUIRefresh(-1)
reaper.Undo_BeginBlock(1)
reaper.PreventUIRefresh(1)
local count_tracks = reaper.CountTracks(0)
local time_selection_start, time_selection_end = reaper.GetSet_LoopTimeRange( 0, 1, 0, 0, 0)
if time_selection_start == time_selection_end then return end
if count_tracks == 0 then return end
for i=0, count_tracks-1 do
local get_track = reaper.GetTrack(0,i)
local count_envelopes = reaper.CountTrackEnvelopes(get_track)
for j=0, count_envelopes-1 do
local get_envelope = reaper.GetTrackEnvelope(get_track, j)
local count_points = reaper.CountEnvelopePoints(get_envelope)
local _, point_value_start, _, _, _ = reaper.Envelope_Evaluate(get_envelope, time_selection_start, 0, 0)
local _, point_value_end, _, _, _ = reaper.Envelope_Evaluate(get_envelope, time_selection_end, 0, 0)
if count_points ~= 0 then
for h=0, count_points-1 do
reaper.DeleteEnvelopePointRange(get_envelope, time_selection_start, time_selection_end+0.00000000000001)
end
end
reaper.InsertEnvelopePoint(get_envelope, time_selection_start, point_value_start, 0, 0, 0, 0)
reaper.InsertEnvelopePoint(get_envelope, time_selection_end, point_value_start, 0, 0, 0, 0)
reaper.InsertEnvelopePoint(get_envelope, time_selection_end, point_value_end, 0, 0, 0, 0)
end
local count_items = reaper.CountTrackMediaItems(get_track)
for t=count_items, 0, -1 do
local get_item = reaper.GetTrackMediaItem(get_track, t)
if get_item then
reaper.SplitMediaItem( get_item, time_selection_end)
reaper.SplitMediaItem( get_item, time_selection_start)
end
end
local count_items_two = reaper.CountTrackMediaItems(get_track)
for z=count_items_two, 0, -1 do
local get_item_selection = reaper.GetTrackMediaItem(get_track, z)
if get_item_selection then
local info_start = reaper.GetMediaItemInfo_Value(get_item_selection,'D_POSITION')
if info_start >= time_selection_start and info_start <= time_selection_end-0.00000000000001 then
reaper.DeleteTrackMediaItem(get_track, get_item_selection)
end
end
end
end
reaper.Undo_EndBlock("Remove contents from selected items", -1)
reaper.UpdateArrange()
reaper.PreventUIRefresh(-1)
Вы имеете в виду наверное "эдит-курсор", а не "маркер"?Еще возник вопрос: допустим есть у меня какой-то айтем (ну или группа айтемов) и мне нужно, чтобы этот айтем после копирования сразу вставился в одно из мест, где у меня стоит маркер. Такое возможно?
\Вы имеете в виду наверное "эдит-курсор", а не "маркер"?
если так, то сделайте простой кастом экшн и повесьте его на хоткей
- Edit: Copy items
- Item: Paste items/tracks
Если таки "маркер", то Вам нужно знать его номер и вставить соотв. экшн между "копи" и "пэйст"
Посмотреть вложение 154679