#N canvas 380 93 723 548 10; #X floatatom 439 -68 5 0 100 0 Location% #0-location%R #0-location% ; #X floatatom 290 75 6 0 0 0 - - -; #X obj 160 75 hsl 128 15 -400 400 0 0 empty empty Speed% 48 7 0 10 -262144 -1 -1 0 1; #X obj 290 113 expr $f1*abs($f1/100); #X obj 327 136 s \$0-speed; #X obj 150 138 hradio 11 1 0 11 empty empty empty 0 -8 0 10 -262144 -1 -1 4; #X obj 147 158 expr pow(2 \, $f1)*2; #X floatatom 141 225 5 0 0 0 - - -; #X floatatom 193 223 9 0 0 0 - - -; #X floatatom 272 135 5 0 0 1 ms #0-window-msec #0-sadoiuwemndcopiS ; #X floatatom 294 -32 6 0 0 0 - - -; #X obj 164 -32 hsl 128 15 -400 400 0 0 empty empty Detune% 43 7 0 10 -262144 -1 -1 0 1; #X obj 293 -3 expr $f1*abs($f1/100); #X obj 353 48 hsl 128 15 0 1 0 0 \$0-phaselock \$0-phaselockR phase_lock 35 7 0 10 -262144 -1 -1 0 1; #X obj 496 -49 tgl 15 0 \$0-loop \$0-loopR loop 17 7 0 10 -262144 -1 -1 0 1; #X obj 472 -31 bng 15 250 50 0 \$0-load-file \$0-aspxycnqe32490ljas Load_File 17 7 0 10 -262144 -1 -1; #N canvas 227 24 671 297 input-control 0; #X obj 41 43 route setarray file; #X text 249 63 setarray: arrayname/filepath \, lenght(or arraysize is used) \, samplingrate(or current smplrate is used); #X obj 216 143 s \$0-speed; #X obj 269 184 s \$0-detune; #X obj 316 145 s \$0-location; #X obj 368 181 != 0; #X obj 368 202 s \$0-loop; #X obj 416 141 s \$0-phaselock; #X obj 518 163 s \$0-windowms; #X obj 44 14 inlet; #X obj 91 102 s \$0-read-sample; #X obj 232 104 route speed detune location loop phaselock windowInMs location%; #X obj 513 139 s \$0-location%; #X connect 0 1 10 0; #X connect 0 2 11 0; #X connect 5 0 6 0; #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 7 0; #X connect 11 5 8 0; #X connect 11 6 12 0; #X restore -37 -35 pd input-control; #X obj 474 3 bng 15 250 50 0 \$0-reset \$0-0923kljcxv90i3kjldfkjsdf reset 17 7 0 10 -262144 -1 -1; #X obj 345 23 s \$0-detune; #X obj 283 -57 r \$0-detuneR; #X obj 278 158 r \$0-windowms; #X obj 209 243 s \$0-windowblock; #N canvas 260 23 647 762 phase-tables 0; #N canvas 0 0 450 300 (subpatch) 0; #X array \$0-prev-imag 4096 float 0; #X coords 0 1000 4095 -1000 400 300 1; #X restore 169 326 graph; #N canvas 0 0 450 300 (subpatch) 0; #X array \$0-prev-real 4096 float 0; #X coords 0 500 4095 -500 400 300 1; #X restore 170 17 graph; #X obj 33 149 change; #X obj 33 81 r \$0-windowblock; #X msg 23 204 resize \$1; #X obj 13 246 s \$0-prev-real; #X obj 34 265 s \$0-prev-imag; #X obj 33 111 max 0; #X connect 2 0 4 0; #X connect 2 0 7 1; #X connect 3 0 7 0; #X connect 4 0 5 0; #X connect 4 0 6 0; #X connect 7 0 2 0; #X restore 17 284 pd phase-tables; #N canvas 811 34 452 454 hann-window 0; #N canvas 0 0 1267 728 (subpatch) 0; #X array \$0-hann 4096 float 0; #X coords 0 1 4095 0 300 100 1; #X restore 82 311 graph; #X msg 153 128 resize \$1; #X obj 153 152 s \$0-hann; #X text 16 -21 calculate Hann window table (variable window size) and constants window-hz (fundamental frequency of analysis) \, window-sec and window-msec (analysis window size in seconds and msec).; #X obj 28 62 r \$0-windowblock; #X obj 28 158 until; #X obj 28 186 count; #X obj 28 133 t f f b; #X msg 62 164 reset; #X obj 28 262 tabwrite \$0-hann; #X obj 28 212 t f f; #X obj 28 237 expr -.5*cos($f1/$f2*6.283185307179586476925286766559)+.5 ; #X obj 153 107 change; #X obj 153 82 max 0; #X obj 28 89 t f f; #X text 229 95 ceep resizes mnml; #X connect 1 0 2 0; #X connect 4 0 14 0; #X connect 5 0 6 0; #X connect 6 0 10 0; #X connect 7 0 5 0; #X connect 7 1 6 1; #X connect 7 1 11 1; #X connect 7 2 8 0; #X connect 8 0 6 0; #X connect 10 0 11 0; #X connect 10 1 9 1; #X connect 11 0 9 0; #X connect 12 0 13 1; #X connect 12 0 1 0; #X connect 13 0 12 0; #X connect 14 0 7 0; #X connect 14 1 13 0; #X restore 17 308 pd hann-window; #X obj 260 219 s \$0-window-msec; #X obj 201 283 s \$0-window-sec; #X obj -37 -57 inlet; #X obj 472 -67 bng 15 250 50 0 \$0-rewind \$0-asdoiujxynasoiduS48 rewind 17 7 0 10 -262144 -1 -1; #X obj 388 82 hsl 128 15 0.01 10 1 0 \$0--pasdhas1elasdockax4S \$0-pasdhas1elasdockax4R gain 48 7 0 10 -262144 -1 -1 8467 1; #X obj 398 118 s \$0-gain; #N canvas 51 16 821 693 fft-analysis 0; #X obj 51 477 *~; #X obj 18 477 *~; #X obj 18 499 -~; #X obj 167 475 *~; #X obj 136 475 *~; #X obj 136 497 +~; #X obj 109 193 *~; #X obj 78 193 *~; #X obj 50 193 *~; #X obj 19 193 *~; #X obj 19 218 +~; #X obj 127 379 *~; #X obj 20 637 *~; #X obj 238 430 rfft~; #X obj 108 161 rfft~; #X obj 19 564 rifft~; #X obj 21 659 outlet~; #X obj 97 379 *~; #X obj 97 401 +~; #X obj 124 218 -~; #X obj 18 431 *~; #X obj 51 432 *~; #X obj 19 349 +~ 1e-015; #X obj 19 598 *~; #X obj 52 598 tabreceive~ \$0-hann; #X obj 128 636 expr 2/(3*$f1); #X obj 591 563 loadbang; #X msg 591 589 \; pd dsp 1 \; window-size 2048 \; transpo 0 \; rewind bang; #X obj 97 425 q8_rsqrt~; #N canvas 211 0 1006 678 read-windows 0; #X obj 18 693 *~; #X obj 162 261 f; #X obj 195 695 *~; #X obj 162 216 bang~; #X obj 17 551 line~; #X obj 204 263 +; #X obj 323 206 *; #X obj 147 466 +; #X obj 120 443 t f f; #X msg 17 523 \$1 \, \$2 \$3; #X obj 17 496 pack 0 0 0; #X obj 142 383 / 1000; #X obj 120 403 *; #X text 152 403 reading location (samples); #X obj 45 582 / 4; #X obj 323 151 * 0.01; #X floatatom 364 498 7 0 0 0 - - -; #X obj 364 474 *; #X obj 399 474 t b f; #X obj 19 719 outlet~; #X obj 195 720 outlet~; #X obj 123 670 tabreceive~ \$0-hann; #X obj 804 440 r location; #X msg 804 463 0; #X obj 804 486 s speed; #X obj 769 562 r speed; #X msg 769 586 set \$1; #X obj 769 611 s speed-set; #X text 432 498 stretched window size (samples); #X obj 878 561 r transpo; #X msg 878 587 set \$1; #X obj 878 612 s transpo-set; #X msg 727 297 set \$1; #X obj 808 140 t b f; #X obj 826 257 f; #X obj 752 171 int; #X obj 752 203 sel 0; #X msg 811 174 1; #X msg 811 197 0; #X obj 752 228 del 300; #X obj 17 644 tabread4~ \$0-sample; #X obj 194 644 tabread4~ \$0-sample; #X obj 142 364 r \$0-insamprate; #X obj 528 586 r rewind; #X msg 528 744 \; location \$1; #X obj 137 149 / 4; #X obj 157 423 / 2; #X obj 120 423 -; #X text 193 420 back up 1/2 window; #X obj 16 582 -~; #X text 38 77 Read two windows out of the recorded sample \, one 1/4 ahead of the other. The mid point of the front window is specified by "location". If "speed" is nonzero \, "location" automatically precesses. ; #X obj 528 720 * -0.5; #X text 91 579 "back" window 1/4 cycle behind "front" one; #X text 172 163 computation period (msec) for overlap of 4; #X text 199 144 msec in a window; #X obj 528 666 /; #X obj 528 691 * 1000; #X obj 528 642 t f b; #X obj 568 666 samplerate~; #X obj 528 619 f; #X msg 845 711 \; rewind bang \; speed \$1; #X obj 845 684 r auto; #X obj 730 685 r no-detune; #X msg 730 707 \; detune 0; #X text 329 218 loop to precess the location according; #X text 328 234 to the "speed" parameter.; #X text 536 88 if location changes \, update number box; #X text 535 107 in main window via "location-set" \, but; #X text 538 126 taking care to limit frequency of updates.; #X text 757 516 reflect control changes; #X text 757 533 in main window.; #X text 755 398 setting location by hand; #X text 753 416 sets speed to zero.; #X text 760 653 misc controls; #X text 496 527 "rewind" control takes us; #X text 499 545 to a location depending on; #X text 499 564 stretched window size.; #X obj 593 457 t b f; #X obj 617 395 samplerate~; #X obj 593 330 r \$0-insamprate; #X obj 593 418 /; #X obj 505 455 * 1; #X text 493 290 desired transposition and sample; #X text 493 307 rate correction for soundfile; #X obj 593 370 t f b; #X obj 137 128 r \$0-window-msec; #X obj 727 317 s \$0-locationR; #X obj 826 278 / 1; #X obj 323 130 r \$0-speed; #X msg 826 299 set \$1; #X obj 826 319 s \$0-location%R; #X obj 174 503 / 2; #X text 116 484 middle for reversed glitches (sm); #X obj 94 465 -; #X obj 364 448 r \$0-windowblock; #N canvas 110 364 450 300 loop 0; #X obj 175 61 r \$0-loop; #X obj 148 86 demux; #X obj 148 22 inlet; #X obj 148 244 outlet; #X obj 1 115 expr ($f1>$f2)||($f1<0); #X obj 1 140 select 1 0; #X obj 7 188 delay 10; #X msg 15 162 stop; #X obj 20 248 s \$0-on; #X msg 10 215 0; #X msg 48 219 1; #X obj 274 86 r \$0-samp-msec; #X obj 278 190 expr ($f1+$f2)%$f2; #X text 289 212 original; #X text 234 124 kludge to work around expr; #X obj 175 108 expr ( (($f1+$f2)*10000) % ($f2*10000) )/10000; #X obj 36 34 r \$0-samp-msec; #X connect 0 0 1 1; #X connect 1 0 3 0; #X connect 1 0 4 0; #X connect 1 1 15 0; #X connect 2 0 1 0; #X connect 4 0 5 0; #X connect 5 0 6 0; #X connect 5 1 7 0; #X connect 5 1 10 0; #X connect 6 0 9 0; #X connect 7 0 6 0; #X connect 9 0 8 0; #X connect 10 0 8 0; #X connect 11 0 15 1; #X connect 15 0 3 0; #X connect 16 0 4 1; #X restore 204 285 pd loop and stop logic; #X obj 184 237 r \$0-location; #X obj 505 390 r \$0-detune; #X obj 505 411 * 0.01; #X obj 856 91 r \$0-location; #X obj 808 24 r \$0-location%; #X obj 823 46 r \$0-samplength; #X obj 823 67 * 0.01; #X obj 808 90 *; #X obj 265 561 need for wrap around @loop; #X obj 17 624 expr~ ($v1+$f2)%$f2; #X obj 193 622 expr~ ($v1+$f2)%$f2; #X text 316 620 wrap around for smooth loops; #X text 586 612 ????; #X floatatom 52 312 5 0 0 0 - - -; #X obj 128 603 r \$0-samplength; #X obj 304 602 r \$0-samplength; #X floatatom 323 253 5 0 0 0 - - -; #X obj 861 234 r \$0-samp-msec; #X obj 861 255 * 0.01; #X obj 282 179 t b f; #X obj 204 307 s \$0-see-loc; #X obj 857 113 r \$0-see-loc; #X obj 593 350 f; #X obj 508 329 r \$0-updateSR; #X connect 0 0 19 0; #X connect 1 0 12 0; #X connect 1 0 5 0; #X connect 1 0 109 0; #X connect 2 0 20 0; #X connect 3 0 1 0; #X connect 4 0 49 0; #X connect 4 0 106 0; #X connect 5 0 95 0; #X connect 6 0 5 1; #X connect 6 0 112 0; #X connect 7 0 10 1; #X connect 8 0 93 0; #X connect 8 1 7 0; #X connect 9 0 4 0; #X connect 10 0 9 0; #X connect 11 0 12 1; #X connect 12 0 47 0; #X connect 14 0 49 1; #X connect 15 0 6 0; #X connect 16 0 14 0; #X connect 16 0 46 0; #X connect 16 0 59 1; #X connect 16 0 91 0; #X connect 17 0 16 0; #X connect 18 0 17 0; #X connect 18 1 17 1; #X connect 21 0 2 1; #X connect 21 0 0 1; #X connect 22 0 23 0; #X connect 23 0 24 0; #X connect 25 0 26 0; #X connect 26 0 27 0; #X connect 29 0 30 0; #X connect 30 0 31 0; #X connect 32 0 86 0; #X connect 33 0 35 0; #X connect 33 1 34 1; #X connect 34 0 87 0; #X connect 34 0 32 0; #X connect 35 0 36 0; #X connect 36 0 37 0; #X connect 36 0 39 0; #X connect 37 0 35 1; #X connect 38 0 35 1; #X connect 39 0 38 0; #X connect 39 0 34 0; #X connect 40 0 0 0; #X connect 41 0 2 0; #X connect 42 0 11 0; #X connect 43 0 59 0; #X connect 45 0 10 2; #X connect 45 0 115 0; #X connect 46 0 47 1; #X connect 47 0 8 0; #X connect 49 0 105 0; #X connect 55 0 56 0; #X connect 56 0 51 0; #X connect 57 0 55 0; #X connect 57 1 58 0; #X connect 58 0 55 1; #X connect 59 0 57 0; #X connect 61 0 60 0; #X connect 62 0 63 0; #X connect 77 0 81 0; #X connect 77 1 81 1; #X connect 78 0 80 1; #X connect 79 0 118 0; #X connect 80 0 77 0; #X connect 81 0 18 0; #X connect 84 0 80 0; #X connect 84 1 78 0; #X connect 85 0 45 0; #X connect 87 0 89 0; #X connect 88 0 15 0; #X connect 89 0 90 0; #X connect 91 0 7 1; #X connect 91 0 93 1; #X connect 93 0 10 0; #X connect 94 0 17 0; #X connect 95 0 1 1; #X connect 95 0 116 0; #X connect 96 0 1 1; #X connect 97 0 98 0; #X connect 98 0 81 0; #X connect 99 0 33 0; #X connect 100 0 103 0; #X connect 101 0 102 0; #X connect 102 0 103 1; #X connect 103 0 33 0; #X connect 105 0 40 0; #X connect 106 0 41 0; #X connect 110 0 105 1; #X connect 111 0 106 1; #X connect 113 0 114 0; #X connect 114 0 87 1; #X connect 115 0 6 0; #X connect 115 1 6 1; #X connect 117 0 33 0; #X connect 118 0 84 0; #X connect 119 0 118 0; #X restore 109 133 pd read-windows; #X text 272 5 recall previous output amplitude. Its phase will be added to the phase difference we measure from two windows in the the recorded sound.; #X obj 121 69 *~; #X obj 89 69 *~; #X obj 89 91 +~; #X obj 159 94 q8_rsqrt~; #X obj 159 71 +~ 1e-020; #X obj 73 119 *~; #X obj 19 118 *~; #X obj 29 245 lrshift~ 1; #X obj 24 269 lrshift~ -1; #X obj 141 245 lrshift~ 1; #X obj 133 269 lrshift~ -1; #X obj 35 300 *~; #X obj 159 312 *~; #X obj 19 325 +~; #X obj 125 331 +~; #X text 247 66 divide by the magnitude to make a unit-magnitude complex amplitude (phase only). The 1e-020 is to prevent overflows. q8_rsqrt~ is reciprocal square root.; #X text 247 165 Take FT of the window in back. Multiply its conjugate by the normalized previous output. The result has the magnitude of the input sound and phase (previous output phase) minus (back window phase).; #X text 249 370 Normalize again \, this time taking care to salt each channel with 1e-015 so that we get a unit complex number even if everything was zero heretofore.; #X text 288 427 Now take the FT of the forward window and multiply it by the unit complex number from above. The magnitude will be that of the forward window and the phase will be the previous output phase plus the phase difference between the two analysis windows -- except that if "lock" is on \, they will be modified to agree progressively better with the inter-channel phase relationships of the input.; #X text 249 242 If "lock" is on \, encourage neighboring channels to stay in phase by adding the two neighboring complex amplitudes. The result will tend toward the channel with the strongest amplitude. If the phase relationships between channels in the output and those in the input are in parallel \, then neighboring channels of the quotient will all have the same phase and this will not change any phases. (lrshift shifts the signal to the left or right depending on its argument.) ; #X text 259 126 Read two windows \, one 1/4 length behind the other \, of the input sound \, with Hann window function (see inside).; #X obj 20 8 tabreceive~ \$0-prev-real; #X obj 73 29 tabreceive~ \$0-prev-imag; #X obj 137 543 tabsend~ \$0-prev-imag; #X obj 136 567 tabsend~ \$0-prev-real; #X obj 128 615 r \$0-windowblock; #X obj 181 290 r \$0-phaselock; #X obj 113 673 *; #X obj 130 651 t b f; #X obj 186 653 r \$0-gain; #X connect 0 0 2 1; #X connect 1 0 2 0; #X connect 2 0 15 0; #X connect 2 0 55 0; #X connect 3 0 5 1; #X connect 4 0 5 0; #X connect 5 0 15 1; #X connect 5 0 54 0; #X connect 6 0 19 1; #X connect 7 0 19 0; #X connect 8 0 10 1; #X connect 9 0 10 0; #X connect 10 0 39 0; #X connect 10 0 38 0; #X connect 10 0 44 0; #X connect 11 0 18 1; #X connect 12 0 16 0; #X connect 13 0 1 1; #X connect 13 0 3 1; #X connect 13 1 0 1; #X connect 13 1 4 1; #X connect 14 0 9 1; #X connect 14 0 7 1; #X connect 14 1 6 1; #X connect 14 1 8 1; #X connect 15 0 23 0; #X connect 17 0 18 0; #X connect 18 0 28 0; #X connect 19 0 40 0; #X connect 19 0 41 0; #X connect 19 0 45 0; #X connect 20 0 1 0; #X connect 20 0 4 0; #X connect 21 0 0 0; #X connect 21 0 3 0; #X connect 22 0 17 1; #X connect 22 0 17 0; #X connect 22 0 20 0; #X connect 23 0 12 0; #X connect 24 0 23 1; #X connect 25 0 58 0; #X connect 28 0 20 1; #X connect 28 0 21 1; #X connect 29 0 14 0; #X connect 29 1 13 0; #X connect 31 0 33 1; #X connect 32 0 33 0; #X connect 33 0 35 0; #X connect 34 0 36 1; #X connect 34 0 37 1; #X connect 35 0 34 0; #X connect 36 0 8 0; #X connect 36 0 7 0; #X connect 37 0 9 0; #X connect 37 0 6 0; #X connect 38 0 42 0; #X connect 39 0 42 0; #X connect 40 0 43 0; #X connect 41 0 43 0; #X connect 42 0 44 1; #X connect 43 0 45 1; #X connect 44 0 22 0; #X connect 45 0 11 0; #X connect 45 0 11 1; #X connect 45 0 21 0; #X connect 52 0 32 1; #X connect 52 0 32 0; #X connect 52 0 37 0; #X connect 53 0 31 1; #X connect 53 0 31 0; #X connect 53 0 36 0; #X connect 56 0 25 0; #X connect 57 0 42 1; #X connect 57 0 43 1; #X connect 58 0 12 1; #X connect 59 0 58 0; #X connect 59 1 58 1; #X connect 60 0 59 0; #X restore -38 259 pd fft-analysis; #N canvas 59 133 694 447 insample 0; #N canvas 0 0 450 300 (subpatch) 0; #X array \$0-sample 4e+006 float 0; #X coords 0 1 4e+006 -1 400 150 1; #X restore 281 135 graph; #X obj 28 184 unpack s f; #X obj 28 294 soundfiler; #X obj 28 210 t s b; #X obj 76 222 symbol \$0-sample; #X obj 28 245 pack s s; #X msg 28 270 read -resize \$1 \$2; #X obj 83 156 44100; #X obj 28 157 t a b; #X obj 38 318 s \$0-samplength; #X obj 125 184 s \$0-insamprate; #X obj 28 357 /; #X obj 28 381 * 1000; #X obj 28 404 s \$0-samp-msec; #X obj 58 339 r \$0-insamprate; #X obj 26 54 inlet; #X obj 26 76 openpanel; #X obj 78 381 s \$0-samp-sec; #X obj 26 101 s \$0-read-sample; #X obj 28 133 r \$0-read-sample; #X obj 159 300 s \$0-filenameR; #X connect 1 0 3 0; #X connect 1 1 10 0; #X connect 2 0 9 0; #X connect 2 0 11 0; #X connect 3 0 5 0; #X connect 3 0 20 0; #X connect 3 1 4 0; #X connect 4 0 5 1; #X connect 5 0 6 0; #X connect 6 0 2 0; #X connect 7 0 10 0; #X connect 8 0 1 0; #X connect 8 1 7 0; #X connect 11 0 12 0; #X connect 11 0 17 0; #X connect 12 0 13 0; #X connect 14 0 11 1; #X connect 15 0 16 0; #X connect 16 0 18 0; #X connect 19 0 8 0; #X restore -39 87 pd insample; #X obj -39 63 r \$0-load-file; #X obj -38 282 outlet~; #X floatatom 439 -32 5 0 0 0 samp_sec #0-samp-sec #0-sa1ermp-ms21fs1ec ; #N canvas 25 330 671 316 to-gui 0; #X obj 154 105 r \$0-location; #X obj 154 129 speedlim 500; #X obj 154 173 s \$0-locationR; #X obj 384 244 s \$0-detuneR; #X obj 307 148 s \$0-speedR; #X obj 384 204 speedlim 500; #X obj 306 108 speedlim 500; #X obj 500 107 speedlim 500; #X msg 500 128 set \$1; #X obj 500 149 s \$0-phaselockR; #X obj 306 88 r \$0-speed; #X obj 500 86 r \$0-phaselock; #X obj 384 185 r \$0-detune; #X msg 154 152 set \$1; #X msg 306 128 set \$1; #X msg 384 224 set \$1; #X obj 28 132 speedlim 500; #X msg 28 155 set \$1; #X obj 28 108 r \$0-location%; #X obj 28 176 s \$0-location%R; #X text 83 87 obsolutistika?; #X obj 509 239 samplerate~; #X obj 509 259 s \$0-samplerateGui; #X obj 509 217 r \$0-updateSR; #X connect 0 0 1 0; #X connect 1 0 13 0; #X connect 5 0 15 0; #X connect 6 0 14 0; #X connect 7 0 8 0; #X connect 8 0 9 0; #X connect 10 0 6 0; #X connect 11 0 7 0; #X connect 12 0 5 0; #X connect 13 0 2 0; #X connect 14 0 4 0; #X connect 15 0 3 0; #X connect 16 0 17 0; #X connect 17 0 19 0; #X connect 18 0 16 0; #X connect 21 0 22 0; #X connect 23 0 21 0; #X restore -35 21 pd to-gui; #X obj 264 52 r \$0-speedR; #X obj 161 -17 hradio 10 1 0 17 empty empty empty 0 -8 0 10 -262144 -1 -1 0; #X obj 198 -2 expr ($f1-8)*25; #X obj 157 90 hradio 10 1 0 17 empty empty empty 0 -8 0 10 -262144 -1 -1 0; #X obj 195 113 expr ($f1-8)*25; #X obj 456 359 r \$0-on; #X obj 456 381 switch~; #X floatatom 439 -50 9 0 0 0 Location #0-locationR #0-location; #X msg 513 363 1; #X obj 513 344 r \$0-location; #X floatatom 516 416 5 0 0 0 - - -; #X floatatom 559 405 5 0 0 0 - - -; #X obj 201 263 / 1000; #X obj 86 -84 init 100; #X obj 562 -49 init 1; #X obj 88 18 init 4; #X symbolatom 241 -88 50 0 0 0 - #0-filenameR -; #X obj 558 73 loadbang; #X obj 560 112 f \$0; #X floatatom 560 139 5 0 0 0 - - -; #X text 237 86 0; #X text 277 86 +; #X text 197 81 _; #X text 241 -21 0; #X text 281 -21 +; #X text 201 -26 _; #X obj 122 30 hradio 15 1 0 7 \$0-ratechange empty empty 0 -8 0 10 -262144 -1 -1 0; #X floatatom 228 30 7 0 0 1 Samplerate #0-samplerateGui -; #X obj 421 249 expr pow(2 \, $f1-3); #X text 290 361 'set' message to block; #X text 293 378 allows variable size; #X obj 410 205 r \$0-windowblock; #X msg 410 320 set \$1 4 \$2; #X obj 410 299 pack f 1; #X obj 421 229 r \$0-ratechange; #X obj 421 271 t b b f; #X obj 318 343 s \$0-updateSR; #X obj 31 113 r \$0-updateSR; #X obj 318 258 loadbang; #X obj 318 278 random 1113; #X obj 318 299 + 3000; #X obj 318 319 metro; #N canvas 0 0 450 300 mstoblock 0; #X obj 302 32 loadbang; #X obj 302 99 metro 3000; #X obj 302 121 samplerate~; #X obj 331 53 random 1111; #X obj 331 76 + 3000; #X obj 302 144 change; #X obj 34 157 expr $f1*$f2/1000; #X obj 106 137 t b f; #X obj 34 181 expr pow(2 \, int(log($f1)/log(2)+.5)); #X obj 34 260 outlet blocksize; #X obj 153 260 outlet in ms; #X obj 34 17 inlet target ms; #X obj 225 204 t b f; #X obj 153 224 expr $f1*1000/$f2; #X connect 0 0 1 0; #X connect 0 0 3 0; #X connect 1 0 2 0; #X connect 2 0 5 0; #X connect 3 0 4 0; #X connect 4 0 1 1; #X connect 5 0 7 0; #X connect 5 0 12 0; #X connect 6 0 8 0; #X connect 7 0 6 0; #X connect 7 1 6 1; #X connect 8 0 9 0; #X connect 8 0 13 0; #X connect 11 0 6 0; #X connect 12 0 13 0; #X connect 12 1 13 1; #X connect 13 0 10 0; #X restore 192 189 pd mstoblock; #X connect 1 0 4 0; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 5 0 6 0; #X connect 6 0 7 0; #X connect 6 0 78 0; #X connect 10 0 18 0; #X connect 11 0 12 0; #X connect 12 0 18 0; #X connect 19 0 10 0; #X connect 20 0 78 0; #X connect 26 0 16 0; #X connect 28 0 29 0; #X connect 30 0 33 0; #X connect 32 0 31 0; #X connect 36 0 1 0; #X connect 37 0 38 0; #X connect 38 0 18 0; #X connect 39 0 40 0; #X connect 40 0 4 0; #X connect 41 0 42 0; #X connect 41 0 46 0; #X connect 44 0 42 0; #X connect 44 0 47 0; #X connect 45 0 44 0; #X connect 48 0 25 0; #X connect 49 0 1 0; #X connect 49 0 10 0; #X connect 50 0 28 0; #X connect 51 0 5 0; #X connect 53 0 54 0; #X connect 54 0 55 0; #X connect 64 0 71 0; #X connect 67 0 69 0; #X connect 68 0 42 0; #X connect 69 0 68 0; #X connect 70 0 64 0; #X connect 71 0 72 0; #X connect 71 1 69 0; #X connect 71 2 69 1; #X connect 73 0 5 0; #X connect 74 0 75 0; #X connect 75 0 76 0; #X connect 76 0 77 0; #X connect 76 0 77 1; #X connect 77 0 72 0; #X connect 78 0 8 0; #X connect 78 0 21 0; #X connect 78 1 24 0; #X connect 78 1 48 0; #X coords 0 -1 1 1 425 260 1 120 -90;