ich würde gern die neue Funktion im o.g. Snapshot nutzen um in Mairlist meine Airlite Belegung abzubilden. D.h. den Status und die Belegung der Module (1-8) darstellen. Quasi eine digitale Beschriftung der Fader…
Ich hatte an die “Erweiterten Button” gedacht. Mein Ziel:
Die Button mit der neuen Funktion verbinden. D.h. wenn ich den Regler CD (Modul 3 auf dem D&R) hochziehe oder per Taster auf On Schalte ändert sich der Button “CD” in Mairlist auf z.b. Farbe Grün.
Habt ihr eine Idee wie ich das realisieren kann? Mit der Fernsteuer ID wohl nicht? Oder ich stehe auf dem Schlauch?
Erfinde einen neuen Befehl, z. B. FADER 3 ON, den Du in die Fernsteuerung in der Konfiguration einträgst. (Und auch einen FADER 3 OFF.) Damit kannst Du dann beliebige weitere Befehle auslösen:
procedure OnExecuteCommand(Command: string);
begin
if Command = 'FADER 3 ON' then
begin
ExecuteCommand('BUTTON.CD ON');
// ggf. weitere Dinge, bei den Playern z. B. PLAYER 1-1 START
end
else if Command = 'FADER 3 OFF' then
begin
ExecuteCommand('BUTTON.CD OFF');
// …
end
else if Command = 'FADER 4 ON' then
begin
// usw.
end;
end;
begin
end.
(Angenommen, Dein Button hieße eben BUTTON.CD.) Wenn es nur um die Anzeige geht, dann reicht auch ein statischer Text statt eines erweiterten Buttons, man braucht die Schaltzustände des Buttons dann nicht. In diesem Falle müßte der Befehl
BUTTON.CD BACKGROUNDCOLOR #00ff00
usw. heißen, such Dir ein paar schöne Farben aus. (Der statische Text hat kein ON und OFF.)
Hi Tondose,
danke schonmal. Dachte ich bekomme das irgendwie ohne Script hin. Da muß ich mich erst einlesen. Liest sich allerding logisch was du dort aufführst. Ich werde mich in Ruhe dran machen und berichten.
Nein. Aber genau dafür sind Skripte da: Statt das Programm mit Funktionen, die kaum jemals ein anderer braucht, zu überfrachten, kannst Du die gewünschte Funktionalität maßschneidern.
Danke du hast natürlich recht. Ich möchte damit natürlich nicht nerven. Erste schritte habe ich vollzogen.
Im Mairlist Ordner eine mls Datei "Background Script Template.mls angelegt (ich gehe davon aus, dass es ein Backgroun Script ist - habe ich aus deiner tollen Anleitung herausgelesen)
Dein Script hier hineinkopiert
In der Config diese Datei als Script hinterlegt. Soweit so gut.
Jetzt meine erste Kopfhürde:
Du schreibst:
Wo kann ich z.b. dem statischen Text diesen Namen zuordnen? In der Layout ini? In der Mairlist.ini ? Da hänge ich schon komplett ;-(
P.S.: Gefunden habe ich die Objekte in der Datei screenobjects.ini
Kann ich dort die Bezeichnung in den eckigen Klammern einfach umbenennen? Kann dein Scipt das dann zuordnen? Puuhhhh
In der Konfiguration unter GUI-Elemente > Statischer Text (…) > Konfigurieren > Erweitert > Name für Fernsteuerung. (Kann etwas abweichen, ich habe es gerade nicht vor mir.) Dem Skript gibst Du besser einen sprechenden Namen, wie etwa Kanalanzeige.mls oder so. (Die Background…usw.mls ist schon für die Referenz vergeben.)
Mein Skript mußt Du noch um die verschiedenen Kanäle erweitern, das geht aber per Schema F, das sähe dann komplett so aus:
procedure OnExecuteCommand(Command: string);
begin
if Command = 'FADER 1 ON' then
begin
ExecuteCommand('BUTTON.MIC BACKGROUNDCOLOR #00ff00');
// …
end
else if Command = 'FADER 1 OFF' then
begin
ExecuteCommand('BUTTON.MIC BACKGROUNDCOLOR #dcdcdc');
// …
end
else if Command = 'FADER 2 ON' then
begin
ExecuteCommand('BUTTON.HUMAX BACKGROUNDCOLOR #00ff00');
// …
end
else if Command = 'FADER 2 OFF' then
begin
ExecuteCommand('BUTTON.HUMAX BACKGROUNDCOLOR #dcdcdc');
// …
end
else if Command = 'FADER 3 ON' then
begin
ExecuteCommand('BUTTON.CD BACKGROUNDCOLOR #00ff00');
// …
end
else if Command = 'FADER 3 OFF' then
begin
ExecuteCommand('BUTTON.CD BACKGROUNDCOLOR #dcdcdc');
// …
end
else if Command = 'FADER 4 ON' then
begin
ExecuteCommand('BUTTON.PLAYER-A BACKGROUNDCOLOR #00ff00');
ExecuteCommand('PLAYER 1-1 START');
end
else if Command = 'FADER 4 OFF' then
begin
ExecuteCommand('BUTTON.PLAYER-A BACKGROUNDCOLOR #dcdcdc');
ExecuteCommand('PLAYER 1-1 PAUSE/STOP');
end
else if Command = 'FADER 5 ON' then
begin
ExecuteCommand('BUTTON.PLAYER-B BACKGROUNDCOLOR #00ff00');
ExecuteCommand('PLAYER 1-2 START');
end
else if Command = 'FADER 5 OFF' then
begin
ExecuteCommand('BUTTON.IPAD BACKGROUNDCOLOR #dcdcdc');
ExecuteCommand('PLAYER 1-2 PAUSE/STOP');
end
else if Command = 'FADER 6 ON' then
begin
ExecuteCommand('BUTTON.IPAD BACKGROUNDCOLOR #00ff00');
// …
end
else if Command = 'FADER 6 OFF' then
begin
ExecuteCommand('BUTTON.PLAYER-A BACKGROUNDCOLOR #dcdcdc');
// …
end
else if Command = 'FADER 7 ON' then
begin
ExecuteCommand('BUTTON.CART BACKGROUNDCOLOR #00ff00');
// …
end
else if Command = 'FADER 7 OFF' then
begin
ExecuteCommand('BUTTON.CART BACKGROUNDCOLOR #dcdcdc');
// …
end
else if Command = 'FADER 8 ON' then
begin
ExecuteCommand('BUTTON.SKYPE BACKGROUNDCOLOR #00ff00');
// …
end
else if Command = 'FADER 8 OFF' then
begin
ExecuteCommand('BUTTON.SKYPE BACKGROUNDCOLOR #dcdcdc');
// …
end;
end;
begin
end.
(Ungetestet.)
Was statt // … einzugeben ist, mußt Du selber wissen. Die Idee, erstmal meine Anleitung zu leses, halte ich für großartig.
ich habe das etwas anders gelöst, was vielleicht auch ein Lösungsansatz für Leute ist, die sich nicht ganz so gut mit Scripten auskennen.
In der Konfiguration habe ich unter “GUI-Elemente” eine “Statusanzeige” hinzugefügt. Bei der Konfiguration der Statusanzeige kann man Text und Farbe für den An- und Aus-Status vergeben. Unter “Erweitert” habe ich dann unter “ID für Fernsteuerung” eine Referenz-ID vergeben wie z.B. FADERSTATUS1 (Status für den Fader von Kanal 1).
Dann bin ich in die Airlite Fernsteuerung gegangen und habe unter dem Tab “Module” für “Modul Fader 1” in die Spalte “An” die Referenz-ID mit dem Status, was passieren soll, von der erstellten Statusanzeige eingegeben (FADERSTATUS1 ON). In die Spalte “Aus” habe ich “FADERSTATUS1 OFF” eingetragen. Dann mit dem Mairlist Designer noch den Schalterbutton an die richtige Stelle und formatieren und das war es auch schon.
Zur Sicherheit habe ich in der Konfiguration unter “Aktionen” noch den Befehl “FADERSTART1 OFF” nach dem Programmstart eingetragen. Wenn der Fader unten ist und Mairlist gestartet wird, dann wird auch gleich der Statusbutton im Status “Aus” sein.
Das kann man für jeden Kanal machen, ohne ein Script verwenden zu müssen.
Der Fader Modul 1 (MIC) ist hochgezogen. Ebenso Modul 4 (Player A). Daher die farbliche Markierung. Die Farbe der Schrift entspricht die Farbe meiner Faderknöpfe… Was ich nicht gemacht habe, ist eine Verknüpfung mit Player Statis… Mir ging es erstmal nur darum anzuzeigen ob ein Fader oben oder unten ist und welcher es quasi ist.
Als nächste werde ich mal mein Farbkonzept überdenken. Ziemlich Bund geworden.
vielleicht kannst Du mir bei einer Skriptsache helfen, die auch mit der Statusabfrage wie hier im Beitrag zu tun hat. Ich habe bei mir zusätzlich einen Talktimer für die Kanäle 1-3 eingebaut. Sprich wenn einer der 3 Fader nach oben gezogen wird geht der Talktimer los. Nun wollte ich das über ein Skript so regeln, wenn z.B. der Mikrofonkanal 1 aus ist und der Fader für Kanal 1 versehentlich nach oben gezogen wird, daß dann nicht der Talktimer los läuft. Ich verzweifle hier ein wenig an dieser Aufgabe. Der Talktimer soll nur loslaufen, wenn auch der entsprechende Kanal über den Button am Airlite aktiviert wurde.
Hast Du vieleicht eine Idee mit der Du mich in die richtige Richtung des Denkens schupsen kannst?
Vermutlich meinst Du: … und der Fader für Kanal 2 versehentlich nach oben gezogen wird.
Das läßt sich einfach so lösen, daß Fader 1 zunächst eine übergeordnete Zustandsvariable, sagen wir TTEnable, steuert. Der Rest funktioniert dann nur, wenn TTEnable auf true gesetzt ist. Das könnte etwa so aussehen (ich weiß nicht, was Dein Airlite mAirList beim Betätigen des Faders sagt):
var
TTEnable: boolean;
procedure OnLoad; // Beim Start erstmal FALSE setzen
begin
TTEnable:= false;
end;
procedure OnExecuteCommand(Command: string);
begin
if NOT TTEnable AND (Command = 'FADER 1 ON') then // einschalten bei Fader 1 auf
begin
TTEnable := true;
// weiteres, was bei offenem Fader 1 passieren soll
end
else if TTEnable AND (Command = 'FADER 1 ON') then // wieder ausschalten
begin
TTEnable := false;
// …
end;
if TTEnable then // nur, wenn TTEnable auf TRUE, also Fader 1 offen
begin
if (Command = 'FADER 2 ON') OR (Command = 'FADER 3 ON') then
begin
Execute Command('TALKTIMER RESET');
Execute Command('TALKTIMER START');
// …
end
else if (Command = 'FADER 2 OFF') AND (Command = 'FADER 3 OFF') then
begin
Execute Command('TALKTIMER STOP');
// …
end;
end;
end;
begin
end.