Understanding interpolation in msp objects


    Mar 22 2016 | 12:02 pm
    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

    • Mar 22 2016 | 3:49 pm
      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....
    • Mar 22 2016 | 5:26 pm
      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
    • Mar 23 2016 | 5:42 pm
      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
    • Mar 24 2016 | 1:14 am
      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)