Python-Skript zum Abrufen von Notizinformationen mit REAPER

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

image.png

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.

Anmerkungen Ich habe es unten unterschiedlich versucht

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.

Konvertieren von QN in MS (Millisekunden)

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

Holen Sie sich in absoluter Zeit vom Beginn des Projekts

  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.

Was tun, wenn die Ausgabe länger als das Reaper-Konsolenprotokoll ist?

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

Python-Skript zum Abrufen von Notizinformationen mit REAPER
Holen Sie sich Alembic-Informationen mit Python
Link, um mit Python zu beginnen
Erste Schritte mit Python
Holen Sie sich Wetterinformationen mit Python & Scraping
Abrufen von Eigenschaftsinformationen durch Scraping mit Python
Versuch, SQLite3 mit Python zu handhaben [Hinweis]
PhytoMine-I hat versucht, mit Python die genetischen Informationen der Pflanze zu erhalten
[REAPER] Wie man Reascript mit Python spielt
[Yahoo! Weather Replacement Version] So erhalten Sie Wetterinformationen mit LINE Notify + Python
Ich habe versucht, CloudWatch-Daten mit Python abzurufen
[Verbesserte Version] Skript zur Überwachung der CPU mit Python
Informationen zu auf YouTube hochgeladenen Videos abrufen [Python]
Beachten Sie, dass Python ein Daemon ist
Holen Sie sich CPU-Informationen von Raspberry Pi mit Python
Holen Sie sich ein Date mit Python
Ich habe versucht, die Filminformationen der TMDb-API mit Python abzurufen
Zubu Amateur will Python starten
Hinweis: So erhalten Sie den letzten Tag des Monats mit Python (hinzugefügt am ersten Tag des Monats)
So fügen Sie HDA Hilfe hinzu (mit Python-Skriptbonus)
Ich habe versucht, mit Blenders Python script_Part 01 zu beginnen
Lesehinweis: Einführung in die Datenanalyse mit Python
Ich habe versucht, mit Blenders Python script_Part 02 zu beginnen
Wie man mit Python-Flüchen ein Urteil über das Mausrad erhält
[Python-pptx] Gibt PowerPoint-Schriftinformationen mit Python in CSV aus
[Python] Mit der API von Qiita erhalten Sie Benutzer- und Artikelinformationen
Stellen Sie mit Python eine Verbindung zu BigQuery her
Holen Sie sich Twitter-Timeline mit Python
POST json mit Python 3-Skript
Holen Sie sich Youtube-Daten mit Python
Post to Slack mit Python 3
Informationen erhalten Sie mit zabbix api
Holen Sie sich die Thread-ID mit Python
Schalten Sie Python mit Alternativen auf 2.7 um
Schreiben Sie mit Python in csv
Beginnen Sie mit Python! ~ ② Grammatik ~
Holen Sie sich Lager mit Python
Holen Sie sich das Home-Verzeichnis mit Python
Holen Sie sich Tastaturereignis mit Python
Mit Python + Selenium erhalten Sie Informationen, die der Registerkarte "Netzwerk" der Chrome-Entwicklertools entsprechen
Versuchen Sie, verschiedene Informationen anzuzeigen, die für das Debuggen mit Python nützlich sind
Mindestkenntnisse, um mit dem Python-Protokollierungsmodul zu beginnen
[Python] Hinweise beim Versuch, Numpy mit Cython zu verwenden
[Python] Ruft das Skriptausführungsverzeichnis mit einem absoluten Pfad ab
So gelangen Sie mit Vagrant in die Python-Entwicklungsumgebung
[Python x Zapier] Erhalten Sie Warninformationen und benachrichtigen Sie mit Slack
Holen Sie sich zusätzliche Daten zu LDAP mit Python (Writer und Reader)
Probieren Sie Juniper JUNOS PyEz (Python-Bibliothek) aus. Hinweis 2 ~ Informationen mit PyEz ~ abrufen ~
Holen Sie sich die Quelle der Seite unbegrenzt mit Python zu laden.
Rufen Sie github api in Python auf, um Informationen zur Pull-Anforderung zu erhalten
So erhalten Sie Informationen von Organisationen, Cost Explorer eines anderen AWS-Kontos bei Lambda (Python)
Holen Sie sich Informationen zu Videodateien mit ffmpeg-python
Python: So verwenden Sie Async mit
Beginnen Sie mit Python! ~ ① Umweltbau ~
[Python] Mit Python in eine CSV-Datei schreiben
Holen Sie sich Bewertungen mit Python Googlemap API
Schön dich mit Python zu treffen
Holen Sie sich das Wetter mit Python-Anfragen
Holen Sie sich Web-Screen-Capture mit Python