[PD] tabread4~ "broken" interpolation algorithm - was Re: Max Smoother Audio than Pd?

Matt Barber brbrofsvl at gmail.com
Mon Mar 29 22:33:03 CEST 2010


>
>> I checked it out (not read the _whole_ thread to the end) but, In what
>> way can the current tabread4~ interpolation, which is discontinuous even
>> in its 1st derivative, be superior to true cubic interpolation? Even at
>> transpositions near to zero, I can't see what's the advantage, nor what
>> it is supposed to minimize.
>
> both are truly cubic interpolations.
>
> IIRC, one kind of cubic interpolation is designed to go through all four
> points, and the other kind is designed to be pieced with other cubic
> interpolations, and Miller confused the two and left the bug there.
>


Miller's is a true implementation of the former -- his is a Lagrange
interpolator which goes through all points -- it's algebraically
identical to the cubic interpolator in csound, and so it should have a
similar "sound" as any of the table-reading opcodes in csound that
also employ cubic interpolation.

The latter is an Hermite interpolator which uses the outside points to
approximate the first derivative -- the resulting curve only passes
through the middle two points, but doesn't go through the outside two;
this ensures that as it's pieced together the first derivative will be
continuous at the junctions.  It's algebraically identical to the
cubic interpolator in supercollider.

They're two different approaches -- each has its own frequency
response, but both are true cubics.  If you want to match all four
points AND the first derivatives, you have to use a 5th-order
polynomial.  The formulas are easily derivable using the Gaussian
method, and it's easy to implement all these as a library of functions
that can be accessed by the relevant objects, where the user can
choose which type of interpolation he/she wants to use.

Matt




More information about the Pd-list mailing list