[PD] convolution code error

J. Scott Hildebrand jshildebrand at ucdavis.edu
Thu Aug 22 01:03:39 CEST 2002


       does the program loop the perform function over and over again, or
just the while(n--) loop? from what i understand the n-- gets a new block
of samples right? does that mean that within my while loop i can have more
of n-- and get a new block? thanks,

            scott


On Thu, 22 Aug 2002, Thomas Grill wrote:

> 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
> >
> >
> >
>




--------------------------------------------------------------------

	"640K ought to be enough for anybody." -- Bill Gates, 1981

--------------------------------------------------------------------





More information about the Pd-list mailing list