Erweiterte Steuerungskomponenten

Site: QSC
Course: Q-SYS Control 101 Training (German)
Book: Erweiterte Steuerungskomponenten
Printed by: Guest user
Date: Friday, 17 May 2024, 6:41 AM

Description

Übungsbeschreibung

Ausführliche Infos zu erweiterten Anwendungen der Steuerungskomponenten, wie z. B. Verhalten von Custom-Fadern, nicht-binäre Buttons, Status-Combiner/E-Mailer und passwortgeschützte Seiten.

Video Transkript

0:08
Jetzt, wo du die Steuerungskomponenten kennst, kannst du sie miteinander zu kombinieren, um
0:13
noch aufregendere Ergebnisse zu erzielen. Wie bei einer Rube-Goldberg-Maschine kannst du diese
0:19
Komponenten so miteinander verschalten, dass ein Ereignis nur unter ganz bestimmten Bedingungen
0:23
ausgelöst wird. Mit Steuerungskomponenten kannst du ziemlich kreativ werden und eine große
0:29
Bandbreite an Aufgaben abdecken. Doch es gibt auch eine Grenze – diese einfachen Werkzeuge
0:34
machen zwar vieles möglich, aber es kommt unweigerlich der Punkt, an dem du auf eine komplexere
0:39
Programmiersprache wie unser Skript oder den Block Controller umsteigen musst. In diesem Video
0:45
werden wir jedoch anhand einiger Beispiele erklären, was sich alles mit den Steuerungskomponenten
0:49
erreichen lässt, schauen aber auch ein paar der anderen Komponenten an. Wenn dich nur eine
0:54
bestimmte Komponente interessiert, kannst du natürlich einfach an den Startpunkt des betreffenden
0:58
Abschnitts springen.
1:03
Nehmen wir ein typisches Szenario: Du musst den Gain-Fader für ein Mikrofon auf eine UCI legen,
1:09
doch diese UCI wird von einem Menschen bedient – und Menschen sind manchmal einfach
1:14
fürchterlich. Wenn du ihnen einen Fader gibst, kannst du davon ausgehen, dass sie diesen bis ganz
1:19
oben aufreißen, und das ist immer eine schlechte Idee.
1:24
Deswegen kannst du eine Custom-Control mit einem Pegel-Fader hinzufügen, und dessen Spielraum
1:28
individuell festlegen. Ich beschränke diesen hier auf den Bereich zwischen -20dB und 5dB, weil dieses
1:35
Maß an Flexibilität vollkommen ausreicht. Ich verknüpfe dieses Steuerungselement mit meinem Gain-
1:42
Regler und füge es der UCI zu. Der Nutzer wird nichts bemerken. Wenn er meint, gerade das System
1:48
bis ans Limit zu fahren, bleibt immer noch jede Menge Headroom.
1:53
Nehmen wir uns noch die Mute-Taste des Kanals vor, mit der der Nutzer das Mikrofon abschalten
1:58
kann. Weil ich die untere Begrenzung des Faders auf -20dB gesetzt habe, bleibt dieser untere Bereich
2:05
hörbar. Also wäre es gut, wenn die Mute-Funktion automatisch aktiviert würde, wenn der Fader ganz
2:11
nach unten gezogen wird. Zu diesem Zweck können wir eine simple Steuerungsfunktion hinzufügen.
2:18
Unabhängig vom Regelbereich, den ich für diesen eingestellt habe, weiß ich, dass bei
2:22
heruntergezogenem Fader sein „.Position“-Parameter 0 ist. Also füge ich mittels eines anderen
2:30
Steuerungselements, das bereits die Position 0 hat, eine vergleichende Anweisung hinzu. Ich füge
2:37
einen Umschalter hinzu, der im Normalzustand aus ist, und wähle eine Steuerungsfunktion mit
2:42
„Position Equal“.
2:45
Ist der Fader ganz unten, hat er die Position 0, was sich mit dem Umschalter deckt, der ebenfalls die
2:51
Position 0 hat. Dies erfüllt die Bedingungen der Steuerungsfunktion „Position Equal“, die eine 1
2:57
ausgibt, die die Mute-Taste aktiviert. Wenn ich jetzt den Fader herunterziehe, wird die
3:03
Stummschaltung automatisch aktiviert.
3:05
Bewege ich den Fader erneut, deckt sich seine Position nicht mehr mit der des Umschalters und es
3:10
wird eine 0 gesendet, die die Stummschaltung aufhebt. Ich könnte Mute immer noch manuell
3:16
aktivieren, aber sobald ich den Fader bewege, wird das Mikrofon automatisch geöffnet. Wir haben
3:22
für ein einfaches Problem eine einfache Lösung erstellt.
3:29
Buttons eignen sich hervorragend für binäres Verhalten – wenn eine 1 oder 0 benötigt wird, sind sie
3:34
perfekt. Aber was ist, wenn der Button zwei andere Werte ausgeben soll? Gewünscht ist
3:39
beispielsweise ein einfacher Button, der den Gain-Pegel eines Audio-Players zwischen einer lauten
3:44
und einer leisen Einstellung umschaltet. Wir wollen nicht die Stummschaltung aktivieren und
3:49
deaktivieren, sondern den Gain-Wert zwischen 5dB und -10dB umschalten. Wie machen wir das? Das
3:56
lässt sich auf vielen unterschiedlichen Wegen erreichen, es hängt gewissermaßen davon ab, wie dein
4:00
Kopf tickt. Schauen wir uns ein paar Vorgehensweisen an.
4:04
Die einfachste Methode sind Snapshots – du kannst eine 1 und eine 0 dazu verwenden, einen Button
4:10
zum Laden eines Schnappschusses („Snapshot Load“) zu aktivieren, der einen gespeicherten Wert für
4:16
die Gain-Steuerung aufruft. Erstellen wir also eine neue „Snapshot Bank“ und verknüpfen diese mit
4:23
unserem Gain-Regler. Dann setzen wir Gain auf 5 dB und sichern Snapshot 1, setzen es dann auf -
4:31
10dB und speichern Snapshot 2.
4:34
Dann schnappe ich mir einen Flipflop – du erinnerst dich vielleicht noch, dass dessen „Out“- und „Not
4:39
Out“-LEDs je nach Zustand des Flipflops wechseln. Ich öffne die Steuerpins, um Snapshot 1 und 2 zu
4:47
laden und sie mit dem Flipflop zu verbinden. Jetzt kann ich diesen „State“-Button auf eine UCI legen
4:54
und dem Nutzer einen einzelnen Button zur Verfügung stellen, mit dem zwei verschiedene Werte auf
4:58
den Gain-Regler geladen werden.
5:01
Schauen wir uns eine weitere Methode an: Wir könnten einen Control-Router einsetzen, der einen
5:07
neuen Wert direkt an den Gain-Regler sendet. Hier sind zwei Custom-Regler für unsere Eingänge,
5:13
einer steht auf 5, der andere auf -10. Der Control-Router bestimmt, welcher aktiv ist. Wir können die
5:22
Steuerpins öffnen, um Eingang 1 oder Eingang 2 auszuwählen, und dann mit dem Flipflop zwischen
5:27
diesen hin- und herschalten.
5:30
Falls du dazu nicht den Flipflop verwenden willst, kannst du auch einen anderen Button zur
5:34
Aktivierung der ersten Router- oder Snapshot-Option nutzen und dann mit einer Steuerungsfunktion
5:39
die Position dieses Buttons umkehren, so dass der Button, wenn er ausgeschaltet ist, ein „An“-Signal
5:45
an die zweite Router- oder Snapshot-Option sendet. Die Wirkung ist bei all diesen Möglichkeiten die
5:50
gleiche. Das ist ein Beispiel dafür, wie flexibel diese Steuerungskomponenten sind.
5:59
Schauen wir uns diese Komponente an – den Status-Combiner. Das ist eine Komponente, die nur
6:05
Status-Steuerungen akzeptiert. Status-Steuerungen findest du in beinahe allen Inventar-Objekten
6:11
oder netzwerkabhängigen Komponenten. Wahrscheinlich kennst du diese Status-Steuerungen aus
6:16
der Standard-UCI „Inventory Status“, die den Zustand jedes Geräts in deinem Design auflistet.
6:23
Diese UCI ist zwar hilfreich, aber in einem Design mit umfangreichen Inventar kann es lange dauern,
6:29
bis du alle Zustandsmeldungen durchgesehen hast. Du kannst sie aber alle an einem Ort bündeln,
6:35
indem du ihre Status-Steuerungen mit dem Status-Combiner verknüpfst.
6:39
Ganz oben zeigt der Status-Combiner den Eingang mit dem schlechtesten Zustand an. Wenn in
6:45
deinem Design alles sauber läuft, steht hier OK. Würde ich jetzt aber z. B. eines meiner
6:50
Peripheriegeräte entfernen, würde es aus dem Netzwerk verschwinden und als Fehler erfasst
6:55
werden. Weil dies unter all meinen Geräten den schlechtesten Zustand hat, meldet der Status-
7:01
Combiner den Fehler.
7:03
Du kannst jeden Eingang so kennzeichnen, dass du sofort weißt, bei welchem Gerät das Problem
7:07
liegt. Und falls du ein bestimmtes Gerät ignorieren willst, kannst du seinen Status unterdrücken und
7:13
es vorübergehend von der Liste der Dinge streichen, um die du dich kümmern musst.
7:17
In einem anderen Video erklärt eine viel jüngere Ausgabe von mir, wie du mit diesem Status-
7:20
Combiner dir selbst oder einem Techniker eine E-Mail schicken kannst. Es sieht ungefähr so aus:
7:26
Wenn die Fehler-LED angeht, können wir damit den Send-Button einer E-Mailer-Komponente
7:32
aktivieren. Diese E-Mail enthält dann als Nachricht den Text, der vom „Combined Status“-Regler
7:38
kommt und den Fehler beschreibt.
7:41
Allerdings gibt es bei diesem Design ein Problem. Wenn am Veranstaltungsort das System
7:46
zurückgesetzt wird oder der Strom ausfällt, ist für eine kurze Zeit der Core Prozessor aktiv, seine
7:52
Peripheriegeräte werden aber noch initialisiert. Du willst keine E-Mail, die nur wegen einer kurzen
7:58
Stromunterbrechung einen Systemfehler meldet – wie also vermeidest du das?
8:03
Hier hilft uns der richtige Einsatz einiger Steuerungskomponenten weiter. Wir wissen, dass das
8:08
System bei einem einfachen Neustart nach etwa 30 Sekunden wieder bereit ist. Auf dieser Basis wird
8:15
nun bestätigt, ob der Send-Button tatsächlich ausgelöst wird oder nicht. Ich setze ein Control-Delay
8:22
zwischen die Fehler-LED und die „Send“-Steuerung, und stelle dies auf 30 Sekunden.
8:28
Nach diesen 30 Sekunden wollen wir es mit dem aktuellen Zustand der LED vergleichen und sehen,
8:33
ob der Fehler weiterhin andauert. Ich nehme eine Steuerungsfunktion und setze sie auf „Logic AND“.
8:40
Dazu müssen ihre beiden Eingänge „wahr“ sein. Lag der Fehler 30 Sekunden lang an, ist der erste Pin
8:47
„wahr“, und wenn der Fehler immer noch besteht, ist auch der zweite Pin „wahr“. Und dann aktiviert
8:54
die Funktion den „Send“-Button des E-Mailers.
8:57
Wenn 30 Sekunden vergangen sind und das System ist wiederhergestellt, dann wäre die
9:01
ursprüngliche Fehler-LED „falsch“ und damit die Bedingungen der Funktion nicht erfüllt: Die E-Mail
9:07
wird nicht gesendet. Und wieder eine einfache Lösung für ein einfaches Problem.
9:15
Eine der meistgestellten Fragen lautet: Kann man einer bestimmten Seite einer UCI ein Passwort
9:20
hinzufügen? Während du eine gesamte UCI auf einen Nutzer beschränken kannst, der sich dann mit
9:25
einer PIN einloggt, lässt sich nativ kein Code für eine bestimmte Seite einrichten. Doch kannst du mit
9:31
den Tools, die du bisher in den Steuerungskomponenten gesehen hast, eine eigene Methode
9:35
entwerfen. Dafür gibt es verschiedene Wege und wenn du dich etwas mit Scripting auskennst wäre es
9:41
eigentlich eine einfache Sache. Aber wenn nicht, müssen wir uns etwas mit den Steuerpins
9:45
ausdenken.
9:47
Eine Methode, mit der ich Lösungen mit diesen Komponenten entwickle, besteht darin, die
9:51
gewünschte Funktion aufzuschreiben und dann jeden Teil mit einem verfügbaren Tool zu ersetzen.
9:57
Zuerst die Aufgabe: Wenn der Nutzer das korrekte Passwort eingibt und auf Enter drückt, soll sich die
10:05
UCI-Seite ändern. Ich sehe schon, dass ich ein „Logic AND“ brauche, zur Bestätigung von „Das
10:12
Passwort ist korrekt“ und „Enter wird gedrückt“.
10:16
Jetzt habe ich ein „Logic AND“ und einen Taster für „Enter“. Aber wie bekomme ich ein Passwort vom
10:22
Nutzer und prüfe, ob es korrekt ist? Also, mir fallen mehrere Möglichkeiten ein, aber ich zeige Euch
10:28
meine Lieblingsmethode. Für das Passwort des Nutzers brauche ich einen Ziffernblock. Erzählt es
10:34
bitte nicht weiter: Ich klaue mir einfach einen von einer Softphone-Komponente.
10:39
Wenn dieses Design die maximale Anzahl von Softphones noch nicht nutzt, kann man problemlos
10:44
eines erstellen und dessen Ziffernblock nutzen. Ich füge also alle Zifferntasten meiner UCI-Seite hinzu.
10:51
Jetzt kommt der Trick, den ich gern zur Passwort-Bestätigung verwende – Ich erstelle eine neue
10:57
Snapshot-Bank und verknüpfe die Wahlzeichenfolge (also die Telefonnummer) mit diesem Snapshot.
11:04
Dann gebe ich das korrekte Passwort ein und speichere es als Snapshot 1. Bei jedem Snapshot steht
11:10
ein Steuerpin zur Verfügung, den du vielleicht noch nicht kennst – ich öffne diesen hier namens
11:16
„Match 1“. Das Steuerungselement „Match“ ist eine LED, die aufleuchtet, wenn der Zustand des
11:23
Designs mit der im Snapshot gespeicherten Konfiguration übereinstimmt.
11:28
Wenn jemand also dieselbe Nummer eingibt, die ich in Snapshot 1 gespeichert habe, leuchtet
11:33
„Snapshot Match“ auf und zeigt eine Übereinstimmung an. Das nutze ich für die erste Hälfte meines
11:39
„Logic AND“. Wenn jetzt jemand die richtige Nummer eingibt UND Enter drückt, bekommen wir eine 1!
11:47
Auch hier könnten wir mit dieser 1 auf unterschiedliche Weise die UCI-Seite ändern, aber ich
11:52
noch einen Snapshot, weil das meiner Meinung nach am einfachsten ist. Ich erstelle eine weiter
11:58
Snapshot-Bank und verknüpfe sie mit dem Steuerungselement „Current Page“ des betreffenden
12:03
Touchscreens. Ich wähle die „Secret Page“ aus, speichere dann den Snapshot und verschalte mein
12:11
„Logic AND“ so, dass es diesen Snapshot aktiviert.
12:15
Voilà! Ich habe einen Ziffernblock, ich gebe den Code ein, und die Seite ändert sich. Ich könnte dem
12:22
Nutzer einen einfachen Navigations-Button einrichten, der zum Hauptfenster zurückführt.
12:27
Wahrscheinlich würde ich das Ganze noch etwas weiter verfeinern. Wenn der Nutzer z. B. einen
12:32
falschen Code eingibt – oder die „Match“-LED beim Drücken von „Enter“ NICHT aktiv ist –, soll dies
12:39
dann die „Clear“-Taste des Ziffernblocks aktivieren, um die Eingabe zu löschen.
12:44
Ich wette, ich könnte auch einen Zähler einbauen, der bei jeder nicht erfolgreichen Eingabe weiter
12:49
hochzählt. Beim dritten Versuch könnte ich einen Alarm auslösen, ein GPIO-Signal an die
12:55
Raumbeleuchtung senden, die Q-SYS Kameras auf den Standort richten und den vernetzten
13:00
Videoumschaltern befehlen, das Kamerasignal in jeden Bildschirm vor Ort einzuspeisen, während die
13:08
Polizei alarmiert und mir selbst eine E-Mail geschickt wird, usw.
13:13
Ihr könnt also mit den Steuerungsfunktion jede Menge Spaß haben. Ich lege euch wirklich ans Herz,
13:17
euch damit zu beschäftigen und herumzuspielen. Und vielleicht hat euch dieses Video auf eigene
13:22
Ideen gebracht. Im Control-Training-Worksheet gibt es dazu eine Aufgabe. Und traut euch ruhig, für
13:29
ein Problem, das euch beschäftigt, eigene Lösungen auszuprobieren. Falls sich dabei etwas nicht
13:34
umsetzen lässt, ist es vielleicht Zeit, sich mit dem Scripting oder dem Block Controller zu
13:38
beschäftigen. Viel Spaß beim Spielen, und bis zum nächsten Mal.