#N canvas 470 57 299 149 10; #X text 216 254 INLETS:; #X obj 3 381 outlet~; #X obj 74 381 outlet~; #X obj 75 160 inlet footswitch; #N canvas 435 77 447 555 loop_control 0; #X obj 15 15 inlet~; #X obj 65 15 inlet footswitch; #X obj 136 266 outlet samples; #X obj 187 290 outlet seconds; #X obj 65 51 select 127; #X msg 109 106 0; #X msg 152 105 1; #X msg 174 105 0; #X obj 152 135 metro 1; #X obj 152 156 f; #X obj 191 156 + 1; #X obj 203 185 / 1000; #X obj 65 82 t b b b; #X msg 87 209 stop; #X obj 152 185 * 44.1; #X obj 187 209 f; #X obj 136 209 f; #X obj 212 209 s \$1-seconds_display; #X obj 16 290 tabwrite~ \$1-looper; #X obj 193 15 table \$1-looper 2.646e+06; #X text 189 41 60 seconds max @ 44100; #X obj 136 239 + 1; #X obj 130 82 t b b b; #X connect 0 0 18 0; #X connect 1 0 4 0; #X connect 4 0 12 0; #X connect 4 1 22 0; #X connect 5 0 8 0; #X connect 6 0 8 0; #X connect 7 0 9 0; #X connect 8 0 9 0; #X connect 9 0 10 0; #X connect 9 0 11 0; #X connect 9 0 14 0; #X connect 10 0 9 1; #X connect 11 0 15 1; #X connect 11 0 17 0; #X connect 12 0 15 0; #X connect 12 0 16 0; #X connect 12 1 13 0; #X connect 12 2 5 0; #X connect 13 0 18 0; #X connect 14 0 16 1; #X connect 15 0 3 0; #X connect 16 0 21 0; #X connect 21 0 2 0; #X connect 22 0 18 0; #X connect 22 1 6 0; #X connect 22 2 7 0; #X restore 3 182 pd loop_control; #X obj 3 160 inlet~; #N canvas 77 357 411 273 transpose 0; #X obj 52 10 inlet transposition_control; #X obj 52 203 outlet transposition_halftones; #X obj 52 178 exp; #X obj 52 156 * 0.05776; #X obj 52 134 int; #X obj 246 10 loadbang; #X msg 246 32 0; #X obj 80 178 s \$1-transpose_display; #X obj 52 90 - 60; #X obj 80 134 r \$1-transpose; #X connect 0 0 8 0; #X connect 2 0 1 0; #X connect 3 0 2 0; #X connect 4 0 3 0; #X connect 4 0 7 0; #X connect 5 0 6 0; #X connect 6 0 4 0; #X connect 8 0 4 0; #X connect 9 0 3 0; #X restore 215 182 pd transpose; #X text 215 278 1 audio signal; #X text 215 295 2 footswitch ctrl [0 \, 127]; #X text 215 311 3 pitch transposition ctrl [0-127]; #N canvas 177 62 671 535 loop_player 0; #X obj 199 490 outlet~; #X obj 329 8 inlet transpose_halftones; #X obj 178 8 inlet loop_seconds; #X obj 48 8 inlet loop_samples; #X obj 200 121 /; #X msg 200 99 1; #X obj 200 193 phasor~; #X obj 199 216 *~; #X obj 243 44 t b f; #X obj 273 144 line~; #X obj 273 76 pack 0 50; #X obj 200 144 sig~; #X obj 200 171 *~; #X text 121 77 seconds; #X text 136 218 samples; #X obj 348 119 switch~; #X obj 199 240 tabread4~ \$1-looper; #X obj 200 378 *~; #X obj 216 312 cos~; #X obj 215 288 *~ 0.5; #X obj 215 263 -~ 0.5; #X obj 216 354 clip~ 0 1; #X text 293 310 loop envelope generator; #X text 292 332 steepness of envelope [1-1000]; #X text 294 353 normalize gain; #X obj 178 76 t b b f; #X msg 178 99 0; #X obj 348 76 r \$1-player_toggle; #X obj 348 98 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 ; #X obj 199 469 *~; #X obj 216 404 r \$1-zample_gain_min; #X obj 216 425 pack 0 50; #X obj 216 446 line~; #X obj 216 332 *~; #X obj 293 284 r \$1-zample_envelope_min; #X connect 1 0 8 0; #X connect 2 0 25 0; #X connect 3 0 7 1; #X connect 4 0 11 0; #X connect 5 0 4 0; #X connect 6 0 7 0; #X connect 6 0 20 0; #X connect 7 0 16 0; #X connect 8 0 5 0; #X connect 8 1 10 0; #X connect 9 0 12 1; #X connect 10 0 9 0; #X connect 11 0 12 0; #X connect 12 0 6 0; #X connect 16 0 17 0; #X connect 17 0 29 0; #X connect 18 0 33 0; #X connect 19 0 18 0; #X connect 20 0 19 0; #X connect 21 0 17 1; #X connect 25 0 26 0; #X connect 25 1 5 0; #X connect 25 2 4 1; #X connect 26 0 6 1; #X connect 27 0 28 0; #X connect 28 0 15 0; #X connect 29 0 0 0; #X connect 30 0 31 0; #X connect 31 0 32 0; #X connect 32 0 29 1; #X connect 33 0 21 0; #X connect 34 0 33 1; #X restore 3 273 pd loop_player; #N canvas 32 32 606 414 loop_grainer 0; #X obj 172 340 outlet~; #X obj 279 340 outlet~; #X obj 124 30 inlet length_samples; #X obj 270 30 r \$1-grainer_toggle; #X obj 270 75 switch~; #X obj 270 54 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 ; #X obj 31 101 loopreader 1 \$1; #X obj 281 161 loopreader 7 \$1; #X obj 141 101 loopreader 2 \$1; #X obj 191 121 loopreader 4 \$1; #X obj 81 121 loopreader 3 \$1; #X obj 121 141 loopreader 5 \$1; #X obj 231 141 loopreader 6 \$1; #X obj 171 161 loopreader 8 \$1; #X obj 31 181 loopreader 9 \$1; #X obj 141 181 loopreader 10 \$1; #X obj 81 201 loopreader 11 \$1; #X obj 201 201 loopreader 12 \$1; #X obj 121 221 loopreader 13 \$1; #X obj 241 221 loopreader 14 \$1; #X obj 291 241 loopreader 16 \$1; #X obj 170 241 loopreader 15 \$1; #X connect 2 0 6 0; #X connect 2 0 7 0; #X connect 2 0 8 0; #X connect 2 0 9 0; #X connect 2 0 10 0; #X connect 2 0 11 0; #X connect 2 0 12 0; #X connect 2 0 13 0; #X connect 2 0 14 0; #X connect 2 0 15 0; #X connect 2 0 16 0; #X connect 2 0 17 0; #X connect 2 0 18 0; #X connect 2 0 19 0; #X connect 2 0 20 0; #X connect 2 0 21 0; #X connect 3 0 5 0; #X connect 5 0 4 0; #X connect 6 0 0 0; #X connect 6 1 1 0; #X connect 7 0 0 0; #X connect 7 1 1 0; #X connect 8 0 0 0; #X connect 8 1 1 0; #X connect 9 0 0 0; #X connect 9 1 1 0; #X connect 10 0 0 0; #X connect 11 0 0 0; #X connect 12 0 0 0; #X connect 12 1 1 0; #X connect 13 0 0 0; #X connect 13 1 1 0; #X connect 14 0 0 0; #X connect 14 1 1 0; #X connect 15 0 0 0; #X connect 15 1 1 0; #X connect 16 0 0 0; #X connect 16 1 1 0; #X connect 17 0 0 0; #X connect 17 1 1 0; #X connect 18 0 0 0; #X connect 18 1 1 0; #X connect 19 0 0 0; #X connect 19 1 1 0; #X connect 20 0 0 0; #X connect 20 1 1 0; #X connect 21 0 0 0; #X connect 21 1 1 0; #X restore 25 300 pd loop_grainer; #X text 215 354 ABSTRACTIONS:; #X text 217 375 1) loopreader.pd; #X text 217 388 1) random_range.pd; #X text 218 415 USAGE; #X obj 215 204 s \$1-pitch; #X obj 215 160 inlet transpose_ctrl; #X text 402 482 derek@umatic.nl; #X obj 1 1 cnv 15 296 147 empty empty empty 200 190 0 10 -1 -24198 0; #N canvas 222 366 664 424 limiters 0; #X obj 72 32 inlet~; #X obj 71 338 *~; #X obj 72 371 outlet~; #X obj 86 276 limiter~ 50 1; #X obj 142 32 inlet~; #X obj 141 338 *~; #X obj 142 371 outlet~; #X obj 86 62 loadbang; #X msg 86 90 limit 95; #X obj 211 32 inlet~; #X obj 265 31 inlet footswitch; #X obj 265 58 select 127; #X obj 265 83 t b; #X obj 330 99 t b; #X text 363 100 record: suppress loop output; #X text 364 79 play: supress line output; #X obj 87 208 line~; #X obj 71 231 *~; #X obj 157 208 line~; #X obj 141 231 *~; #X obj 227 208 line~; #X obj 211 231 *~; #X msg 235 131 1; #X msg 265 131 0; #X msg 300 131 1; #X msg 330 131 0; #X obj 87 188 pack 0 50; #X obj 157 188 pack 0 50; #X obj 227 188 pack 0 50; #X obj 71 309 z~ 64; #X obj 141 309 z~ 64; #X connect 0 0 17 0; #X connect 1 0 2 0; #X connect 3 0 1 1; #X connect 3 0 5 1; #X connect 4 0 19 0; #X connect 5 0 6 0; #X connect 7 0 8 0; #X connect 8 0 3 0; #X connect 9 0 21 0; #X connect 10 0 11 0; #X connect 11 0 12 0; #X connect 11 1 13 0; #X connect 12 0 22 0; #X connect 12 0 23 0; #X connect 13 0 24 0; #X connect 13 0 25 0; #X connect 16 0 17 1; #X connect 17 0 3 0; #X connect 17 0 29 0; #X connect 18 0 19 1; #X connect 19 0 3 1; #X connect 19 0 30 0; #X connect 20 0 21 1; #X connect 21 0 3 0; #X connect 21 0 3 1; #X connect 21 0 29 0; #X connect 21 0 30 0; #X connect 22 0 26 0; #X connect 22 0 27 0; #X connect 23 0 28 0; #X connect 24 0 28 0; #X connect 25 0 26 0; #X connect 25 0 27 0; #X connect 26 0 16 0; #X connect 27 0 18 0; #X connect 28 0 20 0; #X connect 29 0 1 0; #X connect 30 0 5 0; #X restore 3 356 pd limiters; #N canvas 253 419 416 287 keytoggles 0; #X obj 68 184 s \$1-player_toggle; #X obj 208 185 s \$1-grainer_toggle; #X symbolatom 68 28 10 0 0 0 - - -; #X obj 68 50 select \$2; #X symbolatom 208 28 10 0 0 0 - - -; #X obj 208 50 select \$3; #X obj 143 8 keyname \$3; #X obj 3 8 keyname \$2; #X obj 67 78 int; #X obj 114 123 + 1; #X obj 68 146 mod 2; #X obj 67 99 select 1; #X obj 208 78 int; #X obj 255 123 + 1; #X obj 209 146 mod 2; #X obj 208 99 select 1; #X obj 68 123 int 1; #X obj 209 123 int 1; #X connect 2 0 3 0; #X connect 3 0 8 0; #X connect 4 0 5 0; #X connect 5 0 12 0; #X connect 6 0 12 1; #X connect 6 1 4 0; #X connect 7 0 8 1; #X connect 7 1 2 0; #X connect 8 0 11 0; #X connect 9 0 16 1; #X connect 10 0 0 0; #X connect 11 0 16 0; #X connect 12 0 15 0; #X connect 13 0 17 1; #X connect 14 0 1 0; #X connect 15 0 17 0; #X connect 16 0 9 0; #X connect 16 0 10 0; #X connect 17 0 13 0; #X connect 17 0 14 0; #X restore 362 225 pd keytoggles; #X obj 3 3 cnv 15 292 96 empty empty empty 200 90 0 8 -24198 -24198 0; #X obj 5 7 grid grid1 94 1 100 94 1 100 0 1 1 10 10 80 142; #X obj 103 6 grid grid1 94 0 99 94 1 16 0 1 1 10 10 271 119; #X obj 201 5 grid grid1 94 1 100 94 1 100 0 1 1 10 10 276 51; #X obj 103 6 cnv 15 92 92 empty empty asynch 33 88 0 8 -1 -24198 0 ; #X obj 179 41 cnv 5 15 6 empty empty v 10 3 0 8 -1 -24198 0; #X obj 179 55 cnv 5 15 6 empty empty x 10 3 0 8 -1 -24198 0; #X obj 179 48 cnv 5 15 6 empty empty o 10 3 0 8 -1 -24198 0; #N canvas 473 75 596 294 controls 0; #X obj 24 12 inlet; #X obj 24 236 s \$1-zample_sustain_min; #X obj 64 12 inlet; #X obj 64 59 s \$1-zample_sustain_sprd; #X obj 204 12 inlet; #X obj 244 12 inlet; #X obj 203 236 s \$1-zample_asynch; #X obj 244 59 s \$1-zample_voices; #X obj 344 12 inlet; #X obj 384 12 inlet; #X obj 384 59 s \$1-zample_pan_sprd; #X obj 344 36 s \$1-zample_gain_sprd; #X obj 65 84 r \$1-zample_length_range; #X obj 65 105 select 0; #X msg 65 125 1; #X obj 125 105 select 1; #X msg 125 125 5; #X obj 185 105 select 2; #X msg 185 125 10; #X msg 245 125 30; #X obj 245 105 select 3; #X obj 305 105 select 4; #X msg 305 125 60; #X obj 24 207 *; #X obj 65 160 t b f; #X obj 203 186 * -1; #X obj 203 207 + 100; #X connect 0 0 23 0; #X connect 2 0 3 0; #X connect 4 0 25 0; #X connect 5 0 7 0; #X connect 8 0 11 0; #X connect 9 0 10 0; #X connect 12 0 13 0; #X connect 13 0 14 0; #X connect 13 1 15 0; #X connect 14 0 24 0; #X connect 15 0 16 0; #X connect 15 1 17 0; #X connect 16 0 24 0; #X connect 17 0 18 0; #X connect 17 1 20 0; #X connect 18 0 24 0; #X connect 19 0 24 0; #X connect 20 0 19 0; #X connect 20 1 21 0; #X connect 21 0 22 0; #X connect 22 0 24 0; #X connect 23 0 1 0; #X connect 24 0 23 0; #X connect 24 1 23 1; #X connect 25 0 26 0; #X connect 26 0 6 0; #X restore 215 225 pd controls; #X obj 6 7 cnv 15 92 92 empty empty length 33 88 0 8 -1 -24198 0; #X obj 80 13 cnv 5 15 6 empty empty l 10 3 0 8 -1 -24198 0; #X obj 81 27 cnv 5 15 6 empty empty n 10 3 0 8 -1 -24198 0; #X obj 80 33 cnv 5 15 6 empty empty g 10 3 0 8 -1 -24198 0; #X obj 80 20 cnv 5 15 6 empty empty e 10 3 0 8 -1 -24198 0; #X obj 80 43 cnv 5 15 6 empty empty t 10 3 0 8 -1 -24198 0; #X obj 80 63 cnv 5 15 6 empty empty r 10 3 0 8 -1 -24198 0; #X obj 81 77 cnv 5 15 6 empty empty n 10 3 0 8 -1 -24198 0; #X obj 80 85 cnv 5 15 6 empty empty d 10 3 0 8 -1 -24198 0; #X obj 80 70 cnv 5 15 6 empty empty a 10 3 0 8 -1 -24198 0; #X obj 81 51 cnv 5 15 6 empty empty h 10 3 0 8 -1 -24198 0; #X obj 201 5 cnv 15 92 92 empty empty gain_rand 24 88 0 8 -1 -24198 0; #X obj 276 25 cnv 5 15 6 empty empty p 10 3 0 8 -1 -24198 0; #X obj 276 40 cnv 5 15 6 empty empty n 10 3 0 8 -1 -24198 0; #X obj 276 33 cnv 5 15 6 empty empty a 10 3 0 8 -1 -24198 0; #X obj 276 50 cnv 5 15 6 empty empty r 10 3 0 8 -1 -24198 0; #X obj 277 64 cnv 5 15 6 empty empty n 10 3 0 8 -1 -24198 0; #X obj 276 72 cnv 5 15 6 empty empty d 10 3 0 8 -1 -24198 0; #X obj 276 57 cnv 5 15 6 empty empty a 10 3 0 8 -1 -24198 0; #X obj 3 99 cnv 1 292 1 empty empty empty 200 90 0 8 -24198 -24198 0; #X text 215 328 4 master gain ctrl [0-127]; #X obj 362 246 inlet master_gain_ctrl; #X obj 362 268 / 127; #X obj 362 204 s \$1-zample_gain_min; #X obj 102 103 cnv 15 94 20 empty empty empty 20 12 0 14 -24198 -66577 0; #X obj 200 103 cnv 15 95 20 empty empty empty 20 12 0 14 -24198 -66577 0; #X obj 202 104 nbx 4 8 -1e+37 1e+37 0 0 empty \$1-seconds_display seconds 50 5 0 8 -1 -24198 -1 0 256; #X obj 202 114 nbx 4 8 -1e+37 1e+37 0 0 \$1-transpose \$1-transpose_display halftones 40 5 0 8 -1 -24198 -1 0 256; #X obj 106 104 hsl 87 18 1 1000 1 1 \$1-zample_envelope_min empty envelope 6 8 0 8 -1 -258699 -24198 4800 1; #X obj 3 103 cnv 15 95 20 empty empty empty 20 12 0 14 -24198 -66577 0; #X obj 4 104 hradio 18 1 1 5 \$1-zample_length_range empty 01|05|10|30|60 5 9 0 8 -1 -258699 -24198 2; #X obj 102 126 cnv 15 94 20 empty empty empty 20 12 0 14 -24198 -66577 0; #X obj 3 126 cnv 18 95 20 empty empty empty 20 17 0 14 -24198 -66577 0; #X obj 200 126 cnv 15 95 20 empty empty empty 2 10 0 10 -24198 -1 0 ; #X obj 221 127 cnv 15 73 18 empty empty empty 2 9 0 10 -1 -24198 0 ; #X obj 201 127 tgl 18 0 \$1-null \$1-grainer_toggle \$3-granulator 21 9 0 8 -1 -258699 -24198 0 1; #X obj 24 127 cnv 15 73 18 empty empty empty 2 9 0 10 -1 -24198 0; #X obj 4 127 tgl 18 0 \$1-null \$1-player_toggle \$2-player 21 9 0 8 -1 -258699 -24198 0 1; #X obj 106 127 hsl 87 18 0 1 0 1 \$1-xfaders \$1-xfade \$1-looper 6 9 0 8 -1 -258699 -24198 4063 1; #X obj 362 160 loadbang; #X msg 362 182 1; #N canvas 0 22 363 307 x-fader 0; #X obj 19 16 inlet~; #X obj 129 16 inlet~; #X obj 19 244 outlet~; #X obj 199 244 outlet~; #X obj 199 16 inlet~; #X obj 37 134 pack 0 50; #X obj 37 155 line~; #X obj 20 181 *~; #X obj 147 134 pack 0 50; #X obj 147 155 line~; #X obj 130 181 *~; #X obj 217 134 pack 0 50; #X obj 217 155 line~; #X obj 200 181 *~; #X obj 249 16 inlet; #X obj 249 42 * -1; #X obj 249 68 + 1; #X connect 0 0 7 0; #X connect 1 0 10 0; #X connect 4 0 13 0; #X connect 5 0 6 0; #X connect 6 0 7 1; #X connect 7 0 2 0; #X connect 7 0 3 0; #X connect 8 0 9 0; #X connect 9 0 10 1; #X connect 10 0 2 0; #X connect 11 0 12 0; #X connect 12 0 13 1; #X connect 13 0 3 0; #X connect 14 0 15 0; #X connect 14 0 8 0; #X connect 14 0 11 0; #X connect 15 0 16 0; #X connect 16 0 5 0; #X restore 3 330 pd x-fader; #X obj 415 268 s \$1-xfade; #X obj 415 288 r \$1-xfaders; #X text 216 434 [looper /name keyname1 keyname2]; #X text 61 76 comment; #X text 219 454 keyname1=toggle for looper on/off; #X text 219 469 keyname2=toggle for grainer on/off; #X connect 3 0 4 1; #X connect 3 0 20 3; #X connect 4 0 10 0; #X connect 4 0 11 0; #X connect 4 1 10 1; #X connect 5 0 4 0; #X connect 5 0 20 2; #X connect 6 0 10 2; #X connect 6 0 16 0; #X connect 10 0 72 0; #X connect 11 0 72 1; #X connect 11 1 72 2; #X connect 17 0 6 0; #X connect 20 0 1 0; #X connect 20 1 2 0; #X connect 23 0 30 0; #X connect 23 1 30 1; #X connect 24 0 30 2; #X connect 24 1 30 3; #X connect 25 0 30 4; #X connect 25 1 30 5; #X connect 52 0 53 0; #X connect 53 0 72 3; #X connect 53 0 73 0; #X connect 70 0 71 0; #X connect 71 0 54 0; #X connect 72 0 20 0; #X connect 72 1 20 1; #X connect 74 0 72 3; #X coords 0 0 1 1 300 150 1;