ich hänge gerade an der Umsetzung den PFL Status eines DHD RM3200D mit mAirlist PFL zu verknüpfen. Da das Pult keine Setlogics beim Ein/Ausschalten des PFL Tasters ausgibt, kann ich nicht mit PFL SetLogic arbeiten.
Dank eures Wikis können auch die Rohdaten empfangen/gesendet werden. Siehe hier:
nutzen und den Kanal (08) und den Zustand (01) abgleichen und einen Execute Command ausführen.
Jetzt aber mein Dilemma. Für was steht ID, Len und welche DataX sind welche Werte aus dem Bild. Ich zähle 16 Zeichen als recieved Message, oben habe ich aber nur 7 Datasätze. Über Hilfe wäre ich sehr dankbar, welcher Datenwert was bedeutet und was es mit ID und Len auf sich hat.
Mir kommt es so vor, als sei Len die Länge des gesamten Datenwortes, in Deinem Falle 0000051600080100 also 16 Stellen. Die ID schätze ich auf 516. Data<n> dürften in Deinem Falle
Mega. Ihr habt mir sehr weitergeholfen. Dank eurer Hilfe klappt nun der Hinweg vom Pult zu mAirlist 1A.
var
i: integer;
procedure OnLoad;
begin
i := 0;
end;
procedure OnDHDCommand(Remote: IDHDRemote; ID: cardinal; Len: integer; Data0, Data1, Data2, Data3, Data4, Data5, Data6, Data7: byte);
begin
if (ID = $516) AND (Data1 = 8) AND (Data2 = 1) then begin
ExecuteCommand('PLAYER 1-1 EXTRAPFL ON');
end;
if (ID = $516) AND (Data1 = 8) AND (Data2 = 0) then begin
ExecuteCommand('PLAYER 1-1 EXTRAPFL OFF');
end;
if (ID = $516) AND (Data1 = 9) AND (Data2 = 1) then begin
ExecuteCommand('PLAYER 1-2 EXTRAPFL ON');
end;
if (ID = $516) AND (Data1 = 9) AND (Data2 = 0) then begin
ExecuteCommand('PLAYER 1-2 EXTRAPFL OFF');
end;
if (ID = $516) AND ((Data1 = 10) OR (Data1 = 11)) AND (Data2 = 1) then begin
ExecuteCommand('CARTWALL MODE PFL');
i := i + 1;
end;
if (ID = $516) AND ((Data1 = 10) OR (Data1 = 11)) AND (Data2 = 0) then begin
i := i - 1;
if i = 0 then begin
ExecuteCommand('CARTWALL MODE ON AIR');
end;
end;
end;
Jetzt möchte ich gern den Rückweg realisieren. Leider bekomme ich dahingehend ein comma (’,’) expected in der Zeile DHDRemote(0).SendPacketRaw. Ich habe da irgendwo einen Denkfehler
procedure OnCartwallOnAirModeChange(OldMode, NewMode: TCartwallOnAirMode);
begin
if NewMode = oamOnAir then
DHDRemote(0).SendPacketRaw($516; 4; 0; 10; 0; 0);
// DHDRemote(0).SendPacket($516; 4; 0; 11; 0; 0);
else if NewMode = oamPFL then
// DHDRemote(0).SendPacket($516; 4; 0; 10; 1; 0);
end;
// Called when the cartwall switches its on air mode (on air, off air, PFL)
procedure OnCartwallOnAirModeChange(OldMode, NewMode: TCartwallOnAirMode);
begin
if NewMode = oamOnAir then begin
DHDRemote(0).SendPacketRaw($516, 4, 0, 10, 0, 0, 0, 0, 0, 0);
DHDRemote(0).SendPacketRaw($516, 4, 0, 11, 0, 0, 0, 0, 0, 0);
end;
if NewMode = oamPFL then begin
DHDRemote(0).SendPacketRaw($516, 4, 0, 10, 1, 0, 0, 0, 0, 0);
end;
end;
Mit etwas Umschreibearbeit gelang es mir dank deiner Hilfe das Script fehlerfrei zu bekommen.
Bedauerlicherweise führt der Rückweg nicht zum Erfolg und die PFL Taste leuchtet nicht, obwohl es derselbe übertragene Wert ist.
Ach Mensch. Danke Torben. Jetzt klappt die PFL Schiene mit Player und Cartwall reibungslos. Ich hatte ewig nicht gerafft, dass iValue ein boolean Wert ist. Dank eines Scriptes im Forum für ein 4200 hab ich dann die Syntax gecheckt.
Letzte Frage noch zum Post zuvor und deinem Bild. Hatte ich einen falschen Kanal angegeben, oder wie? Lese daraus, dass ich hätte Kanal 116 nehmen müssen?
$516 ist nicht der Kanal sondern die ID des Befehls.
Interessanterweise ist das dast identisch mit $116, nur ein Bit mehr gesetzt. Ich nehme an, dass dieses Bit irgendwie zur Unterscheidung von “PFL setzen” und “PFL wurde gesetzt” benutzt wird.
Okay, danke dir. Da sieht man mal wie schnell es kompliziert werden kann.
Ein letztes Problem zum Thema PFL, welchem ich ratlos gegenüber stehe. Ich möchte mit zwei unterschiedlichen Tasten die ExtPFL der Playlist starten/beenden. Der eine Taster hat die Logic 43 und der andere 642. In der mAirlist Konfig habe ich die 43 als Logic für die ExtPFL hinterlegt und in der Toolbox die Lampen als Logic gesteuert (43 OR 642 active). Sofern ich die ExtPFL mit der Maus starte, Leuchten beide Tasten und erlöschen, sobald ich die ExtPFL schließe. Das klappt schon mal. Allerdings haben die Tasten noch keine ausführende Funktion und da geht das Problem los.
Beide Tasten müssen ja unter Logic -> Befehle das ExecuteCommand erhalten. Also habe ich bei 43 als auch bei 642 sowohl den Start- als auch Stop-Befehl hinterlegt.
Jetzt kommt das Spaßige. Drücke ich eine der beiden Tasten öffnet sich das ExtPFL Fenster zweimal. Das verstehe ich nicht. Es ist doch nur eine Logic bzw. Taste mit einem Befehl verknüpft. Denke ich schon wieder irgendwo unlogisch?
ich konnte das Problem dank mAirlist-eigener Funktionen umgehen. In der Konfig unter Verschiedenes -> Optionen -> “Nur ein einzelner Element-Eigenschaften-Dialog darf gleichzeitig geöffnet sein” aktivieren, den zweiten Taster der Logic 43 (erster Taster) folgen und schon klappt die korrekte Anzeige und Steuerung der PFL mit nur einem Dialog.
Maybe someone is willing to explain this topic to me in English via DM? I also have the RM3200-D and cannot get the PFL part to work. I guess the solution is in this topic…? I also have no idea how the script part works in mAirList. I have read the DHD wiki on this topic but the script part still makes no sense to me Thanks!
Hi Tondose, Thanks for helping me. I can find the Faderstart logic for my players and Cartwall with the DHD monitor. In the example below it is 225 or 52. But when I press the PFL button on the mixer I only see:
Receive: 00000516 00 03 01 00
There is no (SETLOGIC XXX X), the code I need to use for PFL. So I don’t know how to find the PFL Logic to function correctly.
Now I learned the option “Background scripts” (I had not noticed it before…) I have PFL working with this script:
var
i: integer;
procedure OnLoad;
begin
i := 0;
end;
procedure OnDHDCommand(Remote: IDHDRemote; ID: cardinal; Len: integer; Data0, Data1, Data2, Data3, Data4, Data5, Data6, Data7: byte);
begin
if (ID = $516) AND (Data1 = 3) AND (Data2 = 1) then begin
ExecuteCommand('PLAYER 1-1 PFL ON');
end;
if (ID = $516) AND (Data1 = 3) AND (Data2 = 0) then begin
ExecuteCommand('PLAYER 1-1 PFL OFF');
end;
if (ID = $516) AND (Data1 = 4) AND (Data2 = 1) then begin
ExecuteCommand('PLAYER 1-2 PFL ON');
end;
if (ID = $516) AND (Data1 = 4) AND (Data2 = 0) then begin
ExecuteCommand('PLAYER 1-2 PFL OFF');
end;
if (ID = $516) AND (Data1 = 5) AND (Data2 = 1) then begin
ExecuteCommand('PLAYER 1-3 PFL ON');
end;
if (ID = $516) AND (Data1 = 5) AND (Data2 = 0) then begin
ExecuteCommand('PLAYER 1-3 PFL OFF');
end;
if (ID = $516) AND ((Data1 = 6) OR (Data1 = 11)) AND (Data2 = 1) then begin
ExecuteCommand('CARTWALL MODE PFL');
i := i + 1;
end;
if (ID = $516) AND ((Data1 = 6) OR (Data1 = 11)) AND (Data2 = 0) then begin
i := i - 1;
if i = 0 then begin
ExecuteCommand('CARTWALL MODE ON AIR');
end;
end;
end;
But I don’t hear any sound, some extra details; My PFL is on different sound channels for all players, since I use a MADI interface between the DHD and my computer I have much audio channels left. I thought this was easy to also use PFL when a track is playing (to hear the end of the current playing track). But this somehow makes my setup much more complicated I guess?
First of all we should have a look at the mAirList audio device configuration, particularly its PFL bits. Nevertheless, there could be some issues with the DHD’s internal routing. Where do you want to have the PFL signal come out of? Does your mixer sport any separate PFL speaker?
Having the PFL return routed separately for each player is no common practice, you’re seeing right now by yourself: you are facing problems what to do with all these signals inside your mixer. My recommendation is to route one single PFL signal back to your mixer, wherein you scoop it to your PFL device.
Okay, if it is working the first way, then you will have to have a look inside your DHD configuration. (Yor preference over the latter configuration is wise, so you can prelisten an audio which is on air.)
However, to simplify matters I strongly recommend to choose only one single PFL channel for all of the four Playback devices (MADI 17+18, for instance). More is not necessary, as you will prelisten only one single channel at a time (or mAirList will sum up multiple PFLs anyway, respectively).