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.