On Mit, 2012-06-06 at 11:07 -0400, Matt Barber wrote:
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...
Roman
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 want.
You can use the same logic for needing to use variable write into a table rather than a delay line.
I see how it seems more logical/simple to model a moving source with a interpolating buffer writer. However, it's possible to model both cases, [moving source / stationary mic], [stationary source / moving mic] with a linear buffer writer and a interpolating buffer reader [1].
[1] http://en.wikipedia.org/wiki/Doppler_effect
Roman