Converting FFT freq ranges into list of floats
Hey folks,
I am trying to take a snapshot of an audio signal and convert that into a list
of normalized freq magnitudes. I want the output list to have 8 frequency bands.
I first tried fftb~, but it outputs freq components as audio signals in the amplitude time
domain. fft~ brings things in to the freq domain, but I can't figure out how to
get to the fft bin data to create my list. Also fft~ is using a 512 sample window, so I need to
be able to reduce that to 8 bands.
This seems harder than it should be. Am I missing something?
Any pointers would be appreciated.
Thanks,
Anthony
I don't know if I understand you a hundred percent.
But I think you should be able to this with just filtering. (fffb~ for instance).
FFT is a bit overkill when you need 8 bands.
Maybe this helps:
Hey Dave, thanks for your response. I already tried using fffb~, it really does not do what I want.
The values from fffb~ are constantly bouncing around because it is sampling the amplitude of the
frequency band output, not the magnitude of the frequency band.
Using the FFT approach would give me access to a constant value for a frequency range. Which is
what fffb~ is already doing.
The question is how do I access the frequency bins?
Does anyone know how to access the magnitude of an FFT bin in Max?
heres the pfft~ abstraction, save as binMag
and here's something to put it in:
btw it's really an indirect method of getting the magnitude of a bin, as it's just getting the instantaneous signal of selected bin by zeroing all the others, so you need to maybe rms the output of the pfft~. There should be a simpler, more direct method.
ok this is more direct--
call me binMag2:
and this is the parent patch:
(don't know why I have to divide the mag by 512... maybe someone can explain...)