#N canvas 593 401 338 369 10; #N canvas 147 147 1045 685 beatmangle 0; #X obj 7 7 cnv 15 305 30 empty empty beatmangle 5 16 1 32 -261682 -66577 0; #X obj 277 44 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 13 286 hsl 295 8 0 120961 0 0 empty empty empty -2 -8 0 10 -262144 -1 -1 0 1; #X obj 443 549 outlet~; #X obj 496 548 outlet~; #X obj 389 76 openpanel; #X obj 389 141 soundfiler; #X msg 327 253 range 0 \$1; #X obj 443 494 *~; #X obj 389 163 s \$0-sample_count; #X obj 327 229 r \$0-sample_count; #X obj 327 207 r \$0-sample_position; #X obj 458 469 r \$0-sample_count; #X obj 443 521 tabread4~ \$0-sampleloop; #N canvas 0 22 450 300 (subpatch) 0; #X array \$0-sampleloop 120961 float 2; #X coords 0 1 120961 -1 300 200 1; #X restore 10 84 graph; #X obj 389 98 pack s \$0; #X msg 389 120 read -resize \$1 \$2-sampleloop; #X obj 294 523 snapshot~; #X obj 294 546 s \$0-sample_position; #X obj 294 499 metro 100; #X obj 294 471 r \$0-sample_count; #X obj 607 -37 r \$0-sample_count; #X obj 607 -13 t f f; #X obj 611 111 /; #N canvas 530 461 271 159 len2freq 0; #X obj 18 9 inlet; #X obj 18 33 t b f; #X msg 18 61 1; #X obj 30 96 /; #X obj 30 121 outlet; #X text 69 6 Calculate the frequency required in order to play a single loop at the correct tempo.; #X connect 0 0 1 0; #X connect 1 0 2 0; #X connect 1 1 3 1; #X connect 2 0 3 0; #X connect 3 0 4 0; #X restore 525 189 pd len2freq; #X obj 653 247 t b f; #X text 641 111 Calculate the length of the sample in seconds; #X text 688 30 <- Change beat sample rate here; #X obj 653 271 metro; #X text 694 272 Metro will bang every 8th note; #X obj 653 316 random 2; #X obj 653 339 sel 0; #X text 710 318 50% change of changing the loop settings; #N canvas 328 382 621 386 randloop 0; #X obj 20 15 inlet~; #X obj 94 19 inlet; #X msg 128 102 2; #X msg 163 102 4; #X msg 199 102 8; #X msg 236 102 16; #X msg 271 102 32; #X msg 305 102 64; #X obj 21 182 *~; #X obj 21 208 wrap~; #X obj 21 240 /~; #X obj 21 273 outlet~; #X text 165 16 Make the phasor loop over a smaller \, randomly chosen \, range.; #X msg 340 102 128; #X msg 177 229 2; #X msg 214 230 0; #X obj 177 273 outlet; #X text 246 228 This is the chance that the next 8th note will have different settings: 50% for 2nd to 32nd notes \, 100% for 64th or 128th note loops. This lowers the chance of having prolonged periods of 64th/128th notes.; #X obj 94 47 random 8; #X obj 94 74 route 0 1 2 3 4 5 6 7; #X msg 94 102 1; #X connect 0 0 8 0; #X connect 1 0 18 0; #X connect 2 0 8 1; #X connect 2 0 10 1; #X connect 2 0 14 0; #X connect 3 0 8 1; #X connect 3 0 10 1; #X connect 3 0 14 0; #X connect 4 0 8 1; #X connect 4 0 10 1; #X connect 4 0 14 0; #X connect 5 0 8 1; #X connect 5 0 10 1; #X connect 5 0 14 0; #X connect 6 0 8 1; #X connect 6 0 10 1; #X connect 6 0 14 0; #X connect 7 0 8 1; #X connect 7 0 10 1; #X connect 7 0 15 0; #X connect 8 0 9 0; #X connect 9 0 10 0; #X connect 10 0 11 0; #X connect 13 0 8 1; #X connect 13 0 10 1; #X connect 13 0 15 0; #X connect 14 0 16 0; #X connect 15 0 16 0; #X connect 18 0 19 0; #X connect 19 0 20 0; #X connect 19 1 2 0; #X connect 19 2 3 0; #X connect 19 3 4 0; #X connect 19 4 5 0; #X connect 19 5 6 0; #X connect 19 6 7 0; #X connect 19 7 13 0; #X connect 20 0 8 1; #X connect 20 0 10 1; #X connect 20 0 14 0; #X restore 443 375 pd randloop; #N canvas 410 373 519 256 randoffset 0; #X obj 23 12 inlet; #X obj 81 127 outlet; #X text 159 51 Randomize the playhead position to any 8th note by generating an offset. This will be added to the phasor and wrapped to the valid loop range.; #X obj 96 14 inlet; #X obj 96 38 * 8; #X obj 23 63 random; #X obj 81 99 /; #X connect 0 0 5 0; #X connect 3 0 4 0; #X connect 4 0 5 1; #X connect 4 0 6 1; #X connect 5 0 6 0; #X connect 6 0 1 0; #X restore 653 368 pd randoffset; #X obj 443 413 +~; #X obj 443 441 wrap~; #X obj 443 317 phasor~; #X text 743 369 Randomize playhead position; #X text 293 375 Randomize loop settings; #X text 201 563 Update the playhead visual indicator; #X text 103 42 Click here to load beat loop; #X floatatom 277 64 5 1 8 0 - - -; #X obj 329 -8 loadbang; #X msg 329 16 1; #X obj 322 107 s \$0-bars; #X obj 745 131 r \$0-bars; #X msg 694 179 250; #X obj 653 224 *; #X obj 706 203 /; #X obj 694 155 t b b f; #X text 139 63 Number of bars in loop; #X obj 634 57 t b f; #X msg 634 11 44100; #X floatatom 634 32 8 0 0 0 - - -; #X text 5 307 [beatmangle / Colin Barry / www.loomer.co.uk colin@loomer.co.uk] ; #X connect 1 0 5 0; #X connect 5 0 15 0; #X connect 6 0 9 0; #X connect 7 0 2 0; #X connect 8 0 13 0; #X connect 8 0 17 0; #X connect 10 0 7 0; #X connect 11 0 2 0; #X connect 12 0 8 1; #X connect 13 0 4 0; #X connect 13 0 3 0; #X connect 15 0 16 0; #X connect 16 0 6 0; #X connect 17 0 18 0; #X connect 19 0 17 0; #X connect 20 0 19 0; #X connect 21 0 22 0; #X connect 22 0 23 0; #X connect 22 1 53 0; #X connect 23 0 24 0; #X connect 23 0 48 0; #X connect 24 0 37 0; #X connect 25 0 28 0; #X connect 25 1 28 1; #X connect 28 0 30 0; #X connect 30 0 31 0; #X connect 31 0 34 0; #X connect 31 0 33 1; #X connect 33 0 35 0; #X connect 33 1 30 1; #X connect 34 0 35 1; #X connect 35 0 36 0; #X connect 36 0 8 0; #X connect 37 0 33 0; #X connect 42 0 45 0; #X connect 43 0 44 0; #X connect 44 0 42 0; #X connect 46 0 50 0; #X connect 46 0 34 1; #X connect 47 0 49 0; #X connect 48 0 25 0; #X connect 49 0 48 1; #X connect 50 0 48 0; #X connect 50 1 47 0; #X connect 50 2 49 1; #X connect 52 0 23 0; #X connect 52 1 23 1; #X connect 53 0 54 0; #X connect 54 0 52 0; #X coords 0 -1 1 1 310 295 2 5 5; #X restore -79 7 pd beatmangle; #X obj 61 316 dac~; #X text -80 351 [colin@loomer.co.uk]; #X connect 0 0 1 0; #X connect 0 1 1 1;