Wenn Sie mit REAPER das Timing von Noten numerisch ermitteln können Ich habe mich gefragt, ob es möglich ist, es synchron mit verschiedenen Sounds zu visualisieren. Memo gemacht
GetNoteList.py
RPR_ClearConsole()
outlist = ""
midieditor = RPR_MIDIEditor_GetActive()
take = RPR_MIDIEditor_GetTake( midieditor )
notecntOut = 0
ccevtcntOut = 0
textsyxevtcntOut = 0
( retval, take, notecntOut, ccevtcntOut, textsyxevtcntOut ) = RPR_MIDI_CountEvts(take, notecntOut, ccevtcntOut, textsyxevtcntOut )
for noteidx in range(notecntOut):
selectedOut = True
mutedOut = True
startppqposOut = 0
endppqposOut = 0
chanOut = 0
pitchOut = 0
velOut = 0
( retval, take, noteidx, selectedOut, mutedOut, startppqposOut, endppqposOut, chanOut, pitchOut, velOut ) = RPR_MIDI_GetNote(take, noteidx, selectedOut, mutedOut, startppqposOut, endppqposOut, chanOut, pitchOut, velOut )
outlist += str(pitchOut) + "," + str(startppqposOut) + "," + str(endppqposOut) + "\n"
#RPR_ShowMessageBox("End", "status", 0 )
RPR_ShowConsoleMsg(outlist)
Wenn du das machst
Auf diese Weise können Sie die Notennummer und die Timing-Informationen zum Ein- und Ausschalten von Notizen im Text abrufen.
TIPS --Wählen Sie den Ziel-MIDI-Editor (MIDI-Region) und führen Sie ihn aus.
quarter note count (QN)
QN ist eine 1/4 Notenanzahl, ein Takt ist 4 Schläge und es scheint eine Zählung zu sein, die 1 Schlag darstellt. Es ist wie ein Schlag bei 960.
start = RPR_TimeMap_QNToTime( startppqposOut)
end = RPR_TimeMap_QNToTime( endppqposOut)
Ich frage mich, ob dies keine Tempowechsel unterstützt ...
Nachtrag Wenn dies eine Millisekunde ist, scheint das Teilen durch 1000 Sekunden zu sein, aber aus irgendeinem Grund ist 960 genau der richtige Wert? ** * Yokuwakaran **
start = RPR_TimeMap_QNToTime_abs(0, startppqposOut)
end = RPR_TimeMap_QNToTime_abs(0, endppqposOut)
Es ist in der Referenz geschrieben, aber ich kann es nicht gut nehmen ... ** * Erweitern Sie also den Bereich des Editors bis zum Anfang **
start = RPR_TimeMap2_QNToTime(0, startppqposOut)
end = RPR_TimeMap2_QNToTime(0, endppqposOut)
Ist das neuer ... Ich verstehe den Unterschied nicht wirklich. Dies scheint auch nicht mit Tempoänderungen auf dem Weg vereinbar zu sein.
Wenn es sich um lange Daten handelte, wurde die Protokollmenge der Konsole überschritten. Ich wünschte, ich könnte den Text vorerst kopieren
import pyperclip
#Abkürzung
pyperclip.copy(outlist)
Nun, es fühlt sich vernünftig an, in eine Datei auszugeben.
Recommended Posts