[PYTHON] Zeit sortiert nach REAPER und beschriftet

Einführung

Ich habe ein Skript verwendet, das die Namen von Elementen in einem Stapel mit REAPER ändert, weil es ursprünglich dort war.

image.png

Als die Spuren getrennt wurden, fühlte es sich an, als würde der Name in jede Spur gegossen. Es wäre schön gewesen, wenn es in eine Spur unterteilt wäre ...

Als ich es bemerkte, hatte ich die Spuren getrennt.

Damit Ich habe ein Skript geschrieben, das die Namen in chronologischer Reihenfolge anordnet.

(Auch wenn es zu viele Zeichen gibt, scheinen die Zeichen vorbei zu sein, so dass es nur zur Hälfte funktioniert hat)

Gesamtdurchfluss

  1. Ermitteln Sie die Anzahl der ausgewählten Elemente
  2. Holen Sie sich das ausgewählte Element
  3. Holen Sie sich die aktuelle Einstellung
  4. Holen Sie sich die Startzeit und nehmen Sie die aktuelle Aufnahme
  5. Nach Zeit sortieren (sortieren)
  6. Rufen Sie im Dialogfeld die Zeichen zum Umbenennen ab
  7. Benennen Sie um, wenn die Taste gedrückt wird

Eingabedialog

Ich habe Python tkinter verwendet. Ein Bildschirm wie dieser wird angezeigt.

image.png

Quelle

tatLable.py


RPR_ClearConsole()

#Get Selected Items
itemNum = RPR_CountSelectedMediaItems(0)

itemList = []

for itemidx in range(itemNum):
  mediaItem = RPR_GetSelectedMediaItem(0,itemidx)
  itemList.append(mediaItem)
  
# Sort Items
dict = {}  
 
for item in itemList:
  currentTakeId = RPR_GetMediaItemInfo_Value(item, "I_CURTAKE")
  startTime = RPR_GetMediaItemInfo_Value(item, "D_POSITION")
  currentTake = RPR_GetMediaItemTake(item,int(currentTakeId))
  
  retval, tk, parmname, stringNeedBig,setnewvalue = RPR_GetSetMediaItemTakeInfo_String(currentTake, "P_NAME", "", False)
 
  dict[startTime] = currentTake
  #RPR_ShowConsoleMsg(str(startTime) + ",")
#RPR_ShowConsoleMsg(str(startTime) + "\n")
  
# Sort Start Time    
sortedList = sorted(dict.items(), key=lambda x: x[0], reverse=False)

for item in sortedList:
  retval, tk, parmname, stringNeedBig,setnewvalue = RPR_GetSetMediaItemTakeInfo_String(item[1], "P_NAME", "", False)
  RPR_ShowConsoleMsg(stringNeedBig + ",")
  
# Dialog
import tkinter
root = tkinter.Tk()
root.title("Rename Item with CSV")
root.geometry("400x200")

label = tkinter.Label(root, text="Names(separated by \",\")")
label.grid()

txtbox = tkinter.Entry()
txtbox.grid()

def clicked():
  nameList = txtbox.get().split(',')
  
  index = 0
  length = len(nameList)
  for item in sortedList:
    
    if index <= length :
      newName = nameList[index]
      retval, tk, parmname, stringNeedBig,setnewvalue = RPR_GetSetMediaItemTakeInfo_String(item[1], "P_NAME", newName, True) 
      index += 1
     
  root.destroy()

button = tkinter.Button(root, text = "OK", command= clicked)
button.grid()

root.mainloop()

Zusammenfassung

Ich fand heraus, dass ich die Zeitsortierung verwalten konnte. Ich habe herausgefunden, dass ich eine einfache GUI verwenden kann, also denke ich, dass ich verschiedene Dinge tun kann.

Recommended Posts

Zeit sortiert nach REAPER und beschriftet
Python> Nach Nummer sortieren und nach Alphabet sortieren> Sortiert verwenden ()
Datum und Uhrzeit ⇔ Zeichenkette
Python 3 Sortier- und Vergleichsfunktionen