Hmmm klappt doch nicht!
Habe zum testen den channel auf 1 gestellt(MONO) und nicht wieder entfernt.
Nach einigen änderungen ist mir das aufgefallen und habe es geändert.
Jetzt läuft er auf 2 Kanälen stürzt aber mit einen Stack overflow ab.
Kommt keine Meldung wo der Fehler auftritt.
Irgendwie stimmt das mit VisData.frequency[i + 1024, i mod 1024]:= .. i + 1024 nicht
auch mit div geht es nicht!
Eigentlich darf hier das Array auch nicht größer als 1 sein [0..1]
Bei i + 1024 ist es sehr viel größer oder ?
VisData.frequency[1, i mod 1024]:= ..
Gibt mir auch die Samples des Rechten Kanal nicht richtig zur auswertung.
VisData.frequency[i div 1024, i mod 1024]:=
i div 1024 ist eins! nur dann kann ich direkt die 1 eingeben und muss die nicht extra berechnen.
EDIT:
Das hier funktioniert 100% ist aber nur MONO bzw. 1 Kanal(links)
Delphi-Quellcode:
for i := 0 to 1023 do
begin
VisData^.frequency[0, i] :=
Max(0, Min(1023, (Trunc(Power(Data32Pos^, FFTSAmplification * 1.0) * 1023))));
VisData^.frequency[1, i] := VisData^.frequency[0, i];
Inc(Data32Pos, FFT_SkipCount);
end;
gruss Emil