ich habe ein Problem mit meinem D&R Airlite und mAirList und hoffe, ihr könnt mir helfen. Ich möchte meinen Workflow optimieren, komme aber bei einer Funktion nicht weiter.
Was ich umsetzen möchte:
Ich möchte den ON/OFF-Button auf dem Airlite (Rot/Grüne Lampe) als Hot-Start-Taster nutzen.
Sobald ich den Kanal am Airlite aktiviere (ON) und einen Track starte, soll der Track wie gewohnt komplett abgespielt werden.
Wenn der Track beendet ist (EOF), soll der Kanal automatisch deaktiviert werden (Rot/Grüne Lampe aus), außer es gibt eine aktive Verknüpfung Dann soll es weiter laufen bis die letzte Verknüpfung abgefahren ist.
Wichtig:
Der Kanal soll nach Ende eines Tracks deaktiviert werden, wenn keine Verknüpfungen aktiv sind.
Ich möchte Faderstart alternativ aktiviert lassen (wie in der Standardkonfiguration), aber der Fader bleibt meistens oben, da ich den Track manuell über den Airlite-ON/OFF-Button starten möchte.
Die Funktion Auto Channel Off im Airlite Manager hilft hier nicht, weil sie nur greift, wenn der Fader geschlossen wird – das passt für meinen Workflow nicht.
Was ich bisher probiert habe:
Ich habe verschiedene Befehle wie PLAYER x-y CLOSE ausprobiert, um den Kanal nach Track-Ende zu deaktivieren, aber das hat nicht wie gewünscht funktioniert.
Es scheint keine direkte Möglichkeit zu geben, den Kanal gezielt zu deaktivieren, wenn keine Verknüpfung mehr besteht.
Meine Frage:
Kann ich dieses Verhalten softwareseitig in mAirList umsetzen?
Gibt es ein Script, das diese Logik abbildet (Kanal deaktivieren nach EOF, aber nur, wenn keine Verknüpfung aktiv ist)?
Technische Details:
mAirList-Version: 7.4
Airlite Control Software ist aktiv und läuft problemlos.
Ich hoffe, ihr habt Ideen oder könnt mir weiterhelfen! Vielen Dank schon mal
procedure OnPlayerStop(PlaylistIndex: Integer; PlayerIndex: Integer; Item: IPlaylistItem; Duration: TTimeValue);
var
Command: String;
begin
case PlayerIndex of
0: Command := 'MODULE 4 OFF';
1: Command := 'MODULE 5 OFF';
else
Exit;
end;
SystemLog('Player gestoppt: Sende Befehl an Airlite: ' + Command);
ExecuteCommand(Command);
end;
begin
end.
Das Script funktioniert soweit, dass die Befehle im SystemLog von mAirList korrekt auftauchen, wenn ein Track gestoppt wird. Leider tut sich aber nichts am Mixer selbst – die Kanäle bleiben aktiv, und die Lampen gehen nicht aus.
Ich habe auch folgende Punkte bereits getestet:
Fernsteuerung über UDP-Server:
Ich habe in mAirList einen UDP-Server auf Port 19549 konfiguriert, der dem Empfangs-Port des Airlite entspricht. Leider reagiert das Airlite trotzdem nicht.
Packet Sender:
Ich habe versucht, den Befehl MODULE 4 OFF direkt über ein Tool wie Packet Sender an den Port 19549 zu senden. Auch hier bleibt das Airlite komplett ohne Reaktion, obwohl die Pakete laut Protokoll korrekt gesendet werden.
Airlite Control Software:
Die Airlite Control Software zeigt keine eingehenden Pakete an. Auch Debugging oder Logs scheinen nicht verfügbar zu sein, um zu sehen, ob die Befehle überhaupt ankommen.
Ich habe den Eindruck, dass mAirList die Befehle zwar korrekt verarbeitet und sendet (intern sichtbar im Log), die Kommunikation aber nicht tatsächlich an das Airlite weitergeleitet wird oder das Airlite die Pakete ignoriert.
Fragen, die sich daraus ergeben:
Muss in der Airlite Control Software zusätzlich etwas aktiviert werden, damit Befehle von externen Tools wie mAirList oder Packet Sender verarbeitet werden?
Könnte es sein, dass das Airlite WebSocket-Befehle bevorzugt und UDP ignoriert?
Hat jemand mit der Konfiguration von UDP in mAirList für das Airlite konkrete Erfahrungen und könnte mir einen Tipp geben?
Danke nochmal für jede Hilfe! Ich bin für weitere Ideen oder Tests offen.
Hast Du es mal mit dem Befehl GURKENSALAT versucht?
Spoiler:
Das wird auch nicht funktionieren, weil mAirList den Befehl gar nicht kennt, wie eben auch den Befehl MODULE …. Ich kann demnächst mal danach schauen – heute jedoch nicht –, es sei denn, Du hast Dein Skriptbeispiel einer KI entnommen.
Ja, das geht. Das Airlite muss in der Fernsteuerung eingerichtet sein.
Du musst nur im Script die Zahl von “actModule” auf deinen Kanal anpassen, ansonsten ist das Script schon für Player 1 und Player 2 in Playlist 1 konfiguriert.
procedure OnPlayerStop(PlaylistIndex: integer; PlayerIndex: integer; Duration: TTimeValue; Item: IPlaylistItem);
begin
if (PlaylistIndex = 0) and (PlayerIndex = 0) and not(pioLinked in Item.GetOptions) then begin
AirliteRemote(0).RemoteOn(actModule4, alaDeactivate);
end;
if (PlaylistIndex = 0) and (PlayerIndex = 1) and not(pioLinked in Item.GetOptions) then begin
AirliteRemote(0).RemoteOn(actModule5, alaDeactivate);
end;
end;