#N canvas 447 89 789 683 12;
#N canvas 0 22 450 278 (subpatch) 0;
#X array waveform13 11 float 2;
#X coords 0 1.02 11 -1.02 300 140 1 0 0;
#X restore 405 39 graph;
#X obj 162 159 +~ 1;
#X text 52 82 phase;
#X text 52 131 range;
#N canvas 0 22 450 278 (subpatch) 0;
#X array wave-out13 441 float 0;
#X coords 0 1.02 440 -1.02 300 140 1 0 0;
#X restore 405 237 graph;
#X obj 162 249 tabwrite~ wave-out13;
#X obj 162 186 tabread4~ waveform13;
#X obj 162 133 *~ 8;
#X obj 162 97 phasor~ 220;
#X obj 214 318 sig~ 220;
#X obj 214 348 tabosc4~ waveform13;
#X text 204 217 <-- click to graph;
#X obj 179 218 bng 19 250 50 0 empty graphit empty 17 7 0 10 #dfdfdf #000000 #000000;
#X obj 41 198 ../5.reference/set-dsp-tgl;
#X text 72 201 DSP on/off;
#X msg 41 235 \; pd dsp \$1;
#X text 51 97 generation -->;
#X text 51 146 adjustment -->;
#X text 86 297 this would be equivalent to the above -->, f 25;
#X obj 34 25 cnv 5 5 25 empty empty 4-Point\ Interpolation\ in\ detail 15 13 0 16 #dfdfdf #202020 0;
#X text 545 580 no copies;
#X text 242 580 with copies;
#X text 93 491 The table contains a transition from 1 to -1 at index 7 to 8 and \, which is "smoothed" as seen in wave-out13. Since index 9 is a copy of 1 there's a transition back. You can try below a table without copies for the extra points and see how in this case there's not a smooth transition at the wrap around point., f 86;
#X text 93 405 This patch demonstrates 4-point interpolation in [tabread4~]. The 11-point table \, "waveform13" \, is actually an 8-point table (from index 1 to 8) with extra copied points (0 \, 9 and 10). The 0 index point is a copy of point 8 and points 9 and 10 are copies of points 1 and 2 \, which is needed for the 4-point interpolation (which means the interpolation always happens between 4 consecutive samples of the table)., f 86;
#X msg 425 603 \; waveform13 0 1 1 1 1 1 1 1 -1 -1 -1 -1 \; graphit bang;
#X msg 122 603 \; waveform13 0 -1 1 1 1 1 1 1 -1 -1 1 1 \; graphit bang;
#X obj 122 577 loadbang;
#X connect 1 0 6 0;
#X connect 6 0 5 0;
#X connect 7 0 1 0;
#X connect 8 0 7 0;
#X connect 9 0 10 0;
#X connect 12 0 5 0;
#X connect 13 0 15 0;
#X connect 26 0 25 0;
