Hi gang,
UPDATED 2019-09-11: Made it for all selected tracks and added undo code blocks.
I find it tedious to select items I want to inline edit... or just see in a piano roll format on the main arrange screen. So I wrote a script that toggles the entire selected track (first selected) to Inline Edit mode. Much less fiddly than current implementations.
Here it is in action. You can also apply the script to multiple tracks by selecting different tracks as you go... and copy/paste MIDI between them by using the cursor and track selection. If you think it would be more valuable to do inline edit for ALL selected tracks at once, I can update it. Let me know.
Here is the code:
Code:
--[[
Script: AK Track Inline Edit toggle (maintain selected items).lua
Written by Thonex
v1.1
updated to apply to all selected tracksand added undo code blocks
--]]
function TOGGLE_TRACK_INLINE_EDIT ()
reaper.PreventUIRefresh(1)
reaper.Undo_BeginBlock()
----- log originally selected items ------
orig_sel_item = {}
orig_sel_tracks = {}
trk_item = {}
num_selected_items = reaper.CountSelectedMediaItems( 0 )
num_selected_tracks = reaper.CountSelectedTracks( 0 )
for i=0, num_selected_items-1 do
orig_sel_item [i] = reaper.GetSelectedMediaItem( 0, i )
end
reaper.SelectAllMediaItems(0, 0 ) -- deselect all items on project now that all orig selected items are logged
----- select all item on selected tracks ------
for ii = 0, num_selected_tracks-1 do
track = reaper.GetSelectedTrack( 0, ii )
num_item_trk = reaper.CountTrackMediaItems( track )
for i=0, num_item_trk-1 do
trk_item [i] = reaper.GetTrackMediaItem( track, i )
reaper.SetMediaItemSelected( trk_item [i], 1 )
end
end
toggle_inline = reaper.NamedCommandLookup( "_RS8990ef30b1d78ba18e5e3423352dc632f43aa723" )-- Script: me2beats_Toggle open items inline editors.lua
reaper.Main_OnCommand(toggle_inline,0) -- Script: me2beats_Toggle open items inline editors.lua
----- reset selection state to initial state ------
reaper.SelectAllMediaItems(0, 0 )
for i=0, num_selected_items-1 do
orig_sel_item [i] = reaper.SetMediaItemSelected( orig_sel_item [i], 1 )
end
reaper.PreventUIRefresh(-1)
reaper.Undo_EndBlock("Toggle tracks inline editor state",-1)
end
TOGGLE_TRACK_INLINE_EDIT ()