#N canvas 441 103 437 356 10; #N canvas 179 163 819 578 button_to_array 0; #X obj 223 -177 unpack f f f; #X floatatom 257 -150 3 0 0 0 - - -; #X floatatom 292 -150 3 0 0 0 - - -; #X obj 257 -70 sel 0 1 2 3 4 5 6 7; #X obj 315 12 spigot; #X obj 315 40 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 358 12 spigot; #X obj 358 40 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 401 12 spigot; #X obj 444 12 spigot; #X obj 488 12 spigot; #X obj 531 12 spigot; #X obj 574 12 spigot; #X obj 617 12 spigot; #X obj 401 40 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 444 40 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 488 40 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 531 40 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 574 40 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 617 40 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 223 -210 r monome.press; #X obj 315 108 send arrayval; #X msg 358 63 0.75; #X msg 401 63 0.5; #X msg 444 63 0.25; #X msg 488 63 -0.25; #X msg 531 62 -0.5; #X msg 574 62 -0.75; #X obj 93 -41 unpack f f f; #X floatatom 93 -17 3 0 0 0 - - -; #X obj 93 -61 r monome.press; #X obj 18 37 tabwrite wave; #X obj 18 -59 r arrayval; #X text 316 -211 receives button presses; #X text 307 -178 unpacks button presses; #X text 649 37 selects array value; #X text 116 -18 selects array index; #N canvas 1 51 735 481 (subpatch) 0; #X array wave 11 float 3; #A 0 1 1 1 1 -1 -1 -1 -1 1 1 1; #X coords 0 1 11 -1 200 140 1; #X restore 14 -210 graph; #X obj 93 86 unpack f f f; #X floatatom 93 110 3 0 0 0 - - -; #X obj 93 66 r monome.press; #X obj 18 354 tabwrite wave; #X obj 18 68 r arrayval; #X floatatom 93 163 5 0 0 0 - - -; #X floatatom 93 214 5 0 0 0 - - -; #X floatatom 150 214 5 0 0 0 - - -; #X obj 93 136 + 8; #X obj 93 190 split 8 10; #X obj 18 300 spigot; #X msg 51 253 1; #X msg 150 241 0; #X text 186 216 For wraparound to work smoothly \, you should make the last three points copies of the first three. This is done because tabread4~ does 4-point interpolation.; #X text 122 136 offset; #X msg 617 61 -0.9; #X msg 566 -130 \; wave 1 1 1 1 -1 -1 -1 -1 1 1 1; #X msg 315 63 1; #X connect 0 1 1 0; #X connect 0 2 2 0; #X connect 1 0 3 0; #X connect 2 0 4 1; #X connect 2 0 6 1; #X connect 2 0 8 1; #X connect 2 0 9 1; #X connect 2 0 10 1; #X connect 2 0 11 1; #X connect 2 0 12 1; #X connect 2 0 13 1; #X connect 3 0 4 0; #X connect 3 1 6 0; #X connect 3 2 8 0; #X connect 3 3 9 0; #X connect 3 4 10 0; #X connect 3 5 11 0; #X connect 3 6 12 0; #X connect 3 7 13 0; #X connect 4 0 5 0; #X connect 5 0 55 0; #X connect 6 0 7 0; #X connect 7 0 22 0; #X connect 8 0 14 0; #X connect 9 0 15 0; #X connect 10 0 16 0; #X connect 11 0 17 0; #X connect 12 0 18 0; #X connect 13 0 19 0; #X connect 14 0 23 0; #X connect 15 0 24 0; #X connect 16 0 25 0; #X connect 17 0 26 0; #X connect 18 0 27 0; #X connect 19 0 53 0; #X connect 20 0 0 0; #X connect 22 0 21 0; #X connect 23 0 21 0; #X connect 24 0 21 0; #X connect 25 0 21 0; #X connect 26 0 21 0; #X connect 27 0 21 0; #X connect 28 0 29 0; #X connect 29 0 31 1; #X connect 30 0 28 0; #X connect 32 0 31 0; #X connect 38 0 39 0; #X connect 39 0 46 0; #X connect 40 0 38 0; #X connect 42 0 48 0; #X connect 43 0 47 0; #X connect 44 0 41 1; #X connect 44 0 49 0; #X connect 45 0 50 0; #X connect 46 0 43 0; #X connect 47 0 44 0; #X connect 47 1 45 0; #X connect 48 0 41 0; #X connect 49 0 48 1; #X connect 50 0 48 1; #X connect 53 0 21 0; #X connect 55 0 21 0; #X restore 39 46 pd button_to_array; #N canvas 1 51 450 300 (subpatch) 0; #X array osc-output 2000 float 2; #X coords 0 1.02 2000 -1.02 200 130 1 0 0; #X restore 40 86 graph; #X msg 315 11 \; pd dsp 1; #X msg 315 72 \; pd dsp 0; #X text 332 45 ON; #X text 332 105 OFF; #X obj 329 154 vsl 30 128 0.1 20 0 0 freq empty freq 0 -9 0 10 -1 -162280 -66577 0 1; #N canvas 474 185 726 453 lfo 0; #X obj 26 96 tabosc4~ wave; #X obj 164 198 tabwrite~ osc-output; #X obj 164 141 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 1; #X obj 164 118 loadbang; #X obj 126 132 *~; #X obj 141 67 loadbang; #X obj 26 15 r freq; #X msg 141 99 0.5; #X obj 26 46 sig~ 20; #X text 70 15 receives freq from vlslider; #X obj 27 284 snapshot~; #X obj 47 216 loadbang; #X floatatom 27 308 5 0 0 0 - - -; #X obj 164 174 metro 100; #X obj 47 244 metro 100; #X text 117 244 takes a snapshot of the waveform every 100ms; #X text 237 172 writes to osc-output every 100ms; #X connect 0 0 4 0; #X connect 0 0 10 0; #X connect 2 0 13 0; #X connect 3 0 2 0; #X connect 4 0 1 0; #X connect 5 0 7 0; #X connect 6 0 8 0; #X connect 7 0 4 1; #X connect 8 0 0 0; #X connect 10 0 12 0; #X connect 11 0 14 0; #X connect 13 0 1 0; #X connect 14 0 10 0; #X restore 165 46 pd lfo;