Wie Faderstart-Verzögerung bei DHD 4200 realisieren?

Hallo allerseits,

bei der Einrichtung meines DHD-Pultes stehe ich vor oben genannter Frage.
Player A hat z.B. die DHD-ID 484. Setze ich nun im Logikbereich bei 484 den Befehl “SLEEP 200;PLAYER 1-1 START” dann startet der Player zwar mit 200 ms delay. Aber leider bekommt das Pult dann noch eine Rückmeldung von mAirList, so dass der Motor-Fader auf 0 dB springt (was nicht unbedingt gewollt ist).
Wie kann man das verhindern bzw. wie kann man eine Verzögerung alternativ lösen?

Schöne Grüße
Martin

Hier noch ein paar Screenshots, um das Problem zu verdeutlichen:

Fader-ID 484 (Player 1) mit den Start/Stop-Befehlen (der Einfachheit halber ohne Verzögerung) im Logik-Bereich v. mAirList:

DHD-Faderstart-3-2

Ergebnis im Monitor:

DHD-Faderstart-3-1

Da sieht man in Zeile 4, dass mAirList einen Befehl sendet, der offenbar den Fader auf 0dB “zwingt”. Ursache scheint also der Befehl “send: 11030000 00 02 00 00” zu sein.

Den Fader mit ID 485 (Player 2) habe ich im Bereich Player/Zuordnung als Faderstart-Logik eingetragen.
DHD-Faderstart-4-2

Ergebnis im Monitor:

DHD-Faderstart-4-1

Hier wird nach dem Start nichts von mAirList an das Pult gesendet. Dementsprechend wird der Regler auch nicht auf 0dB “gezwungen”.

1 Like

Es geht, wenn man den Playerstart aus der DHD-Logik herausnimmt und direkt verarbeitet:

const
  DELAY = 250;

procedure OnDHDCommand(Remote: IDHDRemote; ID: cardinal; Len: integer;   
  Data0, Data1, Data2, Data3, Data4, Data5, Data6, Data7: byte);
begin
  if (ID = $110E0000) AND (Data0 = 1) AND (Data1 = $E5) AND (Data2 = 1) then
  begin
    if CurrentPlaybackControl.GetPlayer(0).GetState = psLoaded then
    begin
      Sleep(DELAY);
      CurrentPlaybackControl.GetPlayer(0).ExecutePlayerCommand(pcStart);
    end;
end;

Entsprechend natürlich auch für die anderen Regler/Player. Den Sleep-Befehl könnte man gegebenenfalls etwas eleganter mittels Timer umgehen.
 

Verzögerte Grüße, TSD

3 Likes

Erste Tests laufen und sind vielversprechend.
Allerdings “schnappen” die Regler am Ende des Audios nicht zu. Kein “Muss”, aber wenn man schon Motorfader hat…

Nach längeren Forschungen von @calypso60 und mir läßt sich das mit so etwas wie

procedure OnPlayerStop(PlaylistIndex: integer; PlayerIndex: integer;
Duration: TTimeValue; Item: IPlaylistItem);
begin
  DHDRemote(0).SendPacketRaw($11030000, $04, $00, $02, $80, $00, $00, $00, $01, $00);
end;

beheben. (Hier insbesondere für den dritten Fader: $02. Durch Verwendung von PlayerIndex auch für weitere.)

3 Likes