
Verwenden des JavaScript Event-Objekts in MainStage
Wenn die Funktion „HandleMIDI“ aufgerufen wird, steht ein Event-Objekt des Scripter-MIDI-Plug-ins für ein MIDI-Event und implementiert mehrere Methoden, die du in einem Skript aufrufen kannst.
Das Event-Objekt wird nicht direkt instanziiert, sondern dient als Prototyp für die folgenden Event-spezifischen Methoden, Eigenschaften und Typen.
Tipp: Mit dem JavaScript-Schlagwort „new“ kannst du für ein beliebiges Event-Objekt eine neue Instanz erstellen.
Event-Methoden
Event.send(): Event wird gesendet.
Event.sendAfterMilliseconds(number ms): Event wird gesendet, sobald ein bestimmter Wert verstrichen ist (dieser Wert kann eine ganze Zahl oder eine Gleitkommazahl sein).
Event.sendAtBeat(number beat): Event wird bei einem bestimmten Takt (Gleitkommazahl) auf dem Zeitstrahl des Host-Programms gesendet.
Event.sendAfterBeats(number beat): Ähnlich wie oben, mit dem Unterschied, dass der Taktwert als Verzögerung in Taktschritten von der aktuellen Position verwendet wird.
Event.trace(): Druckt das Event in der Plug-in-Konsole aus. Weitere Informationen findest du unter Verwenden des Objekts „Trace“.
Event.toString(): Erzeugt eine String-Darstellung des Events.
Event-Eigenschaften
Event.toarticulationID(integer number): Legt die Articulation ID from 0-254 fest.
Event.channel(number): Stellt MIDI-Kanal 1 bis 16 ein.
Event.beatPos: Ruft die exakte Taktposition des Events auf.
Event-Typen
Das Event-Objekt Event ist ein Prototyp für die folgenden Event-Typen. Alle Event-Typen übernehmen die oben beschriebenen Methoden und die Kanaleigenschaften.
Die Event-Typen und die dazugehörigen Eigenschaften werden folgendermaßen an HandleMIDI durchgereicht:
NoteOn.pitch(integer number): Tonhöhe zwischen 1 und 127.
NoteOn.velocity(integer number): Velocity (Anschlagsdynamik) zwischen 0 und 127. Ein Velocity-Wert von 0 wird als Note-Off-Event interpretiert, nicht als Note-On-Event.
NoteOff.pitch(integer number): Tonhöhe zwischen 1 und 127.
NoteOff.velocity(integer number): Velocity (Anschlagsdynamik) zwischen 0 und 127.
PolyPressure.pitch(integer number): Tonhöhe zwischen 1 und 127.
PolyPressure.value(integer number): Definiert den Druckwert zwischen 0 und 127.
ControlChange.number(integer number): Controller-Nummer zwischen 0 und 127.
ControlChange.value(integer number): Controller-Wert zwischen 0 und 127.
ProgramChange.number(integer number): Program Change-Nummer zwischen 0 und 127.
ChannelPressure.value(integer number): Aftertouch-Wert zwischen 0 und 127.
PitchBend.value(integer number): 14-Bit-Pitchbend-Wert zwischen -8192 und 8191. Der Wert 0 stellt die Mitte dar.
TargetEvent.target(string): Erstellt benutzerdefinierbare MIDI CC-Befehle oder steuert Plug-in-Parameter.
TargetEvent.value(float): Legt einen Target-Wert fest.
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.