Thema: Delphi FFT Berechnung fails

Einzelnen Beitrag anzeigen

venice2
(Gast)

n/a Beiträge
 
#15

AW: FFT Berechnung fails

  Alt 4. Okt 2021, 21:16
Keine Ahnung auf was du hinaus willst.
Du weist doch gar nicht wofür FFT_SkipCount steht.

Delphi-Quellcode:
  BASS_SONIQUEVIS_CONFIG_FFT_SKIPCOUNT = 2; // Skip count range is from 1 to 3 (because of limited FFT request size)
  BASS_SONIQUEVIS_CONFIG_WAVE_SKIPCOUNT = 3; // Skip count range is from 0 to (...) try it out, whenever Bass crashes or does not return enough sample data
Definition von FFT_SKIPCOUNT und WAVE_SKIPCOUNT.

Der Speicher wird so zugewiesen
GetMem(Data32, FFT_SkipCount shl 13);

FFTSize ist abhängig vom übergebenen FFT_SkipCount
BASS_DATA_FFT1024, BASS_DATA_FFT2048, BASS_DATA_FFT4096

Delphi-Quellcode:
        case (FFT_SkipCount) of
          1:
            FFTSize := BASS_DATA_FFT1024;
          2:
            FFTSize := BASS_DATA_FFT2048;
          3:
            FFTSize := BASS_DATA_FFT4096;
        else
          FFT_SkipCount := 1;
          FFTSize := BASS_DATA_FFT1024;
        end;

        Bass_ChannelGetdata(channel, Data32, FFTSize or DWORD(IfThen(ChanInfo.chans = 2,
              BASS_DATA_FFT_INDIVIDUAL) or IfThen(not VisInfo^.UltraPlayerVis,
              BASS_DATA_FFT_NOWINDOW)));
Dementsprechend hole ich mir dann die passenden Werte über Bass_ChannelGetdata. Siehe FFTSize
Zitat:
Bei 256 Durchläufen sind das 1024 Samples. Größere Werte für FFT_SkipCount sind hier nicht zulässig.
Man muß das gesamt Bild sehen und nicht nur einen Teil davon. Du darfst hier nicht von einen festen Wert ausgehen BASS_DATA_FFT1024

Aber hat nichts mit meiner Frage in diesen Thread zu tun und dieser war ja auch schon beantwortet.

Geändert von venice2 ( 5. Okt 2021 um 07:03 Uhr)
  Mit Zitat antworten Zitat