diff options
author | Thomas O Fredericks <mrtof@users.sourceforge.net> | 2009-10-25 00:39:13 +0000 |
---|---|---|
committer | Thomas O Fredericks <mrtof@users.sourceforge.net> | 2009-10-25 00:39:13 +0000 |
commit | f18d063d9312c95e25294e0777bc135ee9a3fd8a (patch) | |
tree | 54763b4c61f53c8ec696be54bc1c0e8d816c05aa /pitchShift~.pd |
Adding mtlsvn2git-root
svn path=/trunk/abstractions/mtl/; revision=12667
Diffstat (limited to 'pitchShift~.pd')
-rw-r--r-- | pitchShift~.pd | 770 |
1 files changed, 770 insertions, 0 deletions
diff --git a/pitchShift~.pd b/pitchShift~.pd new file mode 100644 index 0000000..ae2091f --- /dev/null +++ b/pitchShift~.pd @@ -0,0 +1,770 @@ +#N canvas 656 399 678 298 10; +#N canvas 449 458 721 323 processing 0; +#N canvas 0 110 466 295 hann-window 0; +#X obj 288 130 osc~; +#X obj 288 155 *~ -0.5; +#X obj 288 179 +~ 0.5; +#X obj 26 118 samplerate~; +#X obj 26 142 /; +#X msg 161 71 resize \$1; +#X msg 292 95 0; +#X obj 240 96 t f b; +#X obj 26 94 t b f f; +#X text 22 8 calculate Hann window table (variable window size) and +constants window-hz (fundamental frequency of analysis).; +#X obj 241 212 tabwrite~ \$0.hann; +#X obj 26 67 r \$0.window.size; +#X obj 26 166 s \$0.window.hz; +#X obj 161 95 s \$0.hann; +#X obj 240 70 r \$0.window.hz; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 3 0 4 0; +#X connect 4 0 12 0; +#X connect 5 0 13 0; +#X connect 6 0 0 1; +#X connect 7 0 0 0; +#X connect 7 1 6 0; +#X connect 7 1 10 0; +#X connect 8 0 3 0; +#X connect 8 1 4 1; +#X connect 8 2 5 0; +#X connect 11 0 8 0; +#X connect 14 0 7 0; +#X restore 307 277 pd hann-window; +#X obj 16 15 inlet~; +#X obj 19 238 outlet~; +#X obj 309 27 inlet; +#X obj 306 160 table \$0.prev.imag.l 4096; +#X obj 306 179 table \$0.prev.real.l 4096; +#X obj 306 198 table \$0.prev.imag.r 4096; +#X obj 306 217 table \$0.prev.real.r 4096; +#X obj 306 236 table \$0.hann; +#X msg 511 64 2048; +#X obj 511 42 loadbang; +#N canvas 41 57 750 770 fft.analysis.l 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 622 *~; +#X obj 236 175 rfft~; +#X obj 108 161 rfft~; +#X obj 19 564 rifft~; +#X obj 21 646 outlet~; +#X obj 97 379 *~; +#X obj 97 401 +~; +#X obj 124 218 -~; +#X obj 18 431 *~; +#X obj 51 432 *~; +#X obj 21 728 block~; +#X obj 19 349 +~ 1e-15; +#X obj 19 598 *~; +#X obj 127 643 expr 2/(3*$f1); +#X msg 21 703 set \$1 4; +#X obj 97 425 q8_rsqrt~; +#X obj 121 69 *~; +#X obj 89 69 *~; +#X obj 89 91 +~; +#X obj 159 94 q8_rsqrt~; +#X obj 159 71 +~ 1e-20; +#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 19 325 +~; +#X obj 125 331 +~; +#N canvas 0 0 554 671 read-windows 0; +#X obj 18 358 line~; +#X obj 16 523 outlet~; +#X obj 125 531 outlet~; +#X text 220 313 "back" window 1/4 cycle behind "front" one; +#X obj 18 266 pack f f; +#X obj 31 143 t b f; +#X obj 31 184 -; +#X obj 90 145 *; +#X obj 90 114 - 1; +#X obj 90 57 mtof; +#X obj 90 77 / 440; +#X obj 90 38 + 69; +#X obj 353 123 samplerate~; +#X obj 328 102 t f b; +#X obj 328 141 /; +#X obj 328 163 * 1000; +#X text 376 163 window size (ms); +#X obj 18 207 f; +#X obj 16 492 *~; +#X obj 124 503 *~; +#X obj 18 75 bang~; +#X obj 31 164 100; +#X obj 197 286 *; +#X obj 206 263 t b f; +#X text 235 288 stretched window size (ms); +#X obj 220 210 / 4; +#X text 252 207 computation time for an overlap of 4; +#X obj 18 230 / 4; +#X obj 71 229 / 4; +#X obj 17 393 +~; +#X obj 193 310 / 4; +#X obj 135 369 / 4; +#X text 47 395 '+' since a bigger value in vd~ means 'earlier'.; +#X text 114 110 subtract speed of read-out \, when; +#X text 114 122 delay-time is static; +#X text 134 37 convert cents of halftones to read-out speed; +#X text 41 229 *); +#X text 93 229 *); +#X text 162 367 *); +#X text 67 336 *); +#X obj 18 287 t l b; +#X obj 43 309 100; +#X obj 43 333 / 4; +#X text 57 165 initial delay (ms); +#X text 71 307 initial delay (ms); +#X text 21 556 *); +#X text 24 572 it seems that if a time is specified in ms instead of +samples \, the value has to be divided by the overlap factor (4 in +this case) in order for the vd~ to read out the desired amount of samples. +i'm still unsure what the reason for this might be.; +#X obj 90 -6 r \$0.transpo; +#X obj 328 81 r \$0.window.size; +#X obj 164 468 tabreceive~ \$0.hann; +#X obj 16 441 vd~ \$0.input.l; +#X obj 123 443 vd~ \$0.input.l; +#X obj 88 195 r \$0.latency; +#X obj 102 274 r \$0.latency; +#X connect 0 0 29 0; +#X connect 0 0 51 0; +#X connect 4 0 40 0; +#X connect 5 0 21 0; +#X connect 5 1 6 1; +#X connect 6 0 17 1; +#X connect 7 0 5 0; +#X connect 8 0 7 0; +#X connect 9 0 10 0; +#X connect 10 0 8 0; +#X connect 10 0 22 0; +#X connect 11 0 9 0; +#X connect 12 0 14 1; +#X connect 13 0 14 0; +#X connect 13 1 12 0; +#X connect 14 0 15 0; +#X connect 15 0 7 1; +#X connect 15 0 23 0; +#X connect 15 0 25 0; +#X connect 17 0 27 0; +#X connect 18 0 1 0; +#X connect 19 0 2 0; +#X connect 20 0 17 0; +#X connect 21 0 6 0; +#X connect 22 0 30 0; +#X connect 23 0 22 0; +#X connect 23 1 22 1; +#X connect 25 0 28 0; +#X connect 27 0 4 0; +#X connect 28 0 4 1; +#X connect 29 0 50 0; +#X connect 30 0 31 0; +#X connect 31 0 29 1; +#X connect 40 0 0 0; +#X connect 40 1 41 0; +#X connect 41 0 42 0; +#X connect 42 0 0 0; +#X connect 47 0 11 0; +#X connect 48 0 13 0; +#X connect 49 0 19 1; +#X connect 49 0 18 1; +#X connect 50 0 18 0; +#X connect 51 0 19 0; +#X connect 52 0 21 1; +#X connect 53 0 41 1; +#X restore 442 106 pd read-windows; +#X text 318 304 the left part is taken from miller puckette's audio +example I07.phase.vocoder.pd from the doc.; +#X obj 52 598 tabreceive~ \$0.hann; +#X obj 127 622 r \$0.window.size; +#X obj 35 300 *~ 1; +#X obj 159 312 *~ 1; +#X obj 21 679 r \$0.window.size; +#X obj 20 8 tabreceive~ \$0.prev.real.l; +#X obj 73 29 tabreceive~ \$0.prev.imag.l; +#X obj 137 543 tabsend~ \$0.prev.imag.l; +#X obj 136 567 tabsend~ \$0.prev.real.l; +#X connect 0 0 2 1; +#X connect 1 0 2 0; +#X connect 2 0 15 0; +#X connect 2 0 51 0; +#X connect 3 0 5 1; +#X connect 4 0 5 0; +#X connect 5 0 15 1; +#X connect 5 0 50 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 36 0; +#X connect 10 0 35 0; +#X connect 10 0 39 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 24 0; +#X connect 17 0 18 0; +#X connect 18 0 27 0; +#X connect 19 0 37 0; +#X connect 19 0 38 0; +#X connect 19 0 40 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 23 0 17 1; +#X connect 23 0 17 0; +#X connect 23 0 20 0; +#X connect 24 0 12 0; +#X connect 25 0 12 1; +#X connect 26 0 22 0; +#X connect 27 0 20 1; +#X connect 27 0 21 1; +#X connect 28 0 30 1; +#X connect 29 0 30 0; +#X connect 30 0 32 0; +#X connect 31 0 33 1; +#X connect 31 0 34 1; +#X connect 32 0 31 0; +#X connect 33 0 8 0; +#X connect 33 0 7 0; +#X connect 34 0 9 0; +#X connect 34 0 6 0; +#X connect 35 0 45 0; +#X connect 36 0 45 0; +#X connect 37 0 46 0; +#X connect 38 0 46 0; +#X connect 39 0 23 0; +#X connect 40 0 11 0; +#X connect 40 0 11 1; +#X connect 40 0 21 0; +#X connect 41 0 14 0; +#X connect 41 1 13 0; +#X connect 43 0 24 1; +#X connect 44 0 25 0; +#X connect 45 0 39 1; +#X connect 46 0 40 1; +#X connect 47 0 26 0; +#X connect 48 0 29 1; +#X connect 48 0 29 0; +#X connect 48 0 34 0; +#X connect 49 0 28 1; +#X connect 49 0 28 0; +#X connect 49 0 33 0; +#X restore 18 142 pd fft.analysis.l; +#X obj 309 122 s \$0.transpo; +#X obj 511 87 s \$0.window.size; +#X obj 77 17 inlet~; +#X obj 98 239 outlet~; +#X obj 16 96 delwrite~ \$0.input.l 1000; +#X obj 76 67 delwrite~ \$0.input.r 1000; +#N canvas 40 20 750 770 fft.analysis.r 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 622 *~; +#X obj 236 175 rfft~; +#X obj 108 161 rfft~; +#X obj 19 564 rifft~; +#X obj 21 646 outlet~; +#X obj 97 379 *~; +#X obj 97 401 +~; +#X obj 124 218 -~; +#X obj 18 431 *~; +#X obj 51 432 *~; +#X obj 21 728 block~; +#X obj 19 349 +~ 1e-15; +#X obj 19 598 *~; +#X obj 127 643 expr 2/(3*$f1); +#X msg 21 703 set \$1 4; +#X obj 97 425 q8_rsqrt~; +#X obj 121 69 *~; +#X obj 89 69 *~; +#X obj 89 91 +~; +#X obj 159 94 q8_rsqrt~; +#X obj 159 71 +~ 1e-20; +#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 19 325 +~; +#X obj 125 331 +~; +#N canvas 139 105 510 684 read-windows 0; +#X obj 18 358 line~; +#X obj 16 523 outlet~; +#X obj 125 531 outlet~; +#X text 220 313 "back" window 1/4 cycle behind "front" one; +#X obj 18 266 pack f f; +#X obj 31 143 t b f; +#X obj 31 184 -; +#X obj 90 145 *; +#X obj 90 114 - 1; +#X obj 90 57 mtof; +#X obj 90 77 / 440; +#X obj 90 38 + 69; +#X obj 353 123 samplerate~; +#X obj 328 102 t f b; +#X obj 328 141 /; +#X obj 328 163 * 1000; +#X text 376 163 window size (ms); +#X obj 18 207 f; +#X obj 16 492 *~; +#X obj 124 503 *~; +#X obj 18 75 bang~; +#X obj 31 164 100; +#X obj 197 286 *; +#X obj 206 263 t b f; +#X text 235 288 stretched window size (ms); +#X obj 220 210 / 4; +#X text 252 207 computation time for an overlap of 4; +#X obj 18 230 / 4; +#X obj 71 229 / 4; +#X obj 17 393 +~; +#X obj 193 310 / 4; +#X obj 135 369 / 4; +#X text 47 395 '+' since a bigger value in vd~ means 'earlier'.; +#X text 114 110 subtract speed of read-out \, when; +#X text 114 122 delay-time is static; +#X text 134 37 convert cents of halftones to read-out speed; +#X text 41 229 *); +#X text 93 229 *); +#X text 162 367 *); +#X text 67 336 *); +#X obj 18 287 t l b; +#X obj 43 309 100; +#X obj 43 333 / 4; +#X text 57 165 initial delay (ms); +#X text 71 307 initial delay (ms); +#X text 21 556 *); +#X text 24 572 it seems that if a time is specified in ms instead of +samples \, the value has to be divided by the overlap factor (4 in +this case) in order for the vd~ to read out the desired amount of samples. +i'm still unsure what the reason for this might be.; +#X obj 90 -6 r \$0.transpo; +#X obj 328 81 r \$0.window.size; +#X obj 164 468 tabreceive~ \$0.hann; +#X obj 16 441 vd~ \$0.input.r; +#X obj 123 443 vd~ \$0.input.r; +#X obj 88 195 r \$0.latency; +#X obj 102 274 r \$0.latency; +#X connect 0 0 29 0; +#X connect 0 0 51 0; +#X connect 4 0 40 0; +#X connect 5 0 21 0; +#X connect 5 1 6 1; +#X connect 6 0 17 1; +#X connect 7 0 5 0; +#X connect 8 0 7 0; +#X connect 9 0 10 0; +#X connect 10 0 8 0; +#X connect 10 0 22 0; +#X connect 11 0 9 0; +#X connect 12 0 14 1; +#X connect 13 0 14 0; +#X connect 13 1 12 0; +#X connect 14 0 15 0; +#X connect 15 0 7 1; +#X connect 15 0 23 0; +#X connect 15 0 25 0; +#X connect 17 0 27 0; +#X connect 18 0 1 0; +#X connect 19 0 2 0; +#X connect 20 0 17 0; +#X connect 21 0 6 0; +#X connect 22 0 30 0; +#X connect 23 0 22 0; +#X connect 23 1 22 1; +#X connect 25 0 28 0; +#X connect 27 0 4 0; +#X connect 28 0 4 1; +#X connect 29 0 50 0; +#X connect 30 0 31 0; +#X connect 31 0 29 1; +#X connect 40 0 0 0; +#X connect 40 1 41 0; +#X connect 41 0 42 0; +#X connect 42 0 0 0; +#X connect 47 0 11 0; +#X connect 48 0 13 0; +#X connect 49 0 19 1; +#X connect 49 0 18 1; +#X connect 50 0 18 0; +#X connect 51 0 19 0; +#X connect 52 0 21 1; +#X connect 53 0 41 1; +#X restore 442 106 pd read-windows; +#X text 318 304 the left part is taken from miller puckette's audio +example I07.phase.vocoder.pd from the doc.; +#X obj 52 598 tabreceive~ \$0.hann; +#X obj 127 622 r \$0.window.size; +#X obj 35 300 *~ 1; +#X obj 159 312 *~ 1; +#X obj 21 679 r \$0.window.size; +#X obj 20 8 tabreceive~ \$0.prev.real.r; +#X obj 73 29 tabreceive~ \$0.prev.imag.r; +#X obj 137 543 tabsend~ \$0.prev.imag.r; +#X obj 136 567 tabsend~ \$0.prev.real.r; +#X connect 0 0 2 1; +#X connect 1 0 2 0; +#X connect 2 0 15 0; +#X connect 2 0 51 0; +#X connect 3 0 5 1; +#X connect 4 0 5 0; +#X connect 5 0 15 1; +#X connect 5 0 50 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 36 0; +#X connect 10 0 35 0; +#X connect 10 0 39 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 24 0; +#X connect 17 0 18 0; +#X connect 18 0 27 0; +#X connect 19 0 37 0; +#X connect 19 0 38 0; +#X connect 19 0 40 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 23 0 17 1; +#X connect 23 0 17 0; +#X connect 23 0 20 0; +#X connect 24 0 12 0; +#X connect 25 0 12 1; +#X connect 26 0 22 0; +#X connect 27 0 20 1; +#X connect 27 0 21 1; +#X connect 28 0 30 1; +#X connect 29 0 30 0; +#X connect 30 0 32 0; +#X connect 31 0 33 1; +#X connect 31 0 34 1; +#X connect 32 0 31 0; +#X connect 33 0 8 0; +#X connect 33 0 7 0; +#X connect 34 0 9 0; +#X connect 34 0 6 0; +#X connect 35 0 45 0; +#X connect 36 0 45 0; +#X connect 37 0 46 0; +#X connect 38 0 46 0; +#X connect 39 0 23 0; +#X connect 40 0 11 0; +#X connect 40 0 11 1; +#X connect 40 0 21 0; +#X connect 41 0 14 0; +#X connect 41 1 13 0; +#X connect 43 0 24 1; +#X connect 44 0 25 0; +#X connect 45 0 39 1; +#X connect 46 0 40 1; +#X connect 47 0 26 0; +#X connect 48 0 29 1; +#X connect 48 0 29 0; +#X connect 48 0 34 0; +#X connect 49 0 28 1; +#X connect 49 0 28 0; +#X connect 49 0 33 0; +#X restore 97 169 pd fft.analysis.r; +#X obj 339 99 s \$0.latency; +#X obj 309 56 t a a; +#N canvas 998 307 217 230 latency 0; +#X obj 19 22 inlet; +#X obj 19 194 outlet; +#X obj 19 48 / 12; +#X obj 19 95 pow; +#X msg 19 72 2 \$1; +#X obj 19 117 max 1; +#X obj 119 73 samplerate~; +#X obj 119 93 * 0.001; +#X obj 89 29 r \$0.window.size; +#X obj 89 53 t a b; +#X obj 89 115 /; +#X obj 19 161 *; +#X connect 0 0 2 0; +#X connect 2 0 4 0; +#X connect 3 0 5 0; +#X connect 4 0 3 0; +#X connect 5 0 11 0; +#X connect 6 0 7 0; +#X connect 7 0 10 1; +#X connect 8 0 9 0; +#X connect 9 0 10 0; +#X connect 9 1 6 0; +#X connect 10 0 11 1; +#X connect 11 0 1 0; +#X restore 339 77 pd latency; +#X obj 626 31 inlet; +#X obj 634 63 switch~; +#X connect 1 0 16 0; +#X connect 3 0 20 0; +#X connect 9 0 13 0; +#X connect 10 0 9 0; +#X connect 11 0 2 0; +#X connect 14 0 17 0; +#X connect 18 0 15 0; +#X connect 20 0 12 0; +#X connect 20 1 21 0; +#X connect 21 0 19 0; +#X connect 22 0 23 0; +#X restore 139 141 pd processing; +#X obj 71 25 inlet~; +#X obj 153 31 inlet~; +#X obj 70 277 outlet~; +#X obj 128 278 outlet~; +#X text 268 226 based on pd doc: I07.phase.vocoder.pd; +#X text 267 244 adapted by: Roman Haefeli; +#X text 267 266 version: 2008-03-05; +#X obj 71 233 tof/crossfade~ 2; +#X obj 548 43 inlet params; +#X obj 548 89 print PARAM_NOTFOUND; +#X obj 214 30 tof/param /transpose 0 /g nbx; +#X obj 221 192 tof/param /switch 0 /g tgl; +#X obj 221 213 != 0; +#X msg 221 237 \$1 200; +#X obj 221 259 line~; +#N canvas 80 84 906 756 pitchshift 0; +#X obj 94 420 *~; +#X obj 202 351 line~; +#X obj 202 325 pack 0 200; +#X obj 29 204 exp; +#X floatatom 29 230 0 0 0 0 - - -; +#X obj 29 320 /; +#X obj 156 250 * 0.001; +#X obj 29 471 cos~; +#X obj 29 498 *~; +#X obj 29 527 +~; +#X obj 116 378 wrap~; +#X obj 261 421 *~; +#X obj 198 481 cos~; +#X obj 198 508 *~; +#X obj 156 277 t b f; +#X floatatom 29 346 0 0 0 0 - - -; +#X obj 29 373 phasor~ 0; +#X obj 116 351 +~ 0.5; +#X obj 29 419 -~ 0.5; +#X obj 29 445 *~ 0.5; +#X obj 198 420 -~ 0.5; +#X obj 198 453 *~ 0.5; +#X obj 29 257 - 1; +#X obj 29 178 * 0.05776; +#X obj 29 283 * -1; +#X text 78 123 <-- transposition; +#X text 116 138 (halpn_lftones); +#X text 96 238 speed; +#X text 95 252 change; +#X text 64 313 tape head; +#X text 65 326 rotation speed; +#X obj -131 115 inlet~; +#X obj 28 607 outlet~; +#X obj 29 122 inlet; +#X obj 94 472 vd~ \$0delay1; +#X obj 260 483 vd~ \$0delay1; +#X obj 267 147 loadbang; +#X obj 271 176 f 10; +#X obj 271 204 clip 1 1e+07; +#X msg 373 157 128; +#X obj -131 147 delwrite~ \$0delay1 10; +#X obj 646 51 inlet; +#X obj 654 83 switch~; +#X connect 0 0 34 0; +#X connect 1 0 0 1; +#X connect 1 0 11 1; +#X connect 2 0 1 0; +#X connect 3 0 4 0; +#X connect 4 0 22 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 9 0 32 0; +#X connect 10 0 11 0; +#X connect 10 0 20 0; +#X connect 11 0 35 0; +#X connect 12 0 13 0; +#X connect 13 0 9 1; +#X connect 14 0 5 0; +#X connect 14 1 5 1; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X connect 16 0 18 0; +#X connect 16 0 17 0; +#X connect 17 0 10 0; +#X connect 18 0 19 0; +#X connect 19 0 7 0; +#X connect 20 0 21 0; +#X connect 21 0 12 0; +#X connect 22 0 24 0; +#X connect 23 0 3 0; +#X connect 24 0 5 0; +#X connect 31 0 40 0; +#X connect 33 0 23 0; +#X connect 34 0 8 1; +#X connect 35 0 13 1; +#X connect 36 0 37 0; +#X connect 37 0 38 0; +#X connect 38 0 2 0; +#X connect 38 0 6 0; +#X connect 39 0 38 0; +#X connect 41 0 42 0; +#X restore 238 140 pd pitchshift; +#N canvas 313 84 906 756 pitchshift 0; +#X obj 94 420 *~; +#X obj 202 351 line~; +#X obj 202 325 pack 0 200; +#X obj 29 204 exp; +#X floatatom 29 230 0 0 0 0 - - -; +#X obj 29 320 /; +#X obj 156 250 * 0.001; +#X obj 29 471 cos~; +#X obj 29 498 *~; +#X obj 29 527 +~; +#X obj 116 378 wrap~; +#X obj 261 421 *~; +#X obj 198 481 cos~; +#X obj 198 508 *~; +#X obj 156 277 t b f; +#X floatatom 29 346 0 0 0 0 - - -; +#X obj 29 373 phasor~ 0; +#X obj 116 351 +~ 0.5; +#X obj 29 419 -~ 0.5; +#X obj 29 445 *~ 0.5; +#X obj 198 420 -~ 0.5; +#X obj 198 453 *~ 0.5; +#X obj 29 257 - 1; +#X obj 29 178 * 0.05776; +#X obj 29 283 * -1; +#X text 78 123 <-- transposition; +#X text 116 138 (halpn_lftones); +#X text 96 238 speed; +#X text 95 252 change; +#X text 64 313 tape head; +#X text 65 326 rotation speed; +#X obj -131 115 inlet~; +#X obj 28 607 outlet~; +#X obj 29 122 inlet; +#X obj 267 147 loadbang; +#X obj 271 176 f 10; +#X obj 271 204 clip 1 1e+07; +#X msg 373 157 128; +#X obj 260 483 vd~ \$0delay2; +#X obj 93 471 vd~ \$0delay2; +#X obj -129 147 delwrite~ \$0delay2 10; +#X obj 636 41 inlet; +#X obj 644 73 switch~; +#X connect 0 0 39 0; +#X connect 1 0 0 1; +#X connect 1 0 11 1; +#X connect 2 0 1 0; +#X connect 3 0 4 0; +#X connect 4 0 22 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 9 0 32 0; +#X connect 10 0 11 0; +#X connect 10 0 20 0; +#X connect 11 0 38 0; +#X connect 12 0 13 0; +#X connect 13 0 9 1; +#X connect 14 0 5 0; +#X connect 14 1 5 1; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X connect 16 0 18 0; +#X connect 16 0 17 0; +#X connect 17 0 10 0; +#X connect 18 0 19 0; +#X connect 19 0 7 0; +#X connect 20 0 21 0; +#X connect 21 0 12 0; +#X connect 22 0 24 0; +#X connect 23 0 3 0; +#X connect 24 0 5 0; +#X connect 31 0 40 0; +#X connect 33 0 23 0; +#X connect 34 0 35 0; +#X connect 35 0 36 0; +#X connect 36 0 2 0; +#X connect 36 0 6 0; +#X connect 37 0 36 0; +#X connect 38 0 13 1; +#X connect 39 0 8 1; +#X connect 41 0 42 0; +#X restore 328 140 pd pitchshift; +#X obj 313 64 tof/param /method 0 /g tgl; +#X obj 313 85 == 0; +#X obj 548 65 tof/param route; +#X connect 0 0 8 2; +#X connect 0 1 8 3; +#X connect 1 0 0 0; +#X connect 1 0 8 0; +#X connect 1 0 16 0; +#X connect 2 0 0 1; +#X connect 2 0 8 1; +#X connect 2 0 17 0; +#X connect 8 0 3 0; +#X connect 8 1 4 0; +#X connect 9 0 20 0; +#X connect 11 0 0 2; +#X connect 11 0 16 1; +#X connect 11 0 17 1; +#X connect 12 0 13 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 8 4; +#X connect 16 0 8 2; +#X connect 17 0 8 3; +#X connect 18 0 19 0; +#X connect 18 0 0 3; +#X connect 19 0 16 2; +#X connect 19 0 17 2; +#X connect 20 0 10 0; |