[PD] ipoke~ ?
brbrofsvl at gmail.com
Wed Jun 6 17:07:19 CEST 2012
> On Wed, 2012-06-06 at 09:53 +0200, Jeppi Jeppi wrote:
> > Hey,
> > I wonder whether there is something similar to Max' ipoke~ (an
> > interpolating buffer~ writer) for Pd. I should need it for some
> > physical modelling and resampling stuff. Otherwise, I could implement
> > it myself. It seems only interpolated reading is available (tabread4~
> > and similar ones), not writing.
> This somehow reminds of the thread about settable [receive]. Is there
> really a need for the ability to do interpolated writing? Conceptually,
> is there any restriction if it is lacking? Can't everything that employs
> interpolated writing be achieved with interpolated reading as well?
> Maybe I'm not thinking hard enough...
If you're using it for modeling an acoustic space, for instance, an
interpolating write is the proper tool for stationary microphone and
moving sources. Interpolated read is more like a moving microphone.
Imagine, for instance, how you would calculate the delay time of a
sound source moving toward a microphone, from the microphone's point
of view. Say it's 50ms away right now, and in a second it will be 40ms
away. The correct model of this is not to set an interpolated variable
delay read at 50ms right now, and ramp to 40ms over one second - that
would be looking 50ms into the past (of the source) right now and 40ms
into the past at 1 second from now, where what you need is to look
50ms into the past of the source 50ms from now, and 40ms into the past
at 1040ms from now - so you'd need to delay the the signal controlling
the variable delay read itself by the appropriate amount, and that
signal would have to have the same information in it that you're
trying to generate with the read in the first place.
This problem is easily solvable with a variable write (assuming for
the moment a stationary read) - with a variable write, it is as though
you're projecting samples into the read's future -- exactly what you
You can use the same logic for needing to use variable write into a
table rather than a delay line.
More information about the Pd-list