From d0da79b31b35bba3ee4fd84e543912a8c966a3f7 Mon Sep 17 00:00:00 2001 From: Jamie Hardt Date: Sat, 2 Oct 2021 15:50:44 -0700 Subject: [PATCH] Create Export Items as Text.py --- reaper/Export Items as Text.py | 62 ++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 reaper/Export Items as Text.py diff --git a/reaper/Export Items as Text.py b/reaper/Export Items as Text.py new file mode 100644 index 0000000..fce6828 --- /dev/null +++ b/reaper/Export Items as Text.py @@ -0,0 +1,62 @@ +# Export Items as Text.py +# (c) 2021 Jamie Hardt. All rights reserved. +# +# + +import json +import os.path +import datetime + +item_records = list() + +for i in range(0, RPR_CountMediaItems(0) ): + this_item = RPR_GetMediaItem(0, i) + + item_record = {} + item_record["mute"] = True if RPR_GetMediaItemInfo_Value(this_item, "B_MUTE_ACTUAL") > 0. else False + + item_record["duration"] = RPR_GetMediaItemInfo_Value(this_item, "D_LENGTH") + _, item_record["duration_tc"], _, _, _ = RPR_format_timestr_len(item_record["duration"], "", 128, 0., 5) + + item_record["position"] = RPR_GetMediaItemInfo_Value(this_item, "D_POSITION") + _, item_record["position_tc"], _, _ = RPR_format_timestr_pos(item_record["position"], "", 128, 5) + + item_record["selected"] = True if RPR_GetMediaItemInfo_Value(this_item, "B_UISEL") > 0. else False + _, _, _, item_record["notes"], _ = RPR_GetSetMediaItemInfo_String(this_item, "P_NOTES", "", False) + _, _, _, item_record["item_guid"], _ = RPR_GetSetMediaItemInfo_String(this_item, "GUID", "", False) + + active_take = RPR_GetActiveTake(this_item) + _, _, _, item_record["active_take_name"], _ = RPR_GetSetMediaItemTakeInfo_String(active_take, "P_NAME", "", False) + _, _, _, item_record["active_take_guid"], _ = RPR_GetSetMediaItemTakeInfo_String(active_take, "GUID", "", False) + + item_track = RPR_GetMediaItemTrack(this_item) + _, _, _, item_record["track_name"], _ = RPR_GetSetMediaTrackInfo_String(item_track, "P_NAME", "", False) + _, _, _, item_record["track_guid"], _ = RPR_GetSetMediaTrackInfo_String(item_track, "GUID", "", False) + item_record["track_index"] = RPR_GetMediaTrackInfo_Value(item_track, "IP_TRACKNUMBER") + item_record["track_muted"] = True if RPR_GetMediaTrackInfo_Value(item_track, "B_MUTE") > 0. else False + + item_records = item_records + [item_record] + +output = dict() +output["items"] = item_records +_, output["project_title"], _ = RPR_GetProjectName(0, "", 1024) +_, _, output["project_author"], _ = RPR_GetSetProjectAuthor(0, False, "", 1024) +output["project_frame_rate"], _, output["project_drop_frame"] = RPR_TimeMap_curFrameRate(0, True) + +output_path, _ = RPR_GetProjectPath("", 1024) + +now = datetime.datetime.now() +output_title = output["project_title"] + +if output_title == "": + output_title = "unsaved project" + +output_file_name = "%s Text Export %s.txt" % (output_title, now.strftime('%Y%m%d_%H%M')) +output_path = output_path + "/" + output_file_name + +with open(output_path, "w") as f: + json.dump(output, f, allow_nan=True, indent=4) + +RPR_ShowMessageBox("Exported text file \"%s\" to project folder." % output_file_name, "Text Export Complete", 0) + +#RPR_ShowConsoleMsg(output_path) \ No newline at end of file