#N canvas 192 22 980 677 10; #N canvas 0 22 450 278 (subpatch) 0; #X array array1 24 float 2; #X coords 0 1 24 -1 200 140 1; #X restore 41 73 graph; #X obj 56 283 guard_points array1; #X msg 56 259 bang; #X obj 628 196 tabread array1; #X obj 601 218 pack; #X obj 601 262 -; #X obj 601 305 > 0.04; #X msg 580 86 2; #X obj 580 108 loop; #X obj 628 151 + 1; #X obj 601 327 sel 1; #X obj 640 438 f; #X obj 621 485 loop; #X obj 601 373 array size array1; #X obj 642 509 t f f; #X obj 729 526 + 1; #X obj 642 547 tabread array1; #X obj 642 569 tabwrite array1; #X obj 601 395 t f f; #X obj 628 416 + 1; #X msg 56 336 4; #X obj 56 358 array size array1; #X obj 601 349 t b b; #X obj 628 173 t f f; #X obj 601 129 t f f; #X obj 601 240 route 1 0; #X obj 601 284 abs; #X obj 601 438 t b f; #X obj 279 480 v point0; #X obj 297 457 v point1; #X obj 316 434 v point2; #X obj 335 411 v point3; #X obj 480 590 v a0; #X obj 415 590 v a1; #X obj 350 590 v a2; #X obj 285 590 v a3; #X obj 258 639 tabwrite array1; #X obj 258 617 expr a0*0.5*0.25+a1*0.25+a2*0.5+a3; #X obj 285 528 expr point1 \; point2 - point0 \; point0 - point1 - a0 \; point3 - point2 - point0 + point1; #X obj 279 386 route 0 1 2 3; #X msg 258 219 4; #X obj 258 241 loop; #X obj 330 280 t f f; #X obj 330 302 +; #X obj 330 324 +; #X obj 279 263 t f f; #X obj 279 363 pack; #X obj 330 346 tabread array1; #X obj 357 307 > 1; #X obj 258 506 t b b; #X obj 640 460 t f f; #X obj 390 263 t f f; #X obj 390 285 - 2; #X obj 56 314 loadbang; #X text 54 238 2.add guard points; #X text 39 24 1.draw some values in the array \, make sure the first two points are not close to each other; #X text 469 614 we're placing a value in the middle of the two points with cubic interpolation \, hence 0.5 and 0.25; #X text 383 308 we're reading points 0 \, 1 \, 3 \, 4; #X text 578 46 3.run cubic interpolation equation repeatedly \, keep on baning the message; #X connect 2 0 1 0; #X connect 3 0 4 1; #X connect 4 0 25 0; #X connect 5 0 26 0; #X connect 6 0 10 0; #X connect 7 0 8 0; #X connect 8 1 24 0; #X connect 9 0 23 0; #X connect 10 0 22 0; #X connect 11 0 50 0; #X connect 12 0 40 0; #X connect 12 1 14 0; #X connect 13 0 18 0; #X connect 14 0 16 0; #X connect 14 1 15 0; #X connect 15 0 17 1; #X connect 16 0 17 0; #X connect 18 0 27 0; #X connect 18 1 19 0; #X connect 19 0 13 0; #X connect 20 0 21 0; #X connect 22 0 13 0; #X connect 22 1 11 0; #X connect 23 0 3 0; #X connect 23 1 11 1; #X connect 24 0 4 0; #X connect 24 1 9 0; #X connect 25 0 5 0; #X connect 25 1 5 1; #X connect 26 0 6 0; #X connect 27 0 12 0; #X connect 27 1 12 1; #X connect 37 0 36 0; #X connect 38 0 35 0; #X connect 38 1 34 0; #X connect 38 2 33 0; #X connect 38 3 32 0; #X connect 39 0 28 0; #X connect 39 1 29 0; #X connect 39 2 30 0; #X connect 39 3 31 0; #X connect 40 0 41 0; #X connect 41 0 49 0; #X connect 41 1 45 0; #X connect 42 0 43 0; #X connect 42 1 48 0; #X connect 43 0 44 0; #X connect 44 0 47 0; #X connect 45 0 46 0; #X connect 45 1 42 0; #X connect 46 0 39 0; #X connect 47 0 46 1; #X connect 48 0 44 1; #X connect 49 0 37 0; #X connect 49 1 38 0; #X connect 50 0 12 2; #X connect 50 1 51 0; #X connect 51 0 52 0; #X connect 51 1 36 1; #X connect 52 0 43 1; #X connect 53 0 20 0;