Re: Aktuelle Lautstärke ermitteln
14. Jul 2004, 11:03
hi,
du musst die wavedatei in einen buffer einlesen und dann wie folgt auslesen:
var
SP: ^Smallint;
N, v: Integer;
xMin, xMax: Integer;
vol: Integer;
---
//Volume ermitteln:
N := Size Div 2;
SP := Data;
xMin := SP^;
xMax := xMin;
For i := 0 To N - 1 Do Begin
v := SP^;
inc(SP);
If (xMin > v) Then xMin := v;
If (xMax < v) Then xMax := v;
End;
vol := Round(100 * xMax / 36768.0);
//Pegelanzeige:
ProgressBar3.position := vol;
data: pointer zur audiodatei (getestet mit 8khz mono)
xmin: niedrigste lautstärke
xmax: maximale lautstärke
vol: durchschnittslautstärke auf skala 1-100
---
denormalisieren funktioniert so:
//automatisch leiser drehen (denormalize)
{ratio := 32767 / xMax;
SP := Data;
for i:= 0 to N-1 do begin
SP^ := round(SP^ / ratio);
inc(SP);
end;}
fürs normalisieren einfach ratio ändern.
viel spaß!
|