#N canvas 7 17 986 667 10; #X obj 490 632 outlet; #X text 540 635 Midi pairs come out here.; #X obj 490 544 t l l; #X obj 520 567 unpack f f; #X obj 62 21 tgl 14 0 \$0/passthrough \$1/passthrough passthrough 17 7 0 8 -260818 -1 -1 0 1; #X obj 520 610 s \$0/num1; #X obj 585 589 s \$0/num2; #X floatatom 4 42 3 0 0 0 - #0/num1 -; #X floatatom 32 42 3 0 0 0 - #0/num2 -; #X text 156 0 args: name timername length [midichannel]; #X obj 6 77 notein \$4; #X obj 574 4 r \$2; #X text 78 77 Midi notes come in here; #X text 609 3 Listen for timer ticks; #X obj 604 48 mod \$3; #X text 657 49 Loop at the right length; #X obj 6 106 pack f f; #X obj 6 275 t l l; #X text 695 100 Get the time since the last timer tick; #X obj 574 126 timer; #X obj 36 493 list prepend; #X obj 115 466 pack f f; #X obj 604 70 s \$0/tick; #X obj 166 443 r \$0/subtime; #X obj 574 150 s \$0/subtime; #X obj 604 100 r \$0/gettime; #X obj 94 345 s \$0/gettime; #X obj 115 443 f; #X obj 131 421 r \$0/tick; #X obj 574 25 t b f; #X obj 36 539 list prepend; #X obj 132 540 t l; #X obj 36 298 spigot; #X obj 73 276 r \$0/record; #X obj 129 493 r \$0/record; #X text 108 397 Data stored is: tick - tick offset - note - volume ; #X text 214 464 Reset the data if we hit record; #X obj 129 514 sel 1; #X obj 36 562 s \$0/data; #X obj 36 322 t l b b b; #X obj 94 371 s \$0/resettime; #X obj 463 69 r \$0/resettime; #X obj 513 247 r \$0/data; #X obj 490 269 list; #X text 527 270 Data lives here; #X obj 490 339 list append; #X obj 490 291 t b l; #X obj 490 363 list split 4; #X obj 490 390 unpack f f f f; #X obj 490 421 ==; #X obj 490 222 t b f; #X obj 490 468 delay; #X obj 552 468 pack f f; #X obj 490 500 list; #X text 489 183 Replay our list; #X obj 490 443 sel 1 0; #X obj 490 202 r \$0/tick; #X obj 161 540 s \$0/reset; #X obj 708 214 r \$0/reset; #X obj 708 235 t b b; #X obj 761 235 r \$0/data; #X obj 738 258 list; #X obj 738 280 t b l; #X obj 738 302 until; #X obj 738 327 list append; #X obj 738 349 list split 4; #X obj 738 372 unpack f f f f; #X text 771 259 Zero every note we know about; #X obj 800 393 pack f 0; #X obj 43 158 r \$0/record; #X obj 51 181 r \$0/passthrough; #X obj 43 232 ||; #X obj 6 253 spigot; #X obj 4 21 tgl 14 0 \$0/record \$1/record record 17 7 0 8 -260818 -1 -1 0 1; #X obj 6 599 s \$0/passnotes; #X obj 380 500 r \$0/passnotes; #X obj 51 202 t b f; #X obj 828 349 bang; #X text 220 131 sssad persistence; #X obj 221 147 sssad/auto \$0/data \$1/data; #X obj 719 165 s-connect \$1/data \$0/data; #X text 717 147 User can send in data; #X obj 29 133 inlet; #X connect 2 0 0 0; #X connect 2 1 3 0; #X connect 3 0 5 0; #X connect 3 1 6 0; #X connect 10 0 16 0; #X connect 10 1 16 1; #X connect 11 0 29 0; #X connect 14 0 22 0; #X connect 16 0 72 0; #X connect 17 0 74 0; #X connect 17 1 32 0; #X connect 19 0 24 0; #X connect 20 0 30 0; #X connect 21 0 20 1; #X connect 23 0 21 1; #X connect 25 0 19 1; #X connect 27 0 21 0; #X connect 28 0 27 1; #X connect 29 0 19 0; #X connect 29 1 14 0; #X connect 30 0 31 0; #X connect 30 0 38 0; #X connect 31 0 30 1; #X connect 32 0 39 0; #X connect 33 0 32 1; #X connect 34 0 37 0; #X connect 37 0 30 1; #X connect 37 0 57 0; #X connect 39 0 20 0; #X connect 39 1 27 0; #X connect 39 2 40 0; #X connect 39 3 26 0; #X connect 41 0 19 0; #X connect 42 0 43 1; #X connect 43 0 46 0; #X connect 45 0 47 0; #X connect 46 0 45 0; #X connect 46 1 45 1; #X connect 47 0 48 0; #X connect 47 1 45 1; #X connect 48 0 49 0; #X connect 48 1 51 1; #X connect 48 2 52 0; #X connect 48 3 52 1; #X connect 49 0 55 0; #X connect 50 0 43 0; #X connect 50 1 49 1; #X connect 51 0 53 0; #X connect 52 0 53 1; #X connect 53 0 2 0; #X connect 55 0 51 0; #X connect 55 1 45 0; #X connect 56 0 50 0; #X connect 58 0 59 0; #X connect 59 0 43 1; #X connect 59 0 61 1; #X connect 59 1 61 0; #X connect 60 0 61 1; #X connect 61 0 62 0; #X connect 62 0 63 0; #X connect 62 1 64 1; #X connect 63 0 64 0; #X connect 64 0 65 0; #X connect 65 0 66 0; #X connect 65 1 64 1; #X connect 65 2 77 0; #X connect 66 2 68 0; #X connect 68 0 2 0; #X connect 69 0 71 0; #X connect 70 0 76 0; #X connect 71 0 72 1; #X connect 72 0 17 0; #X connect 75 0 2 0; #X connect 76 0 71 0; #X connect 76 1 71 1; #X connect 77 0 63 1; #X connect 82 0 72 0; #X coords 0 -1 1 1 150 60 1 0 0;