Clicks with large FFT size

Jonatan Ewald's icon

Hi,

I am trying to do a patch that changes the phase equally of each frequancy and so far it seems to work, but when I try to use larger FFT sizes I get periodic clicks or amplitude modulation.
Do anyone have an idea of why that is?
My CPU load is below 8% so I am not sure why this is happening.

Max Patch
Copy patch and select New From Clipboard in Max.

Floating Point's icon

in the audio status window try altering your output vector to a larger size

Jonatan Ewald's icon

I have my vector size on 128, I do not think it can be higher.

Jonatan Ewald's icon

I changed my soundcard buffer settings and turned up my vector size and now the problem is gone!
Thanks a lot!
Is there a way of calculating what buffer size is needed for a given FFT size?
This would be very good to know when trying to use FFT for realtime processing and effects.
What exactly is it that I/O Vector Size and Signal Vector Size does and how do they relate to my soundcard settings?

Floating Point's icon

Is there a way of calculating what buffer size is needed for a given FFT size?

no, I don't think they are related, except very indirectly

What exactly is it that I/O Vector Size and Signal Vector Size does and how do they relate to my soundcard settings?

I-O vector is the audio buffer in your sound card/interface, as far as I understand, and it has to be at least as large as your signal vector size.
sig vector is internal to max-msp, and the larger it is the more efficient audio calculations can be (less cpu load), at the expense of latency. It doesn't seem to have any direct relation to fft size if you are doing fft (although I've never tested that), except generally in terms of cpu load, but it does determine minimum delay for tapin /tapout objects.

my rule of thumb is have signal vector size as small as possible without using more than say half cpu, and I-O as small as possible without clicks, or twice the size of I-O size, whichever is the larger,

but it all really depends on application and context. anything less than 128 is a bonus and usually not necessary

you can review and change settings using the dspstate object