I love the GetSpectrum(), cause I don’t want to create my own FFT-code, when there is already a really good-working one available (and I don’t know exactly, how to handle the FFT.)
Of course, the 512 values, returned from GetSpectrum(), can be the basis for further mathematics, but if you want to diagnose or visualize f.e. FQs from 100Hz to 400 Hz, or you want set the FQ-Axis in the visualization to a logarithmic scale,…, you have to interpolate a lot.
So I was wondering, if it is possible to play with some parameters inside the FMODs FFT-function-maths:
It would be fantastic, if there were some parameters to define the FFTlowerFQ, FFTupperFQ, FFT_X-scale and FFT_Y-scale.
[i:z0kx166c]FFTlowerFQ is a float between 0 and 1[/i:z0kx166c]
[0;1] ;FFTlowerFQ is nyquist * parameter, but at least 1 Hz
[i:z0kx166c]FFTupperFQ is a float between 0 and 1[/i:z0kx166c]
[0;1] ;FFTupperFQ is nyquist * parameter, but at least 1 Hz. If it is smaller than FFTlowerFQ, they both change their values.
[i:z0kx166c]FFT_X-scale is a float >= 0[/i:z0kx166c] (here is X-Axis = FQ-Axis)
[1] ;FFT_X-scale is linear, so the half FQ of the given Intervall is represented between the values 255 and 256
>1 ;The X-axis-scale becomes more’n more logarithmic to stretch the lower half of frequencies to more than the half of the 512 values.
[0;1] ;The X-axis-scale becomes more’n more exponential to stretch the higher half of frequencies to more than the half of the 512 values.
[i:z0kx166c]FFT_Y-scale is a float >= 0[/i:z0kx166c]
same as FFT_X-scale, but it defines the stretching for the Y-Axis, here the Amplitude-Axis
These values could (if it is possible in your FFT-function code) set the new intervall & stretch f.e. trough a function as:
FSOUND_DSP_SpectrumPriorities(FFTlowerFQ, FFTupperFQ, FFTxscale, FFTyscale)
Would this make a lot of work ??
- Froggerprogger asked 15 years ago
- You must login to post comments
Please login first to submit.