00:07
Die Baumstruktur bietet uns noch einen dritten Weg, Steuerungselemente in unserem Skript zu beeinflussen.
00:14
Beim Steuerungsskript musstet ihr einen separaten Regler mit den Steuerpins eures Skripts verbinden, während sich Programmierbare Steuerungen auf ein natives Steuerungselement in der Komponente beziehen kann.
00:28
Ihr könntet aber auch „Benannte Komponenten“ (Named Components) verwenden.
00:33
Eine Named Component ist genau das, wonach es klingt – eine Komponente, der Sie einen individuellen Namen gegeben haben.
00:42
Ziehen wir zum Beispiel diesen Gain-Block in das Design und werfen einen Blick auf seine Eigenschaften.
00:48
Eine der Eigenschaften heißt „Label“; dies ist der Klarname, der für die Komponente im Schema angezeigt wird. Doch gibt es auch noch eine andere Eigenschaft mit der Bezeichnung „Codename“.
01:00
Ich gebe der Gain-Komponente einen listigen Decknamen wie ... „RobinHood.“
01:07
Dies ist schon etwas ganz anderes, als ihr Label zu ändern, denn hinter den Kulissen wird dadurch meiner Komponente eine Lua-Tabelle zugewiesen.
01:16
Die Komponente wird visuell immer noch mit dem Label „Gain“ angezeigt, wenn ich aber den Mauszeiger darüber halte,
01:24
kann ich ihren geheimen Codenamen RobinHood bestätigen.
01:28
Mit diesem Codenamen können Sie nun die Steuerungselemente Ihrer Komponente aus jedem Lua-Skript heraus ansteuern, ohne dass Sie es mit diesem Skript verknüpfen müssten.
01:38
Wenn Sie beispielsweise einen Block Controller öffnen, sehen Sie links einen Zweig mit allen Named Components, auf die mittels eines Codenamens zugegriffen werden kann.
01:49
So nutze ich vielleicht einen Trigger-Button hier im Block Controller, um den Gain-Regler der entsprechenden Komponente auf -40dB zu stellen.
01:59
Wenn ich nun den Trigger-Button antippe, kann man sehen, dass die entsprechende Komponente erfolgreich geändert wurde.
02:05
Für diejenigen, die lieber mit Lua arbeiten, öffnen wir ein Control Script und steuern die Komponente auch von hier aus an.
02:14
So sieht die Syntax aus: „Component.New“, danach muss in Klammern der Codename der Benamten Komponente folgen.
02:22
Da dieser Text eine Zeichenfolge ist, muss sie in Anführungszeichen stehen.
02:27
Als nächstes müssen Sie eine eckige Klammer öffnen, um den Namen der Steuerung anzugeben,
02:33
die in dieser Komponente angesteuert werden soll und die auch hier wieder in Anführungszeichen stehen muss.
02:39
Falls Sie nicht genau wissen, wie die Steuerungselemente innerhalb der Komponente heißen, können Sie die Komponente auswählen,
02:45
zum Tools-Menü gehen und dort „View Component Controls Info“ wählen.
02:51
Dadurch wird auf der linken Seite der Lua-Name jedes Steuerungselements angezeigt, ebenso wie der Klarname und die Art des Steuerungselements auf der rechten.
03:01
Nachdem Sie das Steuerungselement selbst erfolgreich referenziert haben, können Sie die Baumstruktur fortführen und eine Eigenschaft auswählen.
03:09
Ich ändere zum Beispiel den .Value von RobinHoods Mute-Steuerung. Und wenn ich das Skript laufen lasse, sehen wir, dass es funktioniert.
03:20
Ich selbst würde dieses Steuerungselement durch eine Variable repräsentieren.
03:24
Dieses Stück Code hier ist wirklich hässlich – Component.New, Klammern, Anführungszeichen, eckige Klammer, Anführungszeichen.
03:34
Definieren wir einfach das ganze Ding mit der Variablen MrGain. Jetzt kann ich den Bezug zu diesem Element allein mit MrGain.Value oder MrGain.String herstellen.
03:48
Das liest sich viel besser und ähnelt eher den anderen Baumstruktur-Aktivitäten, die ihr bisher kennt.
03:54
Benannte Komponenten sind ein schlagkräftiges Mittel für den Zugriff eurer Skripte auf Steuerungselemente, und zwar ohne Verschaltungen oder Programmierbare Steuerungen.
04:05
Es bedeutet auch, dass sich beliebig viele Lua-Skripte auf dieses Steuerungselement beziehen können.
04:11
Im Prinzip könnt ihr damit auf etwas Bezug nehmen, das gar nicht in eurem Skript steht.
04:15
„Script Access“ ist eine weitere Eigenschaft, die Sie kennen sollten.
04:20
Vielleicht ist Ihnen bereits aufgefallen, dass beim Ändern des Codenamens der Komponente auch die „Script Access“-Eigenschaft von „None“ zu „All“ gewechselt hat.
04:31
Grundsätzlich werden alle Komponenten im sichersten Modus erstellt, der keinen externen Zugriff erlaubt, doch Q-SYS geht davon aus,
04:39
dass Sie aufgrund der Benennung mit einem Codenamen diese Komponente auch steuern möchten.
04:45
Sie könnten dieses Feld auch auf „Script“ setzen, wodurch nur interne Q-SYS Skripte auf Ihre Komponente zugreifen dürfen,
04:54
oder auf „Extern“, was den Zugriff ausschließlich für externe Geräte erlaubt.
05:00
Abschließend findet sich im Tools-Menü unter dem Namen „Script Programmer Mode“ noch eine weitere Option.
05:07
Wenn dieser Modus aktiviert ist, wird die visuelle Darstellung des Labels und des Codenamens für alle Komponenten umgekehrt,
05:16
sodass der Codename jeder Komponente gut sichtbar angezeigt wird und ihr Label nur sichtbar wird, wenn Sie den Mauszeiger über die Komponente halten.
05:25
In diesem Modus wird durch das Umbenennen der Komponente hier im Schema ihr Codename und nicht ihr Label aktualisiert,
05:33
weshalb Sie immer darauf achten sollten, in welchem Modus Sie sich gerade befinden.
05:38
Sie werden außerdem bemerken, dass jede Komponente mit einem kleinen farbigen Quadrat gekennzeichnet ist, aus dem ihre „Script Access“-Eigenschaft ersichtlich wird:
05:49
Rot für All, Orangefarben für External, Gelb für Scripts und Grau für None.
05:56
So, das wars mit den Benannten Komponenten. Im Control Worksheet gibt es eine Aufgabe dazu, und danach könnt ihr mit dem nächsten Video weitermachen.