hi, the block~-object defines how many samples one signal-vector contains. usually you have vector sizes of 64 and no overlap. an overlap-factor of two tells pd to do two calculations of a certain window/patch/subpatch during the same time, but the second vector is always time delayed by one half blocksize. (one calculation block starts at sample 1 and is finished with sample 64, another calculation block is started at the theoretically time of sample 33 of the first vector, and also blocks 64 samples to one vector.) but at an outlet~ object (or throw~, ....) those two vectors are added. for example if you have a tabreceive~ object, then the received array is received/read twice. if you do no other calculation at all and just connect an outlet, the sound will be played twice with a delay of 32 samples. (which may be is not so interesting for sounds). but for convolution. you will do a multiplication with a hanning window (which makes a fadein and out), and then have the fft process. because of the overlap factor this results in the addition of two time-delayed calculations and that is a permanent fading - fadein of one hanning-windowed vector is at the same time of the fade out of the other window. btw, have you had a look at the convobros example in the 4.fft-documentation? everything is there already. sme.
----- Original Message ----- From: "J. Scott Hildebrand" jshildebrand@ucdavis.edu To: bsaylor@macalester.edu Cc: pd-list@iem.kug.ac.at Sent: Wednesday, August 28, 2002 12:51 AM Subject: Re: [PD] block size
i'm not exactly sure what you mean by the inlet is giving a block
consisting of the last half of the previous block and the first half of the next block. the inlet takes data in and the outlet takes data out. there is only an inlet in the block~ object and no outlet. and how would i use this overlapping mechanism to do the overlap and add routine for real-time convolution? thanks!
scott
On Tue, 27 Aug 2002 bsaylor@macalester.edu wrote:
I'm not sure what the inlet is for, but yes, just put block~ anywhere in a containing window.
The overlap factor is most useful for when you want to do FFT operations on overlapping, windowed (e.g. Hanning) blocks. It sort of means that instead of just moving on to the next input block, the inlet~ will give a block consisting of (say the overlap factor is 2) the last half of the previous block and and the first half of the next block. The outlet~ then adds the overlapping blocks back together. You need an overlap factor of at least 2 (which seems to be usually good enough) when working with hanning-windowed blocks. For convolution, windowing isn't necessary, so depending on how your algorithm works, an overlap factor of 1 (e.g. no overlap) might work. I think this is all at least conceptually correct; someone correct me if I'm wrong.. :)
Ben
On Tue, Aug 27, 2002 at 01:04:50PM -0700, J. Scott Hildebrand wrote:
my block size needs to be 256, but how do i know what to use as
the
overlap factor? and also how do i use the block? it has one inlet, do
i
just need to leave it alone and have my block anywhere in my patch?
thanks, scott
"640K ought to be enough for anybody." -- Bill Gates, 1981
PD-list mailing list PD-list@iem.kug.ac.at http://iem.kug.ac.at/cgi-bin/mailman/listinfo/pd-list
PD-list mailing list PD-list@iem.kug.ac.at http://iem.kug.ac.at/cgi-bin/mailman/listinfo/pd-list
"640K ought to be enough for anybody." -- Bill Gates, 1981
PD-list mailing list PD-list@iem.kug.ac.at http://iem.kug.ac.at/cgi-bin/mailman/listinfo/pd-list