Einzelnen Beitrag anzeigen

danielmattes

Registriert seit: 13. Jul 2004
5 Beiträge
 

Re: Aktuelle Lautstärke ermitteln

  Alt 14. Jul 2004, 10: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ß!
  Mit Zitat antworten Zitat