Larry Troxler wrote:
I searched the FFT examples directory in the doc, and can't find exactly what I'm looking for, which a patch that will periodically do an fft and write the spectrum to an array. This would be just for rough monitoring purposes - it would be fine if the FFT were only computed once per second for example, with a fairly small frame size, and the result written to an array for graphical viewing. I imagine that this is a reasonable and common request, but I can't find anything in the examples that does this.
well, simplest would be to not do the fft each second but rather each blocksize. But then you will make quite a lot of fft's (depending on the blocksize and overlap-factor). but i guess, on "modern" machines, this might be only a small problem. if you set the blocksize high (eg: 32768 samples) with no overlap at all, you will get a significant peak in the CPU-load each time the fft is calculated, and you might get clicks (depending on the audiobuf-size and the cpu). of course you could use downsampling (see below), but the downsampling stuff is really awful (i did it;-)), with almost no filtering at all.
or you could turn on audio-processing with [switch~] whenever you want to get the fft for a short time...
a more elegant solution would be the use of iemtab by thomas musil (but i guess it is not released yet...?) you can do fft's of tables (and other use- and harmful things to tables) in message domain...
Also, is there any documentation for "block~"? I seem to remember reading some somewhere, but now I can't find anything. "Help" on the right-click menu does nothing.
the reference is in doc/5.reference/switch~.pd [switch~] and [block~] are really the same object, but [switch~] is switchable while [block~] is not. documentation for the up/downsampling feature of both of them can be found at doc/3.audio.examples/J09.up.downsampling.pd (was 74.up.downsampling.pd)
mf.a.sdr IOhannes