|
|
@ -1,3 +1,12 @@ |
|
|
|
-- Reaper Scripts for 4 point editing. This script executes "one edit" and copies source material from |
|
|
|
-- already set source in/out markers to also set destination in/out markers. |
|
|
|
-- Author: Ludwig Frühschütz |
|
|
|
-- Source: https://www.eleton-audio.de |
|
|
|
-- Git: https://files.eleton-audio.de/gitea/Ludwig/Reaper-Scripts.git |
|
|
|
-- License: GPL v3.0 |
|
|
|
-- Requires: Reaper 5 or 6 |
|
|
|
-- Requires: This script goes with several other scripts that work closely together. |
|
|
|
|
|
|
|
local stored_cursorPos = 0 |
|
|
|
local stored_timeSelStart = 0 |
|
|
|
local stored_timeSelEnd = 0 |
|
|
@ -17,6 +26,7 @@ function msg(m) |
|
|
|
reaper.ShowConsoleMsg(tostring(m) .. "\n") |
|
|
|
end |
|
|
|
|
|
|
|
-- Selects the source tracks, or, if not stored in rpp, selects all tracks |
|
|
|
function select_src_tracks() |
|
|
|
local tracks_str = '' |
|
|
|
local tracks = {} |
|
|
@ -29,7 +39,6 @@ function select_src_tracks() |
|
|
|
table.insert(tracks, reaper.BR_GetMediaTrackByGUID(0, '{' .. str)) |
|
|
|
end |
|
|
|
-- select tracks |
|
|
|
--reaper.Main_OnCommand(40297, 0) -- Unselect all tracks |
|
|
|
for _, track in ipairs(tracks) do |
|
|
|
reaper.SetTrackSelected(track, true) |
|
|
|
end |
|
|
@ -41,6 +50,7 @@ function select_src_tracks() |
|
|
|
end |
|
|
|
end |
|
|
|
|
|
|
|
-- Select the destination tracks, or, if not stored in rpp, the first track |
|
|
|
function select_dst_track_only() |
|
|
|
local track_str = '' |
|
|
|
local retval |
|
|
@ -68,8 +78,7 @@ end |
|
|
|
if reaper.CountSelectedTracks(0) > 0then |
|
|
|
reaper.Main_OnCommand(40297, 0) -- Unselect all tracks |
|
|
|
end |
|
|
|
--reaper.Main_OnCommand(40769, 0) |
|
|
|
select_src_tracks() -- select tracks specified in rpp (by using 4Pcut_set_src-tracks.lua) |
|
|
|
select_src_tracks() |
|
|
|
|
|
|
|
-- run through all markers and get position of the 4 points |
|
|
|
local nof_markers = 0 |
|
|
@ -113,17 +122,12 @@ end |
|
|
|
-- Do stuff before actual edits... |
|
|
|
reaper.Undo_BeginBlock() |
|
|
|
|
|
|
|
|
|
|
|
-- Set Source Time selection and Copy Items |
|
|
|
reaper.GetSet_LoopTimeRange(true, false, mark_srcin_pos, mark_srcout_pos, false) |
|
|
|
reaper.Main_OnCommand(40718, 0) -- select items on selected tracks under time selection |
|
|
|
reaper.Main_OnCommand(40060, 0) -- copy selected items under time selection 41383 |
|
|
|
-- reaper.Main_OnCommand( reaper.NamedCommandLookup('_SWS_SMARTCOPY'), 0 ) |
|
|
|
|
|
|
|
|
|
|
|
-- Move edit cursor to Dest-In and Paste |
|
|
|
--reaper.GoToMarker(0, mark_dstin_id, false) |
|
|
|
-- reaper.GetSet_LoopTimeRange(true, false, mark_dstin_pos, mark_dstout_pos, false) |
|
|
|
reaper.MoveEditCursor(mark_dstin_pos - reaper.GetCursorPosition(), false) |
|
|
|
select_dst_track_only() |
|
|
|
reaper.Main_OnCommand(40058, 0) -- paste item |
|
|
|