Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- procedure FadeWAVE(var WaveContent: TWaveContent; MilliSeconds: SmallInt);
- // Linearer FadeIn oder FadeOut
- var
- Sample, Samples: Integer;
- begin
- Samples := min(abs(Round(MilliSeconds * 44.1)),length(WaveContent)-1);
- // 1. Aus den Millisekunden wird die Anzahl der Samples gerechnet
- // 2. Die Maximale Dauer des Fades wird auf die Länge des Arrays gesetzt.
- if MilliSeconds > 0 then begin // Positiver Wert => FadeIn
- for Sample := 0 to Samples do begin
- WaveContent[Sample].Left := Round(WaveContent[Sample].Left * Sample / Samples);
- WaveContent[Sample].Right := Round(WaveContent[Sample].Right * Sample / Samples);
- end;
- end else begin // Negativer Wert => FadeOut
- for Sample := length(WaveContent) - Samples to length(WaveContent)- 1 do begin
- WaveContent[Sample].Left := Round(WaveContent[Sample].Left * (length(WaveContent)
- - Sample) / Samples);
- WaveContent[Sample].Right := Round(WaveContent[Sample].Right * (length(WaveContent)
- - Sample) / Samples);
- end;
- end;
- end;
Advertisement
Add Comment
Please, Sign In to add comment