D.MAX Script

Moin,

gibt es die Möglichkeit das mAirList, in dem zugewiesenen Kanal, in der Anzeige die Restzeit eines Liedes anzeigt?

Und die andere Frage ist, ob es die Möglichkeit gibt, einen gesamten Kanal stiel zulegen, bis auf dem jeweiligen Kanal ein Element liegt. Mit Stiel legen ist gemeint das die Stop sowie Start Taste nicht mehr Leuchtet.

Beides gibt m.W. das Protokoll nicht her.

Habe dann noch eine andere Frage, die mir gestern eingefallen ist

Gibt es die Möglichkeit, wenn ich PFL irgendwo öffne in der Playlist, zusagen das an einem bestimmten Player die PFL Taste virtuell gedrückt werden soll?

Beispiel:

Ich habe auf dem ganz linken Kanal mein PFL liegen und ich drücke in der Playlist auf dem 6 Titel auf PFL. Dann möchte ich das automatisch auf dem PFL Kanal, der PFL Taster gedrückt wird. Und wenn ich PFL wieder schließe, dieser auch wieder aus geht.

Hat da jemand eine Idee? :slight_smile:

Müsste so gehen:

// Called when cue editor, mix editor... (but not a player) starts playback
// ExtPFLCount is the number of active such ExtPFL sources
procedure OnExtPFLOn(Item: IPlaylistItem; ExtPFLCount: integer);
begin
  if ExtPFLCount = 1 then 
    DMAXRemote(0).SetPFL(3);
end;

// Called when cue editor, mix editor... (but not a player) stops playback
// ExtPFLCount is the number of active such ExtPFL sources
procedure OnExtPFLOff(Item: IPlaylistItem; ExtPFLCount: integer);
begin
  if ExtPFLCount = 0 then 
    DMAXRemote(0).SetPFL(0);
end;

“3” ist hier im Beispiel die Nummer des Faders. 0 bedeutet “alles PFL aus”.

EDIT: ExtPFLCount hinzugefügt.

Hier ist noch ein ähnliches Script, das den Zustand der Cartwall (ON, OFF, PFL) auf dem zugehörigen Fader abbildet, so dass man die Cartwall per Maus/Touch umschalten kann kann, und am Pult öffnet sich der Fader bzw. geht auf PFL:

// Called when the cartwall switches its on air mode (on air, off air, PFL)
procedure OnCartwallOnAirModeChange(OldMode, NewMode: TCartwallOnAirMode);
var
  CartFader: byte;
begin
  // Fader der Cartwall ermitteln
  CartFader := DMAXRemote(0).GetFaderOfChannel(13);

  if NewMode = oamOnAir then begin
    // wenn vorher PFL, dann PFL ganz aus
    if OldMode = oamPFL then
      DMAXRemote(0).SetPFL(0);

    // Cartfader an
    DMAXRemote(0).SetGoStatus(CartFader, true);
  end
  else if NewMode = oamPFL then begin
    DMAXRemote(0).SetGoStatus(CartFader, false);
    DMAXRemote(0).SetPFL(CartFader);
  end
  else begin // off air
    // wenn vorher PFL, dann PFL ganz aus
    if OldMode = oamPFL then
      DMAXRemote(0).SetPFL(0);

    // Cartfader aus
    DMAXRemote(0).SetGoStatus(CartFader, false);
  end;
end;

Dieses Script ist sogar so “schlau” und fragt vorher ab, auf welchem Fader die Cartwall (im Beispiel Input Nr. 13) überhaupt liegt. So funktioniert es auch dann, wenn man die Cartwall mal abweichend auf einen anderen Fader legt.

Funktioniert! Einen riesen Dank :slight_smile:

Hey Torben,

wie genau lautet den der Befehl zum Abrufen von dem Next Status bzw. zum senden von Befehlen?

DMAXRemote(0).SetNextStatus(4, true); oder DMAXRemote(0).SetNext(4, true);

gehe nicht

Nach dieser Lektüre schlage ich vor:

DMAXRemote(0).SetNext(4);

Wäre einen Versuch wert.

Ratende Grüße

TSD

Ne :confused:

oder mache ich was im Script falsch?

// Called when automation is enabled
procedure OnAutomationOn(PlaylistIndex: integer);
begin
DMAXRemote(0).SetNext(4);
end;

// Called when automation is disabled
procedure OnAutomationOff(PlaylistIndex: integer);
begin
DMAXRemote(0).SetNext(0);
end;

Also, ich habe das so verstanden, daß das Argument von SetNext (hier: 4) die „Kanalnummer“ angibt. Hast Du mal das von mir verlinkte Skript angeschaut?

Ja hatte ich mir. Hatte dieses Script von Torben umgeschrieben

// Called when cue editor, mix editor… (but not a player) starts playback
// ExtPFLCount is the number of active such ExtPFL sources
procedure OnExtPFLOn(Item: IPlaylistItem; ExtPFLCount: integer);
begin
if ExtPFLCount = 1 then
DMAXRemote(0).SetPFL(3);
end;

// Called when cue editor, mix editor… (but not a player) stops playback
// ExtPFLCount is the number of active such ExtPFL sources
procedure OnExtPFLOff(Item: IPlaylistItem; ExtPFLCount: integer);
begin
if ExtPFLCount = 0 then
DMAXRemote(0).SetPFL(0);
end;

Oha. Dann muß leider @Torben ran.

Ratlose Grüße

TSD

Die Next-LED kann man leider derzeit nicht vom Script aus umschalten.

Befehle mit der Next-Taste verknüpfen kannst du ganz normal über die Konfigurations-GUI.

1 Like

Um auf die Ursprungsfrage zurück zu kommen. Ja, die Dauer des Lieder kann beim Laden des Players an das D.MAX übertragen werden. Sobald am D.MAX START gedrückt wird, fängt die Zeit an, runter zu zählen.
Ich muss noch einige Playerzustände abfangen, damit z.B. bei Pause im Player, das DMAX nicht weiterzählt.
Weiß jemand, ob man mit dem DMAXRemote(0) Befehl auch eigene Daten senden kann? Aktuell schicke ich die Zeit der COMPort.SendStr.