#N canvas 534 29 562 551 10;
#X declare -stdpath ./;
#X obj 2 312 cnv 3 550 3 empty empty inlets 8 12 0 13 #dcdcdc #000000 0;
#X obj 2 429 cnv 3 550 3 empty empty outlets 8 12 0 13 #dcdcdc #000000 0;
#X obj 2 491 cnv 3 550 3 empty empty arguments 8 12 0 13 #dcdcdc #000000 0;
#X obj 84 321 cnv 17 3 76 empty empty 0 5 9 0 16 #dcdcdc #9c9c9c 0;
#X obj 84 403 cnv 17 3 17 empty empty 1 5 9 0 16 #dcdcdc #9c9c9c 0;
#X floatatom 166 209 5 0 0 0 - - - 0;
#X floatatom 229 210 5 0 0 0 - - - 0;
#X obj 84 438 cnv 17 3 17 empty empty 0 5 9 0 16 #dcdcdc #9c9c9c 0;
#X obj 84 461 cnv 17 3 17 empty empty 1 5 9 0 16 #dcdcdc #9c9c9c 0;
#X obj 154 234 cyclone/flush;
#X obj 2 522 cnv 15 552 21 empty empty empty 20 12 0 14 #e0e0e0 #202020 0;
#X text 158 322 -;
#X text 125 322 bang;
#X text 158 343 -;
#X text 118 343 float;
#X text 158 364 -;
#X text 124 364 list;
#X text 158 385 -;
#X text 158 405 -;
#X text 118 405 float;
#X text 158 440 -;
#X text 118 440 float;
#X text 158 463 -;
#X text 118 463 float;
#X text 111 500 (none);
#X text 67 86 Like a "panic button" \, [flush] keeps track of Note-on messages that weren't switched off and "flushes" them by sending corresponding note-offs when it receives a bang.;
#X obj 117 181 bng 18 250 50 0 empty empty empty 17 7 0 10 #dcdcdc #000000 #000000;
#X text 173 364 sets a pitch/velocity pair of a note message, f 60;
#X text 173 385 clears the hanging notes that [flush] keeps track off;
#X text 173 322 sends note off for hanging notes, f 60;
#X text 118 385 clear;
#X text 173 405 sets the velocity part of the note message, f 60;
#X text 173 343 sets the pitch part of the note message, f 60;
#X text 173 440 the pitch part of a note message, f 60;
#X text 173 463 the velocity part of a note message, f 60;
#X obj 229 259 nbx 4 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 #dcdcdc #000000 #000000 0 256;
#X obj 154 259 nbx 4 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 #dcdcdc #000000 #000000 0 256;
#X text 279 259 velocity;
#X text 112 259 pitch;
#X text 48 182 flush them;
#X msg 154 158 64 100 \, 69 100;
#X text 249 158 and leave them hanging;
#X text 153 138 send a couple of note on messages;
#X obj 229 278 print velocity;
#X obj 154 279 print pitch;
#X text 166 190 pitch;
#X text 225 190 velocity;
#N canvas 678 129 625 500 example 0;
#X obj 231 226 cnv 15 140 40 empty empty empty 20 12 0 14 #ececec #404040 0;
#N canvas 923 225 443 345 polysynth 0;
#X obj 85 63 inlet;
#X obj 173 298 outlet~;
#N canvas 292 354 342 369 voice 0;
#X obj 197 123 / 127;
#X obj 182 228 *~;
#X obj 182 260 *~ 0.2;
#X obj 92 149 phasor~;
#X obj 92 117 mtof;
#X obj 92 42 inlet;
#X obj 182 297 outlet~;
#X obj 197 183 line~;
#X msg 197 148 \$1 250;
#X obj 49 184 cyclone/triangle~ 0.7;
#X obj 92 83 unpack float float;
#X connect 0 0 8 0;
#X connect 1 0 2 0;
#X connect 2 0 6 0;
#X connect 3 0 9 0;
#X connect 4 0 3 0;
#X connect 5 0 10 0;
#X connect 7 0 1 1;
#X connect 8 0 7 0;
#X connect 9 0 1 0;
#X connect 10 0 4 0;
#X connect 10 1 0 0;
#X restore 24 209 pd voice;
#N canvas 292 354 342 369 voice 0;
#X obj 197 123 / 127;
#X obj 182 228 *~;
#X obj 182 260 *~ 0.2;
#X obj 92 149 phasor~;
#X obj 92 117 mtof;
#X obj 92 42 inlet;
#X obj 182 297 outlet~;
#X obj 197 183 line~;
#X msg 197 148 \$1 250;
#X obj 49 184 cyclone/triangle~ 0.7;
#X obj 92 83 unpack float float;
#X connect 0 0 8 0;
#X connect 1 0 2 0;
#X connect 2 0 6 0;
#X connect 3 0 9 0;
#X connect 4 0 3 0;
#X connect 5 0 10 0;
#X connect 7 0 1 1;
#X connect 8 0 7 0;
#X connect 9 0 1 0;
#X connect 10 0 4 0;
#X connect 10 1 0 0;
#X restore 87 209 pd voice;
#N canvas 292 354 342 369 voice 0;
#X obj 197 123 / 127;
#X obj 182 228 *~;
#X obj 182 260 *~ 0.2;
#X obj 92 149 phasor~;
#X obj 92 117 mtof;
#X obj 92 42 inlet;
#X obj 182 297 outlet~;
#X obj 197 183 line~;
#X msg 197 148 \$1 250;
#X obj 49 184 cyclone/triangle~ 0.7;
#X obj 92 83 unpack float float;
#X connect 0 0 8 0;
#X connect 1 0 2 0;
#X connect 2 0 6 0;
#X connect 3 0 9 0;
#X connect 4 0 3 0;
#X connect 5 0 10 0;
#X connect 7 0 1 1;
#X connect 8 0 7 0;
#X connect 9 0 1 0;
#X connect 10 0 4 0;
#X connect 10 1 0 0;
#X restore 154 209 pd voice;
#N canvas 292 354 342 369 voice 0;
#X obj 197 123 / 127;
#X obj 182 228 *~;
#X obj 182 260 *~ 0.2;
#X obj 92 149 phasor~;
#X obj 92 117 mtof;
#X obj 92 42 inlet;
#X obj 182 297 outlet~;
#X obj 197 183 line~;
#X msg 197 148 \$1 250;
#X obj 49 184 cyclone/triangle~ 0.7;
#X obj 92 83 unpack float float;
#X connect 0 0 8 0;
#X connect 1 0 2 0;
#X connect 2 0 6 0;
#X connect 3 0 9 0;
#X connect 4 0 3 0;
#X connect 5 0 10 0;
#X connect 7 0 1 1;
#X connect 8 0 7 0;
#X connect 9 0 1 0;
#X connect 10 0 4 0;
#X connect 10 1 0 0;
#X restore 217 209 pd voice;
#N canvas 292 354 342 369 voice 0;
#X obj 197 123 / 127;
#X obj 182 228 *~;
#X obj 182 260 *~ 0.2;
#X obj 92 149 phasor~;
#X obj 92 117 mtof;
#X obj 92 42 inlet;
#X obj 182 297 outlet~;
#X obj 197 183 line~;
#X msg 197 148 \$1 250;
#X obj 49 184 cyclone/triangle~ 0.7;
#X obj 92 83 unpack float float;
#X connect 0 0 8 0;
#X connect 1 0 2 0;
#X connect 2 0 6 0;
#X connect 3 0 9 0;
#X connect 4 0 3 0;
#X connect 5 0 10 0;
#X connect 7 0 1 1;
#X connect 8 0 7 0;
#X connect 9 0 1 0;
#X connect 10 0 4 0;
#X connect 10 1 0 0;
#X restore 284 209 pd voice;
#N canvas 292 354 342 369 voice 0;
#X obj 197 123 / 127;
#X obj 182 228 *~;
#X obj 182 260 *~ 0.2;
#X obj 92 149 phasor~;
#X obj 92 117 mtof;
#X obj 92 42 inlet;
#X obj 182 297 outlet~;
#X obj 197 183 line~;
#X msg 197 148 \$1 250;
#X obj 49 184 cyclone/triangle~ 0.7;
#X obj 92 83 unpack float float;
#X connect 0 0 8 0;
#X connect 1 0 2 0;
#X connect 2 0 6 0;
#X connect 3 0 9 0;
#X connect 4 0 3 0;
#X connect 5 0 10 0;
#X connect 7 0 1 1;
#X connect 8 0 7 0;
#X connect 9 0 1 0;
#X connect 10 0 4 0;
#X connect 10 1 0 0;
#X restore 347 209 pd voice;
#X obj 85 97 poly 6 1;
#X obj 85 136 cyclone/join 3;
#X obj 130 63 inlet;
#X obj 85 166 route 1 2 3 4 5 6, f 38;
#X connect 0 0 8 0;
#X connect 2 0 1 0;
#X connect 3 0 1 0;
#X connect 4 0 1 0;
#X connect 5 0 1 0;
#X connect 6 0 1 0;
#X connect 7 0 1 0;
#X connect 8 0 9 0;
#X connect 8 1 9 1;
#X connect 8 2 9 2;
#X connect 9 0 11 0;
#X connect 10 0 8 1;
#X connect 11 0 2 0;
#X connect 11 1 3 0;
#X connect 11 2 4 0;
#X connect 11 3 5 0;
#X connect 11 4 6 0;
#X connect 11 5 7 0;
#X restore 251 335 pd polysynth;
#X obj 379 311 cyclone/borax;
#X obj 194 191 bng 30 250 50 0 empty empty empty 17 7 0 10 #d0d0d0 #686868 #000000;
#X obj 251 53 bng 17 250 50 0 empty empty empty 17 7 0 10 #dcdcdc #000000 #000000;
#X obj 397 362 nbx 3 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 #dcdcdc #000000 #000000 0 256;
#X text 88 201 Flush them off;
#X obj 251 78 expr random(50 \, 80);
#X obj 251 239 cyclone/flush;
#X obj 251 139 stripnote;
#X obj 251 108 makenote 100 500;
#X text 121 137 filter out note off \; leave notes hanging;
#X text 61 54 generate random note messages;
#X obj 251 384 output~;
#X text 444 354 number of played notes, f 12;
#X obj 68 387 declare -stdpath ./;
#X connect 1 0 13 0;
#X connect 2 2 5 0;
#X connect 3 0 8 0;
#X connect 4 0 7 0;
#X connect 7 0 10 0;
#X connect 8 0 2 0;
#X connect 8 0 1 0;
#X connect 8 1 2 1;
#X connect 8 1 1 1;
#X connect 9 0 8 0;
#X connect 9 1 8 1;
#X connect 10 0 9 0;
#X connect 10 1 9 1;
#X restore 470 265 pd example;
#X obj 3 5 ./header flush;
#X text 22 61 Flush hanging note-ons;
#X connect 5 0 9 0;
#X connect 6 0 9 1;
#X connect 9 0 36 0;
#X connect 9 1 35 0;
#X connect 26 0 9 0;
#X connect 35 0 43 0;
#X connect 36 0 44 0;
#X connect 40 0 9 0;
