Thema: Delphi FFT Berechnung fails

Einzelnen Beitrag anzeigen

venice2
(Gast)

n/a Beiträge
 
#1

FFT Berechnung fails

  Alt 15. Jul 2021, 12:44
Nein es macht nicht wirklich Probleme aber es ist unverständlich für mich weil irgendwie unlogisch.

Ich habe 2 Kanäle jedem ist ein Array 0..511 zugewiesen.
0..511 = 512 Samples pro Kanal = 1024

Jetzt hole ich mir über Bass_ChannelGetdata die entsprechenden Samples um das Array zu füttern BASS_DATA_FFT1024
Nach meinem Verständnis sollte das eigentlich ausreichen um das Array zu befüllen.

Die Daten werden jetzt verschickt
CopyMemory(@gSOP.FFT, @FFFTdata, 1024);

Sieht auch für mich logisch aus.
Nun werden diese Ausgewertet.

Delphi-Quellcode:
        for I := 0 to 255 do
        begin
          VisData.Spectrum[0, I] :=
            Max(0, Min(255,
            (Trunc(Power(Data32Pos^, FFTSAmplification *
            IfThen(VisInfo^.UltraPlayerVis, 0.5, 1)) * 255))));
          inc(Data32Pos, FFT_SkipCount);

          VisData.Spectrum[1, I] :=
            Max(0, Min(255,
            (Trunc(Power(Data32Pos^, FFTSAmplification *
            IfThen(VisInfo^.UltraPlayerVis, 0.5, 1)) * 255))));
          inc(Data32Pos);
        end;
Die Frage die da wäre warum wird aber nur ein viertel der FFT gezeichnet?
Also bei einem Spektrum von 8 Balken nur 4 ?

Geändert von venice2 (15. Jul 2021 um 14:04 Uhr)
  Mit Zitat antworten Zitat