MainStage– Benutzerhandbuch
- Willkommen
-
- Übersicht über den Bearbeitungsmodus
-
- Auswählen von Patches und Sets in der Patch-Liste
- Kopieren, Einsetzen und Löschen von Patches
- Organisieren und Bewegen von Patches innerhalb der Patch-Liste
- Hinzufügen und Umbenennen von Patches
- Erzeugen eines Patches aus mehreren Patches
-
- Übersicht über das Informationsfenster „Patch-Einstellungen“
- Auswählen von Patch-Einstellungen in der Patch-Bibliothek
- Festlegen der Taktart für Patches
- Ändern des Tempos beim Auswählen eines Patches
- Einstellen der Program Change- und Banknummern
- Hinauszögern eines Patch-Wechsels
- Sofortige Stille für vorheriges Patch
- Ändern von Patch-Symbolen
- Transponieren der Tonhöhe der eingehenden Noten für ein Patch
- Ändern der Stimmung für ein Patch
- Hinzufügen von Textnotizen zu einem Patch
-
- Übersicht über Channel-Strips
- Hinzufügen eines Channel-Strips
- Ändern eines Channel-Strip-Settings
- Konfigurieren von Channel-Strip-Komponenten
- Anzeigen der Signalfluss-Channel-Strips
- Ausblenden des Metronom-Channel-Strips
- Erzeugen eines Alias für einen Channel-Strip
- Hinzufügen eines Patch-Busses
- Einstellen der Pan-/Balance-Position eines Channel-Strips
- Festlegen der Channel-Strip-Lautstärkepegel
- Channel-Strips stumm- oder solo schalten
- Verwenden des Outputs mehrerer Instrumente
- Verwenden von externen MIDI-Instrumenten
- Neuorganisieren von Channel-Strips
- Channel-Strips löschen
-
- Übersicht über das Informationsfenster „Channel-Strips“
- Auswählen von Channel-Strip-Settings
- Umbenennen von Channel-Strips
- Ändern der Farben von Channel-Strips
- Ändern der Symbole von Channel-Strips
- Schutz vor Feedback/Rückkopplungen bei Channel-Strips
- Festlegen des Keyboard-Inputs bei Channel-Strips für Software-Instruments
- Transponieren einzelner Software-Instruments
- Filtern von MIDI-Befehlen
- Skalieren der Velocity für einen Channel-Strip
- Einstellen von Channel-Strips zum Ignorieren von „Hermode Tuning“
- Ignorieren der auf der Concert- und Set-Ebene festgelegten Tonumfänge
- Textnotizen zu einem Channel-Strip in den Channel-Strip-Informationen hinzufügen
- Routen von Audio über Send-Effekte
-
- Bildschirmsteuerung-Infos – Übersicht
- Ersetzen von Parameterbeschriftungen
- Wählen eigener Farben für Bildschirmsteuerungen
- Ändern des Erscheinungsbilds einer Hintergrund-Bildschirmsteuerung oder einer gruppierten Steuerung
- Einstellen von Bildschirmsteuerungen zum Anzeigen des Hardware-Werts
- Einstellen des Verhaltens bei Parameteränderungen für Bildschirmsteuerungen
- Einstellen des Hardware-Matching-Verhaltens für Bildschirmsteuerungen
- Zurücksetzen und Vergleichen von Änderungen an einem Patch
- Ignorieren von Mappings auf der Concert- und Set-Ebene
-
- Übersicht über das Mapping für Bildschirmsteuerungen
- Mappen auf Channel-Strip- und Plug-in-Parameter
- Mapping zwischen Bildschirmsteuerungen und Aktionen
- Mapping zwischen einer Bildschirmsteuerung und mehreren Parametern
- Verwenden von Bildschirmsteuerungen zum Anzeigen von PDF-Seiten
- Bearbeiten des gesicherten Werts für einen gemappten Parameter
- Einstellen von Drum-Pads oder Schaltern/Tasten zum Verwenden des Noten-Anschlags
- Mapping zwischen Bildschirmsteuerungen und allen Channel-Strips in einem Patch
- Aufheben der Mappings zwischen Bildschirmsteuerungen und Parametern
- Entfernen von Mappings für Bildschirmsteuerungen
- Arbeiten mit Kurven
- Erzeugen von Controller-Transforms
-
- Übersicht über das Arbeiten mit Sets
- Erstellen von Sets
- Umbenennen von Sets
- Einklappen von Sets in der Patch-Liste
- Ignorieren der Tonumfänge auf der Concert-Ebene für ein Set
- Löschen von Sets
- Hinzufügen eines Channel-Strips auf der Set-Ebene
-
- Übersicht über das Informationsfenster „Set-Einstellungen“
- Festlegen der Taktart für Sets
- Wechseln des Tempos beim Auswählen eines Sets
- Auswählen einer Farbe für den Set-Ordner in der Patch-Liste
- Transponieren der Tonhöhe der eingehenden Noten für ein Set
- Ändern der Stimmung für Sets
- Hinzufügen von Textnotizen zu einem Set
- Gemeinsames Nutzen von Patches und Sets zwischen Concerts
- Aufnehmen des Audio-Outputs eines Concerts
-
- Übersicht über Concerts
- Erstellen von Concerts
- Öffnen und Schließen von Concerts
- Sichern von Concerts
- Auswirkungen des Sicherns auf Parameterwerte
- Aufräumen von Concerts
- Zusammenlegen von Medien in einem Concert
- Umbenennen des aktuellen Concerts
-
- Übersicht über das Informationsfenster „Concert-Einstellungen“
- Festlegen von MIDI-Routing für Channel-Strips
- Transponieren der Tonhöhe eingehender Noten für ein Concert
- Festlegen der Quelle für Program Change-Befehle
- Senden nicht verwendeter Program Changes an Channel-Strips
- Festlegen der Taktart für ein Concert
- Ändern der Stimmung für ein Concert
- Bestimmen des Pan Law für ein Concert
- Hinzufügen von Textnotizen zu einem Concert
- Steuern des Metronoms
- Ausschalten von MIDI-Noten
- Stummschalten von Audio-Output
-
- Layout-Modus – Übersicht
-
- Bildschirmsteuerungen – Übersicht
- Kopieren und Einsetzen von Bildschirmsteuerungen
- Bewegen von Bildschirmsteuerungen
- Ändern der Größe von Bildschirmsteuerungen
- Ausrichten und Verteilen von Bildschirmsteuerungen
- Anpassen des Sockels einer Shelf-Steuerung
- Gruppieren von Bildschirmsteuerungen
- Löschen von Bildschirmsteuerungen
-
- Bearbeiten der Parameter für Bildschirmsteuerungen – Übersicht
- Extrahieren und Übernehmen von Parametern für Bildschirmsteuerungen
- Zurücksetzen der Parameter für Bildschirmsteuerungen
- Gemeinsame Parameter für Bildschirmsteuerungen
- Parameter für Keyboard-Bildschirmsteuerungen
- Parameter für MIDI-Aktivität-Bildschirmsteuerungen
- Parameter für Drum-Pad-Bildschirmsteuerungen
- Parameter für Wellenform-Bildschirmsteuerungen
- Parameter für Auswahl-Bildschirmsteuerungen
- Parameter für Text-Bildschirmsteuerungen
- Parameter für Hintergrund-Bildschirmsteuerungen
- So schleift MainStage MIDI-Befehle durch
- Exportieren und Importieren von Layouts
- Ändern des Seitenverhältnisses eines Layouts
-
- Vor der Live-Performance
- Verwenden des Perform-Modus
- Bildschirmsteuerungen während der Performance
- Tempo-Änderungen während der Performance
- Tipps für die Performance mit Keyboard-Controllern
- Tipps für die Performance mit Gitarren und anderen Instrumenten
- Stimmen von Gitarren und anderen Instrumenten mit dem Stimmgerät
- Das Playback-Plug-in während der Performance
- Aufnehmen deiner Performance
- Nach der Performance
- Tipps für komplexe Hardware-Setups
-
- Übersicht über die Tastaturkurzbefehle und Befehlskonfigurationen
-
- Tastaturkurzbefehle für Concerts und Layouts
- Tastaturkurzbefehle für Patches und Sets (Bearbeitungsmodus)
- Tastaturkurzbefehle für die Bearbeitung
- Tastaturkurzbefehle für Aktionen
- Tastaturkurzbefehle für Parameter-Mapping (Bearbeitungsmodus)
- Tastaturkurzbefehle für Channel-Strips (Bearbeitungsmodus)
- Tastaturkurzbefehle für Bildschirmsteuerungen (Layout-Modus)
- Tastaturkurzbefehle für „Im Vollbildmodus ausführen“
- Tastaturkurzbefehle für Fenster und Ansicht
- Tastaturkurzbefehle für Hilfe und Support
-
-
- Delay-Effekt – Übersicht
- Echo-Steuerelemente
-
- Loopback – Übersicht
- Loopback-Instanz hinzufügen
- Loopback-Oberfläche
- Wellenformanzeige von Loopback
- Transportsteuerung und Funktionssteuerelemente von Loopback
- Informationsanzeige von Loopback
- Loopback-Parameter „Sync“, „Snap“ und „Play From“
- Verwenden der Loopback-Gruppenfunktionen
- Aktionsmenü „Loopback“
- Sample Delay-Steuerung
- Stereo Delay-Steuerung
- Tape Delay-Steuerung
-
- Filtereffekte – Übersicht
-
- EVOC 20 TrackOscillator – Übersicht
- Vocoder – Übersicht
- Bedienungsoberfläche des EVOC 20 TrackOscillator
- Steuerungen für „Analysis In“
- Steuerungen für „U/V Detection“
- Steuerungen für „Synthesis In“
- Steuerungen des Tracking-Oszillators
- Tonhöhensteuerungen des Tracking-Oszillators
- Steuerungen für Formant-Filter
- Modulation-Steuerungen
- Output-Steuerungen
-
- Verwenden von MIDI-Plug-ins
-
- Arpeggiator – Übersicht
- Parameter für die Arpeggiator-Steuerung
- Parameter für Notenfolge – Übersicht
- Notenfolge-Variationen
- Notenfolge-Inversionen
- Parameter für Arpeggio-Pattern – Übersicht
- Live-Modus verwenden
- Grid-Modus verwenden
- Optionsparameter des Arpeggiators
- Keyboard-Parameter des Arpeggiators
- Verwenden der Keyboard-Parameter
- Controller zuweisen
- Modifier-Steuerungen
- Steuerungen für „Note Repeater“
- Steuerungen in „Randomizer“
-
- Verwenden von Scripter
- Verwenden des Script Editors
- Scripter-API – Übersicht
- Funktionen für die MIDI-Verarbeitung – Übersicht
- Funktion „HandleMIDI“
- Funktion „ProcessMIDI“
- Funktion „GetParameter“
- Funktion „SetParameter“
- Funktion „ParameterChanged“
- Reset-Funktion
- JavaScript-Objekte – Übersicht
- Verwenden des JavaScript Event-Objekts
- Verwenden des JavaScript TimingInfo-Objekts
- Verwenden des Objekts „Trace“
- Verwenden der beatPos-Eigenschaft des MIDI-Events
- Verwenden des JavaScript MIDI-Objekts
- Erstellen von Scripter-Steuerungen
- Transposer-Steuerungen
-
-
- Alchemy – Übersicht
- Alchemy-Benutzeroberfläche – Übersicht
- Alchemy-Leiste „Name“
- Alchemy-Dateipositionen
-
- Alchemy-Source – Übersicht
- Source-Master-Steuerungen
- Importübersicht
- Steuerungen der Source-Unterseite
- Source-Filter-Steuerelemente
- Tipps zur Verwendung von-Source-Filtern
- Source-Elemente – Übersicht
- Additivelement-Steuerungen
- Additivelement-Effekte
- Spektralelement-Steuerungen
- Spektralelement-Effekte
- Parameter zur Tonhöhenkorrektur
- Steuerungen für Formant-Filter
- Granularelement-Steuerungen
- Sampler-Element-Steuerungen
- VA-Element-Steuerungen
- Source-Modulationen
- Morph-Steuerungen
-
- Alchemy-Source-Bearbeitungsfenster – Übersicht
- Globale Steuerungen des Informationsfensters
- Gruppensteuerungen im Informationsfenster
- Zonensteuerungen im Informationsfenster
- Keymap-Editor
- Wellenformeditor für Zonen
- Bearbeitungsfenster „Additive“ – Übersicht
- Teilton-Balkendarstellung
- Steuerungen für Teiltonhüllkurve
- Bearbeitungsfenster „Spectral“
- Alchemy-Master-Stimmenbereich
-
- Alchemy-Modulation – Übersicht
- Modulationsrack-Steuerungen
- LFO-Steuerungen
- Steuerungen für AHDSR-Hüllkurven
- Steuerungen für Hüllkurven mit mehreren Segmenten
- Sequenzer
- Parameter für „Envelope Follower“
- ModMap-Parameter
- MIDI-Steuerungsmodulatoren
- Noteneigenschaftsmodulatoren
- Perform-Steuerungsmodulatoren
- Erweiterte Parameter in Alchemy
-
- ES2 – Übersicht
- Bedienoberfläche des ES2
-
- Oszillator-Parameter – Übersicht
- Grundlegende Oszillator-Wellenformen
- Verwenden der Pulsbreitenmodulation
- Verwenden der Frequenzmodulation
- Verwenden der Ringmodulation
- Verwenden von Digiwaves
- Verwenden des Noise-Generators
- Verstimmen von Analog-Oszillatoren
- Streckung
- Ausgleichen von Oszillatorpegeln
- Festlegen von Oszillator-Startpunkten
- Synchronisieren von Oszillatoren
-
- ES2-Modulation – Übersicht
- Verwenden der LFOs
- Verwenden der Vector-Hüllkurve
-
- Verwenden der Vector Envelope-Punkte
- Solo- und Sustain-Punkte der Vector-Hüllkurve verwenden
- Vector-Hüllkurven-Loops einrichten
- Release-Verhalten von Vector Envelope
- Kurvenformen für die Übergangspunkte der Vector-Hüllkurve
- Zeiten für die Vector-Hüllkurve festlegen
- Verwenden der Zeitskalierung für die Vector-Hüllkurve
- Kontextmenü von Vector Envelope verwenden
- Verwenden von Planar Pad
- Referenz der Modulationsquellen
- Referenz der „Via“-Modulationsquellen
- Steuerungen des integrierter Effektprozessors des ES2
- Erweiterte Parameter
-
-
- Playback-Plug-in – Übersicht
- Playback Plug-in hinzufügen
- Playback-Benutzeroberfläche
- Playback-Wellenformanzeige verwenden
- Transportsteuerungs- und Funktionstasten von Playback
- Informationsanzeige von Playback
- Playback-Parameter „Sync“, „Snap“ und „Wiedergabe ab“
- Verwenden der Playback-Gruppenfunktionen
- Verwenden des Aktionsmenüs und Felds „Datei“ in Playback
- Verwenden von Markern mit dem Playback-Plug-in
-
- Quick Sampler – Übersicht
- Audio zu Quick Sampler hinzufügen
- Quick Sampler – Wellenformanzeige
- Verwenden von Flex in Quick Sampler
- Pitch-Steuerungen von Quick Sampler
- Filter-Steuerungen von Quick Sampler
- Filtertypen von Quick Sampler
- Amp-Steuerungen von Quick Sampler
- Erweiterte Parameter von Quick Sampler
-
- Sample Alchemy – Übersicht
- Benutzeroberfläche – Übersicht
- Quellenmaterial hinzufügen
- Bearbeitungsmodus
- Wiedergabemodi
- Source-Übersicht
- Synthesemodi
- Granular-Steuerungen
- Additiveffekte
- Additiveffekt-Steuerungen
- Spektraleffekt
- Spektraleffekt-Steuerungen
- Modul „Filter“
- Lowpass- und Highpass-Filter
- Filter „Comb PM“:
- Filter „Downsampler“
- Filter „FM“
- Hüllkurvengeneratoren
- Mod Matrix
- Modulationsrouting
- Modus „Motion“
- Modus „Trim“
- Menü „More“
-
- Sampler – Übersicht
- Laden und Sichern von Sampler-Instrumenten im Sampler
-
- Sampler-Bereiche „Mapping“ und „Zone“ – Übersicht
- Verwenden des Key Mapping Editor
- Verwenden der Gruppenansicht
- Vornehmen einer erweiterten Gruppenauswahl
- Ein- und Ausblenden zwischen Sample-Gruppen
- Verwenden der Zonenansicht
- Menübefehle im Bereich „Mapping“ verwenden
- Verwenden des Bereichs „Zone“
- Synchronisieren von Audiomaterial mit dem Flex-Modus
- Artikulationsverarbeitung in Sampler
- Speicherverwaltung von Sampler
- Erweiterte Parameter von Sampler
-
- Sculpture – Übersicht
- Die Oberfläche von Sculpture
- Globale Parameter
- Parameter der Amplitudenhüllkurve einstellen
- Verwenden des Waveshaper
- Filter-Parameter
- Output-Parameter
- Definieren von MIDI-Controllern
- Erweiterte Parameter
-
-
- Programmieren von elektrischen Bässen – Übersicht
- Grundlegenden Bass-Sound programmieren
- Grundlegenden Bass-Sound neu definieren
- Einen mit Plektrum gespielten Bass-Sound programmieren
- Einen Slap-Bass-Sound programmieren
- Einen Fretless-Bass-Sound programmieren
- Hinzufügen von Effekten zum selbst erstellten Bass-Sound
-
- Ultrabeat – Übersicht
- Bedienoberfläche von Ultrabeat
- Synthesizer-Bereich – Übersicht
-
- Oszillator – Übersicht
- Phasenoszillator-Modus von Oszillator 1
- Verwenden des FM-Modus von Oszillator 1
- Sidechain-Modus von Oszillator 1
- Phasenoszillator-Modus von Oszillator 2
- Wellenformeigenschaften
- Verwenden des Sample-Modus von Oszillator 2
- Verwenden des Modeling-Modus von Oszillator 2
- Steuerungen des Ringmodulators
- Steuerungen des Rauschgenerators
- Steuerungen für den Filterbereich
- Steuerungen des Distortion-Schaltkreises
- Copyright
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.
Tutorial-Skript 7: Event Creation
In MainStageersetzt dieses Beispiel jedes eingegangene MIDI-Event durch einen Befehl zur Änderung der Modulationssteuerung.
Text nach „/*“ zeigt Kommentare an, die den JavaScript-Code erklären.
Tipp: Mit dem JavaScript-Schlagwort „new“ kannst du für ein beliebiges Event-Objekt eine neue Instanz erstellen.
function HandleMIDI() {
var cc = new ControlChange; /* make a new control change message */
cc.number = 1; /* set it to controller 1 (modulation) */
cc.value = 100; /* set the value */
cc.send(); /* send the event */
cc.trace(); /* print the event to the console */
}
Tutorial-Skript 8: Event Modification
In MainStageersetzt dieses Beispiel jedes eingegangene MIDI-Event durch Note-On/Note-Off auf C3. Das Beispiel verwendet auch die NeedsTimingInfo-Variable. Weitere Informationen findest du unter Verwenden des JavaScript TimingInfo-Objekts.
Text nach „/*“ zeigt Kommentare an, die den JavaScript-Code erklären.
Tipp: Mit dem JavaScript-Schlagwort „new“ kannst du für ein beliebiges Event-Objekt eine neue Instanz erstellen.
var NeedsTimingInfo = true; /* needed for .sendAfterBeats() to work */
function HandleMIDI() {
var on = new NoteOn; /* make a new note on */
on.pitch = 60; /* set its pitch to C3 */
on.send(); /* send the note */
var off = new NoteOff(on); /* make a note off using the note on to initialize its pitch value (to C3) */
off.sendAfterBeats(1); /* send a note off one beat later */
}
Tutorial-Skript 15: Control Plug-ins
In MainStagekannst du benutzerdefinierbare MIDI CC-Befehle erstellen oder Plug-in-Parameter steuern. TargetEvent liest den zu ändernden Parameter aus einem Menü, in dem ein Benutzer einen Ziel-MIDI CC-Befehl auswählen kann. Alternativ kannst du auch die Funktion „Learn Plug-in Parameter“ verwenden, um einen Plug-in-Parameter zuzuweisen, der nach (unter) dem Scripter in demselben Channel-Strip eingesetzt wird. Das gewählte Ziel wird mit dem Plug-in-Setting gesichert.
Text nach „/*“ zeigt Kommentare an, die den JavaScript-Code erklären.
Tipp: Mit dem JavaScript-Schlagwort „new“ kannst du für ein beliebiges Event-Objekt eine neue Instanz erstellen.
TargetEvent properties:
TargetEvent.target(string) /* Name of target menu entry */
TargetEvent.value(float) /* Value of set Target from 0.0 to 1.0 */
Mit dem Code werden Plug-in-Parameter mit dem Modwheel gesteuert. Zum Testen der Funktion in Tutorial-Skript 15 füge ein beliebiges Plug-in oder Software-Instrument im selben Kanal ein und führe dann das Skript aus. Wähle „Learn Plug-in Parameter“ im Menü aus, klicke dann auf einen Plug-in-Parameter, um ihn mit dem Modwheel zu steuern.
Erstelle ein Menü für das Modwheel-Ziel, indem du den Menüeintrag benennst und dafür den „Ziel“-Typ festlegst.
var PluginParameters = [
/* parameter 0 */
{
name:"Modwheel Target",
type:"target"
}];
HandleMIDI wird immer dann aufgerufen, wenn Scripter ein MIDI-Event in Tutorial-Skript 15 empfängt. Der unten gezeigten Code weist das Modwheel dem im Menü ausgewählten Ziel zu.
function HandleMIDI(incomingEvent)
{
/* remap modulation to target selected in menu and
check for incoming CC event with number 1 (Modwheel) */
if ((incomingEvent instanceof ControlChange) && (incomingEvent.number == 1))
{
var newEvent = new TargetEvent(); /* create new Target event */
newEvent.target = "Modwheel Target"; /* name the menu entry to be used by this event */
newEvent.value = incomingEvent.value / 127; /* rescale from 0..127 to 0.0...1.0 */
newEvent.send(); /* send the event */
} else
{
/* send all other events */
incomingEvent.send();
};
};