ok i can confirm a few things here:
taking my note priority stuff out makes the underrun go away. so that means, either heavy or note retriggering :-) i still can't believe a simple until 11 is too much for the cpu. (but i don't get what is going on probably). i tried to get your counter with [delay 0] into the abstraction, but that did not work. will have to investigate further.
about the mode switch:
running the basic example i get no mode switch. but running my patch, even with the note priority stuff out of the way, i get one mode switch. i will attach it here again, sorry for the longish post. if you find time to try it, i would be curious to see, what causes the mode switching... running the same patch in libpd, i get no mode switch. again i suspect, it has something to do with your heavy multi midi support, could that be? (even if i don't open a port from pd)
#N canvas 46 22 1362 746 10;
#X obj 254 -44 dac~;
#N canvas 332 104 681 459 uilogic 0;
#X obj -211 49 == 0;
#X obj -211 81 f;
#X obj -178 96 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj -142 72 spigot;
#X obj 48 85 f;
#X obj 81 100 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 100 73 spigot;
#X obj 47 46 == 1;
#X obj -194 230 f;
#X obj -161 239 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1
0 1;
#X obj -142 212 spigot;
#X obj -195 185 == 2;
#X obj 56 233 f;
#X obj 89 248 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 108 221 spigot;
#X obj 55 194 == 3;
#X obj -196 158 r slotnr;
#X obj 46 12 r slotnr;
#X obj -211 12 r slotnr;
#X obj 54 158 r slotnr;
#X obj -302 13 r delaybng;
#X obj -286 159 r delaybng;
#X obj -47 10 r delaybng;
#X obj -32 158 r delaybng;
#X obj -122 159 r metronbg;
#X obj 120 11 r metrobng;
#X obj 127 158 r metrobng;
#X obj -137 12 r metrobng;
#X connect 0 0 1 0;
#X connect 0 0 3 1;
#X connect 3 0 2 0;
#X connect 6 0 5 0;
#X connect 7 0 4 0;
#X connect 7 0 6 1;
#X connect 10 0 9 0;
#X connect 11 0 8 0;
#X connect 11 0 10 1;
#X connect 14 0 13 0;
#X connect 15 0 12 0;
#X connect 15 0 14 1;
#X connect 16 0 11 0;
#X connect 17 0 7 0;
#X connect 18 0 0 0;
#X connect 19 0 15 0;
#X connect 20 0 1 0;
#X connect 21 0 8 0;
#X connect 22 0 4 0;
#X connect 23 0 12 0;
#X connect 24 0 10 0;
#X connect 25 0 6 0;
#X connect 26 0 14 0;
#X connect 27 0 3 0;
#X restore 791 -217 pd uilogic;
#N canvas 446 177 450 300 tables 0;
#X obj 8 142 table bufferlen 4;
#X obj 8 164 table pos 4;
#X text 12 7 four sample slots each 20secs;
#X obj 8 40 table a 882000;
#X obj 7 64 table b 882000;
#X obj 7 91 table c 882000;
#X obj 7 118 table d 882000;
#X restore 792 -195 pd tables;
#N canvas 761 110 605 574 chooseslot 0;
#X msg 134 -39 \$1 2000;
#X obj 143 -8 line;
#X obj 144 49 select 1;
#X text 35 -111 long press reset buffer;
#X obj 144 20 change;
#X obj 56 83 f;
#X obj 91 83 + 1;
#X msg 121 135 0;
#X text 56 -92 switch sample slot;
#X obj 50 -10 select 0 1;
#X obj 41 39 spigot;
#X msg 87 14 1;
#X msg 145 75 0;
#X msg -81 -55 \; bufferlen 0 0 0 0 0;
#X obj -80 -80 loadbang;
#X msg -81 -14 \; pos 0 0 0 0 0;
#X msg 276 178 0;
#X obj 238 119 t b b;
#X msg -80 29 0;
#X obj 237 90 delay 1200;
#X obj 275 203 metro 100;
#X obj 66 112 s slotnr;
#X obj 238 152 s delaybng;
#X obj 276 230 s metrobng;
#X obj 222 57 s resetbuf;
#X obj 204 -86 r slotchoose;
#X obj 56 135 select 3;
#X connect 0 0 1 0;
#X connect 1 0 4 0;
#X connect 2 0 12 0;
#X connect 2 0 19 0;
#X connect 2 0 20 0;
#X connect 2 0 24 0;
#X connect 4 0 2 0;
#X connect 5 0 6 0;
#X connect 5 0 21 0;
#X connect 5 0 26 0;
#X connect 6 0 5 1;
#X connect 7 0 5 1;
#X connect 9 0 10 0;
#X connect 9 1 11 0;
#X connect 10 0 5 0;
#X connect 11 0 10 1;
#X connect 12 0 10 1;
#X connect 14 0 13 0;
#X connect 14 0 15 0;
#X connect 14 0 18 0;
#X connect 16 0 20 0;
#X connect 17 0 22 0;
#X connect 17 1 16 0;
#X connect 18 0 5 0;
#X connect 19 0 17 0;
#X connect 20 0 23 0;
#X connect 25 0 0 0;
#X connect 25 0 9 0;
#X connect 26 0 7 0;
#X restore 791 -237 pd chooseslot;
#X obj 232 645 s freeze;
#X msg 219 467 176400;
#X msg 216 513 set livegrains;
#X obj 221 538 s slot;
#X obj 153 464 t b b;
#X obj 128 509 s recallpos;
#N canvas 370 171 450 300 livegrainreader 0;
#X obj 154 225 outlet~;
#X obj 64 119 *~ 176400;
#X obj 64 98 phasor~ 0.08;
#X obj 66 145 tabread4~ livegrains;
#X obj 222 181 *~;
#X obj 66 58 * 1;
#X obj 242 154 line~;
#X obj 15 -12 r pitch;
#X obj 239 72 r velosample;
#X obj 128 37 r direction;
#X obj 172 6 r keysample;
#X obj 239 111 / 127;
#X msg 241 132 \$1 5;
#X obj 131 55 spigot;
#X obj 238 93 spigot;
#X obj 34 14 spigot;
#X obj 64 36 f;
#X obj 130 77 t b f;
#X obj 66 78 / 1760;
#X obj 330 32 r livegrainonoff;
#X obj 333 83 select 0;
#X msg 296 130 0 5;
#X connect 1 0 3 0;
#X connect 2 0 1 0;
#X connect 3 0 4 0;
#X connect 4 0 0 0;
#X connect 5 0 18 0;
#X connect 6 0 4 1;
#X connect 7 0 15 0;
#X connect 8 0 14 0;
#X connect 9 0 13 0;
#X connect 10 0 15 1;
#X connect 10 0 13 1;
#X connect 10 0 14 1;
#X connect 11 0 12 0;
#X connect 12 0 6 0;
#X connect 13 0 17 0;
#X connect 14 0 11 0;
#X connect 15 0 16 0;
#X connect 16 0 5 0;
#X connect 17 0 16 0;
#X connect 17 1 5 1;
#X connect 18 0 2 0;
#X connect 19 0 20 0;
#X connect 20 0 21 0;
#X connect 21 0 6 0;
#X restore 138 -242 pd livegrainreader;
#N canvas 663 54 580 468 reader1 0;
#X obj 154 225 outlet~;
#X obj 64 109 phasor~ 0.08;
#X obj 222 181 *~;
#X obj 63 21 * 1;
#X obj 236 86 line~;
#X obj 12 -49 r pitch;
#X obj 233 4 r velosample;
#X obj 82 -70 r direction;
#X obj 233 43 / 127;
#X msg 235 64 \$1 5;
#X obj 83 -47 spigot;
#X obj 232 25 spigot;
#X obj 31 -23 spigot;
#X obj 61 -1 f;
#X obj 82 -25 t b f;
#X obj 106 -111 r keyplay0;
#X obj -66 -62 r slotnr;
#X obj -84 15 tabread bufferlen;
#X obj -85 47 * 44.1;
#X obj -83 -31 f;
#X msg -146 96 1000;
#X obj -102 115 /;
#X obj -105 76 t b f;
#X obj -102 143 / 440;
#X obj 63 62 *;
#X obj -186 -91 r loop0onoff;
#X msg 273 62 0 5;
#X obj 63 42 f;
#X obj -101 166 t b f;
#X obj -182 -70 select 0 1;
#X obj -65 77 sig~;
#X obj 64 133 *~;
#X obj 61 87 sig~;
#X obj -83 -7 f;
#X obj -148 -7 r recdone;
#X obj 136 20 select 0 1 2 3;
#X obj 66 156 tabread4~ a;
#X msg 94 86 set a;
#X msg 134 85 set b;
#X msg 122 55 set c;
#X msg 176 56 set d;
#X connect 1 0 31 0;
#X connect 2 0 0 0;
#X connect 3 0 27 0;
#X connect 4 0 2 1;
#X connect 5 0 12 0;
#X connect 6 0 11 0;
#X connect 7 0 10 0;
#X connect 8 0 9 0;
#X connect 9 0 4 0;
#X connect 10 0 14 0;
#X connect 11 0 8 0;
#X connect 12 0 13 0;
#X connect 13 0 3 0;
#X connect 14 0 13 0;
#X connect 14 1 3 1;
#X connect 15 0 12 1;
#X connect 15 0 10 1;
#X connect 15 0 11 1;
#X connect 16 0 19 1;
#X connect 17 0 18 0;
#X connect 17 0 22 0;
#X connect 18 0 30 0;
#X connect 19 0 33 0;
#X connect 19 0 35 0;
#X connect 20 0 21 0;
#X connect 21 0 23 0;
#X connect 22 0 20 0;
#X connect 22 1 21 1;
#X connect 23 0 28 0;
#X connect 24 0 32 0;
#X connect 25 0 29 0;
#X connect 26 0 4 0;
#X connect 27 0 24 0;
#X connect 28 0 27 0;
#X connect 28 1 24 1;
#X connect 29 0 26 0;
#X connect 29 1 19 0;
#X connect 30 0 31 1;
#X connect 31 0 36 0;
#X connect 32 0 1 0;
#X connect 33 0 17 0;
#X connect 34 0 33 0;
#X connect 35 0 37 0;
#X connect 35 1 38 0;
#X connect 35 2 39 0;
#X connect 35 3 40 0;
#X connect 36 0 2 0;
#X connect 37 0 36 0;
#X connect 38 0 36 0;
#X connect 39 0 36 0;
#X connect 40 0 36 0;
#X restore 82 -215 pd reader1;
#X obj 218 490 s slotlengthlive;
#N canvas 782 323 450 300 button0 0;
#X obj 140 98 spigot;
#X msg 175 75 1;
#X obj 116 35 loadbang;
#X obj 193 145 f;
#X obj 220 145 + 1;
#X obj 198 225 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 136 145 select 1;
#X msg 134 166 0;
#X msg 269 127 0;
#X obj 269 101 delay 300;
#X obj 196 166 > 1;
#X obj 199 193 select 1;
#X obj 198 254 outlet;
#X obj 340 71 outlet;
#X obj 212 37 t b b;
#X obj 214 -18 inlet;
#X obj 209 14 select 1;
#X connect 0 0 5 0;
#X connect 1 0 0 1;
#X connect 2 0 1 0;
#X connect 3 0 4 0;
#X connect 3 0 10 0;
#X connect 4 0 3 1;
#X connect 5 0 6 0;
#X connect 5 0 12 0;
#X connect 6 0 7 0;
#X connect 7 0 0 1;
#X connect 8 0 3 0;
#X connect 9 0 8 0;
#X connect 10 0 11 0;
#X connect 11 0 1 0;
#X connect 11 0 5 0;
#X connect 14 0 9 0;
#X connect 14 0 3 0;
#X connect 14 1 0 0;
#X connect 15 0 13 0;
#X connect 15 0 16 0;
#X connect 16 0 14 0;
#X restore 649 334 pd button0;
#X obj 612 363 s loop0onoff;
#X obj 706 360 s keyplay0;
#N canvas 780 383 450 300 button1 0;
#X obj 140 98 spigot;
#X msg 175 75 1;
#X obj 116 35 loadbang;
#X obj 193 145 f;
#X obj 220 145 + 1;
#X obj 198 225 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 136 145 select 1;
#X msg 134 166 0;
#X msg 269 127 0;
#X obj 269 101 delay 300;
#X obj 196 166 > 1;
#X obj 199 193 select 1;
#X obj 198 254 outlet;
#X obj 340 71 outlet;
#X obj 212 37 t b b;
#X obj 214 -18 inlet;
#X obj 209 14 select 1;
#X connect 0 0 5 0;
#X connect 1 0 0 1;
#X connect 2 0 1 0;
#X connect 3 0 4 0;
#X connect 3 0 10 0;
#X connect 4 0 3 1;
#X connect 5 0 6 0;
#X connect 5 0 12 0;
#X connect 6 0 7 0;
#X connect 7 0 0 1;
#X connect 8 0 3 0;
#X connect 9 0 8 0;
#X connect 10 0 11 0;
#X connect 11 0 1 0;
#X connect 11 0 5 0;
#X connect 14 0 9 0;
#X connect 14 0 3 0;
#X connect 14 1 0 0;
#X connect 15 0 13 0;
#X connect 15 0 16 0;
#X connect 16 0 14 0;
#X restore 782 408 pd button1;
#N canvas 739 543 450 300 button2 0;
#X obj 140 98 spigot;
#X msg 175 75 1;
#X obj 116 35 loadbang;
#X obj 193 145 f;
#X obj 220 145 + 1;
#X obj 198 225 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 136 145 select 1;
#X msg 134 166 0;
#X msg 269 127 0;
#X obj 269 101 delay 300;
#X obj 196 166 > 1;
#X obj 199 193 select 1;
#X obj 198 254 outlet;
#X obj 340 71 outlet;
#X obj 212 37 t b b;
#X obj 214 -18 inlet;
#X obj 209 14 select 1;
#X connect 0 0 5 0;
#X connect 1 0 0 1;
#X connect 2 0 1 0;
#X connect 3 0 4 0;
#X connect 3 0 10 0;
#X connect 4 0 3 1;
#X connect 5 0 6 0;
#X connect 5 0 12 0;
#X connect 6 0 7 0;
#X connect 7 0 0 1;
#X connect 8 0 3 0;
#X connect 9 0 8 0;
#X connect 10 0 11 0;
#X connect 11 0 1 0;
#X connect 11 0 5 0;
#X connect 14 0 9 0;
#X connect 14 0 3 0;
#X connect 14 1 0 0;
#X connect 15 0 13 0;
#X connect 15 0 16 0;
#X connect 16 0 14 0;
#X restore 869 356 pd button2;
#N canvas 739 543 450 300 button3 0;
#X obj 140 98 spigot;
#X msg 175 75 1;
#X obj 116 35 loadbang;
#X obj 193 145 f;
#X obj 220 145 + 1;
#X obj 198 225 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 136 145 select 1;
#X msg 134 166 0;
#X msg 269 127 0;
#X obj 269 101 delay 300;
#X obj 196 166 > 1;
#X obj 199 193 select 1;
#X obj 198 254 outlet;
#X obj 340 71 outlet;
#X obj 212 37 t b b;
#X obj 214 -18 inlet;
#X obj 209 14 select 1;
#X connect 0 0 5 0;
#X connect 1 0 0 1;
#X connect 2 0 1 0;
#X connect 3 0 4 0;
#X connect 3 0 10 0;
#X connect 4 0 3 1;
#X connect 5 0 6 0;
#X connect 5 0 12 0;
#X connect 6 0 7 0;
#X connect 7 0 0 1;
#X connect 8 0 3 0;
#X connect 9 0 8 0;
#X connect 10 0 11 0;
#X connect 11 0 1 0;
#X connect 11 0 5 0;
#X connect 14 0 9 0;
#X connect 14 0 3 0;
#X connect 14 1 0 0;
#X connect 15 0 13 0;
#X connect 15 0 16 0;
#X connect 16 0 14 0;
#X restore 981 329 pd button3;
#X obj 752 434 s loop1onoff;
#X obj 844 432 s keyplay1;
#X obj 844 380 s loop2onoff;
#X obj 929 379 s keyplay2;
#X obj 956 353 s loop3onoff;
#X obj 1041 352 s keyplay3;
#X obj 682 408 * -1;
#X obj 681 429 + 1;
#X obj 680 451 s keyscrub;
#X obj 845 463 * -1;
#X obj 844 484 + 1;
#X obj 843 506 s keyscrub;
#X obj 939 417 * -1;
#X obj 938 438 + 1;
#X obj 937 460 s keyscrub;
#X obj 1045 385 * -1;
#X obj 1044 406 + 1;
#X obj 1043 428 s keyscrub;
#X obj 1176 378 * -1;
#X obj 1175 399 + 1;
#X obj 1174 421 s keyscrub;
#N canvas 782 323 450 300 button4 0;
#X obj 140 98 spigot;
#X msg 175 75 1;
#X obj 116 35 loadbang;
#X obj 193 145 f;
#X obj 220 145 + 1;
#X obj 198 225 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 136 145 select 1;
#X msg 134 166 0;
#X msg 269 127 0;
#X obj 269 101 delay 300;
#X obj 196 166 > 1;
#X obj 199 193 select 1;
#X obj 198 254 outlet;
#X obj 340 71 outlet;
#X obj 212 37 t b b;
#X obj 214 -18 inlet;
#X obj 209 14 select 1;
#X connect 0 0 5 0;
#X connect 1 0 0 1;
#X connect 2 0 1 0;
#X connect 3 0 4 0;
#X connect 3 0 10 0;
#X connect 4 0 3 1;
#X connect 5 0 6 0;
#X connect 5 0 12 0;
#X connect 6 0 7 0;
#X connect 7 0 0 1;
#X connect 8 0 3 0;
#X connect 9 0 8 0;
#X connect 10 0 11 0;
#X connect 11 0 1 0;
#X connect 11 0 5 0;
#X connect 14 0 9 0;
#X connect 14 0 3 0;
#X connect 14 1 0 0;
#X connect 15 0 13 0;
#X connect 15 0 16 0;
#X connect 16 0 14 0;
#X restore 1143 304 pd button4;
#X obj 1218 333 s keysample;
#X obj 1106 333 s livegrainonoff;
#X obj 394 253 s slotchoose;
#X obj 329 256 s record;
#N canvas 663 54 580 468 reader2 0;
#X obj 154 225 outlet~;
#X obj 64 109 phasor~ 0.08;
#X obj 222 181 *~;
#X obj 63 21 * 1;
#X obj 236 86 line~;
#X obj 12 -49 r pitch;
#X obj 233 4 r velosample;
#X obj 82 -70 r direction;
#X obj 233 43 / 127;
#X msg 235 64 \$1 5;
#X obj 83 -47 spigot;
#X obj 232 25 spigot;
#X obj 31 -23 spigot;
#X obj 61 -1 f;
#X obj 82 -25 t b f;
#X obj -66 -76 r slotnr;
#X obj -84 0 tabread bufferlen;
#X obj -85 32 * 44.1;
#X obj -85 -43 f;
#X msg -146 81 1000;
#X obj -102 100 /;
#X obj -105 61 t b f;
#X obj -102 128 / 440;
#X obj 63 62 *;
#X msg 273 62 0 5;
#X obj 63 42 f;
#X obj -101 151 t b f;
#X obj -185 -69 select 0 1;
#X obj -65 62 sig~;
#X obj 64 133 *~;
#X obj 68 86 sig~;
#X obj -186 -91 r loop1onoff;
#X obj 106 -111 r keyplay1;
#X obj -85 -20 f;
#X obj -150 -20 r recdone;
#X obj 66 156 tabread4~ b;
#X obj 144 58 select 0 1 2 3;
#X msg 144 79 set a;
#X msg 144 101 set b;
#X msg 144 123 set c;
#X msg 144 142 set d;
#X connect 1 0 29 0;
#X connect 2 0 0 0;
#X connect 3 0 25 0;
#X connect 4 0 2 1;
#X connect 5 0 12 0;
#X connect 6 0 11 0;
#X connect 7 0 10 0;
#X connect 8 0 9 0;
#X connect 9 0 4 0;
#X connect 10 0 14 0;
#X connect 11 0 8 0;
#X connect 12 0 13 0;
#X connect 13 0 3 0;
#X connect 14 0 13 0;
#X connect 14 1 3 1;
#X connect 15 0 18 1;
#X connect 16 0 17 0;
#X connect 16 0 21 0;
#X connect 17 0 28 0;
#X connect 18 0 33 0;
#X connect 18 0 36 0;
#X connect 19 0 20 0;
#X connect 20 0 22 0;
#X connect 21 0 19 0;
#X connect 21 1 20 1;
#X connect 22 0 26 0;
#X connect 23 0 30 0;
#X connect 24 0 4 0;
#X connect 25 0 23 0;
#X connect 26 0 25 0;
#X connect 26 1 23 1;
#X connect 27 0 24 0;
#X connect 27 1 18 0;
#X connect 28 0 29 1;
#X connect 29 0 35 0;
#X connect 30 0 1 0;
#X connect 31 0 27 0;
#X connect 32 0 12 1;
#X connect 32 0 10 1;
#X connect 32 0 11 1;
#X connect 33 0 16 0;
#X connect 34 0 33 0;
#X connect 35 0 2 0;
#X connect 36 0 37 0;
#X connect 36 1 38 0;
#X connect 36 2 39 0;
#X connect 36 3 40 0;
#X connect 37 0 35 0;
#X connect 38 0 35 0;
#X connect 39 0 35 0;
#X connect 40 0 35 0;
#X restore 398 -201 pd reader2;
#N canvas 663 54 580 468 reader3 0;
#X obj 154 225 outlet~;
#X obj 64 109 phasor~ 0.08;
#X obj 222 181 *~;
#X obj 63 21 * 1;
#X obj 236 86 line~;
#X obj 12 -49 r pitch;
#X obj 233 4 r velosample;
#X obj 82 -70 r direction;
#X obj 233 43 / 127;
#X msg 235 64 \$1 5;
#X obj 83 -47 spigot;
#X obj 232 25 spigot;
#X obj 31 -23 spigot;
#X obj 61 -1 f;
#X obj 82 -25 t b f;
#X obj -66 -62 r slotnr;
#X obj -84 0 tabread bufferlen;
#X obj -85 32 * 44.1;
#X obj -85 -42 f;
#X msg -146 81 1000;
#X obj -102 100 /;
#X obj -105 61 t b f;
#X obj -102 128 / 440;
#X obj 63 62 *;
#X msg 273 62 0 5;
#X obj 63 42 f;
#X obj -101 151 t b f;
#X obj -185 -69 select 0 1;
#X obj -65 62 sig~;
#X obj 64 133 *~;
#X obj 68 86 sig~;
#X obj -186 -91 r loop2onoff;
#X obj 106 -111 r keyplay2;
#X obj -84 -22 f;
#X obj -149 -22 r recdone;
#X obj 66 156 tabread4~ c;
#X obj 145 47 select 0 1 2 3;
#X msg 145 68 set a;
#X msg 145 90 set b;
#X msg 145 112 set c;
#X msg 145 131 set d;
#X connect 1 0 29 0;
#X connect 2 0 0 0;
#X connect 3 0 25 0;
#X connect 4 0 2 1;
#X connect 5 0 12 0;
#X connect 6 0 11 0;
#X connect 7 0 10 0;
#X connect 8 0 9 0;
#X connect 9 0 4 0;
#X connect 10 0 14 0;
#X connect 11 0 8 0;
#X connect 12 0 13 0;
#X connect 13 0 3 0;
#X connect 14 0 13 0;
#X connect 14 1 3 1;
#X connect 15 0 18 1;
#X connect 16 0 17 0;
#X connect 16 0 21 0;
#X connect 17 0 28 0;
#X connect 18 0 33 0;
#X connect 18 0 36 0;
#X connect 19 0 20 0;
#X connect 20 0 22 0;
#X connect 21 0 19 0;
#X connect 21 1 20 1;
#X connect 22 0 26 0;
#X connect 23 0 30 0;
#X connect 24 0 4 0;
#X connect 25 0 23 0;
#X connect 26 0 25 0;
#X connect 26 1 23 1;
#X connect 27 0 24 0;
#X connect 27 1 18 0;
#X connect 28 0 29 1;
#X connect 29 0 35 0;
#X connect 30 0 1 0;
#X connect 31 0 27 0;
#X connect 32 0 12 1;
#X connect 32 0 10 1;
#X connect 32 0 11 1;
#X connect 33 0 16 0;
#X connect 34 0 33 0;
#X connect 35 0 2 0;
#X connect 36 0 37 0;
#X connect 36 1 38 0;
#X connect 36 2 39 0;
#X connect 36 3 40 0;
#X connect 37 0 35 0;
#X connect 38 0 35 0;
#X connect 39 0 35 0;
#X connect 40 0 35 0;
#X restore 46 -176 pd reader3;
#N canvas 663 54 580 468 reader4 0;
#X obj 154 225 outlet~;
#X obj 64 109 phasor~ 0.08;
#X obj 222 181 *~;
#X obj 63 21 * 1;
#X obj 236 86 line~;
#X obj 12 -49 r pitch;
#X obj 233 4 r velosample;
#X obj 82 -70 r direction;
#X obj 233 43 / 127;
#X msg 235 64 \$1 5;
#X obj 83 -47 spigot;
#X obj 232 25 spigot;
#X obj 31 -23 spigot;
#X obj 61 -1 f;
#X obj 82 -25 t b f;
#X obj -66 -62 r slotnr;
#X obj -84 0 tabread bufferlen;
#X obj -85 32 * 44.1;
#X obj -85 -42 f;
#X msg -146 81 1000;
#X obj -102 100 /;
#X obj -105 61 t b f;
#X obj -102 128 / 440;
#X obj 63 62 *;
#X msg 273 62 0 5;
#X obj 63 42 f;
#X obj -101 151 t b f;
#X obj -185 -69 select 0 1;
#X obj -65 62 sig~;
#X obj 64 133 *~;
#X obj 68 86 sig~;
#X obj -186 -91 r loop3onoff;
#X obj 106 -111 r keyplay3;
#X obj -85 -22 f;
#X obj -150 -22 r recdone;
#X obj 66 156 tabread4~ d;
#X obj 148 53 select 0 1 2 3;
#X msg 148 74 set a;
#X msg 148 96 set b;
#X msg 148 118 set c;
#X msg 148 137 set d;
#X connect 1 0 29 0;
#X connect 2 0 0 0;
#X connect 3 0 25 0;
#X connect 4 0 2 1;
#X connect 5 0 12 0;
#X connect 6 0 11 0;
#X connect 7 0 10 0;
#X connect 8 0 9 0;
#X connect 9 0 4 0;
#X connect 10 0 14 0;
#X connect 11 0 8 0;
#X connect 12 0 13 0;
#X connect 13 0 3 0;
#X connect 14 0 13 0;
#X connect 14 1 3 1;
#X connect 15 0 18 1;
#X connect 16 0 17 0;
#X connect 16 0 21 0;
#X connect 17 0 28 0;
#X connect 18 0 33 0;
#X connect 18 0 36 0;
#X connect 19 0 20 0;
#X connect 20 0 22 0;
#X connect 21 0 19 0;
#X connect 21 1 20 1;
#X connect 22 0 26 0;
#X connect 23 0 30 0;
#X connect 24 0 4 0;
#X connect 25 0 23 0;
#X connect 26 0 25 0;
#X connect 26 1 23 1;
#X connect 27 0 24 0;
#X connect 27 1 18 0;
#X connect 28 0 29 1;
#X connect 29 0 35 0;
#X connect 30 0 1 0;
#X connect 31 0 27 0;
#X connect 32 0 12 1;
#X connect 32 0 10 1;
#X connect 32 0 11 1;
#X connect 33 0 16 0;
#X connect 34 0 33 0;
#X connect 35 0 2 0;
#X connect 36 0 37 0;
#X connect 36 1 38 0;
#X connect 36 2 39 0;
#X connect 36 3 40 0;
#X connect 37 0 35 0;
#X connect 38 0 35 0;
#X connect 39 0 35 0;
#X connect 40 0 35 0;
#X restore 394 -174 pd reader4;
#X obj 325 447 f;
#X obj 353 445 + 1;
#X msg 396 522 0;
#X obj 325 499 select 2;
#X obj 335 476 s mode;
#X obj 433 437 line;
#X obj 434 494 select 1;
#X obj 434 465 change;
#X obj 436 521 f;
#X obj 434 617 - 1;
#X msg 424 406 \$1 700;
#X obj 433 595 spigot;
#X obj 433 553 t f f;
#X obj 478 555 == 0;
#X msg 484 611 2;
#X obj 481 580 select 1;
#X obj 1161 -276 loadbang;
#X obj 1162 -109 send bela_setDigital @hv_param;
#X obj 635 282 debounce;
#X obj 752 300 debounce;
#X obj 892 299 debounce;
#X obj 1016 290 debounce;
#X obj 1161 255 debounce;
#X obj 339 310 debounce;
#X obj 340 289 r bela_digitalIn12;
#X obj 28 232 debounce;
#X obj 363 169 debounce;
#X obj 408 212 debounce;
#X obj 409 191 r bela_digitalIn13;
#N canvas 364 195 866 528 modeswitch 0;
#X obj 65 -81 r mode;
#X obj 63 1 select 0 1 2;
#X obj 350 157 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X obj 333 21 == 2;
#X obj 372 21 == 1;
#X obj 436 31 select 1 0;
#X obj 470 150 f;
#X obj 498 150 + 1;
#X obj 470 173 select 1;
#X msg 529 173 0;
#X msg 497 95 stop;
#X obj 337 -1 t f f;
#X obj 471 125 metro 200;
#X obj -20 52 s enablelive;
#X obj -22 73 s enablebuffer;
#X obj -22 95 s livemode;
#X msg -48 51 1;
#X msg -51 73 0;
#X msg -52 95 0;
#X obj 100 50 s enablelive;
#X obj 98 71 s enablebuffer;
#X obj 98 93 s livemode;
#X msg 72 49 1;
#X msg 69 71 0;
#X msg 68 93 1;
#X obj 225 49 s enablelive;
#X obj 223 70 s enablebuffer;
#X obj 223 92 s livemode;
#X msg 197 48 0;
#X msg 194 70 1;
#X msg 193 92 0;
#X connect 0 0 1 0;
#X connect 0 0 11 0;
#X connect 1 0 16 0;
#X connect 1 0 17 0;
#X connect 1 0 18 0;
#X connect 1 1 22 0;
#X connect 1 1 23 0;
#X connect 1 1 24 0;
#X connect 1 2 28 0;
#X connect 1 2 29 0;
#X connect 1 2 30 0;
#X connect 3 0 2 0;
#X connect 4 0 5 0;
#X connect 5 0 12 0;
#X connect 5 1 10 0;
#X connect 6 0 7 0;
#X connect 6 0 8 0;
#X connect 7 0 6 1;
#X connect 8 0 9 0;
#X connect 8 0 2 0;
#X connect 9 0 6 1;
#X connect 10 0 12 0;
#X connect 11 0 3 0;
#X connect 11 1 4 0;
#X connect 12 0 6 0;
#X connect 16 0 13 0;
#X connect 17 0 14 0;
#X connect 18 0 15 0;
#X connect 22 0 19 0;
#X connect 23 0 20 0;
#X connect 24 0 21 0;
#X connect 28 0 25 0;
#X connect 29 0 26 0;
#X connect 30 0 27 0;
#X restore 792 -152 pd modeswitch;
#N canvas 320 70 805 554 keyscrub 0;
#X obj 411 597 outlet~;
#X obj 157 502 *~;
#X text 36 -71 starting index;
#X obj 39 151 *;
#X obj 348 231 phasor~;
#X obj 49 427 +~;
#X obj 49 390 *~;
#X obj 348 205 /;
#X obj 339 103 t b f;
#X obj 145 405 sig~ 1;
#X obj 188 407 cos~;
#X obj 173 427 -~;
#X obj 173 449 *~ 0.5;
#X obj 354 280 wrap~;
#X obj 415 521 *~;
#X obj 405 423 sig~ 1;
#X obj 449 423 cos~;
#X obj 435 445 -~;
#X obj 431 469 *~ 0.5;
#X obj 284 442 +~;
#X obj 265 401 *~;
#X obj 49 206 sig~;
#X obj 355 258 +~ 0.5;
#X obj 73 406 samphold~;
#X obj 308 424 samphold~;
#X obj 222 181 sig~;
#X obj 86 374 samphold~;
#X obj 297 380 samphold~;
#X obj 425 71 mtof;
#X obj 413 576 *~;
#X obj 500 517 line~;
#X obj 498 340 / 127;
#X obj 489 86 select 0;
#X obj 39 -55 touchin;
#X obj 38 -33 / 127;
#X obj 39 126 line;
#X obj 230 61 line;
#X msg 231 39 \$1 50;
#X obj 428 48 + 9;
#X obj 334 149 f;
#X obj 425 94 / 44;
#X obj -156 53 r slotlength;
#X text 271 -2 grainsize;
#X obj 45 -160 loadbang;
#X msg 45 -137 4410;
#X obj 45 -113 s maxgrain;
#X obj 100 132 -;
#X obj 131 109 r maxgrain;
#X obj 225 139 *;
#X obj 251 121 r maxgrain;
#X msg 540 362 0 \$1;
#X obj 556 133 f;
#X floatatom 611 39 5 0 0 0 - - -, f 5;
#X obj 121 194 noise~;
#X obj 65 238 *~;
#X obj 92 166 sig~ 1;
#X obj 104 236 +~;
#X msg 500 361 \$1 5;
#X obj 289 472 tabread4~ livegrains;
#X obj 49 471 tabread4~ livegrains;
#X obj 66 57 i;
#X obj 41 57 -;
#X obj 39 34 t f f;
#X obj 39 13 +;
#X obj 145 -9 + 0.5;
#X obj 227 -13 / 140;
#X obj 230 12 + 0.1;
#X msg 68 -11 0;
#X obj 76 -29 b;
#X msg 38 101 \$1 50;
#X obj 416 149 spigot;
#X obj 489 57 spigot;
#X obj 519 34 r keyscrub;
#X obj 450 129 r keyscrub;
#X obj 439 224 s pitch;
#X obj 304 -80 > 80;
#X msg 307 -33 1;
#X msg 270 -33 -1;
#X obj 340 -7 s direction;
#X obj 245 -46 select 1;
#X obj 320 -52 select 1;
#X obj 245 -73 < 50;
#X obj 487 182 select 0;
#X obj 539 250 s velosample;
#X obj 436 189 spigot;
#X obj -158 180 r slotnr;
#X obj -118 390 r slot;
#X obj -143 -19 r slotlengthlive;
#X obj -98 416 spigot;
#X obj -36 347 r enablelive;
#X obj -85 347 spigot;
#X obj -63 165 r enablebuffer;
#X obj -107 126 spigot;
#X obj -54 54 r enablebuffer;
#X obj -74 32 spigot;
#X obj -44 -65 r enablelive;
#X obj 101 -56 r enablebuffer;
#X obj 151 -37 r livepos;
#X obj -106 239 f;
#X obj -49 185 t f f;
#X msg -52 414 set livegrains;
#X obj -133 99 f;
#X obj 2 375 t f f;
#X obj -35 395 select 1;
#X obj -34 -42 t f f;
#X obj -35 -19 select 1;
#X msg -36 4 176400;
#X obj -54 76 t f f;
#X obj -102 99 select 1;
#X obj -60 212 select 1;
#X obj 42 179 spigot;
#X obj -119 -210 r freeze;
#X obj -82 -151 * -1;
#X obj -80 -124 + 1;
#X obj -79 -72 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X obj -172 -210 r mode;
#X obj -178 -177 select 0;
#X obj -172 -135 t b b;
#X msg -184 -98 1;
#X obj -78 -98 spigot;
#X msg -137 -110 0;
#X msg -136 -156 1;
#X obj 120 220 *~ 0.002;
#X obj -170 265 select 0 1 2 3;
#X msg -170 286 set a;
#X msg -170 308 set b;
#X msg -170 330 set c;
#X msg -170 349 set d;
#X obj 447 -155 notein;
#X msg 628 -17 50;
#X obj 626 -67 loadbang;
#X obj 239 -207 ctlin;
#X obj 232 -179 pack f f f;
#X msg 231 -157 \$3 \$2 \$1;
#X obj 231 -136 route 1;
#X obj 231 -114 route 19 126 127;
#X connect 1 0 29 0;
#X connect 3 0 110 0;
#X connect 4 0 6 0;
#X connect 4 0 10 0;
#X connect 4 0 22 0;
#X connect 4 0 23 1;
#X connect 4 0 26 1;
#X connect 5 0 59 0;
#X connect 6 0 5 0;
#X connect 7 0 4 0;
#X connect 8 0 39 0;
#X connect 8 1 7 1;
#X connect 9 0 11 0;
#X connect 10 0 11 1;
#X connect 11 0 12 0;
#X connect 12 0 1 1;
#X connect 13 0 16 0;
#X connect 13 0 20 0;
#X connect 13 0 24 1;
#X connect 13 0 27 1;
#X connect 14 0 29 0;
#X connect 15 0 17 0;
#X connect 16 0 17 1;
#X connect 17 0 18 0;
#X connect 18 0 14 1;
#X connect 19 0 58 0;
#X connect 20 0 19 0;
#X connect 21 0 54 0;
#X connect 22 0 13 0;
#X connect 23 0 5 1;
#X connect 24 0 19 1;
#X connect 25 0 26 0;
#X connect 25 0 27 0;
#X connect 26 0 6 1;
#X connect 27 0 20 1;
#X connect 28 0 40 0;
#X connect 28 0 84 0;
#X connect 29 0 0 0;
#X connect 30 0 29 1;
#X connect 31 0 57 0;
#X connect 32 0 51 0;
#X connect 32 1 31 0;
#X connect 33 0 34 0;
#X connect 34 0 63 0;
#X connect 35 0 3 0;
#X connect 36 0 8 0;
#X connect 36 0 48 0;
#X connect 37 0 36 0;
#X connect 38 0 28 0;
#X connect 39 0 7 0;
#X connect 40 0 70 0;
#X connect 41 0 101 0;
#X connect 43 0 44 0;
#X connect 44 0 45 0;
#X connect 46 0 3 1;
#X connect 47 0 46 1;
#X connect 48 0 25 0;
#X connect 49 0 48 1;
#X connect 50 0 30 0;
#X connect 51 0 50 0;
#X connect 52 0 51 1;
#X connect 53 0 122 0;
#X connect 54 0 23 0;
#X connect 54 0 24 0;
#X connect 55 0 56 0;
#X connect 56 0 54 1;
#X connect 57 0 30 0;
#X connect 58 0 14 0;
#X connect 59 0 1 0;
#X connect 60 0 61 1;
#X connect 61 0 69 0;
#X connect 62 0 61 0;
#X connect 62 1 60 0;
#X connect 63 0 62 0;
#X connect 64 0 63 1;
#X connect 65 0 66 0;
#X connect 66 0 37 0;
#X connect 67 0 63 1;
#X connect 68 0 67 0;
#X connect 69 0 35 0;
#X connect 70 0 39 0;
#X connect 71 0 32 0;
#X connect 72 0 71 1;
#X connect 73 0 70 1;
#X connect 75 0 80 0;
#X connect 76 0 78 0;
#X connect 77 0 78 0;
#X connect 79 0 77 0;
#X connect 80 0 76 0;
#X connect 81 0 79 0;
#X connect 82 1 83 0;
#X connect 84 0 74 0;
#X connect 85 0 98 0;
#X connect 86 0 88 0;
#X connect 87 0 94 0;
#X connect 88 0 59 0;
#X connect 88 0 58 0;
#X connect 89 0 102 0;
#X connect 90 0 59 0;
#X connect 90 0 58 0;
#X connect 91 0 99 0;
#X connect 92 0 46 0;
#X connect 93 0 107 0;
#X connect 94 0 46 0;
#X connect 95 0 104 0;
#X connect 96 0 68 0;
#X connect 97 0 64 0;
#X connect 98 0 123 0;
#X connect 99 0 109 0;
#X connect 99 1 90 1;
#X connect 100 0 88 0;
#X connect 101 0 92 0;
#X connect 102 0 103 0;
#X connect 102 1 88 1;
#X connect 103 0 100 0;
#X connect 104 0 105 0;
#X connect 104 1 94 1;
#X connect 105 0 106 0;
#X connect 106 0 94 0;
#X connect 107 0 108 0;
#X connect 107 1 92 1;
#X connect 108 0 101 0;
#X connect 109 0 98 0;
#X connect 110 0 21 0;
#X connect 111 0 112 0;
#X connect 112 0 113 0;
#X connect 113 0 119 0;
#X connect 114 0 110 1;
#X connect 115 0 116 0;
#X connect 116 0 117 0;
#X connect 116 1 121 0;
#X connect 117 0 118 0;
#X connect 117 1 120 0;
#X connect 118 0 114 0;
#X connect 119 0 114 0;
#X connect 120 0 119 1;
#X connect 121 0 119 1;
#X connect 122 0 56 1;
#X connect 123 0 124 0;
#X connect 123 1 125 0;
#X connect 123 2 126 0;
#X connect 123 3 127 0;
#X connect 124 0 90 0;
#X connect 125 0 90 0;
#X connect 126 0 90 0;
#X connect 127 0 90 0;
#X connect 128 0 38 0;
#X connect 128 1 71 0;
#X connect 128 1 84 1;
#X connect 128 1 82 0;
#X connect 129 0 52 0;
#X connect 130 0 129 0;
#X connect 131 0 132 0;
#X connect 131 1 132 1;
#X connect 131 2 132 2;
#X connect 132 0 133 0;
#X connect 133 0 134 0;
#X connect 134 0 135 0;
#X connect 135 0 65 0;
#X connect 135 0 81 0;
#X connect 135 0 75 0;
#X restore 321 -242 pd keyscrub;
#X text 476 -185 4 sample playback slots reader1 to reader4;
#X text 137 -266 playback livebuffer as "sample";
#X text 878 -236 choose rec slot (and playback);
#X text 865 -215 led logic \, blink when deleting slot content;
#X text 854 -194 recording buffers;
#X text 875 -173 record to buffer;
#X text 396 -241 scrub buffer or live buffer with notein and aftertouch
;
#X text 878 -150 switch playback mode: live/livebuffer/buffer;
#X text 151 150 freeze/mode/record/slot;
#X obj 229 316 f;
#X obj 253 312 + 1;
#X obj 272 344 select 1;
#X msg 273 370 0;
#X obj 322 376 select 0;
#X obj 244 418 select 0;
#X obj 152 445 spigot;
#X obj 142 355 r mode;
#X obj 138 421 == 0;
#X obj 141 376 t b f;
#X msg 90 396 0;
#X obj 938 105 s mode;
#X obj 989 65 s loop0onoff;
#X obj 990 86 s loop1onoff;
#X obj 989 107 s loop2onoff;
#X obj 1069 65 s loop3onoff;
#X obj 1070 86 s livegrainonoff;
#X obj 1069 107 s keyplay0;
#X obj 1070 128 s keyplay1;
#X obj 1069 149 s keyplay2;
#X obj 1070 170 s keyplay3;
#X obj 1145 10 s keyscrub;
#X msg 1101 -24 0;
#X msg 1147 -26 1;
#X msg 1161 -171 in 11 \, in 12 \, in 13 \, in 14 \, in 15 \, in 16
\, in 19 \, in 20 \, in 22, f 35;
#X obj 364 150 r bela_digitalIn15;
#X obj 29 211 r bela_digitalIn20;
#X obj 636 261 r bela_digitalIn11;
#X obj 753 279 r bela_digitalIn14;
#X obj 893 278 r bela_digitalIn19;
#X obj 1017 269 r bela_digitalIn16;
#X obj 1162 234 r bela_digitalIn22;
#X obj 943 82 s init;
#X obj 220 205 r init;
#X obj 163 279 select 1;
#N canvas 538 65 736 721 record 0;
#X obj -258 -197 line~;
#X obj -280 -162 *~;
#X msg -184 -226 0 5;
#X msg -245 -232 1 5;
#X obj -166 -189 delay 5;
#X msg -166 -150 stop;
#X obj 21 -130 f;
#X obj 54 -130 + 1;
#X msg 88 -107 0;
#X obj 21 -174 metro 1;
#X obj -43 -97 * 44.1;
#X obj -129 -27 f;
#X msg -169 38 start \$1;
#X msg 21 -218 stop;
#X obj 88 -130 select 20000;
#X obj 32 -34 max;
#X obj 70 -34 f;
#X msg 165 -169 0;
#X obj 166 66 * 44.1;
#X obj 166 -197 loadbang;
#X text -125 -384 record into buffer;
#X msg -45 145 1000;
#X obj -1 164 /;
#X obj -4 125 t b f;
#X obj -126 -309 select 1 0;
#X obj 171 -24 tabwrite bufferlen;
#X obj 289 -78 tabread bufferlen;
#X obj 173 -78 tabwrite pos;
#X obj 243 7 tabread pos;
#X obj 243 -118 t f f f f;
#X obj -302 -271 adc~;
#X text 226 64 phasor amplitude;
#X text 41 163 phasor speed;
#X obj -127 -227 b;
#X obj 243 -146 r slotnr;
#X obj 243 32 s recpos;
#X obj 289 -52 s reclen;
#X obj 94 -67 r reclen;
#X obj -54 -168 r recpos;
#X obj 167 88 s slotlength;
#X obj 248 -200 r resetbuf;
#X obj -89 16 r slotnr;
#X floatatom 6 233 5 0 0 0 - - -, f 5;
#X obj -124 -335 r record;
#X obj -27 -275 s recdone;
#X obj -192 159 tabwrite~ a;
#X obj -92 49 select 0 1 2 3;
#X msg -92 70 set a;
#X msg -92 92 set b;
#X msg -92 114 set c;
#X msg -92 133 set d;
#X obj -515 -132 metro 1;
#X obj -517 -108 f;
#X obj -487 -106 + 1;
#X msg -459 -105 0;
#X obj -562 -218 == 0;
#X obj -566 -265 loadbang;
#X msg -562 -238 0;
#X obj -477 193 tabwrite~ livegrains;
#X msg -334 59 stop;
#X msg -415 59 start \$1;
#X msg -424 11 0;
#X obj -540 -35 f;
#X obj -481 -3 * 44.1;
#X obj -474 22 i;
#X obj -573 -155 t b b;
#X obj -583 -200 select 1 0, f 38;
#X msg -497 -156 0;
#X obj -609 -10 /;
#X obj -611 -58 t f b;
#X obj -611 -88 f;
#X obj -609 15 s livepos;
#X msg -393 -146 176400;
#X obj -472 -290 table livegrains 176400;
#X obj -514 -68 select 4000 0;
#X msg -584 -33 4000;
#X obj -679 153 tabwrite~ livefreeze;
#X msg -723 102 bang;
#X msg -772 -40 set livefreeze;
#X obj -760 -11 s slot;
#X obj -391 -75 s slot;
#X msg -396 -100 set livegrains;
#X obj -791 -94 t b b b;
#X obj -643 81 line~;
#X msg -683 45 1 8;
#X msg -647 48 0 8;
#X obj -593 116 *~;
#X obj -717 -66 delay 92;
#X obj -370 124 line~;
#X msg -410 88 1 8;
#X msg -374 91 0 8;
#X obj -478 141 *~;
#X obj -354 -4 delay 5;
#X obj -790 -142 r freeze;
#X obj -635 -216 r livemode;
#X obj -507 -177 t b b;
#X obj -657 -124 r recallpos;
#X msg -839 -39 4411;
#X obj -473 -271 table livefreeze 4411;
#X obj -840 53 s slotlengthlive;
#X obj -394 -123 s slotlengthlive;
#X obj -774 -68 spigot;
#X obj -728 -124 r mode;
#X obj -727 -101 == 0;
#X connect 0 0 1 1;
#X connect 1 0 45 0;
#X connect 2 0 0 0;
#X connect 3 0 0 0;
#X connect 4 0 5 0;
#X connect 5 0 45 0;
#X connect 6 0 7 0;
#X connect 6 0 10 0;
#X connect 6 0 14 0;
#X connect 6 0 15 0;
#X connect 6 0 27 0;
#X connect 7 0 6 1;
#X connect 8 0 6 0;
#X connect 8 0 12 0;
#X connect 9 0 6 0;
#X connect 10 0 11 1;
#X connect 11 0 12 0;
#X connect 12 0 45 0;
#X connect 13 0 9 0;
#X connect 14 0 8 0;
#X connect 15 0 16 0;
#X connect 16 0 15 1;
#X connect 16 0 18 0;
#X connect 16 0 23 0;
#X connect 16 0 25 0;
#X connect 17 0 16 0;
#X connect 17 0 6 0;
#X connect 18 0 39 0;
#X connect 19 0 17 0;
#X connect 21 0 22 0;
#X connect 22 0 42 0;
#X connect 23 0 21 0;
#X connect 23 1 22 1;
#X connect 24 0 3 0;
#X connect 24 0 33 0;
#X connect 24 1 2 0;
#X connect 24 1 13 0;
#X connect 24 1 4 0;
#X connect 24 1 44 0;
#X connect 26 0 36 0;
#X connect 28 0 35 0;
#X connect 29 0 28 0;
#X connect 29 1 27 1;
#X connect 29 2 26 0;
#X connect 29 3 25 1;
#X connect 30 0 1 0;
#X connect 30 0 86 0;
#X connect 30 0 91 0;
#X connect 30 1 1 0;
#X connect 30 1 86 0;
#X connect 30 1 91 0;
#X connect 33 0 11 0;
#X connect 33 0 9 0;
#X connect 34 0 29 0;
#X connect 37 0 16 0;
#X connect 38 0 6 0;
#X connect 40 0 17 0;
#X connect 41 0 46 0;
#X connect 43 0 24 0;
#X connect 46 0 47 0;
#X connect 46 1 48 0;
#X connect 46 2 49 0;
#X connect 46 3 50 0;
#X connect 47 0 45 0;
#X connect 48 0 45 0;
#X connect 49 0 45 0;
#X connect 50 0 45 0;
#X connect 51 0 52 0;
#X connect 52 0 53 0;
#X connect 52 0 62 1;
#X connect 52 0 70 1;
#X connect 52 0 74 0;
#X connect 53 0 52 1;
#X connect 54 0 52 0;
#X connect 55 0 66 0;
#X connect 56 0 57 0;
#X connect 57 0 55 0;
#X connect 59 0 58 0;
#X connect 60 0 58 0;
#X connect 61 0 60 0;
#X connect 62 0 63 0;
#X connect 63 0 64 0;
#X connect 64 0 60 0;
#X connect 64 0 89 0;
#X connect 65 0 51 0;
#X connect 65 1 62 0;
#X connect 66 0 65 0;
#X connect 66 1 95 0;
#X connect 67 0 51 0;
#X connect 68 0 71 0;
#X connect 69 0 68 0;
#X connect 69 1 75 0;
#X connect 70 0 69 0;
#X connect 72 0 100 0;
#X connect 74 0 54 0;
#X connect 74 1 61 0;
#X connect 75 0 68 1;
#X connect 77 0 76 0;
#X connect 78 0 79 0;
#X connect 81 0 80 0;
#X connect 82 0 77 0;
#X connect 82 1 101 0;
#X connect 82 2 84 0;
#X connect 82 2 87 0;
#X connect 83 0 86 1;
#X connect 84 0 83 0;
#X connect 85 0 83 0;
#X connect 86 0 76 0;
#X connect 87 0 85 0;
#X connect 88 0 91 1;
#X connect 89 0 88 0;
#X connect 90 0 88 0;
#X connect 91 0 58 0;
#X connect 92 0 59 0;
#X connect 93 0 82 0;
#X connect 94 0 55 0;
#X connect 95 0 70 0;
#X connect 95 1 72 0;
#X connect 95 1 81 0;
#X connect 95 1 92 0;
#X connect 95 1 90 0;
#X connect 95 1 67 0;
#X connect 96 0 70 0;
#X connect 97 0 99 0;
#X connect 101 0 97 0;
#X connect 101 0 78 0;
#X connect 102 0 103 0;
#X connect 103 0 101 1;
#X restore 792 -173 pd record;
#X text 980 -173 livebuffer/freeze;
#X connect 5 0 12 0;
#X connect 6 0 7 0;
#X connect 8 0 9 0;
#X connect 8 1 5 0;
#X connect 8 1 6 0;
#X connect 10 0 0 0;
#X connect 10 0 0 1;
#X connect 11 0 0 0;
#X connect 13 0 14 0;
#X connect 13 1 15 0;
#X connect 13 1 25 0;
#X connect 16 0 19 0;
#X connect 16 1 20 0;
#X connect 16 1 28 0;
#X connect 17 0 21 0;
#X connect 17 1 22 0;
#X connect 17 1 31 0;
#X connect 18 0 23 0;
#X connect 18 1 24 0;
#X connect 18 1 34 0;
#X connect 25 0 26 0;
#X connect 26 0 27 0;
#X connect 28 0 29 0;
#X connect 29 0 30 0;
#X connect 31 0 32 0;
#X connect 32 0 33 0;
#X connect 34 0 35 0;
#X connect 35 0 36 0;
#X connect 37 0 38 0;
#X connect 38 0 39 0;
#X connect 40 0 42 0;
#X connect 40 1 37 0;
#X connect 40 1 41 0;
#X connect 45 0 0 1;
#X connect 46 0 0 0;
#X connect 47 0 0 1;
#X connect 48 0 49 0;
#X connect 48 0 51 0;
#X connect 48 0 52 0;
#X connect 48 0 56 1;
#X connect 49 0 48 1;
#X connect 50 0 48 1;
#X connect 51 0 50 0;
#X connect 53 0 55 0;
#X connect 54 0 56 0;
#X connect 55 0 54 0;
#X connect 56 0 60 0;
#X connect 56 0 61 0;
#X connect 57 0 48 1;
#X connect 58 0 53 0;
#X connect 59 0 57 0;
#X connect 60 0 59 0;
#X connect 60 1 59 1;
#X connect 61 0 63 0;
#X connect 62 0 48 1;
#X connect 63 0 62 0;
#X connect 64 0 112 0;
#X connect 64 0 110 0;
#X connect 64 0 111 0;
#X connect 66 0 13 0;
#X connect 67 0 16 0;
#X connect 68 0 17 0;
#X connect 69 0 18 0;
#X connect 70 0 40 0;
#X connect 71 0 58 0;
#X connect 71 0 92 0;
#X connect 72 0 71 0;
#X connect 73 0 122 0;
#X connect 74 0 44 0;
#X connect 75 0 43 0;
#X connect 76 0 75 0;
#X connect 78 0 0 0;
#X connect 78 0 0 1;
#X connect 88 0 89 0;
#X connect 88 0 90 0;
#X connect 88 0 4 0;
#X connect 88 0 93 0;
#X connect 89 0 88 1;
#X connect 90 0 91 0;
#X connect 91 0 88 1;
#X connect 92 0 48 0;
#X connect 93 0 94 0;
#X connect 94 0 8 0;
#X connect 95 0 97 0;
#X connect 96 0 94 1;
#X connect 97 0 98 0;
#X connect 97 1 96 0;
#X connect 98 0 88 0;
#X connect 110 0 99 0;
#X connect 110 0 100 0;
#X connect 110 0 101 0;
#X connect 110 0 102 0;
#X connect 110 0 103 0;
#X connect 110 0 104 0;
#X connect 110 0 105 0;
#X connect 110 0 106 0;
#X connect 110 0 107 0;
#X connect 110 0 108 0;
#X connect 110 0 120 0;
#X connect 111 0 109 0;
#X connect 112 0 65 0;
#X connect 113 0 74 0;
#X connect 114 0 73 0;
#X connect 115 0 66 0;
#X connect 116 0 67 0;
#X connect 117 0 68 0;
#X connect 118 0 69 0;
#X connect 119 0 70 0;
#X connect 121 0 44 0;
#X connect 121 0 43 0;
#X connect 121 0 122 0;
#X connect 121 0 92 0;
#X connect 122 0 88 0;
the debounce abstraction is in the previous post...
thanks!