
Funktion „ProcessMIDI“ im Scripter-MIDI-Plug-in in MainStage
Mit der Funktion ProcessMIDI () kannst du zyklische Aufgaben ausführen, d. h. Aufgabe, bei denen Timing eine zentrale Rolle spielt. Diese Funktion bietet sich bei Skripts von Sequenzern, Arpeggiatoren oder anderen zeitgebundenen MIDI-Effekten an. Für Anwendungen, bei denen Informationen vom Host über das musikalische Timing keine Rolle spielen, wird ProcessMIDI in der Regel nicht benötigt. ProcessMIDI wird einmal pro „Verarbeitungsblock“ aufgerufen. Dieser Verarbeitungsblock bestimmt sich nach den Audio-Einstellungen des Hosts (Sample-Rate und Größe des Puffers).
Diese Funktion wird häufig in Verbindung mit dem „TimingInfo object“ verwendet, um die Timing-Informationen von MainStageverfügbar sind. Das Beispiel zeigt, wie ProcessMIDI und das TimingInfo-Objekt verwendet werden. Weitere Informationen findest du auch unter Verwenden des JavaScript TimingInfo-Objekts.
Lade die entsprechende Tutorial-Einstellung, um das Skript im Skripteditor anzuzeigen. Dies erleichtert das Verständnis der Syntaxstruktur und des Layouts von Code und Kommentaren. Weitere Informationen findest du unter Verwenden des Script Editors.
Wichtig: Zum Aktivieren der Funktion „GetTimingInfo“ musst du var NeedsTimingInfo = true; auf globaler Skriptebene (außerhalb der Funktionen) hinzufügen.
Tutorial-Skript 5: Process MIDI Callback
Text nach „/*“ zeigt Kommentare an, die den JavaScript-Code erklären.
/* Define NeedsTimingInfo as true at the global level to enable GetHostInfo() */
var NeedsTimingInfo = true;
function ProcessMIDI() {
var info = GetTimingInfo(); /* get a TimingInfo object from the host
if the transport is running */
if (info.playing) {
Trace(info.tempo); /* print the tempo in the plug-in console */
}
}