Author Topic: BASS_ChannelGetData FFT Questions  (Read 314 times)

MHSS

  • Guest
BASS_ChannelGetData FFT Questions
« on: 28 Jan '18 - 06:39 »
Hello, i really like the output visualized using BASS_ChannelGetData, and i have some questions regarding.
1. what FFT algorithm is used ?
2. any functions applied to make it super normalized ?
3. are you using the the sample data as real values and filling 0 for imaginary and providing magnitudes for the output ?
4. i see a very noticeable difference between windows and ios output of this function, on windows the output is normalized, on ios it looks more like a standard fft
5. do you input both Left and right channels into your fft function ? what about in case of more channels, or do you average all the channels? or just use the first channel ?
6. if possible provide me with the function's source or what algorithms and modifications done to it so i can do some reuse it on Arduino(microcontroller), im goin to use your implementation and help in my graduation project as a computer engineer if you don't mind, you'll be credited in both cases. Thanks.

Ian @ un4seen

  • Administrator
  • Posts: 21325
Re: BASS_ChannelGetData FFT Questions
« Reply #1 on: 29 Jan '18 - 14:55 »
Magnitudes will be returned unless the BASS_DATA_FFT_COMPLEX flag is used, in which case the full complex result will be returned. Multiple channels will be mixed down to mono (averaged) unless the BASS_DATA_FFT_INDIVIDUAL flag is used, in which case separate results will be returned for each channel. Please see the BASS_ChannelGetData documentation for details on the available FFT options.

On OSX/iOS, BASS will make use of the OS's FFT processing rather than its own, but the result should be the same. Are you sure you're seeing a difference compared to Windows? I tried playing a file with the SPECTRUM example (included in the BASS package) on Windows and OSX just now, and the display was identical. If you are seeing different results, please upload an affected file to reproduce that with here:

   ftp.un4seen.com/incoming/

Regarding FFT code that you can use on Arduino, it looks like there is a ready-made library for you:

   https://github.com/kosme/arduinoFFT

If you want to replicate the BASS results, you would use a Hann window with that (unless BASS_DATA_FFT_NOWINDOW flag is used).

MHSS

  • Guest
Re: BASS_ChannelGetData FFT Questions
« Reply #2 on: 30 Jan '18 - 04:14 »
Thank you very much, all information you've provided is highly appreciated, i'm currently using ArduinoFFT and what i needed was exactly "Hann window", thank you for informing me.
After running Examples from on Osx and Windows, i see same exact results, must be a problem on my drawings at iOS app.