--[[ * ReaScript Name:Remove empty bars from selected MIDI items * Lua script for Cockos REAPER * Author: EUGEN27771 * Author URI: http://forum.cockos.com/member.php?u=50462 * Licence: GPL v3 * Version: 1.0 ]] function msg(m) reaper.ShowConsoleMsg(tostring(m.."\n")) end ---------------------------- ---------------------------- --------- function range_start_end(prev_range_end) local range_start = prev_range_end local range_start_QN = reaper.TimeMap_timeToQN(range_start) local ret, Bar_Start_QN, Bar_End_QN = reaper.TimeMap_QNToMeasures(0, range_start_QN) local range_end = reaper.TimeMap_QNToTime(Bar_End_QN) return range_start, range_end end --------- function Add_range_to_Split(range_start,range_end,note_start,note_end) if range_startnote_start then return end -- | --|- if range_startnote_end then return end -- -|-- | if range_start<=note_start and range_end>=note_end then return end -- | - | if range_start>=note_start and range_end<=note_end then return end -- -|---|- return true end --------- function Remove_Empty_Bars(Item,Take) local Split_Points = {} -- if LOOPSRC -- if reaper.GetMediaItemInfo_Value(Item, "B_LOOPSRC") then reaper.Main_OnCommand(40362,0) Item = reaper.GetSelectedMediaItem(0,0) Take = reaper.GetActiveTake(Item) end ---------------- local Item_Start = reaper.GetMediaItemInfo_Value(Item, "D_POSITION") local Item_End = Item_Start + reaper.GetMediaItemInfo_Value(Item, "D_LENGTH") local ret, notecnt, ccevtcnt, textsyxevtcnt = reaper.MIDI_CountEvts(Take) ---------------- local range_start, range_end = range_start_end(Item_Start) local spl = 1 ---------------------------- while range_start