Ich schließe mich hier mal an.
habe alles vorangehende gelesen und auch umgesetzt.
Nur sind mir die Frequenzen zu
ungenau die dort ausgegeben werden. Sie sind ja meistens ohne Nachkommastellen (eine würde mir da eigtl schon reichen) und was noch viel schlimmer ist nicht auf das Herz genau sondern auf 5 Herz kann man das irgendwie
optimieren?
Was mich wundert ist das es nicht immer Frequenzen sind die durch 5 teilbar sind sondern manchmal auch lange Nachkommawerte auftauchen aber halt nur sehr selten ... :-/ warum?
MfG LLiinnuuxx
PS nochmal ein wenig Quellcode:
Delphi-Quellcode:
//Quellcode aus dem Beispiel übernommen
procedure [b]MeasureFrequency [/b](var LocWaveRecord : TWaveRecord);
var
Channel,i,j : word;
Freq : extended;
begin
with LocWaveRecord do begin
for Channel := Le to Ri do begin
j := 0;
for i := 1 to BufferBlocks-1 do begin
if ((StereoBuffer[i-1,Channel] <= 0)
and (StereoBuffer[i,Channel] > 0))
then j := Succ(j);
end;
Freq := j*cSampleRate/BufferBlocks;
//Mittelwertbilden wird nicht benötigt wurde daher nicht aus dem beispiel übernommen
if j>2 then
if Channel = Le then Frequency.LeftChannel:=Freq else Frequency.RightChannel:=Freq;
end;
end;
end;