Snapshot - Build 4365 - Kombination Airlite Modul mit "Erweiterter Button

Hallo Zusammen,

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?

Danke…

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.)

Angezeigte Grüße

TSD

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.

Danke vielmals für Deine Mühe.

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

Sorry für mein Leihengefrage…

ich glaube ich habe es…
ich lese mir jetzt erstmal in Ruhe diese tolle Beschreibung von Dir durch:

Ich bin sicher, danach komme ich weiter…
Klasse…

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. :slightly_smiling_face:

Guten Abend,

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.

Abendliche Grüße
Nick

1 Like

Was es in mAirList alles gibt … :slightly_smiling_face:

Weltklasse…ich habs…

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.

Vielen Dank Tondose…

Hi @Tondose,

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?

Abendliche Grüße
Nick

Guter Plan. :wink:

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.

(Ungetestet.)

Gezeitete Grüße

TSD