[PD] Per sampleblock manipulation question

martin.peach at sympatico.ca martin.peach at sympatico.ca
Mon Nov 6 20:26:23 CET 2006


I attach a version of lrshift~.c and the new help file. It now accepts floats to change the shift amount. Maybe you could check to see if it works well. I guess I could commit it to cvs if approved.
Martin


> 
> From: "Charles Henry" <czhenry at gmail.com>
> Date: 2006/11/06 Mon AM 11:24:26 EST
> To: pd-list at iem.at
> Subject: Re: [PD] Per sampleblock manipulation question
> 
> lrshift~ needs to have a second inlet, or a float method to change the argument
> (grumble....gripe....moan) :P
> 
> I'd volunteer to add it, but what would the procedure be like for that?
> Chuck
> 
> On 11/6/06, Mathieu Bouchard <matju at artengine.ca> wrote:
> > On Sun, 5 Nov 2006, thewade wrote:
> > > Quoting Mathieu Bouchard <matju at artengine.ca>:
> > > I will poke around in the help files to see if I can find the
> > > incorrectly-named help for this object, to see what the related objects are.
> >
> > It's just named rlshift~ instead. Else it should work fine (unless you
> > have additional -path -helppath required, which may happen on some setups)
> >
> > >> no, convolution is a bunch of sample-wise shifts and [*~] and [+~]
> > >> together (as many as there are values in the convolution kernel).
> >
> > > Yes, but conceptually convolution is converting time domain sounds into
> > > frequency domain, storing the values in a sample block, and multiplying
> > > the two blocks together (and normalizing of course).
> >
> > Convolution can be defined in two completely equivalent ways: one as
> > polynomial product in the time domain (using a "z-series" representation)
> > and one as the complex multiplication of two frequency spectra using an
> > infinite blocksize.
> >
> > Almost all of the time, the time-domain representation is taught first.
> > This might be especially important as the frequency-domain only becomes
> > tangible once some kind of Fourier transform is in place, and the
> > polynomial product is certainly easier to explain than the Fourier
> > transform. (and that's even more true for realtime)
> >
> > But if you want to apply convolutions with large kernels and/or large
> > pieces of data, you really have to use [fft~] (for sound) or [#fft] (for
> > spatial-frequencies of images).
> >
> > > So if one block has no sound at 300Hz and the other block does, the
> > > resulting block does NOT have sound at 300Hz, right?
> >
> > Right.
> >
> > > So if your block size was four and you had one FFT block that was:
> > > 0,1,0,1 And another that was: 0,0,0,1 The convolved "real" sound block
> > > (before going to ifft~) would be 0,0,0,1 Right?
> >
> > Yes, supposing each of those values is a complex number. But that's
> > because "AND" is a special case of multiplication, because:
> >
> > 0*0 = 0
> > 0*1 = 0
> > 1*0 = 0
> > 1*1 = 1
> >
> > so * over {0,1} is exactly AND.
> >
> >       _ _ __ ___ _____ ________ _____________ _____________________ ...
> > | Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju
> > | Freelance Digital Arts Engineer, Montréal QC Canada
> >
> > _______________________________________________
> > PD-list at iem.at mailing list
> > UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
> >
> >
> >
> 
> _______________________________________________
> PD-list at iem.at mailing list
> UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
> 
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: lrshift~.c
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20061106/975a8e7b/attachment.txt>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: lrshift~-help.pd
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20061106/975a8e7b/attachment.asc>


More information about the Pd-list mailing list