Si vous pouvez obtenir le timing des notes numériquement avec REAPER Je me demandais s'il serait possible de le visualiser en synchronisation avec différents sons. Mémo fait
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)
Quand tu fais ça
De cette manière, vous pouvez obtenir le numéro de note et les informations de minutage d'activation / désactivation de la note sous forme de texte.
TIPS --Sélectionnez l'éditeur MIDI cible (région MIDI) et exécutez-le. --Si vous voulez connaître l'heure depuis le début, exécutez les régions ensemble. ――Est-ce que ça ne marche pas si vous changez le tempo en cours de route?
quarter note count (QN)
QN est un compte de 1/4 de note, une mesure correspond à 4 temps et il semble que ce soit un compte qui représente 1 temps. C'est comme un battement à 960.
start = RPR_TimeMap_QNToTime( startppqposOut)
end = RPR_TimeMap_QNToTime( endppqposOut)
Je me demande si cela ne supporte pas le changement de tempo ...
Post-scriptum Si c'est milliseconde, il semble que la division par 1000 sera de secondes, mais pour une raison quelconque, 960 est juste la bonne valeur? ** * Yokuwakaran **
start = RPR_TimeMap_QNToTime_abs(0, startppqposOut)
end = RPR_TimeMap_QNToTime_abs(0, endppqposOut)
C'est écrit dans la référence, mais je ne peux pas bien le prendre ... ** * Alors étendez la portée de l'éditeur jusqu'au début **
start = RPR_TimeMap2_QNToTime(0, startppqposOut)
end = RPR_TimeMap2_QNToTime(0, endppqposOut)
Est-ce plus récent ... Je ne comprends pas vraiment la différence. Cela semble également incompatible avec les changements de tempo en cours de route.
S'il s'agissait de données longues, la quantité de journal de la console a été dépassée. J'aimerais pouvoir copier le texte pour le moment
import pyperclip
#Abréviation
pyperclip.copy(outlist)
Eh bien, il semble raisonnable de sortir dans un fichier.
Recommended Posts