[PD] convolution code error

Thomas Grill t.grill at gmx.net
Thu Aug 22 00:14:20 CEST 2002


Hi Scott,
i'm not quite sure what the problem is, but a few remarks on these things:

1) the block size (= the length of the inupt and output vectors) can be
different from 64...according to the setting of a block~ object in the
patcher
2) the input and output arrays can point to the same locations.. that means
that once you have filled the output array, the input data is lost. I think,
there is a switch to have separate arrays, though... must be somewhere with
class setup.
3) if you want to grab a fixed amount of 256 samples for some fft stuff you
will have to reserve some extra space for fft input and transformed data.

You start with empty fft in and transformed data. In every dsp perform
function you copy the signal input to the fft in buffer. The transformed
data is still zero, hence the signal output will be zero.
At some time the fft in buffer is filled. You can then do the transformation
and start copying this output data into the signal output. Your fft input is
again empty, so you start filling it again....
Once understood, it isn't difficult.

hope that helps,
greetings, Thomas

----- Original Message -----
From: "J. Scott Hildebrand" <jshildebrand at ucdavis.edu>
To: "Frank Barknecht" <barknech at ph-cip.uni-koeln.de>
Cc: <pd-list at iem.kug.ac.at>
Sent: Wednesday, August 21, 2002 11:52 PM
Subject: Re: [PD] convolution code error


>
>        here's a pd concept i do no understand: first take a look at this
> code >>>
>
>
> t_float lsum = 0.0;
> t_float rsum = 0.0;
>
>    lsum = *in1++;
>            rsum = *in2++;
>    *out1++ = lsum;
>    *out2++ = rsum;
>
>    if i have this in my while(n--) loop inside the perform function, then
> it takes input audio and just sends it back out. it works. i don't
> understand how the input and output arrays work though. i thought that in
> and out were actually arrays with 64 samples in each. right here what i'm
> doing is taking one sample with lsum and rsum, and then i'm spitting the
> output out, and then doing the while loop again. right? what exactly is
> happening? and then what do i need to do to collect 256 samples into an
> array and then use that in my convolution scheme? thanks!
>
>                                scott
>
>
>
> --------------------------------------------------------------------
>
> "640K ought to be enough for anybody." -- Bill Gates, 1981
>
> --------------------------------------------------------------------
>
>
> _______________________________________________
> PD-list mailing list
> PD-list at iem.kug.ac.at
> http://iem.kug.ac.at/cgi-bin/mailman/listinfo/pd-list
>
>
>





More information about the Pd-list mailing list