Fernsteuerung mit SAS
Aus mAirListWiki
SAS ist ein Protokoll zur Kommunikation zwischen einem Mischpult und einer Sendeablaufsteuerung. Es wurde ursprünglich für die Mischpultserie diamond der Firma Lawo entwickelt und kommt dort inzwischen, in einem etwas verringerten Funktionsumfang, auch in den Produkten zirkon und crystal zum Einsatz.
Die mAirList-Anbindung ist speziell auf die Funktionen des zirkon und des crystal abgestimmt. Bis einschließlich mAirList 3.0.2 war nur eine rudimentäre Ankopplung mittels GPI und Scripts möglich. Ab Version 3.0.3 enthält mAirList eine komfortablere Schnittstelle, die in diesem Artikel beschrieben wird.
Inhaltsverzeichnis |
Funktionsumfang
Die SAS-Schnittstelle von mAirList beherrscht die folgenden Funktionen:
- Automatisches Starten und Stoppen von Playern beim Öffnen und Schließen eines Mischpultfaders.
- Automatische PFL-Schaltung des Players beim Betätigen der PFL-Taste am Mischpult.
- Zuweisung von Faderstart-Befehlen an GPIO-Signale.
- Verschiedene Aktionen z.B. für die Verwendung in Scripts:
- Fader-Lautstärke verändern
- Input Gain verändern
- PFL eines Kanals ein- und ausschalten
- GPO ein- oder ausschalten
- Script-Interface für eigene Erweiterungen
- Notification-Script-Erweiterungen für die Reaktion auf beliebige SAS-Kommandos
Konfiguration
Um die SAS-Anbindung einzurichten, startet man zunächst das Konfigurationsprogramm und geht auf die Seite Fernsteuerung. Es ist jetzt zunächst zu entscheiden, auf welchem Weg die Kommunikation mit dem Pult erfolgen soll:
- Seriell per RS232 oder RS422 (zirkon und crystal)
- über TCP/IP (zirkon: ab Firmware-Version 2.8; crystal: alle Versionen)
Klicken Sie auf den Button Hinzufügen und wählen Sie entsprechend SAS (seriell) oder SAS over IP (TCP/IP).
Es erscheint nun der SAS-Konfigurationsdialog, der aus verschiedenen Seiten besteht.
Kommunikation
Bei einer seriellen Anbindung wählen Sie hier die Schnittstelle aus (z.B. COM1). Wichtig: Sie müssen außerdem im Konfigurationsprogramm unter Verschiedenes -> Serielle Schnittstellen die Schnitstellen-Parameter festlegen. Für SAS ist dies im Normalfall 38400/8N1.
Bei einer Anbindung über TCP/IP (nur crystal) tragen Sie die IP-Adresse und den Port (normalerweise 18512) des Mischpultes ein. Das Pult muss außerdem so konfiguriert sein, dass es TCP-Verbindungen für SAS annimmt. Dazu müssen Sie im Zirkon-Konfigurationsprogramm unter System -> Definition -> Parameter = OnAirControl die Option TCP Mode aktivieren.
GPI
Die Pulte bieten die Möglichkeit, im Zirkon-Konfigurationsprogramm unter System -> Definition -> OnAirControl 64 sogenannte GPO.OAC-Signale mit beliebigen Zuständen zu belegen, deren Änderungen dann per SAS an die Sendeablaufsteuerung gemeldet werden (auf der Empfängerseite werden die Meldungen dann als GPI bezeichnet). Zum Beispiel können Sie den Druck einer Taste am Mischpult mit einem GPO verknüfen. Weitere Informationen zur Einrichtung von GPIO finden Sie in der Dokumentation Ihres Mischpultes.
Sie können für jedes der 64 Signale je einen Faderstart-Befehl festlegen, der beim Einschalten bzw. beim Ausschalten des Signals ausgelöst werden soll. Klicken Sie dazu in der Tabelle das gewünschte Feld an, drücken Sie F2 und wählen Sie einen Befehl aus der Liste aus.
Player
Auf dieser Seite wird die automatische Ansteuerung der Player konfiguriert. Ziel ist es, den Player beim Öffnen eines Faders automatisch zu starten, und beim Schließen des Faders wieder zu stoppen. Außerdem soll der Player beim Aktivieren der PFL-Funktion des Faders automatisch in den Vorhörmodus gehen, und beim Deaktivieren von PFL den Vorhörmodus wieder stoppen.
Um die automatische Player-Ansteuerung zu aktivieren, geben Sie zunächst für jeden Player den Namen der zugehörigen Quelle an genauso, wie Sie in den Displays auf dem Mischpult erscheint.
Weiterhin müssen Sie eine GPO.OAC-Nummer angeben. Dies hat den folgenden Hintergrund: Leider melden die Mischpulte in den derzeitigen Firmware-Versionen das Öffnen und Schließen des Faders und ggf. der Channel-On/Off-Tasten nicht direkt per SAS an die Sendeablaufsteuerung. Stattdessen müssen diese Ereignisse zunächst einem GPO.OAC-Signal zugewiesen werden, das dann wiederum von der Sendeablaufsteuerung abgefragt werden kann.
Das Festlegen der GPO.OAC-Signale geschieht im Zirkon-Konfigurationsprogramm unter System -> Definition -> Parameter = OnAirControl. Welches Signal dort genau zugewiesen werden muss, hängt von der Art des Mischpultes und der Konfiguration der On/Off-Tasten der Fader ab:
- Bei einem Pult ohne Motorfader (crystal) werden die On/Off-Tasten üblicherweise als echte Channel-On/Off-Tasten verwendet, sie schalten also den Kanal additiv zur Fadereinstellung an oder aus. Für das GPO-Signal ist also ein Logikzustand zu wählen, der die Stellung des Faders und die Channel-On-Eigenschaft miteinander verknüpft. Praktischerweise ist ein solcher Zustand in der Zirkon-Konfiguration bereits vordefiniert. Er befindet sich z.B. für die Quelle AES 1 unter Logic -> ON-AIR -> AND8 AES 1 on -> Out.
- Bei einem Pult mit Motorfadern können die On/Off-Tasten des Faders auch so konfiguriert werden, dass sie beim Drücken den Fader auf 0dB bzw. wieder zurück fahren. In diesem Falle ist der Kanal intern immer "eingeschaltet", und der Channel-On-Zustand wird gar nicht verändert. Daher kann das GPO-Signal direkt auf den Logikzustand Logic -> Machines -> Source Stereo AES 1 -> Fader Result Start gesetzt werden (hier wieder beispielhaft für den Eingang AES 1).
Konfigurieren Sie für jeden Eingang ein entsprechendes GPO.OAC-Signal und tragen Sie die Nummer jeweils in der mAirList-Konfiguration ein.
Weiterhin stehen für jeden Player noch zwei Optionen zur Verfügung:
- Automatische PFL-Schaltung: Wenn aktiviert, dann geht der Player automatisch in den PFL-Modus, wenn am Mischpult die PFL-Taste des Kanalzuges gedrückt wird, und umgekehrt (Klick auf PFL im Player aktiviert PFL am Mischpult).
- PAUSE/STOP benutzen: Wird diese Option aktiviert, dann geht ein noch nicht zuende gelaufener Player beim Herunterziehen des Faders zuerst in den Pause-Modus (entspricht den Befehl PLAYER x-y PAUSE/STOP anstatt PLAYER x-y STOP). Je nach Konfiguration des Players stoppt und entlädt er sich erst dann, wenn ein anderer Player gestatet wurde.
Andere Quellen
Das SAS-Protokoll sieht vor, dass alle Quellen, die man per SAS manipulieren möchte, zunächst "selektiert" werden. Für die Quellen, die den Playern zugeordnet sind, macht mAirList dies automatisch beim Programmstart. Falls Sie weitere Quellen als die der Player mit mAirList steuern wollen, zum Beispiel in Scripts oder Aktionen, dann geben Sie hier die Namen der Quellen (einen pro Zeile) ein. Auch diese werden dann beim Programmstart selektiert.
Aktionen
Die SAS-Schnittstelle von mAirList stellt Ihnen verschiedene Möglichkeiten zur Verfügung, mittels Aktionen bestimmte Funktionen des Pultes fernzusteuern. Diese können beispielsweise in der Event-Verwaltung verwendet werden.
Bei den Aktionen, die sich auf einen Fader bzw. eine Quelle beziehen, muss jeweils der Name der Quelle angegeben werden. Dazu ist es wichtig, dass diese Quelle in der SAS-Konfiguration aktiviert wurde wie oben beschrieben: Sie muss entweder einem Player zugewiesen oder unter Andere Quellen eingetragen sein.
Folgende Aktionen stehen im Untermenü SAS zur Verfügung:
- Fader-Lautstärke setzen: Der Fader des Kanals wird auf den angegebenen dB-Wert gefahren. Optional kann eine Länge für einen Blende angegeben werden. Bei zirkon-Pulten wird der Motorfader am Pult bewegt. Bei crystal-Pulten wird ein "interner" Fader verändert, der additiv zum physikalischen Pult-Fader wirkt.
- Fader-Input-Gain setzen: Der Input Gain der Quelle wird auf den angegebenen Wert gesetzt.
- PFL einschalten und PFL ausschalten: Mit diesen Aktionen kann eine Quelle in den PFL-Modus geschaltet werden.
- Faderstart-Lich einschalten und Faderstart-Licht ausschalten: Schaltet die Beleuchtung der Start-Taste des Kanals ein oder aus. (Ob diese Funktion vom zirkon oder crystal tatsächlich unterstützt wird, ist nicht sicher.)
- GPI einschalten und GPI ausschalten: Verändert den Wert eines GPIs, der in Zirkon-Konfiguration als GPI.OAC einer Logik zugewiesen werden kann.
Für den unwahrscheinlichen Fall, dass mehr als ein Mischpult gleichzeitig per SAS mit mAirList verbunden ist, kann auf der Seite "Optionen" ausgewählt werden, auf welche der SAS-Fernsteuerungen sich die Befehle beziehen sollen.
Script-Schnittstelle
Die SAS-Funktionen stehen auch für die Scriptprogrammierung zur Verfügung. Die Script-Erweiterung gliedert sich in zwei Teile: Das ISASRemote-Interface zum aktiven Zugriff auf die Schnittstelle, und einige Erweiterungen für Benachrichtigungs-Scripts (notification scripts).
ISASRemote
Der Befehl
function SASRemote(Index: integer): ISASRemote;
liefert ein ISASRemote
-Interface auf das Fernsteuerungs-Objekt zurück, das die Grundlage für die Kommunikation mit der SAS-Schnittstelle bildet. Als Index ist die 0-basierte Nummer der Fernsteuerung anzugeben. Wenn also nur eine SAS-Fernsteuerung konfiguriert ist, erreichen Sie diese über SASRemote(0)
.
Im folgenden gehen wir auf die wichtigsten Methoden von ISASRemote
ein. Eine komplette Referenz aller Methoden finden Sie in der mAirListScript-Hilfe.
procedure SendCommand(iCommand: byte; iData: AnsiString); stdcall;
Sendet ein SAS-Kommando. Damit hat man vollen Zugriff auf die Schnittstelle. Die Daten müssen selbst als String codiert werden (z.B. mit der chr()
-Funktion).
function GetFader(iSourceName: string): byte; stdcall;
Gibt die SAS-Fadernummer der Quelle zurück. mAirList selektiert alle in der Konfiguration angegebenen Quellen automatisch und verwaltet die Fadernummern. Mit dieser Funktion kann man auf die Fadernummer zugreifen.
procedure SetFaderInputGain(iSourceName: string; iLevel: ShortInt); stdcall;
Setzt den Fader-Input-Gain auf den angegebenen Wert in dB.
procedure SetFaderLevel(iSourceName: string; iLevel: ShortInt; iFadeTime: word); stdcall;
Setzt die Fader-Lautstärke auf den angegebenen Wert in dB. iFadeTime
gibt die Länge der Blende in Einheiten 40ms an.
procedure SetPrelisten1On(iSourceName: string); stdcall;
Schaltet PFL für den Kanal ein.
procedure SetPrelisten1Off(iSourceName: string); stdcall;
Schaltet PFL für den Kanal aus.
procedure SetGPI(iNumber, iValue: byte); stdcall;
Setzt den GPI.OAC (1-64) auf den angegebenen Wert (0 oder 1).
procedure SetFaderStart(iSourceName: string; iStatus: byte); stdcall;
Setzt die Faderstart-Beleuchtung des Kanals auf den angegebenen Wert (0 oder 1).
procedure FetchFaderStatus(iSourceName: string); stdcall; function GetFaderStatus(iSourceName: string): byte; stdcall;
GetFaderStatus
liefert den aktuellen Status der Quelle zurück (2 = on air, 0 = aus). mAirList hält den aktuellen Wert jederzeit nach. Im Bedarfsfall kann er vorher mit FetchFaderStatus
vom Pult angefragt werden. Danach sollte jedoch kurz mit sleep
o.ä. die Antwort des Pultes abgewartet werden, bevor man sie mit GetFaderStatus
ausliest.
procedure FetchFaderLevel(iSourceName: string); stdcall; function GetFaderLevel(iSourceName: string): ShortInt; stdcall;
GetFaderLevel
liefert die aktuelle Lautstärke der Quelle in dB zurück. Für FetchFaderStatus
gilt das oben Gesagte.
Benachrichtigungs-Scripts
In Benachrichtigungs-Scripts können die folgenden fünf Prozeduren verwendet werden:
procedure OnSASCommand(Remote: ISASRemote; Command: byte; Data: string);
Wird aufgerufen, wenn ein SAS-Paket empfangen wurde.
procedure OnSASGPIOn(Remote: ISASRemote; GPI: byte);
Wird aufgerufen, wenn ein GPI eingeschaltet wurde.
procedure OnSASGPIOff(Remote: ISASRemote; GPI: byte);
Wird aufgerufen, wenn ein GPI ausgeschaltet wurde.
procedure OnSASPFLOn(Remote: ISASRemote; SourceName: string);
Wird aufgerufen, wenn ein Kanal in den PFL-Modus geschaltet wurde.
procedure OnSASPFLOff(Remote: ISASRemote; SourceName: string);
Wird aufgerufen, wenn der PFL-Modus eines Kanals wieder ausgeschaltet wurde.