robert@464: #N canvas 69 182 1020 452 10; robert@464: #N canvas 0 23 450 278 (subpatch) 0; robert@464: #X array \$0-activeNotes 127 float 2; robert@464: #X coords 0 100 127 -1 200 140 1 0 0; robert@464: #X restore 537 25 graph; robert@464: #N canvas 89 91 450 300 resetArray 1; robert@464: #X obj 121 145 tabwrite \$0-activeNotes; robert@464: #X msg 123 115 -0.5; robert@464: #X obj 154 90 t b f; robert@464: #X msg 129 45 128; robert@464: #X obj 103 14 inlet; robert@464: #X text 212 71 countto; robert@464: #X obj 153 69 countTo; robert@464: #X connect 1 0 0 0; robert@464: #X connect 2 0 1 0; robert@464: #X connect 2 1 0 1; robert@464: #X connect 3 0 6 0; robert@464: #X connect 4 0 3 0; robert@464: #X connect 6 0 2 0; robert@464: #X restore 83 49 pd resetArray; robert@464: #X obj 83 3 loadbang; robert@464: #X obj 88 25 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 robert@464: -1; robert@464: #X obj 39 188 maxArray \$0-activeNotes 128; robert@464: #X obj 183 219 f; robert@464: #X obj 39 237 >= 0; robert@464: #X floatatom 148 313 5 0 0 0 - - -, f 5; robert@464: #X obj 70 262 select 1; robert@464: #X obj 366 87 f; robert@464: #X obj 426 60 f; robert@464: #X text 334 39 note; robert@464: #X text 424 16 velocity; robert@464: #X obj 423 87 > 0; robert@464: #X obj 344 281 tabwrite \$0-activeNotes; robert@464: #X obj 330 207 f; robert@464: #X floatatom 303 178 5 0 0 0 - - -, f 5; robert@464: #X obj 265 163 f; robert@464: #X obj 304 150 + 1; robert@464: #X msg 277 130 -1; robert@464: #X msg 371 207 -0.5; robert@464: #X obj 400 116 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 robert@464: 1; robert@464: #X obj 367 137 spigot; robert@464: #X obj 447 134 spigot; robert@464: #X obj 460 86 == 0; robert@464: #X obj 470 109 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 robert@464: 1; robert@464: #X obj 434 163 t b f; robert@464: #X obj 337 60 inlet; robert@464: #X obj 426 32 inlet; robert@464: #X obj 148 350 outlet; robert@464: #X obj 275 89 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 robert@464: -1; robert@464: #X obj 41 163 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 robert@464: -1; robert@464: #X obj 363 172 t b f; robert@464: #X obj 334 240 t b f; robert@464: #X text 578 211 pass in velocity/note pairs (velocity first) and obtain robert@464: as an output the most recent note still active; robert@464: #X text 581 268 outlet 2 gate; robert@464: #X obj 330 366 outlet; robert@464: #X text 583 251 outlet 1 most recent note active (-1 otherwise); robert@464: #X text 155 329 most recent note active; robert@464: #X msg 338 338 0; robert@464: #X msg 378 339 1; robert@464: #X connect 2 0 3 0; robert@464: #X connect 3 0 1 0; robert@464: #X connect 3 0 19 0; robert@464: #X connect 4 0 6 0; robert@464: #X connect 4 1 5 1; robert@464: #X connect 5 0 7 0; robert@464: #X connect 5 0 40 0; robert@464: #X connect 6 0 8 0; robert@464: #X connect 7 0 29 0; robert@464: #X connect 8 0 5 0; robert@464: #X connect 8 1 39 0; robert@464: #X connect 9 0 22 0; robert@464: #X connect 9 0 23 0; robert@464: #X connect 10 0 13 0; robert@464: #X connect 10 0 24 0; robert@464: #X connect 13 0 21 0; robert@464: #X connect 15 0 33 0; robert@464: #X connect 16 0 15 1; robert@464: #X connect 17 0 18 0; robert@464: #X connect 18 0 16 0; robert@464: #X connect 18 0 17 1; robert@464: #X connect 19 0 17 1; robert@464: #X connect 20 0 33 0; robert@464: #X connect 21 0 22 1; robert@464: #X connect 22 0 32 0; robert@464: #X connect 23 0 26 0; robert@464: #X connect 24 0 25 0; robert@464: #X connect 25 0 23 1; robert@464: #X connect 26 0 20 0; robert@464: #X connect 26 1 14 1; robert@464: #X connect 27 0 9 0; robert@464: #X connect 28 0 10 0; robert@464: #X connect 28 0 30 0; robert@464: #X connect 30 0 17 0; robert@464: #X connect 31 0 4 0; robert@464: #X connect 32 0 15 0; robert@464: #X connect 32 1 14 1; robert@464: #X connect 33 0 31 0; robert@464: #X connect 33 1 14 0; robert@464: #X connect 39 0 36 0; robert@464: #X connect 40 0 36 0;