pure-data/doc/7.stuff/soundfile-tools/4.looper.pd

#N canvas 325 80 995 460 12;
#X declare -stdpath ./;
#N canvas 296 28 950 579 guts 0;
#X obj 205 157 spigot;
#X msg 179 87 0;
#X msg 212 87 1;
#X obj 387 266 +~;
#N canvas 325 131 667 659 audio-transformation 0;
#X obj 178 601 outlet~;
#X obj 128 54 r transposition;
#X obj 167 191 r looplength;
#X obj 118 82 / 120;
#X obj 132 155 pow;
#X obj 118 107 t b f;
#X msg 118 131 2;
#X text 202 123 2 to the power (octaves);
#X text 201 139 gives speed change for the;
#X text 202 157 desired transposition;
#X text 177 81 transposition in octaves;
#X obj 241 281 * 441;
#X floatatom 241 251 0 0 0 0 - - - 0;
#X obj 197 364 samphold~;
#X obj 322 351 -~ 0.5;
#X obj 322 477 clip~ -0.5 0.5;
#X obj 322 453 *~ 1;
#X obj 322 502 cos~;
#X obj 322 381 wrap~;
#X obj 322 416 -~ 0.5;
#X obj 322 548 *~ -0.5;
#X obj 322 524 -~ 1;
#X floatatom 394 422 0 0 0 0 - - - 0;
#X obj 378 270 r smoothing;
#X obj 241 225 r startpoint;
#X obj 394 447 max 1;
#X obj 379 324 max 0.001;
#X obj 379 350 t b f;
#X obj 379 374 1;
#X obj 394 398 /;
#X obj 178 454 *~;
#X obj 178 402 +~;
#X obj 449 73 loadbang;
#X msg 449 103 \; transposition 0 \; looplength 0 \; startpoint 0 \; smoothing 0;
#X obj 133 279 loop~;
#X obj 165 249 * 441;
#X obj 135 327 *~;
#X obj 119 27 loadbang;
#X obj 61 201 r running;
#X obj 61 230 sel 1;
#X obj 379 298 * 0.01;
#X obj 166 218 max 0.01;
#X obj 178 428 tabread4~ \$0-input;
#X obj 179 559 *~;
#X obj 197 531 r running;
#X connect 1 0 3 0;
#X connect 2 0 41 0;
#X connect 3 0 5 0;
#X connect 4 0 34 0;
#X connect 5 0 6 0;
#X connect 5 1 4 1;
#X connect 6 0 4 0;
#X connect 11 0 13 0;
#X connect 12 0 11 0;
#X connect 13 0 31 1;
#X connect 14 0 18 0;
#X connect 15 0 17 0;
#X connect 16 0 15 0;
#X connect 17 0 21 0;
#X connect 18 0 19 0;
#X connect 19 0 16 0;
#X connect 20 0 30 1;
#X connect 21 0 20 0;
#X connect 22 0 25 0;
#X connect 23 0 40 0;
#X connect 24 0 12 0;
#X connect 25 0 16 1;
#X connect 26 0 27 0;
#X connect 27 0 28 0;
#X connect 27 1 29 1;
#X connect 28 0 29 0;
#X connect 29 0 22 0;
#X connect 30 0 43 0;
#X connect 31 0 42 0;
#X connect 32 0 33 0;
#X connect 34 0 13 1;
#X connect 34 0 36 0;
#X connect 34 0 14 0;
#X connect 34 1 36 1;
#X connect 35 0 34 1;
#X connect 36 0 31 0;
#X connect 37 0 3 0;
#X connect 38 0 39 0;
#X connect 39 0 34 0;
#X connect 40 0 26 0;
#X connect 41 0 35 0;
#X connect 42 0 30 0;
#X connect 43 0 0 0;
#X connect 44 0 43 1;
#X restore 228 209 pd audio-transformation;
#X obj 261 54 r transposition;
#X obj 261 79 r looplength;
#X obj 261 129 r smoothing;
#X obj 542 148 timer;
#X obj 542 173 * 44.1;
#X obj 592 73 r running;
#X obj 574 98 f;
#X obj 574 123 sel 1;
#X obj 542 265 moses;
#X obj 587 265 r maxoutsize;
#X obj 201 452 delay;
#X obj 233 425 + 100;
#X obj 233 367 r maxoutsize;
#X obj 233 400 / 44.1;
#X obj 261 104 r startpoint;
#X obj 387 540 outlet~;
#X obj 193 186 b;
#X obj 738 196 savepanel;
#X obj 738 388 soundfiler;
#X obj 761 305 savepanel;
#X obj 738 170 r \$0-save;
#X obj 761 279 r \$0-save-normalized;
#X obj 738 221 list append \$0-output;
#X obj 761 330 list append \$0-output;
#X obj 702 86 openpanel;
#X obj 702 58 r \$0-read;
#X msg 702 143 read -resize \$1 \$2;
#X obj 702 115 list append \$0-input;
#X msg 738 247 write \$1 \$2;
#X msg 761 355 write \$1 \$2;
#X obj 574 49 r \$0-stop;
#X obj 405 182 r \$0-hear;
#X obj 127 30 r \$0-run;
#X obj 213 21 r \$0-start;
#X obj 201 480 s \$0-stop;
#X obj 405 235 tabplay~ \$0-output;
#X obj 542 318 s \$0-output;
#X msg 542 290 resize \$1;
#X obj 228 276 tabwrite~ \$0-output;
#X obj 42 415 pack \$0 f;
#X msg 42 445 \; pd dsp 1 \; running 1 \; \$1-output resize \$2;
#X msg 562 202 \; running 0;
#X connect 0 0 1 0;
#X connect 0 0 21 0;
#X connect 1 0 0 1;
#X connect 2 0 0 1;
#X connect 3 0 20 0;
#X connect 4 0 3 0;
#X connect 4 0 43 0;
#X connect 5 0 0 0;
#X connect 6 0 0 0;
#X connect 7 0 0 0;
#X connect 8 0 9 0;
#X connect 9 0 46 0;
#X connect 9 0 13 0;
#X connect 10 0 11 1;
#X connect 11 0 12 0;
#X connect 12 0 8 1;
#X connect 13 0 42 0;
#X connect 14 0 13 1;
#X connect 15 0 39 0;
#X connect 16 0 15 1;
#X connect 17 0 18 0;
#X connect 17 0 44 1;
#X connect 18 0 16 0;
#X connect 19 0 0 0;
#X connect 21 0 15 0;
#X connect 21 0 8 0;
#X connect 21 0 43 0;
#X connect 21 0 44 0;
#X connect 22 0 27 0;
#X connect 24 0 28 0;
#X connect 25 0 22 0;
#X connect 26 0 24 0;
#X connect 27 0 33 0;
#X connect 28 0 34 0;
#X connect 29 0 32 0;
#X connect 30 0 29 0;
#X connect 31 0 23 0;
#X connect 32 0 31 0;
#X connect 33 0 23 0;
#X connect 34 0 23 0;
#X connect 35 0 11 0;
#X connect 36 0 40 0;
#X connect 37 0 21 0;
#X connect 37 0 1 0;
#X connect 38 0 2 0;
#X connect 40 0 3 1;
#X connect 42 0 41 0;
#X connect 44 0 45 0;
#X restore 121 317 pd guts;
#X text 148 70 click below to:;
#X floatatom 557 38 6 0 0 0 - - - 0;
#X obj 557 66 s transposition;
#X obj 561 271 s smoothing;
#X obj 557 134 s looplength;
#X text 607 112 <- loop length \, hundredths of a second;
#X obj 558 203 s startpoint;
#X text 609 182 <- start point \, hundredths of a second;
#X text 613 249 <- envelope smoothing \, 0-100;
#X text 129 32 looping sample player.;
#N canvas 581 112 275 258 length 0;
#X obj 48 24 inlet;
#X obj 49 104 * 44100;
#X obj 48 49 min 60;
#X obj 62 78 s output-length;
#X obj 43 220 s maxoutsize;
#X msg 73 139 resize \$1;
#X obj 73 163 s \$0-output;
#X connect 0 0 2 0;
#X connect 1 0 5 0;
#X connect 1 0 4 0;
#X connect 2 0 1 0;
#X connect 2 0 3 0;
#X connect 5 0 6 0;
#X restore 560 384 pd length;
#X text 666 359 length in seconds of the output;
#X text 664 377 buffer... maximum 60;
#X text 615 359 <- set;
#X text 609 39 <- transposition up or down \, 10ths of a half step;
#X obj 176 106 bng 18 250 50 0 \$0-read dummy Read -38 9 0 13 #dfdfdf #000000 #202020;
#X obj 176 130 bng 18 250 50 0 \$0-run dummy Run -31 9 0 13 #dfdfdf #000000 #000000;
#X obj 176 155 bng 18 250 50 0 \$0-start dummy Start -46 9 0 13 #dfdfdf #000000 #000000;
#X obj 176 202 bng 18 250 50 0 \$0-hear dummy Hear -40 9 0 13 #dfdfdf #000000 #000000;
#X obj 176 226 bng 18 250 50 0 \$0-save dummy Save -40 9 0 13 #dfdfdf #000000 #000000;
#X obj 176 251 bng 18 250 50 0 \$0-save-normalized dummy Normalized -87 9 0 13 #dfdfdf #000000 #000000;
#X text 205 105 (read an input file);
#X text 205 129 (run the transformation);
#X text 205 201 (hear the output sample);
#X text 205 225 (save the output sample);
#X text 205 250 (save the output sample normalized to 1);
#X obj 176 178 bng 18 250 50 0 \$0-stop dummy Stop -40 9 0 13 #dfdfdf #000000 #000000;
#X obj 261 339 table \$0-input;
#X obj 255 367 table \$0-output;
#X text 371 340 input sample;
#X text 371 366 output sample;
#X text 205 154 (start looping when I change something);
#X text 205 177 (stop looping);
#X obj 121 363 output~;
#X floatatom 557 112 6 0 0 0 - - - 0;
#X floatatom 558 181 6 0 0 0 - - - 0;
#X floatatom 561 249 6 0 0 0 - - - 0;
#X floatatom 560 358 6 0 0 0 - - - 0;
#X obj 560 305 loadbang;
#X msg 560 329 10;
#X obj 348 30 declare -stdpath ./;
#X connect 0 0 34 0;
#X connect 2 0 3 0;
#X connect 35 0 5 0;
#X connect 36 0 7 0;
#X connect 37 0 4 0;
#X connect 38 0 11 0;
#X connect 39 0 40 0;
#X connect 40 0 38 0;