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.
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.
Thanks, everyone!
Larry Troxler
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
Hi Larry, by using VASP this is fairly easy. I think you should get along with the VASP docs.
best greetings, Thomas
Am Mittwoch, 29.10.03 um 03:50 Uhr schrieb Larry Troxler:
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.
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.
Thanks, everyone!
Larry Troxler
PD-list mailing list PD-list@iem.at http://iem.at/cgi-bin/mailman/listinfo/pd-list
hi Larry,
you could take a look at vectral~/Scope~ method used in max/msp or cyclone -- with zooming, smoothing, etc. There are some examples (pink~ and spectrum-pm cyclone's test patches).
Krzysztof
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.