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?
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:
Ergebnis im Monitor:
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.
Ergebnis im Monitor:
Hier wird nach dem Start nichts von mAirList an das Pult gesendet. Dementsprechend wird der Regler auch nicht auf 0dB “gezwungen”.
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.
Erste Tests laufen und sind vielversprechend.
Allerdings “schnappen” die Regler am Ende des Audios nicht zu. Kein “Muss”, aber wenn man schon Motorfader hat…