Was soll FFT_SkipCount den in dieser Reihenfolge bewirken?
Die Samples der einzelnen Channels liegen direkt hintereinander.
Da wäre es eher anders herum sinnvoll, wenn man Samples auslassen will.
Ich würde in FFT_SkipCount eher die zu überspringenden Sample-Paare angeben:
Delphi-Quellcode:
VisData.Spectrum[0, I] := fn(Data32Pos^)
inc(Data32Pos);
VisData.Spectrum[1, I] := fn(Data32Pos^)
inc(Data32Pos, 1 + (2 * FFT_SkipCount));
Schon bei FFT_SkipCount = 1 wird jetzt DataPos bei jedem Schleifendurchlauf um 4 Samples weiter gesetzt.
Bei 256 Durchläufen sind das 1024 Samples. Größere Werte für FFT_SkipCount sind hier nicht zulässig.