From 57045df5fe3ec557e57dc7434ac1a07b5521bffc Mon Sep 17 00:00:00 2001 From: Guenter Geiger Date: Mon, 29 Jul 2002 17:06:19 +0000 Subject: This commit was generated by cvs2svn to compensate for changes in r58, which included commits to RCS files with non-trunk default branches. svn path=/trunk/; revision=59 --- pd/doc/7.stuff/soundfile-tools/1.ring-mod.pd | 189 ++++++++ pd/doc/7.stuff/soundfile-tools/2.bandpass.pd | 202 ++++++++ pd/doc/7.stuff/soundfile-tools/3.phase.vocoder.pd | 551 ++++++++++++++++++++++ pd/doc/7.stuff/soundfile-tools/4.looper.pd | 338 +++++++++++++ pd/doc/7.stuff/soundfile-tools/5.reverb.pd | 214 +++++++++ pd/doc/7.stuff/soundfile-tools/6.vocoder.pd | 314 ++++++++++++ pd/doc/7.stuff/soundfile-tools/README.txt | 2 + 7 files changed, 1810 insertions(+) create mode 100644 pd/doc/7.stuff/soundfile-tools/1.ring-mod.pd create mode 100644 pd/doc/7.stuff/soundfile-tools/2.bandpass.pd create mode 100644 pd/doc/7.stuff/soundfile-tools/3.phase.vocoder.pd create mode 100644 pd/doc/7.stuff/soundfile-tools/4.looper.pd create mode 100644 pd/doc/7.stuff/soundfile-tools/5.reverb.pd create mode 100644 pd/doc/7.stuff/soundfile-tools/6.vocoder.pd create mode 100644 pd/doc/7.stuff/soundfile-tools/README.txt (limited to 'pd/doc/7.stuff/soundfile-tools') diff --git a/pd/doc/7.stuff/soundfile-tools/1.ring-mod.pd b/pd/doc/7.stuff/soundfile-tools/1.ring-mod.pd new file mode 100644 index 00000000..72fb9c7f --- /dev/null +++ b/pd/doc/7.stuff/soundfile-tools/1.ring-mod.pd @@ -0,0 +1,189 @@ +#N canvas 73 28 687 421 12; +#N canvas 213 187 495 352 input-sample 0; +#N canvas 0 0 450 300 graph1 0; +#X array array1 91065 float 0; +#X coords 0 1 91065 -1 400 300 1; +#X restore 56 23 graph; +#X text 151 393 INPUT SAMPLE; +#X restore 179 299 pd input-sample; +#N canvas 192 180 507 343 output-sample 0; +#N canvas 0 0 450 300 graph2 0; +#X array array2 95475 float 0; +#X coords 0 1 95475 -1 400 300 1; +#X restore 60 13 graph; +#X text 161 388 OUTPUT SAMPLE; +#X restore 179 323 pd output-sample; +#N canvas 110 33 827 602 guts 0; +#X msg 25 133 bang; +#X obj 25 360 openpanel; +#X obj 144 31 inlet; +#X obj 441 403 dac~; +#X obj 441 342 *~; +#X obj 456 318 line~; +#X obj 456 296 r master-amp; +#X msg 597 130 bang; +#X obj 597 155 savepanel; +#X obj 231 164 spigot; +#X msg 233 132 0; +#X msg 265 132 1; +#X obj 497 427 outlet; +#X obj 299 132 r frequency; +#X obj 219 321 tabwrite~ array2; +#X msg 219 193 bang; +#X obj 420 289 +~; +#X msg 96 129 \; pd dsp 1; +#X obj 441 370 hip~ 7; +#X obj 231 223 tabplay~ array1; +#X msg 439 131 bang; +#X obj 439 160 tabplay~ array2; +#X msg 597 180 write \$1 array2; +#X obj 597 205 soundfiler; +#X obj 144 53 route read run start hear save; +#N canvas 0 0 368 263 audio-transformation 0; +#X obj 113 95 osc~; +#X obj 97 116 *~; +#X obj 97 138 hip~ 7; +#X obj 113 71 r frequency; +#X obj 97 22 inlet~; +#X obj 97 169 outlet~; +#X obj 97 47 hip~ 7; +#X connect 0 0 1 1; +#X connect 1 0 2 0; +#X connect 2 0 5 0; +#X connect 3 0 0 0; +#X connect 4 0 6 0; +#X connect 6 0 1 0; +#X restore 231 251 pd audio-transformation; +#X obj 497 402 env~ 16384; +#X obj 570 91 route normalized; +#X msg 571 300 write -normalize \$1 array2; +#X msg 571 250 bang; +#X obj 571 276 savepanel; +#X obj 571 325 soundfiler; +#X obj 25 413 soundfiler; +#X msg 25 390 read -resize -maxsize 1e+06 \$1 array1; +#X msg 25 460 \; array2 resize \$1; +#X obj 25 437 + 4410; +#X floatatom 96 436 0 0 0; +#X connect 0 0 1 0; +#X connect 1 0 33 0; +#X connect 2 0 24 0; +#X connect 4 0 18 0; +#X connect 5 0 4 1; +#X connect 6 0 5 0; +#X connect 7 0 8 0; +#X connect 8 0 22 0; +#X connect 9 0 10 0; +#X connect 9 0 15 0; +#X connect 10 0 9 1; +#X connect 11 0 9 1; +#X connect 13 0 9 0; +#X connect 15 0 14 0; +#X connect 15 0 19 0; +#X connect 16 0 4 0; +#X connect 18 0 3 0; +#X connect 18 0 3 1; +#X connect 18 0 26 0; +#X connect 19 0 25 0; +#X connect 20 0 21 0; +#X connect 21 0 16 1; +#X connect 22 0 23 0; +#X connect 24 0 0 0; +#X connect 24 1 15 0; +#X connect 24 1 10 0; +#X connect 24 1 17 0; +#X connect 24 2 11 0; +#X connect 24 2 17 0; +#X connect 24 3 20 0; +#X connect 24 4 27 0; +#X connect 25 0 14 0; +#X connect 25 0 16 0; +#X connect 26 0 12 0; +#X connect 27 0 29 0; +#X connect 27 1 7 0; +#X connect 28 0 31 0; +#X connect 29 0 30 0; +#X connect 30 0 28 0; +#X connect 32 0 35 0; +#X connect 32 0 36 0; +#X connect 33 0 32 0; +#X connect 35 0 34 0; +#X restore 28 265 pd guts; +#X msg 28 155 run the transformation; +#X msg 28 199 hear the output buffer again; +#X text 28 113 click below to:; +#X msg 28 221 save the output buffer; +#X floatatom 404 257 0 0 0; +#N canvas 194 37 397 591 output 0; +#X obj 66 203 t b; +#X obj 66 152 f; +#X obj 66 102 inlet; +#X text 71 81 mute; +#X obj 66 228 f; +#X msg 134 244 0; +#X msg 66 127 bang; +#X obj 66 178 moses 1; +#X obj 134 218 t b f; +#X obj 96 442 outlet; +#X msg 96 416 set \$1; +#X obj 186 163 moses 1; +#X obj 224 444 dbtorms; +#X obj 224 469 pack 0 100; +#X obj 186 138 r master-lvl; +#X obj 96 382 r master-lvl; +#X obj 83 286 s master-lvl; +#X obj 224 494 s master-amp; +#X obj 208 244 loadbang; +#X msg 208 269 \; master-lvl 90; +#X connect 0 0 4 0; +#X connect 1 0 7 0; +#X connect 2 0 6 0; +#X connect 4 0 16 0; +#X connect 5 0 16 0; +#X connect 6 0 1 0; +#X connect 7 0 0 0; +#X connect 7 1 8 0; +#X connect 8 0 5 0; +#X connect 10 0 9 0; +#X connect 11 1 4 1; +#X connect 12 0 13 0; +#X connect 13 0 17 0; +#X connect 14 0 1 1; +#X connect 14 0 11 0; +#X connect 15 0 10 0; +#X connect 15 0 12 0; +#X connect 18 0 19 0; +#X restore 404 235 pd output; +#X msg 404 213 mute; +#X obj 404 279 s master-lvl; +#X text 448 212 <-- mute button; +#X msg 28 177 start transformation when I change frequency; +#X floatatom 392 117 0 0 0; +#X obj 392 139 s frequency; +#X text 392 97 modulation frequency (Hz.); +#X floatatom 28 287 0 0 0; +#X text 10 330 100 maximum; +#X text 10 311 output meter; +#X text 429 115 <--set me; +#X text 443 255 <--set me; +#X msg 28 133 read an input file; +#X msg 28 243 save normalized to max amplitude; +#X text 29 8 Ring modulator. Read in a sample first \, then you can +either set a frequency and hit the "run" button or else hit the "start..." +button and start the transformation by dragging on the frequency control. +The output level should be "100" for unit gain.; +#X text 22 361 Outputs are saved as "wav" files \, although you can +edit the patch to make "aiff" or "nextstep" instead. Any of the three +are OK for source files.; +#X text 397 302 LINE OUT LEVEL in dB (100 max); +#X connect 2 0 16 0; +#X connect 3 0 2 0; +#X connect 4 0 2 0; +#X connect 6 0 2 0; +#X connect 7 0 10 0; +#X connect 8 0 7 0; +#X connect 9 0 8 0; +#X connect 12 0 2 0; +#X connect 13 0 14 0; +#X connect 21 0 2 0; +#X connect 22 0 2 0; diff --git a/pd/doc/7.stuff/soundfile-tools/2.bandpass.pd b/pd/doc/7.stuff/soundfile-tools/2.bandpass.pd new file mode 100644 index 00000000..c75335eb --- /dev/null +++ b/pd/doc/7.stuff/soundfile-tools/2.bandpass.pd @@ -0,0 +1,202 @@ +#N canvas 73 28 846 432 12; +#N canvas 213 187 495 352 input-sample 0; +#N canvas 0 0 450 300 graph1 0; +#X array array1 155948 float 0; +#X coords 0 1 155948 -1 400 300 1; +#X restore 55 22 graph; +#X text 149 386 INPUT SAMPLE; +#X restore 238 282 pd input-sample; +#N canvas 192 180 507 343 output-sample 0; +#N canvas 0 0 450 300 graph2 0; +#X array array2 160358 float 0; +#X coords 0 1 160358 -1 400 300 1; +#X restore 59 13 graph; +#X text 158 381 OUTPUT SAMPLE; +#X restore 237 305 pd output-sample; +#N canvas 116 150 735 425 guts 0; +#X msg 25 131 bang; +#X obj 25 354 openpanel; +#X obj 142 31 inlet; +#X obj 458 378 dac~; +#X obj 458 335 *~; +#X obj 473 312 line~; +#X obj 473 290 r master-amp; +#X msg 726 87 bang; +#X obj 726 109 savepanel; +#X obj 275 165 spigot; +#X msg 260 131 0; +#X msg 291 131 1; +#X obj 513 408 outlet; +#X obj 324 131 r frequency; +#X obj 263 320 tabwrite~ array2; +#X msg 263 194 bang; +#X obj 438 283 +~; +#X msg 143 131 \; pd dsp 1; +#X obj 458 356 hip~ 7; +#X obj 275 223 tabplay~ array1; +#X msg 453 127 bang; +#X obj 453 149 tabplay~ array2; +#X msg 726 130 write \$1 array2; +#X obj 726 151 soundfiler; +#X obj 142 52 route read run start hear save; +#N canvas 0 0 368 259 audio-transformation 0; +#X obj 111 70 r frequency; +#X obj 96 21 inlet~; +#X obj 96 178 outlet~; +#X obj 179 123 r q; +#X obj 111 94 pack 0 100; +#X obj 110 119 line~; +#X obj 96 153 vcf~; +#X connect 0 0 4 0; +#X connect 1 0 6 0; +#X connect 3 0 6 2; +#X connect 4 0 5 0; +#X connect 5 0 6 1; +#X connect 6 0 2 0; +#X restore 275 244 pd audio-transformation; +#X obj 513 387 env~ 16384; +#X obj 585 88 route normalized; +#X msg 585 184 write -normalize \$1 array2; +#X msg 585 142 bang; +#X obj 585 163 savepanel; +#X obj 585 209 soundfiler; +#X obj 25 406 soundfiler; +#X msg 25 383 read -resize -maxsize 1e+06 \$1 array1; +#X msg 25 452 \; array2 resize \$1; +#X obj 25 430 + 4410; +#X floatatom 94 428 0 0 0; +#X obj 413 132 r q; +#X connect 0 0 1 0; +#X connect 1 0 33 0; +#X connect 2 0 24 0; +#X connect 4 0 18 0; +#X connect 5 0 4 1; +#X connect 6 0 5 0; +#X connect 7 0 8 0; +#X connect 8 0 22 0; +#X connect 9 0 10 0; +#X connect 9 0 15 0; +#X connect 10 0 9 1; +#X connect 11 0 9 1; +#X connect 13 0 9 0; +#X connect 15 0 14 0; +#X connect 15 0 19 0; +#X connect 16 0 4 0; +#X connect 18 0 3 0; +#X connect 18 0 3 1; +#X connect 18 0 26 0; +#X connect 19 0 25 0; +#X connect 20 0 21 0; +#X connect 21 0 16 1; +#X connect 22 0 23 0; +#X connect 24 0 0 0; +#X connect 24 1 15 0; +#X connect 24 1 10 0; +#X connect 24 1 17 0; +#X connect 24 2 11 0; +#X connect 24 2 17 0; +#X connect 24 3 20 0; +#X connect 24 4 27 0; +#X connect 25 0 14 0; +#X connect 25 0 16 0; +#X connect 26 0 12 0; +#X connect 27 0 29 0; +#X connect 27 1 7 0; +#X connect 28 0 31 0; +#X connect 29 0 30 0; +#X connect 30 0 28 0; +#X connect 32 0 35 0; +#X connect 32 0 36 0; +#X connect 33 0 32 0; +#X connect 35 0 34 0; +#X connect 37 0 9 0; +#X restore 34 236 pd guts; +#X msg 34 131 run the transformation; +#X msg 34 173 hear the output buffer again; +#X text 34 91 click below to:; +#X msg 34 194 save the output buffer; +#X floatatom 562 334 0 0 120; +#N canvas 194 37 397 591 output 0; +#X obj 65 199 t b; +#X obj 65 150 f; +#X obj 65 100 inlet; +#X text 70 79 mute; +#X obj 65 224 f; +#X msg 132 240 0; +#X msg 65 125 bang; +#X obj 65 175 moses 1; +#X obj 132 215 t b f; +#X obj 94 434 outlet; +#X msg 94 409 set \$1; +#X obj 183 160 moses 1; +#X obj 221 437 dbtorms; +#X obj 221 461 pack 0 100; +#X obj 183 136 r master-lvl; +#X obj 94 375 r master-lvl; +#X obj 81 281 s master-lvl; +#X obj 221 486 s master-amp; +#X obj 204 240 loadbang; +#X msg 204 264 \; master-lvl 90; +#X connect 0 0 4 0; +#X connect 1 0 7 0; +#X connect 2 0 6 0; +#X connect 4 0 16 0; +#X connect 5 0 16 0; +#X connect 6 0 1 0; +#X connect 7 0 0 0; +#X connect 7 1 8 0; +#X connect 8 0 5 0; +#X connect 10 0 9 0; +#X connect 11 1 4 1; +#X connect 12 0 13 0; +#X connect 13 0 17 0; +#X connect 14 0 1 1; +#X connect 14 0 11 0; +#X connect 15 0 10 0; +#X connect 15 0 12 0; +#X connect 18 0 19 0; +#X restore 562 313 pd output; +#X msg 562 292 mute; +#X obj 562 355 s master-lvl; +#X text 604 291 <-- mute button; +#X floatatom 34 257 0 0 0; +#X text 35 300 100 maximum; +#X text 35 282 output meter; +#X text 600 335 <--set me; +#X msg 34 110 read an input file; +#X msg 34 215 save normalized to max amplitude; +#X msg 34 152 start transformation when I change f or q; +#X floatatom 479 164 0 0 0; +#X obj 479 185 s frequency; +#X text 479 85 center; +#X floatatom 482 229 0 0 10000; +#X text 482 210 "q"; +#X obj 482 252 s q; +#X obj 479 143 mtof; +#X floatatom 479 122 0 0 128; +#X text 536 163 <- set in Hz; +#X text 533 230 <--set selectivity; +#X text 479 103 frequency; +#X text 534 123 <- set in MIDI units; +#X text 31 341 Note -- you can shift-click on the controls to change +them in hundredths. You can also click and type numbers in \, followed +by the "enter" key.; +#X text 16 5 Bandpass filter. Read in a sample first \, then you can +either set a frequency and hit the "run" button or else hit the "start..." +button and start the transformation by dragging on the frequency or +q control.; +#X text 552 377 OUTPUT LEVEL in dB (100 norm); +#X connect 2 0 12 0; +#X connect 3 0 2 0; +#X connect 4 0 2 0; +#X connect 6 0 2 0; +#X connect 7 0 10 0; +#X connect 8 0 7 0; +#X connect 9 0 8 0; +#X connect 16 0 2 0; +#X connect 17 0 2 0; +#X connect 18 0 2 0; +#X connect 19 0 20 0; +#X connect 22 0 24 0; +#X connect 25 0 19 0; +#X connect 26 0 25 0; diff --git a/pd/doc/7.stuff/soundfile-tools/3.phase.vocoder.pd b/pd/doc/7.stuff/soundfile-tools/3.phase.vocoder.pd new file mode 100644 index 00000000..b69d5e86 --- /dev/null +++ b/pd/doc/7.stuff/soundfile-tools/3.phase.vocoder.pd @@ -0,0 +1,551 @@ +#N canvas 223 113 913 495 12; +#X floatatom 457 258 0 0 0; +#X floatatom 793 114 0 0 0; +#X floatatom 654 114 0 0 0; +#N canvas 249 280 600 398 loc&precess 0; +#X floatatom 218 312 0 0 0; +#X msg 369 239 set \$1; +#X obj 367 282 outlet; +#X obj 114 364 outlet; +#X obj 233 96 r location; +#X msg 113 321 set \$1; +#X obj 368 203 r speed; +#X obj 75 95 r see-location; +#X obj 92 139 t b f; +#X obj 113 292 f; +#X obj 73 173 int; +#X obj 73 206 sel 0; +#X msg 209 139 1; +#X msg 275 138 0; +#X obj 150 245 del 300; +#X connect 1 0 2 0; +#X connect 4 0 8 0; +#X connect 5 0 3 0; +#X connect 6 0 1 0; +#X connect 7 0 8 0; +#X connect 8 0 10 0; +#X connect 8 1 9 1; +#X connect 9 0 5 0; +#X connect 10 0 11 0; +#X connect 11 0 12 0; +#X connect 11 0 14 0; +#X connect 12 0 10 1; +#X connect 13 0 10 1; +#X connect 14 0 13 0; +#X connect 14 0 9 0; +#X restore 654 91 pd loc&precess; +#N canvas 0 0 600 400 setlocprecess 0; +#X obj 235 113 inlet; +#X obj 100 109 inlet; +#X obj 231 144 s speed; +#X obj 101 144 s location; +#X connect 0 0 2 0; +#X connect 1 0 3 0; +#X restore 654 138 pd setlocprecess; +#X obj 457 279 s transpo; +#X obj 457 216 r transpo; +#X msg 457 237 set \$1; +#X msg 673 387 \; location 0 \; speed 200; +#X text 200 8 PHASE VOCODER; +#X text 609 18 set location; +#X text 609 36 and stop; +#X text 609 54 precession; +#X text 785 53 precession; +#X text 785 71 speed in; +#X text 785 89 hundredths; +#X text 457 179 transposition; +#X text 457 197 in cents; +#X text 666 360 contraction; +#X text 784 360 expansion; +#X msg 776 387 \; location 0 \; speed 10; +#X text 30 349 100 maximum; +#X text 30 331 output meter; +#X floatatom 610 218 0 5 60; +#X text 645 218 <--set me to change length; +#N canvas 0 0 265 196 length 0; +#X obj 46 23 inlet; +#X obj 48 101 * 44100; +#X msg 84 125 \; array2 resize \$1; +#X obj 46 48 min 60; +#X obj 60 75 s output-length; +#X obj 46 159 s maxoutsize; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 1 0 5 0; +#X connect 3 0 1 0; +#X connect 3 0 4 0; +#X restore 610 239 pd length; +#N canvas 219 38 198 151 /SUBPATCH/ 0; +#X obj 77 118 outlet; +#X obj 77 72 loadbang; +#X msg 77 95 10; +#X connect 1 0 2 0; +#X connect 2 0 0 0; +#X restore 610 197 pd; +#X text 610 259 length in seconds of the output; +#X text 610 277 buffer... maximum 60; +#N canvas 42 0 1083 546 guts 0; +#X msg 24 129 bang; +#X obj 24 405 openpanel; +#X obj 139 30 inlet; +#X obj 450 385 dac~; +#X obj 450 329 *~; +#X obj 465 306 line~; +#X obj 465 283 r master-amp; +#X msg 728 129 bang; +#X obj 728 150 savepanel; +#X obj 219 164 spigot; +#X msg 206 102 0; +#X msg 238 102 1; +#X obj 503 444 outlet; +#X obj 292 251 tabwrite~ array2; +#X obj 449 246 +~; +#X obj 450 356 hip~ 7; +#X msg 446 97 bang; +#X obj 446 118 tabplay~ array2; +#X msg 728 175 write \$1 array2; +#X obj 728 200 soundfiler; +#X obj 505 386 env~ 16384; +#X obj 591 101 route normalized; +#X msg 591 284 write -normalize \$1 array2; +#X msg 591 242 bang; +#X obj 591 263 savepanel; +#X obj 591 308 soundfiler; +#X obj 24 450 soundfiler; +#X msg 24 428 read -resize -maxsize 1e+06 \$1 array1; +#X floatatom 24 473 0 0 0; +#X obj 680 345 loadbang; +#X msg 680 368 \; window-size 2048 \; transpo 0; +#N canvas 9 7 835 599 fft-analysis 0; +#X obj 267 304 *~; +#X obj 235 304 *~; +#X obj 235 326 -~; +#X obj 333 305 *~; +#X obj 302 305 *~; +#X obj 302 328 +~; +#X obj 348 131 *~; +#X obj 317 131 *~; +#X obj 288 131 *~; +#X obj 256 131 *~; +#X obj 256 153 +~; +#X obj 225 183 *~; +#X obj 88 570 *~; +#X obj 375 256 rfft~; +#X obj 396 55 rfft~; +#X obj 488 652 *~; +#X obj 702 295 r window-size; +#X obj 770 211 r sample-rate; +#X obj 624 239 f; +#X obj 617 53 r sample-rate; +#X obj 592 30 r window-size; +#X obj 615 100 t b f; +#X obj 592 124 /; +#X obj 519 652 *~; +#X obj 89 549 *~; +#X obj 106 525 rifft~; +#X obj 89 596 outlet~; +#X obj 639 457 print~; +#X msg 639 428 bang; +#X text 155 526 inverse real FFT; +#X obj 603 215 bang~; +#X obj 528 434 line~; +#X obj 592 146 * 1000; +#X text 645 139 window size (msec); +#X obj 617 78 * 4; +#X obj 647 162 r speed; +#X obj 726 164 r location; +#X obj 655 240 +; +#X obj 648 204 *; +#X msg 726 193 0; +#X obj 624 349 +; +#X obj 615 305 t f f; +#X msg 528 406 \$1 \, \$2 \$3; +#X obj 528 378 pack 0 0 0; +#X obj 770 234 / 1000; +#X obj 624 276 *; +#X text 654 276 reading location (samples); +#X obj 652 390 / 4; +#X text 684 395 hop size (samples); +#X obj 578 476 sig~; +#X obj 546 474 +~; +#X text 653 85 (overlap times parent SR); +#X text 653 71 local sample rate; +#X obj 23 52 tabreceive~ phase-real; +#X obj 194 183 *~; +#X obj 194 205 +~; +#X obj 194 231 rsqrt~; +#X obj 317 153 -~; +#X obj 237 261 *~; +#X obj 298 261 *~; +#X obj 203 52 tabreceive~ phase-imag; +#X obj 108 390 sig~; +#X obj 90 319 t b f; +#X msg 90 340 1; +#X obj 104 364 /; +#X obj 232 447 tabsend~ phase-real; +#X obj 262 418 tabsend~ phase-imag; +#X obj 107 136 sig~ 1.5e-20; +#X obj 647 184 * 0.01; +#X obj 708 217 s speed; +#X obj 479 256 s see-location; +#X floatatom 688 368 0 0 0; +#X obj 686 347 *; +#X obj 848 245 r transpo; +#X obj 848 264 * 0.01; +#X obj 849 285 + 69; +#X obj 851 307 mtof; +#X obj 851 327 / 440; +#X obj 705 324 t b f; +#X obj 90 297 r window-size; +#X floatatom 855 361 0 0 0; +#X obj 564 556 tabreceive~ hanning; +#X obj 549 500 tabread4~ array1; +#X obj 514 524 tabread4~ array1; +#X obj 612 608 r running; +#X obj 612 632 switch~ 2048 4; +#X connect 0 0 2 1; +#X connect 1 0 2 0; +#X connect 2 0 65 0; +#X connect 2 0 25 0; +#X connect 3 0 5 1; +#X connect 4 0 5 0; +#X connect 5 0 66 0; +#X connect 5 0 25 1; +#X connect 6 0 57 1; +#X connect 7 0 57 0; +#X connect 8 0 10 1; +#X connect 9 0 10 0; +#X connect 10 0 58 1; +#X connect 10 0 54 0; +#X connect 10 0 54 1; +#X connect 11 0 55 1; +#X connect 12 0 26 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 14 0; +#X connect 16 0 72 0; +#X connect 17 0 44 0; +#X connect 18 0 37 0; +#X connect 18 0 45 0; +#X connect 18 0 70 0; +#X connect 19 0 34 0; +#X connect 20 0 22 0; +#X connect 21 0 22 0; +#X connect 21 1 22 1; +#X connect 22 0 32 0; +#X connect 23 0 13 0; +#X connect 24 0 12 0; +#X connect 25 0 24 1; +#X connect 28 0 27 0; +#X connect 30 0 18 0; +#X connect 31 0 27 0; +#X connect 31 0 50 0; +#X connect 31 0 83 0; +#X connect 32 0 43 2; +#X connect 32 0 38 1; +#X connect 34 0 21 0; +#X connect 35 0 68 0; +#X connect 36 0 39 0; +#X connect 36 0 18 1; +#X connect 37 0 18 1; +#X connect 38 0 37 1; +#X connect 39 0 69 0; +#X connect 40 0 43 1; +#X connect 41 0 43 0; +#X connect 41 1 40 0; +#X connect 42 0 31 0; +#X connect 43 0 42 0; +#X connect 44 0 45 1; +#X connect 45 0 41 0; +#X connect 47 0 49 0; +#X connect 49 0 50 1; +#X connect 50 0 82 0; +#X connect 53 0 9 0; +#X connect 53 0 6 0; +#X connect 54 0 55 0; +#X connect 55 0 56 0; +#X connect 56 0 58 0; +#X connect 56 0 59 0; +#X connect 57 0 59 1; +#X connect 57 0 11 0; +#X connect 57 0 11 1; +#X connect 58 0 1 0; +#X connect 58 0 4 0; +#X connect 59 0 0 0; +#X connect 59 0 3 0; +#X connect 60 0 7 0; +#X connect 60 0 8 0; +#X connect 61 0 24 0; +#X connect 62 0 63 0; +#X connect 62 1 64 1; +#X connect 63 0 64 0; +#X connect 64 0 61 0; +#X connect 67 0 10 0; +#X connect 68 0 38 0; +#X connect 71 0 47 0; +#X connect 71 0 40 1; +#X connect 72 0 71 0; +#X connect 73 0 74 0; +#X connect 74 0 75 0; +#X connect 75 0 76 0; +#X connect 76 0 77 0; +#X connect 77 0 78 0; +#X connect 77 0 80 0; +#X connect 78 0 72 0; +#X connect 78 1 72 1; +#X connect 79 0 62 0; +#X connect 81 0 23 1; +#X connect 81 0 15 1; +#X connect 81 0 12 1; +#X connect 82 0 23 0; +#X connect 83 0 15 0; +#X connect 84 0 85 0; +#X restore 291 222 pd fft-analysis; +#X msg 203 187 bang; +#X obj 38 225 samplerate~; +#X obj 38 247 s sample-rate; +#N canvas 260 23 647 768 phase-tables 0; +#N canvas 0 0 450 300 graph2 0; +#X array phase-imag 4096 float 0; +#X coords 0 1 4096 -1 400 300 1; +#X restore 234 396 graph; +#N canvas 0 0 450 300 graph3 0; +#X array phase-real 4096 float 0; +#X coords 0 1 4096 -1 400 300 1; +#X restore 232 23 graph; +#X msg 229 769 \; phase-real resize 4096 \; phase-imag resize 4096 +; +#X restore 681 423 pd phase-tables; +#N canvas 138 111 767 761 hanning-window 0; +#X obj 125 281 phasor~; +#X obj 125 319 cos~; +#X obj 31 448 tabwrite~ hanning; +#X obj 41 345 -~; +#X obj 38 298 sig~ 1; +#X msg 51 246 0; +#X text 193 19 CALCULATE HANNING; +#X text 193 37 WINDOW TABLE; +#N canvas 0 0 450 300 graph1 0; +#X array hanning 4096 float 0; +#X coords 0 1 4096 -1 400 300 1; +#X restore 375 384 graph; +#X obj 126 233 sig~; +#X text 239 202 sample rate / window size; +#X msg 31 196 bang; +#X obj 90 367 sig~ 0.5; +#X obj 67 409 *~; +#X obj 128 109 samplerate~; +#X obj 34 31 r window-size; +#X obj 34 72 t b f; +#X msg 375 746 \; hanning resize 4096; +#X obj 126 180 /; +#X connect 0 0 1 0; +#X connect 1 0 3 1; +#X connect 3 0 13 0; +#X connect 4 0 3 0; +#X connect 5 0 0 1; +#X connect 9 0 0 0; +#X connect 11 0 2 0; +#X connect 11 0 5 0; +#X connect 12 0 13 1; +#X connect 13 0 2 0; +#X connect 14 0 18 0; +#X connect 15 0 16 0; +#X connect 16 0 14 0; +#X connect 16 0 11 0; +#X connect 16 1 18 1; +#X connect 18 0 9 0; +#X restore 681 447 pd hanning-window; +#X obj 100 335 delay; +#X obj 160 332 + 100; +#X obj 139 51 route read run start hear save stop; +#X obj 895 245 timer; +#X obj 895 269 * 44.1; +#X obj 232 314 r maxoutsize; +#X obj 217 338 f; +#X msg 217 360 \; array2 resize \$1; +#X msg 100 358 \; action stop; +#X obj 186 30 r action; +#X obj 910 172 r running; +#X obj 894 195 f; +#X obj 894 219 sel 1; +#X obj 895 344 moses; +#X obj 946 345 r maxoutsize; +#X msg 895 366 \; array2 resize \$1; +#X msg 918 293 \; running 0; +#X msg 293 277 \; running 1; +#X obj 160 310 / 44.1; +#X msg 751 10 bang; +#X obj 277 92 r location; +#X obj 277 115 r speed; +#X obj 278 137 r transpo; +#X msg 43 283 \; pd dsp 1; +#X obj 503 414 int; +#X connect 0 0 1 0; +#X connect 1 0 27 0; +#X connect 2 0 39 0; +#X connect 4 0 15 0; +#X connect 5 0 4 1; +#X connect 6 0 5 0; +#X connect 7 0 8 0; +#X connect 8 0 18 0; +#X connect 9 0 10 0; +#X connect 9 0 32 0; +#X connect 10 0 9 1; +#X connect 11 0 9 1; +#X connect 14 0 4 0; +#X connect 15 0 3 0; +#X connect 15 0 3 1; +#X connect 15 0 20 0; +#X connect 16 0 17 0; +#X connect 17 0 14 1; +#X connect 18 0 19 0; +#X connect 20 0 61 0; +#X connect 21 0 23 0; +#X connect 21 1 7 0; +#X connect 22 0 25 0; +#X connect 23 0 24 0; +#X connect 24 0 22 0; +#X connect 26 0 28 0; +#X connect 27 0 26 0; +#X connect 29 0 30 0; +#X connect 31 0 13 0; +#X connect 31 0 14 0; +#X connect 32 0 33 0; +#X connect 32 0 37 0; +#X connect 32 0 40 0; +#X connect 32 0 43 0; +#X connect 32 0 13 0; +#X connect 32 0 54 0; +#X connect 32 0 60 0; +#X connect 33 0 34 0; +#X connect 37 0 45 0; +#X connect 38 0 37 1; +#X connect 39 0 0 0; +#X connect 39 1 10 0; +#X connect 39 1 32 0; +#X connect 39 2 11 0; +#X connect 39 3 16 0; +#X connect 39 4 21 0; +#X connect 39 5 56 0; +#X connect 40 0 41 0; +#X connect 41 0 53 0; +#X connect 41 0 50 0; +#X connect 42 0 43 1; +#X connect 42 0 55 0; +#X connect 43 0 44 0; +#X connect 46 0 39 0; +#X connect 47 0 48 1; +#X connect 48 0 49 0; +#X connect 49 0 40 1; +#X connect 50 0 52 0; +#X connect 51 0 50 1; +#X connect 55 0 38 0; +#X connect 56 0 48 0; +#X connect 57 0 9 0; +#X connect 58 0 9 0; +#X connect 59 0 9 0; +#X connect 61 0 12 0; +#X restore 30 290 pd guts; +#X msg 30 164 run the transformation; +#X msg 30 227 hear the output buffer again; +#X text 30 124 click below to:; +#X msg 30 248 save the output buffer; +#X floatatom 30 311 0 0 0; +#X msg 30 143 read an input file; +#X msg 30 269 save normalized to max amplitude; +#N canvas 213 187 495 352 input-sample 0; +#N canvas 0 0 450 300 graph1 0; +#X array array1 63024 float 0; +#X coords 0 1 63023 -1 400 300 1; +#X restore 55 22 graph; +#X text 146 379 INPUT SAMPLE; +#X restore 41 401 pd input-sample; +#N canvas 192 180 507 343 output-sample 0; +#N canvas 0 0 450 300 graph2 0; +#X array array2 2.646e+06 float 0; +#X coords 0 1 2.646e+06 -1 400 300 1; +#X restore 58 13 graph; +#X text 155 375 OUTPUT SAMPLE; +#X restore 41 426 pd output-sample; +#X floatatom 385 382 0 0 120; +#N canvas 194 37 397 591 output 0; +#X obj 64 196 t b; +#X obj 64 147 f; +#X obj 64 99 inlet; +#X text 68 78 mute; +#X obj 64 220 f; +#X msg 130 235 0; +#X msg 64 123 bang; +#X obj 64 172 moses 1; +#X obj 130 211 t b f; +#X obj 93 427 outlet; +#X msg 93 403 set \$1; +#X obj 180 158 moses 1; +#X obj 217 429 dbtorms; +#X obj 217 454 pack 0 100; +#X obj 180 133 r master-lvl; +#X obj 93 369 r master-lvl; +#X obj 80 276 s master-lvl; +#X obj 217 478 s master-amp; +#X obj 201 235 loadbang; +#X msg 201 260 \; master-lvl 90; +#X connect 0 0 4 0; +#X connect 1 0 7 0; +#X connect 2 0 6 0; +#X connect 4 0 16 0; +#X connect 5 0 16 0; +#X connect 6 0 1 0; +#X connect 7 0 0 0; +#X connect 7 1 8 0; +#X connect 8 0 5 0; +#X connect 10 0 9 0; +#X connect 11 1 4 1; +#X connect 12 0 13 0; +#X connect 13 0 17 0; +#X connect 14 0 1 1; +#X connect 14 0 11 0; +#X connect 15 0 10 0; +#X connect 15 0 12 0; +#X connect 18 0 19 0; +#X restore 385 361 pd output; +#X msg 385 340 mute; +#X obj 385 403 s master-lvl; +#X text 427 339 <-- mute button; +#X text 422 381 <--set me; +#X text 385 423 LINE OUT LEVEL in dB (100 norm); +#X text 14 25 This is a Fourier-based analysis/resynthesis tool.; +#X text 22 45 You can move forward or backward in the sample \, or +"freeze" at any point using the "precession" and "location" controls. +Transposition is in hundredths of a half-tone.; +#X msg 30 185 start transformation when I change controls; +#X msg 30 206 stop the transformation; +#X text 731 329 examples:; +#X msg 614 94 -40; +#X connect 0 0 5 0; +#X connect 1 0 4 1; +#X connect 2 0 4 0; +#X connect 3 0 2 0; +#X connect 3 1 1 0; +#X connect 6 0 7 0; +#X connect 7 0 0 0; +#X connect 23 0 25 0; +#X connect 26 0 23 0; +#X connect 29 0 34 0; +#X connect 30 0 29 0; +#X connect 31 0 29 0; +#X connect 33 0 29 0; +#X connect 35 0 29 0; +#X connect 36 0 29 0; +#X connect 39 0 42 0; +#X connect 40 0 39 0; +#X connect 41 0 40 0; +#X connect 48 0 29 0; +#X connect 49 0 29 0; +#X connect 51 0 2 0; diff --git a/pd/doc/7.stuff/soundfile-tools/4.looper.pd b/pd/doc/7.stuff/soundfile-tools/4.looper.pd new file mode 100644 index 00000000..0b969a42 --- /dev/null +++ b/pd/doc/7.stuff/soundfile-tools/4.looper.pd @@ -0,0 +1,338 @@ +#N canvas 0 16 878 417 12; +#N canvas 213 187 495 352 input-sample 0; +#N canvas 0 0 450 300 graph1 0; +#X array array1 63024 float 0; +#X coords 0 1 63023 -1 400 300 1; +#X restore 56 23 graph; +#X text 151 393 INPUT SAMPLE; +#X restore 143 301 pd input-sample; +#N canvas 192 180 507 343 output-sample 0; +#N canvas 0 0 450 300 graph2 0; +#X array array2 441000 float 0; +#X coords 0 1 440999 -1 400 300 1; +#X restore 60 13 graph; +#X text 161 388 OUTPUT SAMPLE; +#X restore 143 325 pd output-sample; +#N canvas 41 102 912 552 guts 0; +#X msg 25 133 bang; +#X obj 15 468 openpanel; +#X obj 144 28 inlet; +#X obj 478 392 dac~; +#X obj 478 342 *~; +#X obj 494 301 line~; +#X obj 494 276 r master-amp; +#X msg 759 352 bang; +#X obj 759 377 savepanel; +#X obj 274 203 spigot; +#X msg 248 133 0; +#X msg 281 133 1; +#X obj 555 384 outlet; +#X obj 268 325 tabwrite~ array2; +#X msg 262 232 bang; +#X obj 456 312 +~; +#X obj 478 367 hip~ 7; +#X msg 480 228 bang; +#X obj 480 253 tabplay~ array2; +#X msg 759 402 write \$1 array2; +#X obj 759 427 soundfiler; +#N canvas 92 118 921 631 audio-transformation 0; +#X obj 320 509 outlet~; +#X obj 221 41 r transposition; +#X obj 287 175 r looplength; +#X obj 221 66 / 120; +#X obj 235 139 pow; +#X obj 221 91 t b f; +#X msg 221 115 2; +#X text 305 107 2 to the power (octaves); +#X text 304 123 gives speed change for the; +#X text 305 141 desired transposition; +#X text 280 65 transposition in octaves; +#X obj 470 264 * 441; +#X floatatom 470 234 0 0 0; +#X obj 426 352 samphold~; +#X obj 545 335 -~ 0.5; +#X obj 545 461 clip~ -0.5 0.5; +#X obj 545 437 *~ 1; +#X obj 545 486 cos~; +#X obj 545 365 wrap~; +#X obj 545 400 -~ 0.5; +#X obj 545 532 *~ -0.5; +#X obj 545 508 -~ 1; +#X floatatom 617 406 0 0 0; +#X obj 601 254 r smoothing; +#X obj 470 208 r startpoint; +#X obj 617 431 max 1; +#X obj 602 308 max 0.001; +#X obj 602 334 t b f; +#X obj 602 358 1; +#X obj 617 382 /; +#X obj 320 482 *~; +#X obj 320 456 tabread4~ array1; +#X obj 320 430 +~; +#X obj 227 472 print~; +#X msg 227 443 bang; +#X obj 601 61 loadbang; +#X msg 598 91 \; transposition 0 \; looplength 0 \; startpoint 0 \; +smoothing 0; +#X obj 236 263 ../../../extra/loop~; +#X obj 285 233 * 441; +#X obj 284 307 *~; +#X obj 133 41 loadbang; +#X obj 78 174 r running; +#X obj 78 203 sel 1; +#X obj 602 282 * 0.01; +#X obj 286 202 max 0.01; +#X connect 1 0 3 0; +#X connect 2 0 44 0; +#X connect 3 0 5 0; +#X connect 4 0 37 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 32 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 43 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 0 0; +#X connect 31 0 30 0; +#X connect 32 0 31 0; +#X connect 32 0 33 0; +#X connect 34 0 33 0; +#X connect 35 0 36 0; +#X connect 37 0 13 1; +#X connect 37 0 39 0; +#X connect 37 0 14 0; +#X connect 37 1 39 1; +#X connect 38 0 37 1; +#X connect 39 0 32 0; +#X connect 40 0 3 0; +#X connect 41 0 42 0; +#X connect 42 0 37 0; +#X connect 43 0 26 0; +#X connect 44 0 38 0; +#X restore 274 283 pd audio-transformation; +#X obj 553 331 env~ 16384; +#X obj 665 317 route normalized; +#X msg 667 457 write -normalize \$1 array2; +#X msg 667 407 bang; +#X obj 667 432 savepanel; +#X obj 667 482 soundfiler; +#X obj 15 518 soundfiler; +#X msg 15 493 read -resize -maxsize 1e+06 \$1 array1; +#X obj 330 100 r transposition; +#X obj 330 125 r looplength; +#X obj 330 175 r smoothing; +#X obj 708 110 timer; +#X obj 708 135 * 44.1; +#X obj 724 37 r running; +#X obj 708 60 f; +#X obj 708 85 sel 1; +#X obj 708 227 moses; +#X obj 753 227 r maxoutsize; +#X msg 708 252 \; array2 resize \$1; +#X msg 685 37 bang; +#X obj 144 53 route read run start hear save stop; +#X obj 312 427 delay; +#X obj 331 404 + 100; +#X obj 145 329 r maxoutsize; +#X obj 86 329 f; +#X msg 86 354 \; array2 resize \$1; +#X msg 312 452 \; action stop; +#X obj 331 379 / 44.1; +#X msg 62 271 \; pd dsp 1; +#X msg 334 240 \; running 1; +#X obj 202 28 r action; +#X msg 733 160 \; running 0 \; pd dsp 0; +#X obj 330 150 r startpoint; +#X obj 553 357 int; +#X connect 0 0 1 0; +#X connect 1 0 29 0; +#X connect 2 0 42 0; +#X connect 4 0 16 0; +#X connect 5 0 4 1; +#X connect 6 0 5 0; +#X connect 7 0 8 0; +#X connect 8 0 19 0; +#X connect 9 0 10 0; +#X connect 9 0 14 0; +#X connect 10 0 9 1; +#X connect 11 0 9 1; +#X connect 14 0 13 0; +#X connect 14 0 46 0; +#X connect 14 0 43 0; +#X connect 14 0 50 0; +#X connect 14 0 51 0; +#X connect 14 0 33 0; +#X connect 15 0 4 0; +#X connect 15 0 22 0; +#X connect 16 0 3 0; +#X connect 16 0 3 1; +#X connect 17 0 18 0; +#X connect 18 0 15 1; +#X connect 19 0 20 0; +#X connect 21 0 13 0; +#X connect 21 0 15 0; +#X connect 22 0 55 0; +#X connect 23 0 25 0; +#X connect 23 1 7 0; +#X connect 24 0 27 0; +#X connect 25 0 26 0; +#X connect 26 0 24 0; +#X connect 29 0 28 0; +#X connect 30 0 9 0; +#X connect 31 0 9 0; +#X connect 32 0 9 0; +#X connect 33 0 34 0; +#X connect 34 0 53 0; +#X connect 34 0 38 0; +#X connect 35 0 36 1; +#X connect 36 0 37 0; +#X connect 37 0 33 1; +#X connect 38 0 40 0; +#X connect 39 0 38 1; +#X connect 41 0 36 0; +#X connect 42 0 0 0; +#X connect 42 1 14 0; +#X connect 42 1 10 0; +#X connect 42 2 11 0; +#X connect 42 3 17 0; +#X connect 42 4 23 0; +#X connect 42 5 41 0; +#X connect 43 0 48 0; +#X connect 44 0 43 1; +#X connect 45 0 46 1; +#X connect 45 0 49 0; +#X connect 46 0 47 0; +#X connect 49 0 44 0; +#X connect 52 0 42 0; +#X connect 54 0 9 0; +#X connect 55 0 12 0; +#X restore 19 228 pd guts; +#X msg 19 96 run the transformation; +#X msg 19 163 hear the output buffer again; +#X text 19 55 click below to:; +#X msg 19 185 save the output buffer; +#X floatatom 367 337 0 0 120; +#N canvas 194 37 397 591 output 0; +#X obj 66 203 t b; +#X obj 66 152 f; +#X obj 66 102 inlet; +#X text 71 81 mute; +#X obj 66 228 f; +#X msg 134 244 0; +#X msg 66 127 bang; +#X obj 66 178 moses 1; +#X obj 134 218 t b f; +#X obj 96 442 outlet; +#X msg 96 416 set \$1; +#X obj 186 163 moses 1; +#X obj 224 444 dbtorms; +#X obj 224 469 pack 0 100; +#X obj 186 138 r master-lvl; +#X obj 96 382 r master-lvl; +#X obj 83 286 s master-lvl; +#X obj 224 494 s master-amp; +#X obj 208 244 loadbang; +#X msg 208 269 \; master-lvl 90; +#X connect 0 0 4 0; +#X connect 1 0 7 0; +#X connect 2 0 6 0; +#X connect 4 0 16 0; +#X connect 5 0 16 0; +#X connect 6 0 1 0; +#X connect 7 0 0 0; +#X connect 7 1 8 0; +#X connect 8 0 5 0; +#X connect 10 0 9 0; +#X connect 11 1 4 1; +#X connect 12 0 13 0; +#X connect 13 0 17 0; +#X connect 14 0 1 1; +#X connect 14 0 11 0; +#X connect 15 0 10 0; +#X connect 15 0 12 0; +#X connect 18 0 19 0; +#X restore 367 316 pd output; +#X msg 367 294 mute; +#X obj 367 359 s master-lvl; +#X text 410 293 <-- mute button; +#X floatatom 19 250 0 0 0; +#X text 20 294 100 maximum; +#X text 20 276 output meter; +#X text 405 336 <--set me; +#X msg 19 74 read an input file; +#X text 367 379 LINE OUT LEVEL in dB (100 norm); +#X msg 19 206 save normalized to max amplitude; +#X floatatom 368 73 0 0 1000; +#X floatatom 369 19 0 0 0; +#X obj 369 47 s transposition; +#X floatatom 369 170 0 0 100; +#X obj 369 192 s smoothing; +#X obj 368 95 s looplength; +#X text 418 73 <- loop length \, hundredths of a second; +#X floatatom 369 122 0 0 60000; +#X obj 369 144 s startpoint; +#X text 420 123 <- start point \, hundredths of a second; +#X text 419 171 <- envelope smoothing \, 0-100; +#X text 38 9 looping sample player.; +#X msg 19 118 start looping when I change something; +#X msg 19 140 stop looping; +#X floatatom 368 239 0 0 60; +#N canvas 0 0 265 196 length 0; +#X obj 48 24 inlet; +#X obj 49 104 * 44100; +#X msg 86 130 \; array2 resize \$1; +#X obj 48 49 min 60; +#X obj 62 78 s output-length; +#X obj 48 164 s maxoutsize; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 1 0 5 0; +#X connect 3 0 1 0; +#X connect 3 0 4 0; +#X restore 368 260 pd length; +#N canvas 219 38 198 151 /SUBPATCH/ 0; +#X obj 79 122 outlet; +#X obj 79 74 loadbang; +#X msg 79 98 10; +#X connect 1 0 2 0; +#X connect 2 0 0 0; +#X restore 368 217 pd; +#X text 455 241 length in seconds of the output; +#X text 453 259 buffer... maximum 60; +#X text 404 241 <- set; +#X text 408 20 <- transposition up or down \, 10ths of a half step +; +#X connect 2 0 12 0; +#X connect 3 0 2 0; +#X connect 4 0 2 0; +#X connect 6 0 2 0; +#X connect 7 0 10 0; +#X connect 8 0 7 0; +#X connect 9 0 8 0; +#X connect 16 0 2 0; +#X connect 18 0 2 0; +#X connect 19 0 24 0; +#X connect 20 0 21 0; +#X connect 22 0 23 0; +#X connect 26 0 27 0; +#X connect 31 0 2 0; +#X connect 32 0 2 0; +#X connect 33 0 34 0; +#X connect 35 0 33 0; diff --git a/pd/doc/7.stuff/soundfile-tools/5.reverb.pd b/pd/doc/7.stuff/soundfile-tools/5.reverb.pd new file mode 100644 index 00000000..0b0cdb11 --- /dev/null +++ b/pd/doc/7.stuff/soundfile-tools/5.reverb.pd @@ -0,0 +1,214 @@ +#N canvas 186 43 739 364 12; +#N canvas 213 187 495 352 input-sample 0; +#N canvas 0 0 450 300 graph1 0; +#X array array1 63024 float 0; +#X coords 0 1 63023 -1 400 300 1; +#X restore 54 22 graph; +#X text 145 376 INPUT SAMPLE; +#X restore 154 226 pd input-sample; +#N canvas 192 180 507 343 output-sample 0; +#N canvas 0 0 450 300 graph2 0; +#X array array2 504024 float 0; +#X coords 0 1 504023 -1 400 300 1; +#X restore 57 13 graph; +#X text 154 372 OUTPUT SAMPLE; +#X restore 155 249 pd output-sample; +#N canvas 116 150 735 421 guts 0; +#X msg 24 128 bang; +#X obj 24 345 openpanel; +#X obj 138 30 inlet; +#X obj 446 368 dac~; +#X obj 446 327 *~; +#X obj 461 304 line~; +#X obj 461 283 r master-amp; +#X msg 707 85 bang; +#X obj 707 106 savepanel; +#X obj 268 161 spigot; +#X msg 253 128 0; +#X msg 284 128 1; +#X obj 500 398 outlet; +#X obj 316 128 r frequency; +#X obj 256 312 tabwrite~ array2; +#X msg 256 189 bang; +#X obj 427 276 +~; +#X msg 139 128 \; pd dsp 1; +#X obj 446 347 hip~ 7; +#X obj 268 217 tabplay~ array1; +#X msg 442 124 bang; +#X obj 442 145 tabplay~ array2; +#X msg 707 126 write \$1 array2; +#X obj 707 147 soundfiler; +#X obj 138 51 route read run start hear save; +#N canvas 0 0 632 395 audio-transformation 0; +#X obj 101 49 inlet~; +#X obj 105 268 outlet~; +#X obj 101 148 ../../../extra/rev1~ xxx; +#X obj 339 79 r revgain; +#X obj 338 102 dbtorms; +#X obj 338 130 pack 0 50; +#X obj 338 154 line~; +#X obj 103 204 *~; +#X obj 181 51 r revtime; +#X obj 213 236 *~; +#X obj 340 209 dbtorms; +#X obj 340 237 pack 0 50; +#X obj 340 261 line~; +#X obj 294 37 inlet; +#X msg 293 61 bang; +#X obj 342 186 r drygain; +#X connect 0 0 2 0; +#X connect 0 0 9 0; +#X connect 2 0 7 0; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 7 1; +#X connect 7 0 1 0; +#X connect 8 0 2 1; +#X connect 9 0 1 0; +#X connect 10 0 11 0; +#X connect 11 0 12 0; +#X connect 12 0 9 1; +#X connect 13 0 14 0; +#X connect 14 0 2 2; +#X connect 15 0 10 0; +#X restore 268 238 pd audio-transformation; +#X obj 500 377 env~ 16384; +#X obj 570 86 route normalized; +#X msg 570 179 write -normalize \$1 array2; +#X msg 570 138 bang; +#X obj 570 159 savepanel; +#X obj 570 204 soundfiler; +#X obj 24 396 soundfiler; +#X msg 24 374 read -resize -maxsize 1e+06 \$1 array1; +#X msg 24 440 \; array2 resize \$1; +#X obj 402 129 r q; +#X obj 24 419 + 441000; +#X connect 0 0 1 0; +#X connect 1 0 33 0; +#X connect 2 0 24 0; +#X connect 4 0 18 0; +#X connect 5 0 4 1; +#X connect 6 0 5 0; +#X connect 7 0 8 0; +#X connect 8 0 22 0; +#X connect 9 0 10 0; +#X connect 9 0 15 0; +#X connect 10 0 9 1; +#X connect 11 0 9 1; +#X connect 13 0 9 0; +#X connect 15 0 14 0; +#X connect 15 0 19 0; +#X connect 15 0 25 1; +#X connect 16 0 4 0; +#X connect 18 0 3 0; +#X connect 18 0 3 1; +#X connect 18 0 26 0; +#X connect 19 0 25 0; +#X connect 20 0 21 0; +#X connect 21 0 16 1; +#X connect 22 0 23 0; +#X connect 24 0 0 0; +#X connect 24 1 15 0; +#X connect 24 1 10 0; +#X connect 24 1 17 0; +#X connect 24 2 11 0; +#X connect 24 2 17 0; +#X connect 24 3 20 0; +#X connect 24 4 27 0; +#X connect 25 0 14 0; +#X connect 25 0 16 0; +#X connect 26 0 12 0; +#X connect 27 0 29 0; +#X connect 27 1 7 0; +#X connect 28 0 31 0; +#X connect 29 0 30 0; +#X connect 30 0 28 0; +#X connect 32 0 36 0; +#X connect 33 0 32 0; +#X connect 35 0 9 0; +#X connect 36 0 34 0; +#X restore 35 190 pd guts; +#X msg 35 85 run the transformation; +#X msg 35 127 hear the output buffer again; +#X text 35 45 click below to:; +#X msg 35 148 save the output buffer; +#X floatatom 445 285 0 0 120; +#N canvas 194 37 397 591 output 0; +#X obj 63 194 t b; +#X obj 63 146 f; +#X obj 63 98 inlet; +#X text 68 77 mute; +#X obj 63 218 f; +#X msg 129 233 0; +#X msg 63 122 bang; +#X obj 63 170 moses 1; +#X obj 129 209 t b f; +#X obj 92 423 outlet; +#X msg 92 399 set \$1; +#X obj 178 156 moses 1; +#X obj 215 425 dbtorms; +#X obj 215 450 pack 0 100; +#X obj 178 132 r master-lvl; +#X obj 92 366 r master-lvl; +#X obj 79 274 s master-lvl; +#X obj 215 474 s master-amp; +#X obj 199 233 loadbang; +#X msg 199 258 \; master-lvl 90; +#X connect 0 0 4 0; +#X connect 1 0 7 0; +#X connect 2 0 6 0; +#X connect 4 0 16 0; +#X connect 5 0 16 0; +#X connect 6 0 1 0; +#X connect 7 0 0 0; +#X connect 7 1 8 0; +#X connect 8 0 5 0; +#X connect 10 0 9 0; +#X connect 11 1 4 1; +#X connect 12 0 13 0; +#X connect 13 0 17 0; +#X connect 14 0 1 1; +#X connect 14 0 11 0; +#X connect 15 0 10 0; +#X connect 15 0 12 0; +#X connect 18 0 19 0; +#X restore 445 264 pd output; +#X msg 445 243 mute; +#X obj 445 306 s master-lvl; +#X text 486 242 <-- mute button; +#X floatatom 35 211 0 0 0; +#X text 13 251 100 maximum; +#X text 13 233 output meter; +#X text 482 284 <--set me; +#X msg 35 64 read an input file; +#X text 445 326 LINE OUT LEVEL in dB (100 norm); +#X msg 35 169 save normalized to max amplitude; +#X msg 35 106 start transformation when I change f or q; +#X floatatom 445 82 0 0 120; +#X floatatom 445 40 0 0 100; +#X obj 445 61 s revtime; +#X obj 445 103 s revgain; +#X floatatom 446 184 0 0 120; +#X text 494 84 <-- reverb gain; +#X text 482 185 <-- dry gain; +#X obj 446 205 s drygain; +#X obj 446 142 loadbang; +#X msg 446 163 100; +#X text 486 39 <- reverb time 0-100; +#X text 23 15 Reverberator. Read in a sample first.; +#X connect 2 0 12 0; +#X connect 3 0 2 0; +#X connect 4 0 2 0; +#X connect 6 0 2 0; +#X connect 7 0 10 0; +#X connect 8 0 7 0; +#X connect 9 0 8 0; +#X connect 16 0 2 0; +#X connect 18 0 2 0; +#X connect 19 0 2 0; +#X connect 20 0 23 0; +#X connect 21 0 22 0; +#X connect 24 0 27 0; +#X connect 28 0 29 0; +#X connect 29 0 24 0; diff --git a/pd/doc/7.stuff/soundfile-tools/6.vocoder.pd b/pd/doc/7.stuff/soundfile-tools/6.vocoder.pd new file mode 100644 index 00000000..ce822ef4 --- /dev/null +++ b/pd/doc/7.stuff/soundfile-tools/6.vocoder.pd @@ -0,0 +1,314 @@ +#N canvas 73 102 706 428 12; +#X floatatom 462 162 0 0 100; +#X msg 462 137 set \$1; +#X text 29 322 100 maximum; +#X text 29 304 output meter; +#N canvas 145 136 937 540 guts 0; +#X msg 5 296 bang; +#X obj 5 321 openpanel; +#X obj 136 29 inlet; +#X obj 452 375 dac~; +#X obj 452 323 *~; +#X obj 467 300 line~; +#X obj 467 280 r master-amp; +#X msg 689 157 bang; +#X obj 689 177 savepanel; +#X obj 506 393 outlet; +#X obj 297 238 tabwrite~ array2; +#X obj 454 238 +~; +#X obj 452 343 hip~ 7; +#X msg 446 108 bang; +#X obj 446 133 tabplay~ array2; +#X msg 689 197 write \$1 array2; +#X obj 689 218 soundfiler; +#X obj 506 373 env~ 16384; +#X obj 587 129 route normalized; +#X msg 587 250 write -normalize \$1 array2; +#X msg 587 209 bang; +#X obj 587 230 savepanel; +#X obj 587 274 soundfiler; +#X obj 5 365 soundfiler; +#X msg 5 343 read -resize -maxsize 1e+06 \$1 array1; +#X obj 676 338 loadbang; +#N canvas 0 0 690 470 fft-analysis 0; +#X obj 275 314 *~; +#X obj 257 348 *~; +#X obj 218 348 *~; +#X obj 105 163 *~; +#X obj 66 156 *~; +#X obj 66 182 +~; +#X obj 216 104 *~; +#X obj 253 104 inlet~; +#X obj 216 130 rfft~; +#X obj 42 371 *~; +#X floatatom 458 208 0 0 0; +#X obj 334 177 *~; +#X obj 66 104 *~; +#X obj 103 104 inlet~; +#X obj 45 65 tabreceive~ hanning; +#X obj 66 130 rfft~; +#X obj 218 374 rifft~; +#X obj 42 397 outlet~; +#X obj 297 177 *~; +#X obj 297 203 +~; +#X obj 307 314 sig~ 0.001; +#X text 122 214 modulus; +#X obj 66 208 sqrt~; +#X obj 275 288 *~; +#X obj 457 58 r squelch; +#X obj 329 418 block~ 1024 4; +#X obj 297 229 rsqrt~; +#X obj 341 203 sig~ 1e-20; +#X obj 297 255 clip~; +#X obj 458 130 t f f; +#X obj 458 156 *; +#X obj 458 182 * 0.01; +#X obj 456 94 max 1; +#X obj 559 58 loadbang; +#X obj 458 234 max 0; +#X connect 0 0 1 1; +#X connect 0 0 2 1; +#X connect 1 0 16 1; +#X connect 2 0 16 0; +#X connect 3 0 5 1; +#X connect 4 0 5 0; +#X connect 5 0 22 0; +#X connect 6 0 8 0; +#X connect 7 0 6 1; +#X connect 8 0 18 0; +#X connect 8 0 18 1; +#X connect 8 0 2 0; +#X connect 8 1 11 0; +#X connect 8 1 11 1; +#X connect 8 1 1 0; +#X connect 9 0 17 0; +#X connect 10 0 34 0; +#X connect 11 0 19 1; +#X connect 12 0 15 0; +#X connect 13 0 12 1; +#X connect 14 0 12 0; +#X connect 14 0 6 0; +#X connect 14 0 9 0; +#X connect 15 0 4 0; +#X connect 15 0 4 1; +#X connect 15 1 3 0; +#X connect 15 1 3 1; +#X connect 16 0 9 1; +#X connect 18 0 19 0; +#X connect 19 0 26 0; +#X connect 20 0 0 1; +#X connect 22 0 23 0; +#X connect 23 0 0 0; +#X connect 24 0 32 0; +#X connect 26 0 28 0; +#X connect 27 0 26 0; +#X connect 28 0 23 1; +#X connect 29 0 30 0; +#X connect 29 0 30 1; +#X connect 30 0 31 0; +#X connect 31 0 10 0; +#X connect 32 0 29 0; +#X connect 33 0 32 0; +#X connect 34 0 28 2; +#X restore 296 194 pd fft-analysis; +#X msg 202 86 bang; +#N canvas 46 0 723 534 hanning-window 0; +#X obj 122 273 phasor~; +#X obj 122 311 cos~; +#X obj 31 436 tabwrite~ hanning; +#X obj 40 336 -~; +#X obj 37 290 sig~ 1; +#X msg 50 240 0; +#X text 188 18 CALCULATE HANNING; +#X text 188 36 WINDOW TABLE; +#N canvas 0 0 450 300 graph1 0; +#X array hanning 1024 float 0; +#X coords 0 1 1023 -1 400 300 1; +#X restore 342 235 graph; +#X obj 123 227 sig~; +#X text 156 173 sample rate / window size; +#X msg 31 191 bang; +#X obj 88 357 sig~ 0.5; +#X obj 66 399 *~; +#X obj 124 106 samplerate~; +#X obj 33 31 r window-size; +#X obj 123 175 /; +#X msg 262 106 \; hanning resize \$1; +#X obj 31 70 t b f f; +#X connect 0 0 1 0; +#X connect 1 0 3 1; +#X connect 3 0 13 0; +#X connect 4 0 3 0; +#X connect 5 0 0 1; +#X connect 9 0 0 0; +#X connect 11 0 2 0; +#X connect 11 0 5 0; +#X connect 12 0 13 1; +#X connect 13 0 2 0; +#X connect 14 0 16 0; +#X connect 15 0 18 0; +#X connect 16 0 9 0; +#X connect 18 0 14 0; +#X connect 18 0 11 0; +#X connect 18 1 16 1; +#X connect 18 2 17 0; +#X restore 673 403 pd hanning-window; +#X obj 181 29 r action; +#X msg 150 163 \; pd dsp 1; +#X msg 389 106 stop; +#X msg 58 455 \; array2 resize \$1; +#X obj 58 434 + 4410; +#X obj 136 50 route read AND run hear save stop; +#X obj 58 412 min; +#X obj 107 380 t b f; +#X obj 107 270 openpanel; +#X obj 107 314 soundfiler; +#X msg 107 293 read -resize -maxsize 1e+06 \$1 array3; +#X msg 106 239 bang; +#X msg 676 360 \; window-size 1024 \;; +#X obj 296 145 tabplay~ array1; +#X obj 314 167 tabplay~ array3; +#X connect 0 0 1 0; +#X connect 1 0 24 0; +#X connect 2 0 34 0; +#X connect 4 0 12 0; +#X connect 5 0 4 1; +#X connect 6 0 5 0; +#X connect 7 0 8 0; +#X connect 8 0 15 0; +#X connect 11 0 4 0; +#X connect 12 0 3 0; +#X connect 12 0 3 1; +#X connect 12 0 17 0; +#X connect 13 0 14 0; +#X connect 14 0 11 1; +#X connect 15 0 16 0; +#X connect 17 0 9 0; +#X connect 18 0 20 0; +#X connect 18 1 7 0; +#X connect 19 0 22 0; +#X connect 20 0 21 0; +#X connect 21 0 19 0; +#X connect 23 0 35 0; +#X connect 24 0 23 0; +#X connect 25 0 41 0; +#X connect 26 0 10 0; +#X connect 26 0 11 0; +#X connect 27 0 10 0; +#X connect 27 0 30 0; +#X connect 27 0 42 0; +#X connect 27 0 43 0; +#X connect 29 0 34 0; +#X connect 31 0 14 0; +#X connect 33 0 32 0; +#X connect 34 0 0 0; +#X connect 34 1 40 0; +#X connect 34 2 27 0; +#X connect 34 3 13 0; +#X connect 34 4 18 0; +#X connect 34 5 31 0; +#X connect 35 0 33 0; +#X connect 36 0 35 0; +#X connect 36 1 35 1; +#X connect 37 0 39 0; +#X connect 38 0 36 0; +#X connect 39 0 38 0; +#X connect 40 0 37 0; +#X connect 42 0 26 0; +#X connect 43 0 26 1; +#X restore 29 263 pd guts; +#X msg 29 158 run the transformation; +#X msg 29 200 hear the output buffer again; +#X text 29 97 click below to:; +#X msg 29 221 save the output buffer; +#X floatatom 29 284 0 0 0; +#X msg 29 242 save normalized to max amplitude; +#N canvas 130 10 488 287 input-sample 0; +#N canvas 0 0 450 300 graph1 0; +#X array array1 188955 float 0; +#X coords 0 1 188954 -1 400 100 1; +#X restore 53 21 graph; +#N canvas 0 0 450 300 graph3 0; +#X array array3 225280 float 0; +#X coords 0 1 225279 -1 400 100 1; +#X restore 54 146 graph; +#X text 227 279 INPUT SAMPLES; +#X restore 169 368 pd input-sample; +#N canvas 192 180 507 343 output-sample 0; +#N canvas 0 0 450 300 graph2 0; +#X array array2 193365 float 0; +#X coords 0 1 193364 -1 400 300 1; +#X restore 56 12 graph; +#X text 151 365 OUTPUT SAMPLE; +#X restore 168 393 pd output-sample; +#X floatatom 408 365 0 0 0; +#N canvas 194 37 397 591 output 0; +#X obj 62 191 t b; +#X obj 62 144 f; +#X obj 62 96 inlet; +#X text 67 76 mute; +#X obj 62 215 f; +#X msg 127 229 0; +#X msg 62 120 bang; +#X obj 62 167 moses 1; +#X obj 127 206 t b f; +#X obj 90 416 outlet; +#X msg 90 392 set \$1; +#X obj 175 154 moses 1; +#X obj 211 418 dbtorms; +#X obj 211 442 pack 0 100; +#X obj 175 130 r master-lvl; +#X obj 90 359 r master-lvl; +#X obj 78 269 s master-lvl; +#X obj 211 466 s master-amp; +#X obj 195 229 loadbang; +#X msg 195 253 \; master-lvl 90; +#X connect 0 0 4 0; +#X connect 1 0 7 0; +#X connect 2 0 6 0; +#X connect 4 0 16 0; +#X connect 5 0 16 0; +#X connect 6 0 1 0; +#X connect 7 0 0 0; +#X connect 7 1 8 0; +#X connect 8 0 5 0; +#X connect 10 0 9 0; +#X connect 11 1 4 1; +#X connect 12 0 13 0; +#X connect 13 0 17 0; +#X connect 14 0 1 1; +#X connect 14 0 11 0; +#X connect 15 0 10 0; +#X connect 15 0 12 0; +#X connect 18 0 19 0; +#X restore 408 344 pd output; +#X msg 408 323 mute; +#X obj 408 386 s master-lvl; +#X text 449 322 <-- mute button; +#X text 444 363 <--set me; +#X text 408 406 LINE OUT LEVEL in dB (100 norm); +#X msg 29 179 stop the transformation; +#X text 193 9 (old-fashioned) VOCODER; +#X text 28 31 This takes in two soundfiles and uses the first to "vocode" +the second. THe resulting sound is as long as the shorter of the two +inputs.; +#X msg 29 116 read the analysis sound from file; +#X msg 29 137 AND read the sound to be processed from file; +#X text 462 97 SQUELCH; +#X obj 462 116 r squelch; +#X obj 462 187 s squelch; +#X text 526 161 1-100 or so; +#X connect 0 0 27 0; +#X connect 1 0 0 0; +#X connect 4 0 9 0; +#X connect 5 0 4 0; +#X connect 6 0 4 0; +#X connect 8 0 4 0; +#X connect 10 0 4 0; +#X connect 13 0 16 0; +#X connect 14 0 13 0; +#X connect 15 0 14 0; +#X connect 20 0 4 0; +#X connect 23 0 4 0; +#X connect 24 0 4 0; +#X connect 26 0 1 0; diff --git a/pd/doc/7.stuff/soundfile-tools/README.txt b/pd/doc/7.stuff/soundfile-tools/README.txt new file mode 100644 index 00000000..1670af3f --- /dev/null +++ b/pd/doc/7.stuff/soundfile-tools/README.txt @@ -0,0 +1,2 @@ +Here are some standard audio transformations packaged to work with mono +soundfiles. -- cgit v1.2.1