Bugtracker DMXControl 3

  • Status Neu
  • Percent Complete
    0%
  • Task Type Wunsch / Idee
  • Category GUI & Server → Server
  • Assigned To No-one
  • Operating System All
  • Severity Medium
  • Priority Very Low
  • Reported Version unbestimmt
  • Due in Version Cuelist-Erweiterung(intern)
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: DMXControl 3
Opened by Dennis - 19.06.2011
Last edited by Patrick Grote - 19.02.2019

FS#479 - Cuelist, Split Crossfade (Fade A/B & Fade X)

Auf FS#280 setz ich noch einen drauf:

Split Crossfade.
Das sind zwei Überblendsteller. Einer zusändig für das aktuell eingeblendete Cue (ich nenns jetzt mal stage) und der zweite für das nächste (preset).

Normalstellung ist Stage 100, Preset 0.
Werden nun beide Steller gleichzeitig bewegt, ergänzen sich beide zu 100%. Es kommt ein ganz normaler Crossfade zu stande. Stage 80% + Preset 20%
Werden diese nun unterschiedlich schnell bewegt, kann z.B. ein Blackout realisiert werden. Stage 0%, Preset 0%

Kreise, die in Preset aber nicht in Stage enthalten sind werden vom PresetSteller ganz normal eingeblendet (Preset 50%, Kreise 50%)
Kreise, die in Stage aber nicht in Preset enthalten sind werden vom StageSteller ausgeblendet.

Eine Überblendung ist abgeschlossen, wenn Stage 0% und Preset 100% sind.

Project Manager
Arne Lüdtke commented on 30.06.2011 15:56

Mich verwirren diese Sätze:

~~~~~~~

Kreise, die in Preset aber nicht in Stage enthalten sind werden vom PresetSteller ganz normal eingeblendet (Preset 50%, Kreise 50%)
Kreise, die in Stage aber nicht in Preset enthalten sind werden vom StageSteller ausgeblendet.

~~~~~~~

Ich fasse das mal zusammen:

Am Stage steller hängt die aktuelle Szene. Ergo wenn ich Stage auf 100 hab ist die aktuelle Szene auf 100, bei 0 genauso. Genauso beim Preset.
Was ist, wenn ich in Preset etwas habe, was in Stage ebenfalls vorhanden ist? Die werden dann ganz einfach gemischt, wobei Preset Priorität hat? Angenommen, ich habe in Stage einen Dimmer auf 100 und in Preset den gleichen Dimmer auf 80. Was passiert wenn Stage = 90% und Preset = 90%? Ich würde jetzt Sagen:

Dimmer = (StageVal * StagePercent + PresetVal * PresetPercent) / 2. In unserem Fall also (100 * 90% + 80 * 90%) / 2 = 81.

Gruß Arne

Project Manager
Dennis commented on 30.06.2011 16:22

Ja genau, so war das gedacht.

Project Manager
Dennis commented on 30.06.2011 17:33

Mir fällt gerade wieder was ein: so wars eigentlich nicht gedacht

1) Dimmer in Stage 100%, Stage 100%, Dimmer in Preset 0%, Preset 100%. Nach der Berechnung würde Dimmer 50% resultieren. Eigentlich sollte Dimmer aber 100% sein,
2) Dimmer in Stage 0%, Stage 100%, Dimmer in Preset 100%, Preset 100% = Dimmer 50%, sollte aber 100% sein.

So hatte ich mir das damals mal überlegt. Hatte mal vor nem Jahr oder so ne Demo zusammengeschraubt, in Delphi weil die IDE gerade offen war :(

procedure Tmain.trbStageChange(Sender: TObject);
var
  i: byte;
  StageF, PresetF: double;
begin
  StageF := (100 - trbStage.Position) / 100;
  PresetF := trbPreset.Position / 100;
  for i := 0 to 511 do
  begin
    if StageF + PresetF > 1 then
    begin
      if Stage[i] >= Preset[i] then
        Output[i] := round(Stage[i] * StageF + Preset[i] * (1 - StageF))
    end
    else
      Output[i] := round(Stage[i] * StageF + Preset[i] * PresetF);
  end;
end;

procedure Tmain.trbPresetChange(Sender: TObject);
var
  i: byte;
  StageF, PresetF: double;
begin
  StageF := (100 - trbStage.Position) / 100;
  PresetF := trbPreset.Position / 100;
  for i := 0 to 511 do
  begin
    if StageF + PresetF > 1 then
    begin
      if Stage[i] <= Preset[i] then
        Output[i] := round(Preset[i] * PresetF + Stage[i] * (1 - PresetF));
    end
    else
      Output[i] := round(Preset[i] * PresetF + Stage[i] * StageF);
  end;
end;

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing