When you send this message [sinesum 512 1( to a table Pd will automatically add one index to the beginning of the table and two indices to its end, and you end up with a table of 515 indices. The three additional indices are the guard points for the cubic interpolation, right? So the first index should be a copy of the last element (here, index 0 a copy of index 512), and the last two indices should be copies of the first two elements (here, indices 513 and 514 copies of indices 1 and 2 respectively). Am I getting it right up to here? Well, with the message [cosinesum 512 0 1( this is indeed true; these are the values I get: index 512 = 0.999925 index 0 = 0.999925 index 1 = 1 index 513 = 1 index 2 = 0.999925 index 514 = 0.999925
Well, the second and the last elements have the same value anyway (index 2 and 512), which makes sense as it's a cosine. But if I send [sinesum 512 1( I'm getting these results: index 512 = -0.0122768 index 0 = -0.0122715 index 1 = 0 index 513 = -5.30718e-06 index 2 = 0.0122715 index 514 = 0.0122662
OK, index 0 is the negative of index 2, which can again make sense as it's a sine (supposing that index 0 is a copy of the table's last element), but index 512 doesn't have that value, why? And why do indices 1 and 513 have different values too?