Script Python pour obtenir des informations de note avec REAPER

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

image.png

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?

Notes que j'ai essayées ci-dessous

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.

Convertir de QN en MS (millisecondes)

  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 **

Obtenez en temps absolu dès le début du projet

  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.

Que faire si la sortie est plus longue que le journal de la console Reaper

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

Script Python pour obtenir des informations de note avec REAPER
Obtenez des informations sur l'alambic avec Python
Lien pour commencer avec python
Comment démarrer avec Python
Obtenez des informations météorologiques avec Python et le grattage
Obtenez des informations sur la propriété en grattant avec python
Essayer de gérer SQLite3 avec Python [Note]
PhytoMine-I a essayé d'obtenir les informations génétiques de la plante avec Python
[REAPER] Comment jouer à Reascript avec Python
[Yahoo! Weather Replacement Version] Comment obtenir des informations météo avec LINE Notify + Python
J'ai essayé d'obtenir des données CloudWatch avec Python
[Version améliorée] Script pour surveiller le CPU avec Python
Obtenir des informations sur les vidéos mises en ligne sur YouTube [Python]
Remarque pour faire de python un démon
Obtenez des informations sur le processeur de Raspberry Pi avec Python
Obtenez date avec python
J'ai essayé d'obtenir les informations sur le film de l'API TMDb avec Python
Zubu amateur veut démarrer Python
Remarque: Comment obtenir le dernier jour du mois avec python (ajouté le premier jour du mois)
Comment ajouter de l'aide à HDA (avec bonus de script Python)
J'ai essayé de démarrer avec le script python de blender_Part 01
Note de lecture: Introduction à l'analyse de données avec Python
J'ai essayé de démarrer avec le script python de blender_Partie 02
Comment obtenir le verdict de la molette de la souris avec des malédictions Python
[Python-pptx] Afficher les informations de police PowerPoint au format csv avec python
[Python] Obtenez des informations sur les utilisateurs et des articles sur l'API de Qiita
Connectez-vous à BigQuery avec Python
Obtenez la chronologie Twitter avec Python
POST json avec le script Python 3
Obtenez des données Youtube avec python
Publiez sur Slack avec Python 3
Obtenir des informations avec l'API Zabbix
Obtenir l'ID de thread avec python
Basculer python vers 2.7 avec des alternatives
Écrire en csv avec Python
Commencez avec Python! ~ ② Grammaire ~
Obtenez des stocks avec Python
Obtenir le répertoire personnel avec python
Obtenir un événement de clavier avec python
Obtenez des informations équivalentes à l'onglet Réseau des outils de développement Chrome avec Python + Selenium
Essayez d'afficher diverses informations utiles pour le débogage avec python
Connaissances minimales pour démarrer avec le module de journalisation Python
[python] Remarques lors de la tentative d'utilisation de numpy avec Cython
[Python] Récupère le répertoire d'exécution du script avec un chemin absolu
Comment entrer dans l'environnement de développement Python avec Vagrant
[Python x Zapier] Obtenez des informations d'alerte et notifiez avec Slack
Obtenez des données supplémentaires vers LDAP avec python (Writer et Reader)
Essayez Juniper JUNOS PyEz (bibliothèque python) Note 2 ~ Obtenez des informations avec PyEz ~
Récupérez la source de la page à charger indéfiniment avec python.
Appelez l'API github en python pour obtenir des informations sur la demande d'extraction
Comment obtenir les informations des organisations, Cost Explorer d'un autre compte AWS avec Lambda (python)
Obtenez des informations sur les fichiers vidéo avec ffmpeg-python
Python: comment utiliser async avec
Commencez avec Python! ~ ① Construction de l'environnement ~
[Python] Ecrire dans un fichier csv avec Python
Obtenez des avis avec l'API googlemap de python
Ravi de vous rencontrer avec python
Obtenez la météo avec les requêtes Python
Obtenez une capture d'écran Web avec python