BugInTheSYS

Untitled

Feb 19th, 2013
50
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 1.10 KB | None | 0 0
  1. procedure FadeWAVE(var WaveContent: TWaveContent; MilliSeconds: SmallInt);
  2. // Linearer FadeIn oder FadeOut
  3. var
  4.   Sample, Samples: Integer;
  5. begin
  6.   Samples := min(abs(Round(MilliSeconds * 44.1)),length(WaveContent)-1);
  7.   // 1. Aus den Millisekunden wird die Anzahl der Samples gerechnet
  8.   // 2. Die Maximale Dauer des Fades wird auf die Länge des Arrays gesetzt.
  9.   if MilliSeconds > 0 then begin // Positiver Wert => FadeIn
  10.     for Sample := 0 to Samples do begin
  11.       WaveContent[Sample].Left  := Round(WaveContent[Sample].Left  * Sample / Samples);
  12.       WaveContent[Sample].Right := Round(WaveContent[Sample].Right * Sample / Samples);
  13.     end;
  14.   end else begin // Negativer Wert => FadeOut
  15.     for Sample := length(WaveContent) - Samples to length(WaveContent)- 1 do begin
  16.       WaveContent[Sample].Left  := Round(WaveContent[Sample].Left * (length(WaveContent)
  17.                                          - Sample) / Samples);
  18.       WaveContent[Sample].Right := Round(WaveContent[Sample].Right * (length(WaveContent)
  19.                                          - Sample) / Samples);
  20.     end;
  21.   end;
  22. end;
Advertisement
Add Comment
Please, Sign In to add comment