#N canvas 222 113 821 785 10; #X obj 405 551 r amp; #X obj 466 531 element trace-template bazoo; #X obj 365 578 set point-template y amp; #X obj 382 454 r pitch; #X obj 366 496 f; #X obj 366 520 * -4; #X obj 442 417 pointer; #X obj 443 608 f 1; #X obj 326 252 f; #X obj 326 191 f; #X obj 326 215 sel 0; #X floatatom 201 220 0; #X obj 24 72 r add-to-trace; #X obj 326 143 r start-new-trace; #X obj 341 305 r nframe; #X floatatom 203 100 0; #X obj 22 419 r pitch; #X obj 75 245 r frequency; #X obj 68 561 r amp; #X text 141 200 current pitch; #X obj 24 262 mtof; #X obj 24 190 sel 1; #X obj 24 214 t b b; #X obj 24 286 -; #X obj 24 310 abs; #X obj 24 334 <; #X obj 79 314 r f-threshold; #X obj 24 358 sel 1; #X obj 21 461 f; #X obj 59 268 f; #X obj 24 238 f; #X text 34 374 if this happens \, add to the trace; #X obj 533 114 r done-adding-traces; #X obj 533 165 sel 0; #X obj 583 89 - 1; #X obj 14 45 f 2; #X obj 13 385 t b b; #X obj 203 34 r clear-traces; #X obj 203 58 f 0; #X obj 24 166 f; #X obj 533 141 f; #X obj 93 403 pointer; #X text 160 397 current trace; #X obj 115 454 getsize trace-template bazoo; #X obj 155 504 + 1; #X obj 155 528 setsize trace-template bazoo; #X obj 126 557 element trace-template bazoo; #X obj 115 478 t f f; #X obj 21 586 set point-template y amp; #X obj 93 427 t b p p; #X obj 21 485 * -4; #X obj 13 633 s added-to-trace; #X obj 13 609 f 1; #X obj 40 97 r added-to-trace; #X obj 24 118 f; #X obj 24 142 sel 0; #X obj 342 170 r started-new-trace; #X obj 326 276 sel 0; #X obj 443 633 s started-new-trace; #X text 535 482 last trace in list; #X text 514 411 reentrancy protection \; should go away; #X obj 541 464 s last-in-list; #X obj 615 350 r last-in-list; #X obj 443 474 t b b p; #X obj 465 507 f 0; #X obj 326 357 * 5; #X obj 326 332 f; #X obj 292 300 f 2; #X text 238 52 "state" -- 0 if free \, 1 if making a trace \, and 2 if we've added a point for the current frame; #X obj 546 307 f \$1; #X text 585 306 voice number; #X obj 442 391 append trace-template x voiceno; #X obj 516 278 t f b; #X connect 0 0 2 1; #X connect 1 0 2 2; #X connect 3 0 4 1; #X connect 4 0 5 0; #X connect 4 0 11 0; #X connect 5 0 2 0; #X connect 6 0 63 0; #X connect 6 0 41 1; #X connect 7 0 58 0; #X connect 8 0 57 0; #X connect 9 0 10 0; #X connect 10 0 8 0; #X connect 11 0 30 1; #X connect 12 0 54 0; #X connect 13 0 9 0; #X connect 14 0 66 1; #X connect 15 0 39 1; #X connect 15 0 40 1; #X connect 15 0 8 1; #X connect 16 0 28 1; #X connect 17 0 29 1; #X connect 18 0 48 1; #X connect 20 0 23 0; #X connect 21 0 22 0; #X connect 22 0 30 0; #X connect 22 1 29 0; #X connect 23 0 24 0; #X connect 24 0 25 0; #X connect 25 0 27 0; #X connect 26 0 25 1; #X connect 27 0 36 0; #X connect 28 0 50 0; #X connect 28 0 11 0; #X connect 29 0 23 1; #X connect 30 0 20 0; #X connect 32 0 40 0; #X connect 33 1 34 0; #X connect 34 0 15 0; #X connect 35 0 15 0; #X connect 36 0 35 0; #X connect 36 0 52 0; #X connect 36 1 41 0; #X connect 37 0 38 0; #X connect 38 0 15 0; #X connect 39 0 21 0; #X connect 40 0 33 0; #X connect 41 0 49 0; #X connect 43 0 47 0; #X connect 44 0 45 0; #X connect 46 0 48 2; #X connect 47 0 46 0; #X connect 47 1 44 0; #X connect 49 0 28 0; #X connect 49 1 43 0; #X connect 49 2 45 1; #X connect 49 2 46 1; #X connect 50 0 48 0; #X connect 52 0 51 0; #X connect 53 0 54 1; #X connect 54 0 55 0; #X connect 55 0 39 0; #X connect 56 0 9 1; #X connect 57 0 66 0; #X connect 57 0 67 0; #X connect 62 0 71 2; #X connect 63 0 4 0; #X connect 63 0 7 0; #X connect 63 1 64 0; #X connect 63 2 1 1; #X connect 63 2 61 0; #X connect 64 0 1 0; #X connect 65 0 72 0; #X connect 66 0 65 0; #X connect 67 0 15 0; #X connect 69 0 71 1; #X connect 71 0 6 0; #X connect 72 0 71 0; #X connect 72 1 69 0;