In diesem Artikel geht es darum, mit Eos ein externes Gerät anzusteuern. Das kann ein Zuspieler für Sounddateien, Video, oder was auch immer sein. Hauptsache das Ding versteht MIDI.
Dieser Artikel ist Teil einer Serie über MIDI. Hier geht es zu den anderen Beiträgen:
- Einleitung
- Licht steuert Ton oder Video (diese Seite)
- Ton steuert Licht mit MIDI Show Control
- Ton steuert Licht mit MIDI Time Code
in diesem Beitrag:
Licht steuert Ton mit MIDI-Standard Befehlen
Du kannst MIDI-Befehle entweder über eine Cue oder über ein Makro absetzen. Das Komplizierte daran ist, die genaue Syntax als hexadezimale Zeichenfolge zu schreiben.
Sehen wir uns die Zeichenfolge zum Senden eines Note-ON Befehls an:
90 18 7F
Der erste Block (90) besteht aus dem Statusbyte des Befehls, in diesem Fall „9“ für Note-ON und der Kennung des MIDI-Kanals, auf dem der Befehl ausgeführt werden soll. Die Zählung des MIDI-Kanals beginnt bei Null, Kanal 1 wird also als 0 geschrieben, Kanal 5 als vier usw. Der MIDI-Kanal in dieser Meldung muss mit dem Empfangskanal des angesteuerten Gerätes übereinstimmen.
Der zweite Block (18) beschreibt die Musiknote, die gespielt werden soll. In diesem Fall ein „C1“
Der dritte Block (7F) beschreibt die Stärke des Anschlags (Velocity) von 1 (schwach) bis 127 (stark) Ein Wert von 0 ist gleich einem Note-OFF zu setzen. Da die Werte hexadezimal erwartet werden, musst du diese erst umrechnen: 127 = 7F
9 | Note-ON | |
0 | MIDI Kanal 1 | 1-1=0 -> Hexadezimal 0 |
1 8 |
Musiknote „C1“ (32,7 Hz) | „C1“ entspricht Midinote Nr 24 -> Hexadezimal 18 |
7 F |
Velocity 127 | 127 -> Hexadezimal 7F |
Zum Umrechnen gibt es Online Tools. Wenn du Windows verwendest, kannst du das aber auch mit dem Standardtaschenrechner in der wissenschaftlichen Ansicht. Ich habe zwar keinen Mac, aber ich denke, beim Apfel gibt es auch so etwas.
Auf dem Blog von Wolf Schuster findest du eine Tabelle mit MIDI-Befehlen und Noten.
Bitte beachte, in den meisten Tabellen ist der Statusbyte in der Form 9nH für Note-ON geschrieben. „H“ steht dabei für Hexadezimal, „n“ ist der Platzhalter für den MIDI-Kanal und „9“ ist das Einzige, was uns interessiert.
Leider gibt es auch bei der Zählung der Noten Unterschiede. Die Einen zählen von C-2 bis G8, die Anderen von C-1 bis G9, So wird das normale „C“ bei 32,703 Hz einmal als C0, dann wieder als C1 bezeichnet.
Code Dezimal eingeben
Du kannst den Befehl auch in dezimalen Zahlen eingeben in dem du ein „D“ voranstellst. Allerdings musst du dann den ersten Block aus Statusbyte und Kanal (90) auch dezimal eingeben. Das ergibt dann 144.
Wenn du dir merkst (oder aufschreibst), das Note-ON auf Midi-Kanal 1 der Zahl 144 entspricht, brauchst du das nächste mal nur den Kanal – 1 dazu addieren.
D 144 24 127 | ||
D | die Zeichenfolge wird dezimal angegeben | |
144 | Note-ON auf Midi Kanal 1 = 90 Hexadezimal oder Note-ON auf Midi Kanal 1 = 144 |
90 Hexadezimal -> 144 Dezimal 144 + (1 – 1) = 144 |
24 | Musiknote „C1“ (32,7 Hz) | „C1“ entspricht Midinote Nr 24 |
127 | Velocity |
MIDI Befehl mit Makro senden
Um den Note-ON Befehl über ein Makro zu senden, gibt es im Makroeditor den Softkey MIDI_Daten_Senden. Wenn du diesen klickst, öffnet sich die virtuelle Tastatur, und du kannst die Zeichenfolge schreiben. Verwende auch für Ziffern die virtuelle oder USB-Tastatur, und nicht die Tastatur der Konsole. Zwischen den Blöcken muss immer genau ein Leerzeichen stehen.
Das fertige Makro schaut dann so aus:
MIDI_Daten_Senden 90 18 7F
MIDI Befehl über Cueliste senden
Den gleichen MIDI-Befehl kannst du auch über eine Cue auslösen. Angenommen, du willst den Note-ON Befehl bei Start der Cue 5 senden. Dann lautet die Syntax so:
Cue 5 Execute MIDI Data 90 18 7F
MIDI Data erreichst du über More SK. In der Spalte Ext Links steht jetzt MIDI „90 18 7F“. Du musst die Zeichenfolge aber ohne Hochkomma eingeben.
Wenn alles richtig verkabelt ist, das Empfangsgerät auf den gleichen MIDI-Kanal hört und MIDI Tx ID und ACN Tx ID übereinstimmen, sollte es schon funktionieren. (siehe Einleitung)
Übrigens, Die Einstellung MSC Senden im Eos-Setup ist für das Senden von MIDI-Standard Befehlen nicht notwendig.
Beispiele
MIDI_Daten_Senden 97 1D 7F | ||
9 | Note-ON | |
7 | MIDI Kanal 8 | 8-1=7 -> Hexadezimal 7 |
1 D |
Musiknote „F1“ (43,7 Hz) | „F1“ entspricht Midinote Nr 29 -> Hexadezimal 1D |
7 F |
Velocity 127 | 127 -> Hexadezimal 7F |
MIDI_Daten_Senden 87 1D 7F oder MIDI_Daten_Senden 97 1D 00 | ||
8 | Note-OFF | |
7 | MIDI Kanal 8 | 8-1=7 -> Hexadezimal 7 |
1 D |
Musiknote „F1“ (43,7 Hz) | „F1“ entspricht Midinote Nr 29 -> Hexadezimal 1D |
7 F |
Velocity 127 | 127 -> Hexadezimal 7F |
Alternativ entspricht ein Note-ON mit Velocity 0 einem Note-OFF Befehl
MIDI_Daten_Senden CF 44 | ||
C | Program Change | |
F | MIDI Kanal 16 | 16-1=15 -> Hexadezimal F |
4 4 |
Programm 68 | 68 -> Hexadezimal 44 |
Cue 13 Execute MIDI Data D 134 36 127 | ||
D | die Zeichenfolge wird dezimal angegeben | |
134 | Note-OFF auf Midi Kanal 7 = 86 Hexadezimal oder Note-OFF auf Midi Kanal 1 = 128 |
86 Hexadezimal -> 134 Dezimal 128 + (7 – 1) = 134 |
36 | Musiknote „C2“ (65,4 Hz) | „C2“ entspricht Midinote Nr 36 |
127 | Velocity |
Licht steuert Ton mit MIDI Show Control
Du kannst MSC Befehle genauso senden, wie die Standard Befehle. Der Unterschied ist nur die Syntax (Eine bessere Anwendung von MSC zeige ich weiter unten).
Und obwohl du Befehle im MSC-Format sendest, brauchst du MSC senden im Setup immer noch nicht einschalten.
Ein MSC Kommando sieht so aus:
F0 7F 01 02 01 01 31 34 F7
F0 | Es folgt eine SysEx Meldung | immer F0 |
7F | Beginn der Meldung | immer 7F |
01 | Device ID 1 | muss bei Sender und Empfänger gleich sein |
02 | SysEx Meldung ist MSC | muss immer 02 sein |
01 | Befehlsformat, 01 steht für Licht | muss bei Sender und Empfänger gleich sein (Ausnahme 7F = All Types) |
01 | Befehl | 01 steht für GO |
31 34 | Wert zum Befehl | hier Cue 14 (Wertberechnung für jeden Befehl anders) |
F7 | Ende der Meldung | immer F7 |
Die Kommandos von MIDI Show Control können sehr schnell sehr komplex werden. Vor allem die Generierung von Werten folgt eigenen, verworrenen Wegen. Wenn du diesen Irrgarten betreten willst, findest du hier ein pdf mit dem MSC-Command Set (englisch)
Für meine Tests habe ich als Abspielsoftware das Programm Show Cue System in einer 30-Tage Demo Version herunter geladen. In diesem Programm kann ich MSC Kommandos zusammen klicken und sehe den Hex-Code als Ergebnis.
Wie von Zauberhand – MSC automatisch senden
Es gibt aber einen wesentlich eleganteren Weg, MIDI Show Control einzusetzen – ganz ohne Hexadezimalcode.
MIDI Show Control wurde entwickelt, damit alle Arten von Wiedergabegeräten miteinander kommunizieren und gemeinsam durch ein Gerät angesteuert werden können. Deshalb hat man sich auf einen gemeinsamen Nenner geeinigt.
Im Prinzip bewirkt ein Go auf einem Lichtpult das Selbe wie der Play-Button auf einem Zuspielgerät (z.B. CD-Player) – der nächste Teil einer vorbereiteten Liste wird abgespielt.
Wenn nun beide Geräte auf den gleichen Befehl in gleicher Weise reagieren, brauchst du nur noch diesen Befehl übertragen. Und da das immer nach gleichen Regeln erfolgt, kann das doch am Besten gleich deine Hard- oder Software für dich erledigen.
Genau das tut Eos für dich, wenn du im Vorstellungs Setup MSC Senden oder MSC Empfangen einschaltest.
Beachte, bisher war es nicht nötig, im Setup der Vorstellung MSC Senden oder MSC Empfangen einzuschalten. Alle Tipps bisher funktionieren auch ohne diese Einstellung.
Du musst aber MSC Senden oder MSC Empfangen einschalten, wenn du Audio- Video und Lichtequipment automatisch über MSC synchronisieren willst.
Immer wenn du ein Makro aufrufst, oder eine Cue abfährst, wird der entsprechende MSC-Befehl automatisch und ohne dein Zutun über MIDI ausgesandt.
Willst du nur von einer speziellen Cueliste MSC Go-Befehle generieren lassen, kannst du das mit MIDI Sequenzliste einstellen. Bleibt das Feld leer, schicken alle Cuelisten den Go-Befehl aus.
Folgende Punkte musst du beachten:
- Das Abspielprogramm muss in der Lage sein, MSC-Kommandos zu verarbeiten.
- Das MSC-Format muss auf 01(LIGHTING GENERAL) oder 7F(All Types) eingestellt sein — Eos sendet im Format 01(LIGHTING GENERAL).
- Die Device-ID im Abspielgerät muss mit dem MSC Sendekanal im Vorstellungs-Setup der Eos übereinstimmen.
- MSC Senden muss in der Eos eingeschaltet sein.
- ACN MIDI TxID muss mit der MIDI TxID im Show Control Gateway übereinstimmen.
Beispiele
Makro ausführen
In deinem Musikprogramm ist eingestellt, dass das Makro 1 die Playlist startet. In Eos hast du MSC Senden eingeschaltet und ein Makro 1 erstellt. Immer wenn du jetzt in Eos das Makro 1 ausführst, wird auf dem Abspielgerät die Playlist gestartet.
Das beste darin ist, das Makro kann auch vollkommen leer sein. Das ist egal, du willst ja nur übertragen „führe Makro 1 aus”. Was dann geschieht , entscheidet der Empfänger.
Cue starten
Deine Cue 15 startet ein Blitzlichtgewitter. Gleichzeitig soll der Ton ein Donnergrollen einspielen. Im Abspielprogramm wird das Donnergrollen auf Cue(Spur) 15 gelegt und als Trigger (Auslöser) MIDI eingestellt. Immer wenn du Cue 15 abfährst, startet auch das Donnergrollen.
Dieser Artikel ist Teil einer Serie über MIDI. Hier geht es zu den anderen Beiträgen:
- Einleitung
- Licht steuert Ton oder Video (diese Seite)
- Ton steuert Licht mit MIDI Show Control
- Ton steuert Licht mit MIDI Time Code