project_master_index = 0 project_master_ref = reaper.EnumProjects(project_master_index, "" ) function CountProjects () -- Counts the total number of open projects, max 99999999 for i=0, 99999999 do project_ref = reaper.EnumProjects( i, "" ) if project_ref == nil then return i end end return 0 end function ClearTempoMarkers(project_index) -- Clears all the tempo markers in a given project subproject_ref = reaper.EnumProjects(project_index, "" ) tempomarkers_count = reaper.CountTempoTimeSigMarkers( subproject_ref, "" ) for i = tempomarkers_count - 1, 0, -1 do reaper.DeleteTempoTimeSigMarker(reaper.EnumProjects( project_index, "" ), i ) reaper.UpdateTimeline() end end function ImportTempoMarkersFromMaster(project_index) -- Clears all the tempo markers in a given project subproject_ref = reaper.EnumProjects(project_index, "" ) tempomarkers_count = reaper.CountTempoTimeSigMarkers(project_master_ref) -- number of tempo marker in marster project -- get each tempo marker info in the master project for i = 0, tempomarkers_count-1 do retval, timeposOut, measureposOut, beatposOut, bpmOut, timesig_numOut, timesig_denomOut, lineartempoOut = reaper.GetTempoTimeSigMarker( project_master_ref, i ) reaper.AddTempoTimeSigMarker( subproject_ref, timeposOut, bpmOut, timesig_numOut, timesig_denomOut, lineartempoOut ) reaper.UpdateTimeline() end end function ClearMarkersExceptStartEnd(project_index) -- Clears all the markers in a given project? except START & END subproject_ref = reaper.EnumProjects(project_index, "" ) markers_count = reaper.CountProjectMarkers( subproject_ref ) for i = markers_count - 1, 0, -1 do retval, isrgnOut, posOut, rgnendOut, nameOut, markrgnindexnumberOut = reaper.EnumProjectMarkers2(subproject_ref, i ) if nameOut == not "=START" or nameOut == not "=END" then reaper.DeleteProjectMarkerByIndex( subproject_ref, i ) reaper.UpdateTimeline() end end end function ImportMarkersFromMaster(project_index) -- Import the project marker from master project subproject_ref = reaper.EnumProjects(project_index, "" ) markers_count = reaper.CountProjectMarkers(project_master_ref) -- number of markers in master project -- get each tempo marker info in the master project for i = 0, markers_count-1 do retval, isrgnOut, posOut, rgnendOut, nameOut, markrgnindexnumberOut, colorOut = reaper.EnumProjectMarkers3( project_master_ref, i ) reaper.AddProjectMarker2( subproject_ref, isrgnOut, posOut, rgnendOut, nameOut, markrgnindexnumberOut, colorOut ) --reaper.UpdateTimeline() end end function Main() for i=1, CountProjects()-1 do ClearTempoMarkers(i) ClearMarkersExceptStartEnd(i) ImportTempoMarkersFromMaster(i) ImportMarkersFromMaster(i) reaper.UpdateTimeline() end end reaper.Undo_BeginBlock() Main() reaper.Undo_EndBlock( "", 0 )