Download Script
https://www.dropbox.com/s/cc4or4jke8...20map.zip?dl=1
If you have ReaTrak put the script in that folder else Scripts folder.
This allows you to drag any audio into a tempo mapped session and fit to the tempo map just like most other DAWs do but not Reaper, it works okay but may loops/lengthens a section (or shortens if going down in tempo) on the end when it changes playback rate, not sure how to avoid that so I just set it to not loop but the length is still added, so just adjust it manually before gluing.
You can cancel out of the Glue item
adjust the end length manually
select all items on the track
then in the Action window type Item: Remove fade in and fade out, and Run
then right click > Glue
Here's the Lua Script
Code:
-- Display a message in the console for debugging
function Msg(variable)
reaper.ShowConsoleMsg(tostring(variable).."\n")
end
cur_pos = reaper.GetCursorPosition()
retval, org_bpm = reaper.GetUserInputs("Set Item's Original Tempo", 1, "Enter item's tempo (bpm):", "" )
if retval then
reaper.Main_OnCommand(40042,0) -- Transport: Go to start of project
tempo_markers_count = reaper.CountTempoTimeSigMarkers(0)
for i = 0, tempo_markers_count - 1 do
reaper.Main_OnCommand(40759,0) --Item: Split items at edit cursor (select right)
retval, timepos, measurepos, beatpos, bpm, timesig_num, timesig_denom, lineartempo = reaper.GetTempoTimeSigMarker(0, i)
item = reaper.GetSelectedMediaItem(0, 0)
take = reaper.GetMediaItemTake(item, 0)
playrate = bpm / org_bpm
reaper.SetMediaItemTakeInfo_Value( take, "D_PLAYRATE", playrate )
reaper.Main_OnCommand(41821,0) --Move edit cursor to next tempo or time signature change
end
reaper.SetMediaItemInfo_Value(item, "B_LOOPSRC", 0)
Info2 = [[
"If you want to glue the items together"
"make sure the end is correct"
"else cancel out and adjust it"
"then Remove fade in and fade out then glue" ]]
reaper.MB(Info2, "Information", 0)
retval,input = reaper.GetUserInputs("Glue Items", 1, "This will glue split item", "")
if retval then
reaper.Main_OnCommand(40421,0) --Item: Select all items in track
reaper.Main_OnCommand(41193,0) --Item: Remove fade in and fade out
reaper.Main_OnCommand(41588,0) --Item: Glue items
end
reaper.SetEditCurPos(cur_pos, 1, 0)
end