Understanding interpolation in msp objects
Hi,
Can anyone explain what is meant with 'interpolation' in msp objects that read from buffer. For example, we have the two objects peek~ and index~, where index~ does not interpolate (i don't know if peek~ interpolates). We also have various gen~ lookup interpolation methods.I am confused because I thought that querying a particular sample value would simply output that value as it is, and querying the next sample value would likewise output that value. But 'interpolation' suggests, that some smoothing is taking place – something in-between.
Best regards, Jakob
I don't believe that index~ or peek~ perform linear interpolation at all (if I'm wrong on peek~, it's time to update the refpage!).
In the gen~ world, the objects you can use to access buffer/data operator contents are all listed here, together with an indication of which operators interpolate when they do lookup and which do not:
If you're doing something like traversing an N-channel data/buffer object start to finish and zigzagging across the channels of the buffer as you go, I hope it'd be sort of clear why a little interpolation might be welcome....
jakob, i don't believe the interpolation happens between successive samples in the way that you're thinking.
in gen, at least, the interpolation setting affects read back. consider the example i attached. if you notice, reading from a index like "3" results in the same value from the three example interpolation peeks, but trying to read from "3.2" results in different values. this has to do with the interpolation setting used.
quickly glancing at index's documentation, i believe it's the same idea with the msp objects
Thanks for your replies :-)
I am not as confused as before.
Just a little follow up question:
If we use index~ to play from a buffer, will the output then somehow be rough/unmusical, since there is no interpolation? Or is the non-interpolating playback fine as long as we don't loop or traverse channels etc.?
Best regards Jakob
i am also pretty sure that index~ does not interpolate, it wouldnt make much sense for this object.
otherwise, for objects such as groove~ , wave~, or cycle~, they often habe different modes, linear, cubic and bicubic, and one of them is set by default if none is chosen using messages, for example "high quality" for cycle~.
as far as i can tell the interpolation modes are all noted in the obejcts helpfiles (and otherwise oyu can find them in their online references)