Forums > MaxMSP

pfft~ access to single bin

Sep 26 2011 | 2:01 pm


I look around in max’s help files but I can’t find answer form my question.

Do you know how to get access to single bin in fft frame in real time?
Is it possible with max?


Sep 26 2011 | 2:37 pm

The rightmost outlet of fftin~ gives you the bin index.

Sep 29 2011 | 9:30 am

Ok :)

But how can I get access to this data? With snapshot~ or buffer~ ?

Let say I want make a simple spectrogram based on fft~ with pfft~ and multislider. What should I put in the middle?

Thanks for help!

Sep 29 2011 | 4:03 pm

It depends where you want to store you data. If you want to make a spectrogram, I suggest you to store FFT data in a matrix (jit.matrix) using jit.peek~ to store and jit.poke~ to read the data. Working with FFT data is sooo much easier and more intuitive when the data is stored in a matrix that I really suggest you to go in that direction.

J.F. Charles published an awesome article in Computer Music Journal back in 2008 called A Tutorial on Spectral Processing Using Max/MSP and Jitter. There are also many accompanying patches to that article…have a search on the web. Priceless source of information!

PS: And you will have to decide between using fft~ or pfft~. There is no point in using both. At least not for what you want to do.

PS2: In case you’re not familiar with Jitter, you really need to know just few basics in order to create Spectrogram, so…I would say Jitter is the way forward:)

Sep 29 2011 | 4:04 pm

PS: I am just writing my dissertation on that topic, it will be finished very soon. Detailed description of spectral processing in Max/Jitter…stay tuned, 160 pages already:)

Sep 29 2011 | 6:19 pm

Thanks a million for the great answer!
I will be happy if let me know when you finalize your article.


Sep 30 2011 | 4:28 am

If you really want to isolate just a single bin (as opposed to displaying the entire spectrum), this may not be the most efficient way imaginable, but it works. (The example uses fft~ instead of fftin~, but the principle is the same.)

-- Pasted Max Patch, click to expand. --

Jan 19 2012 | 9:29 am

@ t: Did you finish your dissertation? I’d love to read it.

Cheers, A

Jan 20 2012 | 10:09 pm

Thanks for the tips t! I’d love to peek at some of your dissertation as well. This is something I’ve been contemplating pursuing as well!


Jan 20 2012 | 11:53 pm

You can use ==~ and sah~ to accomplish this. (as in when the bin# is equal to n, sample the value and continue holding it until the next frame. You can use send~ on this. You may need to divide by the number of overlap since you’re adding multiple values together)

Viewing 10 posts - 1 through 10 (of 10 total)

Forums > MaxMSP