Übungsbeschreibung
 
            Einführung in das Programmieren             
            8m 51s             
          Du lernst
deinen Trainer für diese Reihe (neu) kennen und entdeckst zahlreiche
Möglichkeiten, dein Q-SYS Design für maßgeschneiderte Aufgaben zu
programmieren.
Video Transkript
 
            Einführung in das Programmieren             
            8m 51s             
          0:08
 Willkommen beim Q-SYS Control Training. Mein Name ist Sebastian Linn. Ich begleite euch durch 
0:13
 diese Schulungsreihe, bei der wir tief in die Möglichkeiten von Q-SYS als zuverlässige 
0:17
 Steuerungsplattform eintauchen. Da ihr dieses Video anschaut, gehe ich davon aus, dass ihr schon 
0:23
 mit der Q-SYS Designer Software vertraut seid, denn wir werden uns hier nicht mit grundsätzlichen 
0:28
 Navigationskonzepten aufhalten. Und ich nehme an, dass ihr euch mit der Architektur von 
0:33
 Audiosystemen und Signalverarbeitung auskennt, da wir uns ausschließlich auf die Systemsteuerung 
0:39
 konzentrieren.
0:41
 Dieser Online-Kurs dient als Zulassungsvoraussetzung für die Präsenzkurse zu Q-SYS Control. Aber 
0:47
 auch wenn ihr nicht vorhabt, an einem Präsenzkurs teilzunehmen, könnt ihr hier viel lernen.
0:52
 Ziel dieser Serie ist es, euch die verschiedenen Möglichkeiten des Programmierens mit Q-SYS zu 
0:57
 vermitteln, sodass Ihr im Präsenzkurs sofort loslegen und echte Drittanbieterprodukte einbinden 
1:02
 könnt. Bei diesen Online-Videos steht euch wahrscheinlich keine Hardware zur Verfügung, also 
1:07
 kommen wir nur so weit, wie es der Emulationsmodus erlaubt. (Zum Glück ist das schon ziemlich 
1:13
 weit.)
1:14
 Als Hilfestellung gibt es ein begleitendes Arbeitsblatt – das Worksheet – mit Übungen, die den Inhalt 
1:19
 bestimmter Kurseinheiten vertiefen. Den Link zum Worksheet findet ihr im Abschnitt direkt nach 
1:25
 diesem Video. Ihr könnt auch von jedem dieser Kurs-Videos auf den Tab „Download and Links“ 
1:31
 gehen. 
1:46
 Steuerung ist ein weites Feld, das viele Aspekte beinhaltet. An diesem Punkt solltet ihr wissen, wie ihr 
1:52
 eine Benutzeroberfläche – ein User Control Interface – aufbaut und Elemente aus eurem Design auf 
1:57
 einen Touchscreen bringt, mit dem Eure Nutzer das System steuern können. Auf der großen Skala an 
2:03
 Möglichkeiten in Q-SYS fallt das unter kinderleicht! Mit den Steuerungselementen im Bedienfeld 
2:09
 einer Komponente könnt ihr problemlos schon eine ganze Menge bewerkstelligen!
2:14
 Aber was ist, wenn eure Buttons sich gegenseitig beeinflussen oder abhängig von anderen 
2:19
 Einstellungen unterschiedliche Dinge tun sollen? Dazu müssen wir in die Welt des Programmierens 
2:24
 eintauchen. Es gibt tatsächlich mehrere Wege, die man beim Programmieren in Q-SYS Designer 
2:29
 einschlagen kann. Wir werden sie alle erkunden und dabei die Vor- und Nachteile erörtern.
2:36
 Kompliziertere Themen umfassen z. B. die Verwendung von Q-SYS zur Steuerung anderer Geräte 
2:41
 außerhalb der Q-SYS Architektur. Die Liste der Geräte, die Steuerdaten entweder empfangen oder 
2:47
 senden können, ist endlos. 
2:49
 Dies können einfache Verknüpfungen mit analogen Knöpfen oder Drehreglern sein, unidirektionale 
2:55
 Befehle an Beleuchtungscontroller anderer Hersteller, die bidirektionale Kommunikation zwischen 
3:01
 Video-Matrizes, Fernsehgeräten, Sicherheitssystemen usw. Was immer sich steuern lässt – Q-SYS 
3:07
 steuert es.
3:08
 Auf einer sehr hohen Ebene gibt es bei allen Programmiermethoden Gemeinsamkeiten – und wenn 
3:12
 du diese einmal kennst, siehst du, wie sich sie auch in der täglichen Arbeit niederschlagen. 
3:17
 Programmieren ist der Prozess, der zwischen einem Gedanken und einer Handlung abläuft. Als 
3:22
 Beispiel würde ich gern ein kleines Experiment mit euch machen. Würdest du bitte mal … in die 
3:27
 Hände klatschen. Hast du es getan? Schauen wir uns mal an, was gerade passiert ist.
3:33
 Ich habe deinem Gehirn eine Anfrage geschickt – „Klatsch in die Hände.“ Dein Hirn hat in 
3:39
 Sekundenbruchteilen eine Reihe von Entscheidungen getroffen. Als Ergebnis hast du entweder in die 
3:44
 Hände geklatscht oder nicht. Mein Befehl war die Eingabe – etwas, das auf das System wirkt und eine 
3:50
 Reaktion erfordert.
3:52
 Die Ausgabe ist ein Befehl an deine Hände. Der Entscheidungsprozess dazwischen steckt voll 
3:58
 bedingter Anweisungen, Funktionen und Bezüge auf externe Parameter, die dir vielleicht noch nicht 
4:03
 einmal bewusst waren.
4:05
 Beispielsweise, ob du der Anweisung folgen willst oder nicht. Wäre es in deiner Umgebung 
4:09
 akzeptabel, plötzlich in die Hände zu klatschen, oder nicht? Nehmen wir noch eine externe Variable 
4:15
 hinzu, die besagt, ob du gerade etwas in den Händen hältst, das dich am Klatschen hindern würde.
4:20
 Dann würde eine Vergleichsfunktion entscheiden, ob dein Wunsch, dem Befehl zu folgen, größer ist 
4:25
 als die Unannehmlichkeit, den Gegenstand, den du gerade hältst, aus der Hand zu legen. Der 
4:30
 Wunsch, es zu tun, könnte durch eine globale Variable überschrieben werden, wie der Anzahl Hände, 
4:35
 die du tatsächlich hast.
4:38
 Der Wunsch, es nicht zu tun, könnte durch meinen unterschwelligen Hinweis auf das Videospiel 
4:43
 „Bioshock“ außer Kraft gesetzt werden, was dich dazu bringt, jeden Befehl auszuführen, der mit 
4:48
 „Würdest du bitte …“ beginnt.
4:50
 All diese bedingten Anweisungen erfolgen blitzschnell und das Endergebnis ist eine Ausgabe: 
4:55
 Entweder wird eine Aktion gestartet, die deine Hände klatschen lässt, oder aber die Bedingungen 
5:00
 wurden nicht erfüllt, und das System bleibt unverändert.
5:03
 Den Fluss all dieser bedingten Anweisungen, Variablen, Parameter und Funktionen und die 
5:09
 Bedeutung von Eingabe und Ausgabe zu verstehen – das ist das Grundgerüst des Programmierens.
5:14
 Unser Gehirn tut dies automatisch. Es sieht also alles recht einfach aus, aber um einen Computer zu 
5:18
 programmieren, must du jede einzelne Möglichkeit bedenken und logisch vorausplanen. Das Gute 
5:25
 daran: Egal welche Methode du auch zum Programmieren verwendest, diese grundlegenden 
5:29
 Konzepte gelten für jede Aufgabe, die du dir vornimmst. Du musst nur dazu in der Lage sein, das 
5:35
 Ganze in kleine, identifizierbare Teile zu zerlegen. Und wir zeigen dir, wie diese einzelnen Teile 
5:40
 aussehen.
5:42
 In diesem Kurs demonstrieren wir drei Methoden, die ihr zum Programmieren nutzen könnt: 
5:46
 Steuerungskomponenten, das Programmieren mit Lua und den Block Controller. Jede hat Vor- und
5:53
 Nachteile und wir werden während des Kurses immer wieder zwischen allen drei Methoden hin- und 
5:58
 herspringen, sodass Ihr sie miteinander vergleichen könnt.
6:01
 Mit Steuerungskomponenten könnt Ihr auf simple Weise Steuerungselemente in Q-SYS miteinander 
6:06
 interagieren lassen und einige Basisfunktionen anwenden, die den Zustand mehrerer Elemente 
6:12
 vergleichen, ihr könnt je nach Eingabe verschiedene Optionen ausführen lassen und Logik-Pfade 
6:17
 öffnen oder schließen. 
6:20
 Steuerungskomponenten eignen sich hervorragend für einfache Interaktionen oder für eine 
6:24
 Entscheidung zwischen zwei Optionen. Ihr könnt damit auch ganz kompliziertere Szenarien 
6:29
 entwerfen, aber irgendwann ist eine Grenze erreicht, und es braucht ein stärkeres Tool.
6:34
 Skriptschreiben ist das andere Ende der Skala. Mit einem Skript ist beinahe alles machbar, aber dazu 
6:40
 muss man wissen, wie man ein Skript in der betreffenden Sprache schreibt. 
6:45
 Der Steuerungsskript-Editor in Q-SYS öffnet einen leeren, schwarzen Arbeitsbereich, in den du Code 
6:51
 schreiben kannst, und zwar in der Programmiersprache Lua. Dies erfordert ein Verständnis der 
6:56
 Syntax-Regeln von Lua, sowie der Q-SYS-spezifischen Ergänzungen, die wir der Lua-Datenbank 
7:02
 hinzugefügt haben, damit man richtig arbeiten kann.
7:05
 In diesem Kurs können wir euch Lua natürlich nicht komplett beibringen, aber wir zeigen euch einige 
7:10
 Grundlagen. Mit Lua kannst du komplizierte Interaktionen mit Drittanbieterprodukten 
7:15
 programmieren, die über das Netzwerk oder seriell verbunden sind. Du kannst Schaltmatrizes und 
7:21
 Timer einrichten, komplexe Zeichenfolgen parsen – die einzige Einschränkung sind eigentlich nur 
7:26
 deine Programmierkenntnisse. 
7:28
 Nur scheint der Sprung von den Steuerungskomponenten zum Skript groß zu sein, und hier kommt 
7:34
 unsere dritte Option ins Spiel – der Block Controller.
7:37
 Der Block Controller ist ein visuelles Programmier-Tool, bei dem du aus ineinandergreifen grafischen 
7:43
 Blöcken ein funktionierendes Skript bauen kannst. Das bedeutet, dass du viele Dinge in Lua umsetzen 
7:49
 kannst, ohne die genauen Protokolle zu kennen und ohne Syntaxfehler zu machen.
7:53
 Aber du musst schon einige Grundprinzipien von Programmiersprachen verstehen, um mit dem Block 
7:58
 Controller zu arbeiten. Wir zeigen dir, wie du dieses Wissen anwendest.
8:03
 Auch hier gilt: Diese Videos allein machen euch noch nicht zu Experten für alle drei Methoden. Wir 
8:08
 wollen euch an jede der Methoden heranzuführen, damit ihr mit diesen einige grundsätzliche 
8:13
 Aktionen umsetzen könnt, und inspirieren euch hoffentlich dazu, selbst auf Entdeckungsreise zu 
8:17
 gehen. Oft bitten wir euch nach den Videos, eine Übungsaufgabe im Control-Training-Worksheet zu 
8:23
 absolvieren. Ihr könnt natürlich gern mehr Zeit damit verbringen, die Möglichkeiten der Methoden 
8:28
 auszuloten.
8:30
 Bevor wir loslegen, noch ein paar organisatorische Dinge – einige der genutzten Tools, wie der Block 
8:36
 Controller und die Skriptkomponenten findet Ihr hier in der „Schematic Library“. 
9:01
 Gut – als Erstes erkunden wir die Steuerungskomponenten. Scripting und Block Controller haben 
9:07
 natürlich viele Gemeinsamkeiten, also schauen wir sie uns etwas später zusammen an. Zunächst 
9:13
 verbringen wir ein wenig Zeit nur mit den Steuerungskomponenten. Also, macht eine kurze Pause, 
9:18
 atmet tief durch und macht euch bereit für das Q-SYS Control Training. Und wenn ihr soweit seid, 
9:24
 geht zum nächsten Video.
Downloads & Links
 
            Einführung in das Programmieren             
            8m 51s             
                  