diff options
Diffstat (limited to 'pd/doc')
30 files changed, 0 insertions, 6264 deletions
diff --git a/pd/doc/3.audio.examples/H01.intro.filters.pd b/pd/doc/3.audio.examples/H01.intro.filters.pd deleted file mode 100644 index 4a64a0b5..00000000 --- a/pd/doc/3.audio.examples/H01.intro.filters.pd +++ /dev/null @@ -1,72 +0,0 @@ -#N canvas 124 28 964 549 12; -#X floatatom 20 391; -#X floatatom 297 394; -#X floatatom 210 394; -#X graph graph1 0 -1 400 1 544 335 944 35; -#X array orig 400 float; -#X array lop 400 float; -#X array hip 400 float; -#X array bp 400 float; -#X pop; -#X obj 334 457 r metro; -#X obj 180 322 hip~ 100; -#X obj 105 320 lop~ 100; -#X obj 273 322 bp~ 100 10; -#X floatatom 255 245; -#X floatatom 338 295; -#X floatatom 118 393; -#X text 9 11 Filters; -#X msg 87 130 \; pd dsp 1 \; metro bang; -#X msg 191 135 \; pd dsp 0; -#X text 15 417 Original; -#X text 122 417 Low pass; -#X text 210 417 High pass; -#X text 298 416 Band pass; -#X obj 14 517 tabwrite~ orig; -#X obj 309 520 tabwrite~ bp; -#X obj 213 520 tabwrite~ hip; -#X obj 116 519 tabwrite~ lop; -#X text 97 110 start; -#X text 193 111 stop; -#X floatatom 14 235; -#X obj 14 261 osc~ 440; -#X text 51 236 <-- change frequency; -#X text 294 247 <-- center/rolloff frequency; -#X text 374 297 <-- Q; -#X text 548 341 This graph holds 4 arrays for the input and three filter outputs.; -#X text 375 389 RMS amplitudes of the original signal and the three filter outputs; -#X text 746 536 updated for Pd version 0.26; -#X obj 334 482 metro 1000; -#X text 29 33 Pd provides low \, high \, and band pass filters \, as shown here. By changing the test frequency \, the filter frequency \, and the "Q" value \, you can see how these filters affect the amplitude and phase of incoming signals; -#X obj 20 366 env~ 4096; -#X obj 118 368 env~ 4096; -#X obj 210 369 env~ 4096; -#X obj 297 369 env~ 4096; -#X obj 91 213 print~; -#X text 456 434 Notice how the phase of the graphed sinusoids slips back and forth... this is because graphing always starts on the nearest 64-sample boundary to the time the metronome fires. If you run at 48K the slippage disappears \, because then the metronome fires every 48K samples \, which is a multiple of 64; -#X connect 4 0 32 0; -#X connect 5 0 20 0; -#X connect 5 0 36 0; -#X connect 6 0 21 0; -#X connect 6 0 35 0; -#X connect 7 0 19 0; -#X connect 7 0 37 0; -#X connect 8 0 6 1; -#X connect 8 0 5 1; -#X connect 8 0 7 1; -#X connect 9 0 7 2; -#X connect 24 0 25 0; -#X connect 25 0 18 0; -#X connect 25 0 6 0; -#X connect 25 0 5 0; -#X connect 25 0 7 0; -#X connect 25 0 34 0; -#X connect 25 0 38 0; -#X connect 32 0 18 0; -#X connect 32 0 21 0; -#X connect 32 0 20 0; -#X connect 32 0 19 0; -#X connect 34 0 0 0; -#X connect 35 0 10 0; -#X connect 36 0 2 0; -#X connect 37 0 1 0; diff --git a/pd/doc/3.audio.examples/H02.bandpass.pd b/pd/doc/3.audio.examples/H02.bandpass.pd deleted file mode 100644 index 0ce9cc47..00000000 --- a/pd/doc/3.audio.examples/H02.bandpass.pd +++ /dev/null @@ -1,146 +0,0 @@ -#N canvas 58 17 943 765 12; -#X floatatom 91 731 0 0 0; -#X graph graph1 0 -1 155947 1 624 401 824 251; -#X array array1 155948 float 0; -#X pop; -#X floatatom 247 705 0 0 0; -#N canvas 159 26 495 266 output 0; -#X obj 406 192 t b; -#X obj 406 132 f; -#X obj 406 72 inlet; -#X text 413 35 mute; -#X obj 406 222 f; -#X msg 510 214 0; -#X msg 406 102 bang; -#X obj 406 162 moses 1; -#X obj 510 184 t b f; -#X obj 476 140 moses 1; -#X obj 100 178 dbtorms; -#X obj 476 110 r master-lvl; -#X obj 100 50 r master-lvl; -#X obj 406 252 s master-lvl; -#X obj 26 217 inlet~; -#X obj 239 49 inlet; -#X text 239 22 level; -#X obj 239 120 s master-lvl; -#X msg 115 78 set \$1; -#X obj 115 107 outlet; -#X msg 257 77 \; pd dsp 1; -#X obj 100 233 line~; -#X obj 26 254 *~; -#X obj 26 289 dac~; -#X obj 100 205 pack 0 50; -#X text 24 190 audio; -#X text 112 132 show level; -#X connect 0 0 4 0; -#X connect 1 0 7 0; -#X connect 2 0 6 0; -#X connect 4 0 13 0; -#X connect 5 0 13 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 9 1 4 1; -#X connect 10 0 24 0; -#X connect 11 0 1 1; -#X connect 11 0 9 0; -#X connect 12 0 10 0; -#X connect 12 0 18 0; -#X connect 14 0 22 0; -#X connect 15 0 17 0; -#X connect 15 0 20 0; -#X connect 18 0 19 0; -#X connect 21 0 22 1; -#X connect 22 0 23 0; -#X connect 22 0 23 1; -#X connect 24 0 21 0; -#X restore 210 740 pd output; -#X msg 280 707 MUTE; -#X text 320 706 <-- output amplitude; -#X obj 206 654 hip~ 5; -#X obj 31 545 tabread4~ array1; -#X obj 31 340 r totsamps; -#X obj 31 430 /; -#X obj 206 625 bp~; -#X obj 206 596 bp~; -#X obj 216 463 mtof; -#X floatatom 216 491 0 0 0; -#X floatatom 319 570 0 0 0; -#X obj 319 541 r q; -#X floatatom 216 434 0 0 0; -#X msg 227 550 \; p set \$1; -#X obj 216 406 r p; -#X obj 90 647 env~ 4096; -#X obj 31 487 *~ 0; -#X obj 31 458 phasor~ 0; -#X obj 31 516 +~ 1; -#X obj 227 521 ftom; -#X msg 826 49 \; pd dsp 0; -#X obj 90 674 + 0.5; -#X obj 91 702 int; -#X msg 31 400 44100; -#X obj 31 368 t b f; -#X text 648 14 START; -#X text 845 19 STOP; -#X text 88 11 BANDPASS FILTERS; -#X text 12 41 In this example we use two cascaded bandpass filters -to troll for partials in Jonathan Harvey's famous bell sample.; -#X obj 78 487 r totsamps; -#X text 14 82 Note that filters can give unexpected level changes. -The bp~ object is designed to have roughly unit gain at teh pass band -\, so the higher you set "Q" the more amplitude is lost. YOu can correct -for this by pushing the output amplitude \, but be sure to remember -to reset the output amplitude before you reduce Q again. I set the -Q to 100 and the output amplitude to 110 or 120 (with the room gain -way down.) Then holding the shift key \, slowly drag the center pitch -upward listening for modes.; -#X text 16 233 You can hear partials around 48 \, 51.3 \, 55 (faint!) -\, 57 (fainter!) \, 60 \, two beating partials around 65 \, 67 \, 69 -\, 70.9 \, 71.75 \, 72.6 \, 74 \, 74.65 \, 75.6 \, 77 \, 81.2 \, 84.6 -\, 86.5 \, and probably many more. There's also one down at 36 \, but -it's easier to see it on the meter than hear it.; -#X text 271 436 <-- center pitch; -#X text 281 450 (shift-drag to fine tune); -#X text 292 492 <-- center frequency; -#X text 359 570 <-- Q (filter selectivity); -#X obj 683 453 r readfile; -#X obj 683 530 soundfiler; -#X msg 683 503 read -resize \$1 array1; -#X obj 683 478 symbol; -#X msg 553 48 \; readfile ../sound/bell.aiff \; totsamps 143718 \; -p 69 \; q 0 \; pd dsp 1; -#X text 681 739 updated for Pd version 0.33; -#X connect 2 0 3 1; -#X connect 3 0 2 0; -#X connect 4 0 3 2; -#X connect 6 0 3 0; -#X connect 7 0 11 0; -#X connect 8 0 28 0; -#X connect 9 0 21 0; -#X connect 10 0 6 0; -#X connect 10 0 19 0; -#X connect 11 0 10 0; -#X connect 12 0 13 0; -#X connect 13 0 11 1; -#X connect 13 0 10 1; -#X connect 13 0 23 0; -#X connect 14 0 11 2; -#X connect 14 0 10 2; -#X connect 15 0 14 0; -#X connect 16 0 12 0; -#X connect 18 0 16 0; -#X connect 19 0 25 0; -#X connect 20 0 22 0; -#X connect 21 0 20 0; -#X connect 22 0 7 0; -#X connect 23 0 17 0; -#X connect 25 0 26 0; -#X connect 26 0 0 0; -#X connect 27 0 9 0; -#X connect 28 0 27 0; -#X connect 28 1 9 1; -#X connect 33 0 20 1; -#X connect 40 0 43 0; -#X connect 42 0 41 0; -#X connect 43 0 42 0; diff --git a/pd/doc/3.audio.examples/H03.filter.sweep.pd b/pd/doc/3.audio.examples/H03.filter.sweep.pd deleted file mode 100644 index 0d478275..00000000 --- a/pd/doc/3.audio.examples/H03.filter.sweep.pd +++ /dev/null @@ -1,173 +0,0 @@ -#N canvas 194 58 693 586 12; -#X text 437 559 updated for Pd version 0.26; -#X floatatom 70 539 0 0 0; -#N canvas 159 26 495 266 output 0; -#X obj 338 160 t b; -#X obj 338 110 f; -#X obj 338 60 inlet; -#X text 344 29 mute; -#X obj 338 185 f; -#X msg 425 178 0; -#X msg 338 85 bang; -#X obj 338 135 moses 1; -#X obj 425 153 t b f; -#X obj 397 117 moses 1; -#X obj 83 148 dbtorms; -#X obj 397 92 r master-lvl; -#X obj 83 42 r master-lvl; -#X obj 338 210 s master-lvl; -#X obj 22 181 inlet~; -#X obj 199 41 inlet; -#X text 199 18 level; -#X obj 199 100 s master-lvl; -#X msg 96 65 set \$1; -#X obj 96 89 outlet; -#X msg 214 64 \; pd dsp 1; -#X obj 83 194 line~; -#X obj 22 212 *~; -#X obj 22 241 dac~; -#X obj 83 171 pack 0 50; -#X text 20 158 audio; -#X text 93 110 show level; -#X connect 0 0 4 0; -#X connect 1 0 7 0; -#X connect 2 0 6 0; -#X connect 4 0 13 0; -#X connect 5 0 13 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 9 1 4 1; -#X connect 10 0 24 0; -#X connect 11 0 1 1; -#X connect 11 0 9 0; -#X connect 12 0 10 0; -#X connect 12 0 18 0; -#X connect 14 0 22 0; -#X connect 15 0 17 0; -#X connect 15 0 20 0; -#X connect 18 0 19 0; -#X connect 21 0 22 1; -#X connect 22 0 23 0; -#X connect 22 0 23 1; -#X connect 24 0 21 0; -#X restore 41 567 pd output; -#X msg 99 539 MUTE; -#X text 138 538 <-- output amplitude; -#X obj 41 212 line~; -#X floatatom 41 164 0 0 0; -#X obj 41 188 pack 0 100; -#X obj 528 110 loadbang; -#X text 35 6 SWEEPING FILTERS; -#N canvas 0 0 600 392 conversion-tables 0; -#N canvas 0 0 450 300 graph1 0; -#X array dbtorms 123 float 1; -#A 0 0 0 1.25893e-05 1.41254e-05 1.58489e-05 1.77828e-05 1.99526e-05 -2.23872e-05 2.51189e-05 2.81838e-05 3.16228e-05 3.54813e-05 3.98107e-05 -4.46684e-05 5.01187e-05 5.62341e-05 6.30957e-05 7.07946e-05 7.94328e-05 -8.91251e-05 1e-04 0.000112202 0.000125893 0.000141254 0.000158489 0.000177828 -0.000199526 0.000223872 0.000251189 0.000281838 0.000316228 0.000354813 -0.000398107 0.000446684 0.000501187 0.000562341 0.000630957 0.000707946 -0.000794328 0.000891251 0.001 0.00112202 0.00125893 0.00141254 0.00158489 -0.00177828 0.00199526 0.00223872 0.00251189 0.00281838 0.00316228 0.00354813 -0.00398107 0.00446684 0.00501187 0.00562341 0.00630957 0.00707946 0.00794328 -0.00891251 0.01 0.0112202 0.0125893 0.0141254 0.0158489 0.0177828 0.0199526 -0.0223872 0.0251189 0.0281838 0.0316228 0.0354813 0.0398107 0.0446684 -0.0501187 0.0562341 0.0630957 0.0707946 0.0794328 0.0891251 0.1 0.112202 -0.125893 0.141254 0.158489 0.177828 0.199526 0.223872 0.251189 0.281838 -0.316228 0.354813 0.398107 0.446684 0.501187 0.562341 0.630957 0.707946 -0.794328 0.891251 1 1.12202 1.25893 1.41254 1.58489 1.77828 1.99526 -2.23872 2.51189 2.81838 3.16228 3.54813 3.98107 4.46684 5.01187 5.62341 -6.30957 7.07946 7.94328 8.91251 10 11.2202 12.5893; -#X coords 0 10 123 0 200 100 1; -#X restore 302 48 graph; -#X text 504 141 0; -#X text 506 41 10; -#X text 321 151 ------ 123 samples ------; -#N canvas 0 0 450 300 graph2 0; -#X array mtof 130 float 1; -#A 0 8.1758 8.66196 9.17702 9.72272 10.3009 10.9134 11.5623 12.2499 -12.9783 13.75 14.5676 15.4339 16.3516 17.3239 18.354 19.4454 20.6017 -21.8268 23.1247 24.4997 25.9565 27.5 29.1352 30.8677 32.7032 34.6478 -36.7081 38.8909 41.2034 43.6535 46.2493 48.9994 51.9131 55 58.2705 -61.7354 65.4064 69.2957 73.4162 77.7817 82.4069 87.3071 92.4986 97.9989 -103.826 110 116.541 123.471 130.813 138.591 146.832 155.563 164.814 -174.614 184.997 195.998 207.652 220 233.082 246.942 261.626 277.183 -293.665 311.127 329.628 349.228 369.994 391.995 415.305 440 466.164 -493.883 523.251 554.365 587.33 622.254 659.255 698.456 739.989 783.991 -830.609 880 932.328 987.767 1046.5 1108.73 1174.66 1244.51 1318.51 -1396.91 1479.98 1567.98 1661.22 1760 1864.66 1975.53 2093 2217.46 2349.32 -2489.02 2637.02 2793.83 2959.96 3135.96 3322.44 3520 3729.31 3951.07 -4186.01 4434.92 4698.64 4978.03 5274.04 5587.65 5919.91 6271.93 6644.88 -7040 7458.62 7902.13 8372.02 8869.84 9397.27 9956.06 10548.1 11175.3 -11839.8 12543.9 13289.8 14080; -#X coords 0 12000 130 0 200 100 1; -#X restore 309 225 graph; -#X text 319 333 ------ 130 samples ------; -#X text 518 318 0; -#X text 520 218 12000; -#X restore 461 256 pd conversion-tables; -#X obj 41 260 phasor~; -#X obj 41 236 tabread4~ mtof; -#X obj 174 384 +~; -#X obj 190 361 line~; -#X obj 190 337 pack 0 100; -#X floatatom 190 313 0 0 0; -#X floatatom 174 164 0 0 0; -#X floatatom 197 238 0 0 0; -#X obj 41 140 r pitch; -#X obj 197 214 r depth; -#X obj 174 140 r speed; -#X obj 190 289 r offset; -#X obj 121 465 r q; -#X floatatom 121 489 0 0 0; -#X obj 41 484 vcf~; -#X obj 41 508 hip~ 5; -#X obj 174 263 *~ 0; -#X obj 174 188 phasor~ 0; -#X obj 174 408 tabread4~ mtof; -#X msg 528 134 \; pitch 48 \; speed -2 \; depth 27 \; offset 56 \; -q 2; -#X text 160 490 <-- Q (selectivity); -#X text 51 277 sawtooth; -#X text 50 291 oscillator; -#X text 228 167 <-- sweep speed; -#X text 265 189 LFO for sweep; -#X text 251 241 <-- sweep depth; -#X text 242 316 <-- base center frequency; -#X text 218 383 add base to sweep; -#X text 307 408 convert to Hz.; -#X text 13 28 If you want actively changing center frequencies \, use -"vcf~" instead of "bp~". The vcf~ module takes an audio signal to set -center frequency. (Q is still set by messages though.) Vcf is somewhat -more expensive than bp~.; -#X text 78 165 <-- pitch; -#X text 13 95 Note the effect of negative and positive sweep speed. -; -#X connect 1 0 2 1; -#X connect 2 0 1 0; -#X connect 3 0 2 2; -#X connect 5 0 12 0; -#X connect 6 0 7 0; -#X connect 7 0 5 0; -#X connect 8 0 30 0; -#X connect 11 0 25 0; -#X connect 12 0 11 0; -#X connect 13 0 29 0; -#X connect 14 0 13 1; -#X connect 15 0 14 0; -#X connect 16 0 15 0; -#X connect 17 0 28 0; -#X connect 18 0 27 1; -#X connect 19 0 6 0; -#X connect 20 0 18 0; -#X connect 21 0 17 0; -#X connect 22 0 16 0; -#X connect 23 0 24 0; -#X connect 24 0 25 2; -#X connect 25 0 26 0; -#X connect 26 0 2 0; -#X connect 27 0 13 0; -#X connect 28 0 27 0; -#X connect 29 0 25 1; diff --git a/pd/doc/3.audio.examples/H04.filter.floyd.pd b/pd/doc/3.audio.examples/H04.filter.floyd.pd deleted file mode 100644 index 02027117..00000000 --- a/pd/doc/3.audio.examples/H04.filter.floyd.pd +++ /dev/null @@ -1,193 +0,0 @@ -#N canvas 133 190 795 593 12; -#X floatatom 44 540 0 0 0; -#N canvas 159 26 495 266 output 0; -#X obj 338 160 t b; -#X obj 338 110 f; -#X obj 338 60 inlet; -#X text 344 29 mute; -#X obj 338 185 f; -#X msg 425 178 0; -#X msg 338 85 bang; -#X obj 338 135 moses 1; -#X obj 425 153 t b f; -#X obj 397 117 moses 1; -#X obj 83 148 dbtorms; -#X obj 397 92 r master-lvl; -#X obj 83 42 r master-lvl; -#X obj 338 210 s master-lvl; -#X obj 22 181 inlet~; -#X obj 199 41 inlet; -#X text 199 18 level; -#X obj 199 100 s master-lvl; -#X msg 96 65 set \$1; -#X obj 96 89 outlet; -#X msg 214 64 \; pd dsp 1; -#X obj 83 194 line~; -#X obj 22 212 *~; -#X obj 22 241 dac~; -#X obj 83 171 pack 0 50; -#X text 20 158 audio; -#X text 93 110 show level; -#X connect 0 0 4 0; -#X connect 1 0 7 0; -#X connect 2 0 6 0; -#X connect 4 0 13 0; -#X connect 5 0 13 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 9 1 4 1; -#X connect 10 0 24 0; -#X connect 11 0 1 1; -#X connect 11 0 9 0; -#X connect 12 0 10 0; -#X connect 12 0 18 0; -#X connect 14 0 22 0; -#X connect 15 0 17 0; -#X connect 15 0 20 0; -#X connect 18 0 19 0; -#X connect 21 0 22 1; -#X connect 22 0 23 0; -#X connect 22 0 23 1; -#X connect 24 0 21 0; -#X restore 15 568 pd output; -#X msg 90 540 MUTE; -#X text 151 539 <-- output amplitude; -#X obj 487 217 loadbang; -#N canvas 0 0 600 392 conversion-tables 0; -#N canvas 0 0 450 300 graph1 0; -#X array dbtorms 123 float 1; -#A 0 0 0 1.25893e-05 1.41254e-05 1.58489e-05 1.77828e-05 1.99526e-05 -2.23872e-05 2.51189e-05 2.81838e-05 3.16228e-05 3.54813e-05 3.98107e-05 -4.46684e-05 5.01187e-05 5.62341e-05 6.30957e-05 7.07946e-05 7.94328e-05 -8.91251e-05 1e-04 0.000112202 0.000125893 0.000141254 0.000158489 0.000177828 -0.000199526 0.000223872 0.000251189 0.000281838 0.000316228 0.000354813 -0.000398107 0.000446684 0.000501187 0.000562341 0.000630957 0.000707946 -0.000794328 0.000891251 0.001 0.00112202 0.00125893 0.00141254 0.00158489 -0.00177828 0.00199526 0.00223872 0.00251189 0.00281838 0.00316228 0.00354813 -0.00398107 0.00446684 0.00501187 0.00562341 0.00630957 0.00707946 0.00794328 -0.00891251 0.01 0.0112202 0.0125893 0.0141254 0.0158489 0.0177828 0.0199526 -0.0223872 0.0251189 0.0281838 0.0316228 0.0354813 0.0398107 0.0446684 -0.0501187 0.0562341 0.0630957 0.0707946 0.0794328 0.0891251 0.1 0.112202 -0.125893 0.141254 0.158489 0.177828 0.199526 0.223872 0.251189 0.281838 -0.316228 0.354813 0.398107 0.446684 0.501187 0.562341 0.630957 0.707946 -0.794328 0.891251 1 1.12202 1.25893 1.41254 1.58489 1.77828 1.99526 -2.23872 2.51189 2.81838 3.16228 3.54813 3.98107 4.46684 5.01187 5.62341 -6.30957 7.07946 7.94328 8.91251 10 11.2202 12.5893; -#X coords 0 10 123 0 200 100 1; -#X restore 302 48 graph; -#X text 504 141 0; -#X text 506 41 10; -#X text 321 151 ------ 123 samples ------; -#N canvas 0 0 450 300 graph2 0; -#X array mtof 130 float 1; -#A 0 8.1758 8.66196 9.17702 9.72272 10.3009 10.9134 11.5623 12.2499 -12.9783 13.75 14.5676 15.4339 16.3516 17.3239 18.354 19.4454 20.6017 -21.8268 23.1247 24.4997 25.9565 27.5 29.1352 30.8677 32.7032 34.6478 -36.7081 38.8909 41.2034 43.6535 46.2493 48.9994 51.9131 55 58.2705 -61.7354 65.4064 69.2957 73.4162 77.7817 82.4069 87.3071 92.4986 97.9989 -103.826 110 116.541 123.471 130.813 138.591 146.832 155.563 164.814 -174.614 184.997 195.998 207.652 220 233.082 246.942 261.626 277.183 -293.665 311.127 329.628 349.228 369.994 391.995 415.305 440 466.164 -493.883 523.251 554.365 587.33 622.254 659.255 698.456 739.989 783.991 -830.609 880 932.328 987.767 1046.5 1108.73 1174.66 1244.51 1318.51 -1396.91 1479.98 1567.98 1661.22 1760 1864.66 1975.53 2093 2217.46 2349.32 -2489.02 2637.02 2793.83 2959.96 3135.96 3322.44 3520 3729.31 3951.07 -4186.01 4434.92 4698.64 4978.03 5274.04 5587.65 5919.91 6271.93 6644.88 -7040 7458.62 7902.13 8372.02 8869.84 9397.27 9956.06 10548.1 11175.3 -11839.8 12543.9 13289.8 14080; -#X coords 0 12000 130 0 200 100 1; -#X restore 309 225 graph; -#X text 319 333 ------ 130 samples ------; -#X text 518 318 0; -#X text 520 218 12000; -#X restore 490 428 pd conversion-tables; -#X obj 250 308 line~; -#X obj 250 284 pack 0 100; -#X floatatom 251 213 0 0 0; -#X obj 171 413 r q; -#X floatatom 171 437 0 0 0; -#X obj 15 492 vcf~; -#X obj 15 516 hip~ 5; -#X obj 250 333 tabread4~ mtof; -#X text 214 436 <-- Q (selectivity); -#X text 277 354 convert to Hz.; -#X text 35 6 ANOTHER SWEEPING FILTER EXAMPLE; -#X obj 15 286 clip~ 0 0.5; -#X obj 15 310 *~ 2; -#X obj 15 334 -~; -#X text 121 270 trick to; -#X text 121 291 make symmetric; -#X text 121 312 triangle wave; -#X obj 31 161 f; -#X obj 64 159 + 1; -#X obj 31 211 tabread array1; -#X obj 31 235 mtof; -#X obj 31 113 r metro; -#X obj 64 183 mod 8; -#X obj 31 259 phasor~ 0; -#N canvas 0 0 450 300 graph1 0; -#X array array1 8 float 0; -#X coords 0 96 8 36 200 100 1; -#X restore 464 75 graph; -#X obj 251 189 r cf; -#X text 293 210 <-- center frequency; -#X obj 31 137 metro 85; -#X obj 15 376 hip~ 5000; -#X obj 15 399 *~ 100; -#X obj 252 237 moses 61; -#X msg 251 260 61; -#X msg 487 241 \; cf 61 \; q 30 \; metro 1 \; array1 0 45 48 50 48 -55 53 55 57; -#X text 13 28 Here's an approximate reconstruction of an old riff by -Pink Floyd (I haven't checked the tempo or transposition against the -original yet.) Because we're filtering a waveform with odd partials -\, it's easier to pick out the partials in the filtered sound.; -#X text 104 352 Here we fudge; -#X text 100 371 to better imitate; -#X text 100 390 the EMS3 bandpass; -#X text 85 403 sound; -#X text 340 231 protect against; -#X text 341 252 hitting the; -#X text 341 271 fundamental; -#X text 137 139 sequencer for; -#X text 137 158 8 note loop; -#X obj 171 459 moses 1; -#X msg 144 459 1; -#X text 241 460 speaker protection; -#X text 437 558 updated for Pd version 0.35; -#X connect 0 0 1 1; -#X connect 1 0 0 0; -#X connect 2 0 1 2; -#X connect 4 0 38 0; -#X connect 6 0 13 0; -#X connect 7 0 6 0; -#X connect 8 0 36 0; -#X connect 9 0 10 0; -#X connect 10 0 49 0; -#X connect 11 0 12 0; -#X connect 12 0 1 0; -#X connect 13 0 11 1; -#X connect 17 0 18 0; -#X connect 18 0 19 0; -#X connect 19 0 34 0; -#X connect 23 0 24 0; -#X connect 23 0 25 0; -#X connect 24 0 28 0; -#X connect 25 0 26 0; -#X connect 26 0 29 0; -#X connect 27 0 33 0; -#X connect 28 0 23 1; -#X connect 29 0 17 0; -#X connect 29 0 19 1; -#X connect 31 0 8 0; -#X connect 33 0 23 0; -#X connect 34 0 35 0; -#X connect 35 0 11 0; -#X connect 36 0 37 0; -#X connect 36 1 7 0; -#X connect 37 0 7 0; -#X connect 49 0 50 0; -#X connect 49 1 11 2; -#X connect 50 0 11 2; diff --git a/pd/doc/3.audio.examples/H05.filter.noise.pd b/pd/doc/3.audio.examples/H05.filter.noise.pd deleted file mode 100644 index 7421c180..00000000 --- a/pd/doc/3.audio.examples/H05.filter.noise.pd +++ /dev/null @@ -1,196 +0,0 @@ -#N canvas 137 175 735 587 12; -#X text 437 559 updated for Pd version 0.26; -#X floatatom 67 397 0 0 0; -#N canvas 159 26 495 266 output 0; -#X obj 338 160 t b; -#X obj 338 110 f; -#X obj 338 60 inlet; -#X text 344 29 mute; -#X obj 338 185 f; -#X msg 425 178 0; -#X msg 338 85 bang; -#X obj 338 135 moses 1; -#X obj 425 153 t b f; -#X obj 397 117 moses 1; -#X obj 83 148 dbtorms; -#X obj 397 92 r master-lvl; -#X obj 83 42 r master-lvl; -#X obj 338 210 s master-lvl; -#X obj 22 181 inlet~; -#X obj 199 41 inlet; -#X text 199 18 level; -#X obj 199 100 s master-lvl; -#X msg 96 65 set \$1; -#X obj 96 89 outlet; -#X msg 214 64 \; pd dsp 1; -#X obj 83 194 line~; -#X obj 22 212 *~; -#X obj 22 241 dac~; -#X obj 83 171 pack 0 50; -#X text 20 158 audio; -#X text 93 110 show level; -#X connect 0 0 4 0; -#X connect 1 0 7 0; -#X connect 2 0 6 0; -#X connect 4 0 13 0; -#X connect 5 0 13 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 9 1 4 1; -#X connect 10 0 24 0; -#X connect 11 0 1 1; -#X connect 11 0 9 0; -#X connect 12 0 10 0; -#X connect 12 0 18 0; -#X connect 14 0 22 0; -#X connect 15 0 17 0; -#X connect 15 0 20 0; -#X connect 18 0 19 0; -#X connect 21 0 22 1; -#X connect 22 0 23 0; -#X connect 22 0 23 1; -#X connect 24 0 21 0; -#X restore 38 425 pd output; -#X msg 96 397 MUTE; -#X text 135 396 <-- output amplitude; -#X obj 515 150 loadbang; -#N canvas 0 0 600 392 conversion-tables 0; -#N canvas 0 0 450 300 graph1 0; -#X array dbtorms 123 float 1; -#A 0 0 0 1.25893e-05 1.41254e-05 1.58489e-05 1.77828e-05 1.99526e-05 -2.23872e-05 2.51189e-05 2.81838e-05 3.16228e-05 3.54813e-05 3.98107e-05 -4.46684e-05 5.01187e-05 5.62341e-05 6.30957e-05 7.07946e-05 7.94328e-05 -8.91251e-05 1e-04 0.000112202 0.000125893 0.000141254 0.000158489 0.000177828 -0.000199526 0.000223872 0.000251189 0.000281838 0.000316228 0.000354813 -0.000398107 0.000446684 0.000501187 0.000562341 0.000630957 0.000707946 -0.000794328 0.000891251 0.001 0.00112202 0.00125893 0.00141254 0.00158489 -0.00177828 0.00199526 0.00223872 0.00251189 0.00281838 0.00316228 0.00354813 -0.00398107 0.00446684 0.00501187 0.00562341 0.00630957 0.00707946 0.00794328 -0.00891251 0.01 0.0112202 0.0125893 0.0141254 0.0158489 0.0177828 0.0199526 -0.0223872 0.0251189 0.0281838 0.0316228 0.0354813 0.0398107 0.0446684 -0.0501187 0.0562341 0.0630957 0.0707946 0.0794328 0.0891251 0.1 0.112202 -0.125893 0.141254 0.158489 0.177828 0.199526 0.223872 0.251189 0.281838 -0.316228 0.354813 0.398107 0.446684 0.501187 0.562341 0.630957 0.707946 -0.794328 0.891251 1 1.12202 1.25893 1.41254 1.58489 1.77828 1.99526 -2.23872 2.51189 2.81838 3.16228 3.54813 3.98107 4.46684 5.01187 5.62341 -6.30957 7.07946 7.94328 8.91251 10 11.2202 12.5893; -#X coords 0 10 123 0 200 100 1; -#X restore 70 45 graph; -#X text 272 138 0; -#X text 274 38 10; -#X text 89 148 ------ 123 samples ------; -#N canvas 0 0 450 300 graph2 0; -#X array mtof 130 float 1; -#A 0 8.1758 8.66196 9.17702 9.72272 10.3009 10.9134 11.5623 12.2499 -12.9783 13.75 14.5676 15.4339 16.3516 17.3239 18.354 19.4454 20.6017 -21.8268 23.1247 24.4997 25.9565 27.5 29.1352 30.8677 32.7032 34.6478 -36.7081 38.8909 41.2034 43.6535 46.2493 48.9994 51.9131 55 58.2705 -61.7354 65.4064 69.2957 73.4162 77.7817 82.4069 87.3071 92.4986 97.9989 -103.826 110 116.541 123.471 130.813 138.591 146.832 155.563 164.814 -174.614 184.997 195.998 207.652 220 233.082 246.942 261.626 277.183 -293.665 311.127 329.628 349.228 369.994 391.995 415.305 440 466.164 -493.883 523.251 554.365 587.33 622.254 659.255 698.456 739.989 783.991 -830.609 880 932.328 987.767 1046.5 1108.73 1174.66 1244.51 1318.51 -1396.91 1479.98 1567.98 1661.22 1760 1864.66 1975.53 2093 2217.46 2349.32 -2489.02 2637.02 2793.83 2959.96 3135.96 3322.44 3520 3729.31 3951.07 -4186.01 4434.92 4698.64 4978.03 5274.04 5587.65 5919.91 6271.93 6644.88 -7040 7458.62 7902.13 8372.02 8869.84 9397.27 9956.06 10548.1 11175.3 -11839.8 12543.9 13289.8 14080; -#X coords 0 12000 130 0 200 100 1; -#X restore 77 222 graph; -#X text 87 330 ------ 130 samples ------; -#X text 286 315 0; -#X text 288 215 12000; -#N canvas 244 212 672 338 regenerate-tables 0; -#X msg 415 84 bang; -#X obj 415 113 t b b; -#X obj 474 177 f; -#X obj 512 177 + 1; -#X msg 483 147 0; -#X obj 415 142 until; -#X obj 474 211 t f f; -#X obj 414 238 mtof; -#X obj 405 202 sel 129; -#X obj 413 264 tabwrite mtof; -#X obj 35 227 moses 2; -#X msg 19 76 bang; -#X obj 19 105 t b b; -#X obj 90 166 f; -#X obj 128 166 + 1; -#X msg 112 138 0; -#X obj 19 134 until; -#X obj 11 194 sel 122; -#X msg 35 258 0; -#X obj 79 259 dbtorms; -#X obj 90 194 t f f; -#X obj 35 291 tabwrite dbtorms; -#X text 18 49 bang to recalculate dbtorms table; -#X text 356 50 bang to recalculate the mtof table; -#X connect 0 0 1 0; -#X connect 1 0 5 0; -#X connect 1 1 4 0; -#X connect 2 0 3 0; -#X connect 2 0 6 0; -#X connect 2 0 8 0; -#X connect 3 0 2 1; -#X connect 4 0 2 1; -#X connect 5 0 2 0; -#X connect 6 0 7 0; -#X connect 6 1 9 1; -#X connect 7 0 9 0; -#X connect 8 0 5 1; -#X connect 10 0 18 0; -#X connect 10 1 19 0; -#X connect 11 0 12 0; -#X connect 12 0 16 0; -#X connect 12 1 15 0; -#X connect 13 0 14 0; -#X connect 13 0 17 0; -#X connect 13 0 20 0; -#X connect 14 0 13 1; -#X connect 15 0 13 1; -#X connect 16 0 13 0; -#X connect 17 0 16 1; -#X connect 18 0 21 0; -#X connect 19 0 21 0; -#X connect 20 0 10 0; -#X connect 20 1 21 1; -#X restore 375 76 pd regenerate-tables; -#X restore 449 418 pd conversion-tables; -#X obj 49 201 line~; -#X obj 49 177 pack 0 100; -#X floatatom 49 151 0 0 0; -#X obj 88 254 r q; -#X floatatom 88 278 0 0 0; -#X obj 38 342 vcf~; -#X obj 38 366 hip~ 5; -#X obj 49 226 tabread4~ mtof; -#X text 124 277 <-- Q (selectivity); -#X obj 49 127 r cf; -#X text 84 145 <-- center frequency; -#X text 35 6 FILTERING NOISE; -#X obj 39 102 noise~; -#X msg 515 174 \; cf 60 \; q 3 \;; -#X text 13 28 THe noise~ module puts out unit-amplitude white noise. -Be careful again here about surging amplitudes if Q hits zero.; -#X obj 88 305 moses 1; -#X msg 60 305 1; -#X connect 1 0 2 1; -#X connect 2 0 1 0; -#X connect 3 0 2 2; -#X connect 5 0 20 0; -#X connect 7 0 14 0; -#X connect 8 0 7 0; -#X connect 9 0 8 0; -#X connect 10 0 11 0; -#X connect 11 0 22 0; -#X connect 12 0 13 0; -#X connect 13 0 2 0; -#X connect 14 0 12 1; -#X connect 16 0 9 0; -#X connect 19 0 12 0; -#X connect 22 0 23 0; -#X connect 22 1 12 2; -#X connect 23 0 12 2; diff --git a/pd/doc/3.audio.examples/H07.ssb.modulation.pd b/pd/doc/3.audio.examples/H07.ssb.modulation.pd deleted file mode 100644 index 968b3b45..00000000 --- a/pd/doc/3.audio.examples/H07.ssb.modulation.pd +++ /dev/null @@ -1,150 +0,0 @@ -#N canvas 7 6 923 594 12; -#X obj 170 349 phasor~ 0; -#X obj 170 393 cos~; -#X obj 206 371 +~ -0.25; -#X obj 206 394 cos~; -#X obj 23 438 *~; -#X obj 88 438 *~; -#X obj 22 462 -~; -#X floatatom 170 322 0 0 0; -#X obj 23 238 tabread4~ array1; -#X obj 23 67 r totsamps; -#X obj 23 142 /; -#X obj 23 190 *~ 0; -#X obj 23 166 phasor~ 0; -#X obj 23 214 +~ 1; -#X msg 23 117 44100; -#X obj 23 91 t b f; -#X obj 62 190 r totsamps; -#X msg 636 38 \; pd dsp 0; -#X text 429 14 START; -#X text 653 20 STOP; -#X floatatom 51 499 0 0 0; -#N canvas 159 26 495 266 output 0; -#X obj 338 160 t b; -#X obj 338 110 f; -#X obj 338 60 inlet; -#X text 344 29 mute; -#X obj 338 185 f; -#X msg 425 178 0; -#X msg 338 85 bang; -#X obj 338 135 moses 1; -#X obj 425 153 t b f; -#X obj 397 117 moses 1; -#X obj 83 148 dbtorms; -#X obj 397 92 r master-lvl; -#X obj 83 42 r master-lvl; -#X obj 338 210 s master-lvl; -#X obj 22 181 inlet~; -#X obj 199 41 inlet; -#X text 199 18 level; -#X obj 199 100 s master-lvl; -#X msg 96 65 set \$1; -#X obj 96 89 outlet; -#X msg 214 64 \; pd dsp 1; -#X obj 83 194 line~; -#X obj 22 212 *~; -#X obj 22 241 dac~; -#X obj 83 171 pack 0 50; -#X text 20 158 audio; -#X text 93 110 show level; -#X connect 0 0 4 0; -#X connect 1 0 7 0; -#X connect 2 0 6 0; -#X connect 4 0 13 0; -#X connect 5 0 13 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 9 1 4 1; -#X connect 10 0 24 0; -#X connect 11 0 1 1; -#X connect 11 0 9 0; -#X connect 12 0 10 0; -#X connect 12 0 18 0; -#X connect 14 0 22 0; -#X connect 15 0 17 0; -#X connect 15 0 20 0; -#X connect 18 0 19 0; -#X connect 21 0 22 1; -#X connect 22 0 23 0; -#X connect 22 0 23 1; -#X connect 24 0 21 0; -#X restore 22 527 pd output; -#X msg 87 500 MUTE; -#X text 121 499 <-- output amplitude; -#N canvas 0 0 600 388 hilbert 0; -#X obj 166 190 biquad~ 0.83774 -0.06338 0.06338 -0.83774 1; -#X obj 166 164 biquad~ 1.94632 -0.94657 0.94657 -1.94632 1; -#X obj 99 111 biquad~ -0.02569 0.260502 -0.260502 0.02569 1; -#X obj 99 137 biquad~ 1.8685 -0.870686 0.870686 -1.8685 1; -#X obj 98 76 inlet~; -#X obj 166 213 outlet~; -#X obj 99 213 outlet~; -#X text 95 261 This is a pair of all-pass filters whose outputs somehow -manage to be about 90 degrees out of phase from each other. I don't -know what phase relation they have with the original signal. I adapted -this from a 4X patch by Emmanuel Favreau \, circa 1982; -#X connect 0 0 5 0; -#X connect 1 0 0 0; -#X connect 2 0 3 0; -#X connect 3 0 6 0; -#X connect 4 0 1 0; -#X connect 4 0 2 0; -#X restore 23 400 pd hilbert; -#X graph graph1 0 -1 155947 1 441 284 641 134; -#X array array1 155948 float 0; -#X pop; -#X text 36 257 sample loop for; -#X text 36 271 test signal; -#X text 35 314 pair of allpass; -#X text 34 333 filters to make; -#X text 34 353 90 degree phase; -#X text 32 373 shifted versions; -#X text 201 323 <-- shift frequency; -#X text 122 438 <-- complex multiply; -#X text 123 452 (calculate real part); -#X text 161 412 cosine and sine waves; -#X text 55 7 SINGLE SIDEBAND MODULATION; -#X text 55 26 (AKA FREQUENCY SHIFTING); -#X text 394 296 The signal sideband modulator gives you only one sideband -for each frequency in teh input signal (whereas ring modulation gave -both a positie and negative sideband.) You can set the shift frequency -positive to shift all frequencies upward \, or negative to shift them -downwards.; -#X obj 484 417 r readfile; -#X msg 334 34 \; readfile ../sound/bell.aiff \; pd dsp 1; -#X obj 484 444 symbol; -#X msg 483 470 read -resize \$1 array1; -#X obj 483 496 soundfiler; -#X obj 483 521 s totsamps; -#X text 671 568 updated for Pd version 0.33; -#X connect 0 0 2 0; -#X connect 0 0 1 0; -#X connect 1 0 4 1; -#X connect 2 0 3 0; -#X connect 3 0 5 1; -#X connect 4 0 6 0; -#X connect 5 0 6 1; -#X connect 6 0 21 0; -#X connect 7 0 0 0; -#X connect 8 0 24 0; -#X connect 9 0 15 0; -#X connect 10 0 12 0; -#X connect 11 0 13 0; -#X connect 12 0 11 0; -#X connect 13 0 8 0; -#X connect 14 0 10 0; -#X connect 15 0 14 0; -#X connect 15 1 10 1; -#X connect 16 0 11 1; -#X connect 20 0 21 1; -#X connect 21 0 20 0; -#X connect 22 0 21 2; -#X connect 24 0 4 0; -#X connect 24 1 5 0; -#X connect 39 0 41 0; -#X connect 41 0 42 0; -#X connect 42 0 43 0; -#X connect 43 0 44 0; diff --git a/pd/doc/3.audio.examples/J03.qlist.pd b/pd/doc/3.audio.examples/J03.qlist.pd deleted file mode 100644 index 58495ca1..00000000 --- a/pd/doc/3.audio.examples/J03.qlist.pd +++ /dev/null @@ -1,102 +0,0 @@ -#N canvas 233 179 684 516 12; -#X floatatom 57 459 0 0 0; -#N canvas 159 26 497 272 output 0; -#X obj 338 160 t b; -#X obj 338 110 f; -#X obj 338 60 inlet; -#X text 344 29 mute; -#X obj 338 185 f; -#X msg 425 178 0; -#X msg 338 85 bang; -#X obj 338 135 moses 1; -#X obj 425 153 t b f; -#X obj 397 117 moses 1; -#X obj 83 148 dbtorms; -#X obj 397 92 r master-lvl; -#X obj 83 42 r master-lvl; -#X obj 338 210 s master-lvl; -#X obj 22 182 inlet~; -#X obj 199 41 inlet; -#X text 199 18 level; -#X obj 199 100 s master-lvl; -#X msg 96 65 set \$1; -#X obj 96 89 outlet; -#X msg 214 64 \; pd dsp 1; -#X obj 83 194 line~; -#X obj 22 212 *~; -#X obj 22 241 dac~; -#X obj 83 171 pack 0 50; -#X text 20 159 audio; -#X text 93 110 show level; -#X connect 0 0 4 0; -#X connect 1 0 7 0; -#X connect 2 0 6 0; -#X connect 4 0 13 0; -#X connect 5 0 13 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 9 1 4 1; -#X connect 10 0 24 0; -#X connect 11 0 1 1; -#X connect 11 0 9 0; -#X connect 12 0 10 0; -#X connect 12 0 18 0; -#X connect 14 0 22 0; -#X connect 15 0 17 0; -#X connect 15 0 20 0; -#X connect 18 0 19 0; -#X connect 21 0 22 1; -#X connect 22 0 23 0; -#X connect 22 0 23 1; -#X connect 24 0 21 0; -#X restore 19 488 pd output; -#X msg 95 459 MUTE; -#X obj 19 211 osc-voice amp1 pit1; -#X obj 19 240 osc-voice amp2 pit2; -#X obj 19 269 osc-voice amp3 pit3; -#X obj 19 298 osc-voice amp4 pit4; -#X obj 19 327 osc-voice amp5 pit5; -#X obj 19 356 osc-voice amp6 pit6; -#X obj 19 385 osc-voice amp7 pit7; -#X obj 19 414 osc-voice amp8 pit8; -#X obj 467 382 qlist; -#X msg 389 226 stop; -#X msg 527 339 read qlist.txt; -#X obj 527 294 loadbang; -#X text 261 203 start; -#X text 391 202 stop; -#X text 537 318 reread file; -#X msg 470 238 rewind; -#X msg 538 238 next; -#X msg 258 254 tempo 100 \, bang; -#X msg 253 227 tempo 1 \, bang; -#X text 82 11 USING QLIST TO SEQUENCE AN OSCILLATOR BANK; -#X text 474 215 single step; -#X obj 556 454 r #; -#X text 35 61 Here is an eight voice additive synthesis patch controlled -by a qlist. Open a text editor on the file \, "qlist.txt" \, to see -how the oscillators' amplitudes and frequencies are specified. The -abstraction \, "osc-voice" \, shows an effective way to make patches -react to qlists but also to mousing.; -#X text 258 453 this is where qlist comments go:; -#X text 418 485 updatged for Pd version 0.34; -#X connect 0 0 1 1; -#X connect 1 0 0 0; -#X connect 2 0 1 2; -#X connect 3 0 4 0; -#X connect 4 0 5 0; -#X connect 5 0 6 0; -#X connect 6 0 7 0; -#X connect 7 0 8 0; -#X connect 8 0 9 0; -#X connect 9 0 10 0; -#X connect 10 0 1 0; -#X connect 12 0 11 0; -#X connect 13 0 11 0; -#X connect 14 0 13 0; -#X connect 18 0 11 0; -#X connect 19 0 11 0; -#X connect 20 0 11 0; -#X connect 21 0 11 0; diff --git a/pd/doc/3.audio.examples/J04.more.adsr.pd b/pd/doc/3.audio.examples/J04.more.adsr.pd deleted file mode 100644 index 5b38917a..00000000 --- a/pd/doc/3.audio.examples/J04.more.adsr.pd +++ /dev/null @@ -1,117 +0,0 @@ -#N canvas 105 38 705 609 12; -#X obj 39 140 r trigger; -#X floatatom 70 376 0 0 0; -#N canvas 159 26 495 266 output 0; -#X obj 351 166 t b; -#X obj 351 114 f; -#X obj 351 62 inlet; -#X text 358 30 mute; -#X obj 351 192 f; -#X msg 442 185 0; -#X msg 351 88 bang; -#X obj 351 140 moses 1; -#X obj 442 159 t b f; -#X obj 413 122 moses 1; -#X obj 86 154 dbtorms; -#X obj 413 96 r master-lvl; -#X obj 86 44 r master-lvl; -#X obj 351 218 s master-lvl; -#X obj 23 188 inlet~; -#X obj 207 42 inlet; -#X text 207 19 level; -#X obj 207 104 s master-lvl; -#X msg 100 67 set \$1; -#X obj 100 93 outlet; -#X msg 222 66 \; pd dsp 1; -#X obj 86 202 line~; -#X obj 23 221 *~; -#X obj 23 250 dac~; -#X obj 86 178 pack 0 50; -#X text 21 165 audio; -#X text 97 114 show level; -#X connect 0 0 4 0; -#X connect 1 0 7 0; -#X connect 2 0 6 0; -#X connect 4 0 13 0; -#X connect 5 0 13 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 9 1 4 1; -#X connect 10 0 24 0; -#X connect 11 0 1 1; -#X connect 11 0 9 0; -#X connect 12 0 10 0; -#X connect 12 0 18 0; -#X connect 14 0 22 0; -#X connect 15 0 17 0; -#X connect 15 0 20 0; -#X connect 18 0 19 0; -#X connect 21 0 22 1; -#X connect 22 0 23 0; -#X connect 22 0 23 1; -#X connect 24 0 21 0; -#X restore 39 406 pd output; -#X msg 107 376 MUTE; -#X text 150 375 <-- output amplitude; -#X text 518 189 <-- attack; -#X text 485 281 <-- release; -#X obj 39 338 *~; -#X obj 39 282 *~; -#X obj 39 310 *~; -#X obj 80 340 osc~ 440; -#X text 88 9 ADSR envelope; -#X text 35 29 You can use the quartic trick to simplify patches using -ADSR envelopes. For amplitude control it's especially simple. It's -usually good enough in practice to control amplitudes by ranging an -ADSR from 0 to 1 (divide by 100 so your input range can be a comfortable -0-100) \, then take fourth power:; -#X obj 77 227 / 100; -#X floatatom 77 197 3 0 100; -#X msg 383 269 \; trigger 0; -#X obj 39 166 unpack; -#X floatatom 39 197 1 0 100; -#X msg 383 175 \; trigger 1 100; -#X text 503 229 <-- softer attack; -#X msg 382 222 \; trigger 1 60; -#X text 441 583 updated for Pd version 0.34; -#X text 14 437 Note that the units aren't dB \; for most of the range -0-100 it's about 0.4 dB per unit. If you want something closer to dB -\, you can set the scale as 0-40 instead of 0-100 (just change "/ 100" -to "/ 40") and then you'll get the response shown in the first patch -in this section.; -#X obj 596 519 *~; -#X obj 596 547 *~; -#X floatatom 605 390 3 0 100; -#X obj 605 416 mtof; -#X obj 605 441 sqrt; -#X obj 605 466 sqrt; -#X text 174 526 To use ADSR to control pitch \, you should; -#X text 173 545 usually just use real pitch units like this-->; -#X obj 596 490 adsr 0; -#X obj 39 253 adsr 0 100 200 70 300; -#X connect 0 0 16 0; -#X connect 1 0 2 1; -#X connect 2 0 1 0; -#X connect 3 0 2 2; -#X connect 7 0 2 0; -#X connect 8 0 9 0; -#X connect 8 0 9 1; -#X connect 9 0 7 0; -#X connect 10 0 7 1; -#X connect 13 0 32 1; -#X connect 14 0 13 0; -#X connect 16 0 17 0; -#X connect 16 1 14 0; -#X connect 17 0 32 0; -#X connect 23 0 24 0; -#X connect 23 0 24 1; -#X connect 25 0 26 0; -#X connect 26 0 27 0; -#X connect 27 0 28 0; -#X connect 28 0 31 1; -#X connect 31 0 23 0; -#X connect 31 0 23 1; -#X connect 32 0 8 0; -#X connect 32 0 8 1; diff --git a/pd/doc/3.audio.examples/J05.vibrato.pd b/pd/doc/3.audio.examples/J05.vibrato.pd deleted file mode 100644 index 78c38efd..00000000 --- a/pd/doc/3.audio.examples/J05.vibrato.pd +++ /dev/null @@ -1,158 +0,0 @@ -#N canvas 80 10 736 726 12; -#X obj 27 220 r trigger; -#X floatatom 65 581 0 0 0; -#N canvas 159 26 531 288 output 0; -#X obj 351 166 t b; -#X obj 351 114 f; -#X obj 351 62 inlet; -#X text 358 30 mute; -#X obj 351 192 f; -#X msg 442 185 0; -#X msg 351 88 bang; -#X obj 351 140 moses 1; -#X obj 413 122 moses 1; -#X obj 86 154 dbtorms; -#X obj 413 96 r master-lvl; -#X obj 86 44 r master-lvl; -#X obj 351 218 s master-lvl; -#X obj 24 163 inlet~; -#X obj 207 42 inlet; -#X text 207 19 level; -#X obj 207 104 s master-lvl; -#X msg 100 67 set \$1; -#X obj 100 93 outlet; -#X msg 222 66 \; pd dsp 1; -#X obj 86 202 line~; -#X obj 23 221 *~; -#X obj 23 250 dac~; -#X obj 86 178 pack 0 50; -#X text 22 140 audio; -#X obj 442 159 t b; -#X obj 21 191 hip~ 1; -#X connect 0 0 4 0; -#X connect 1 0 7 0; -#X connect 2 0 6 0; -#X connect 4 0 12 0; -#X connect 5 0 12 0; -#X connect 6 0 1 0; -#X connect 7 0 0 0; -#X connect 7 1 25 0; -#X connect 8 1 4 1; -#X connect 9 0 23 0; -#X connect 10 0 1 1; -#X connect 10 0 8 0; -#X connect 11 0 9 0; -#X connect 11 0 17 0; -#X connect 13 0 26 0; -#X connect 14 0 16 0; -#X connect 14 0 19 0; -#X connect 17 0 18 0; -#X connect 20 0 21 1; -#X connect 21 0 22 0; -#X connect 21 0 22 1; -#X connect 23 0 20 0; -#X connect 25 0 5 0; -#X connect 26 0 21 0; -#X restore 26 610 pd output; -#X msg 102 581 MUTE; -#X obj 27 446 *~; -#X obj 27 474 *~; -#X floatatom 62 277 3 0 100; -#X msg 484 482 \; trigger 0; -#X obj 27 246 unpack; -#X floatatom 27 277 1 0 100; -#X text 463 668 updated for Pd version 0.34; -#X obj 26 525 +~ 0.3; -#X obj 26 551 cos~; -#X obj 26 499 osc~; -#X text 88 9 PORTAMENTO AND VIBRATO; -#X obj 62 300 mtof; -#X obj 62 325 sqrt; -#X obj 62 350 sqrt; -#X text 619 402 <-- midC; -#X text 607 444 <-- octave up; -#X msg 484 388 \; trigger 1 60; -#X msg 483 435 \; trigger 1 72; -#X text 584 488 <-- release; -#X text 590 506 is optional; -#X obj 27 416 *~; -#X obj 236 396 +~ 1; -#X graph graph1 0 -1 130 1 433 643 633 543; -#X array array62 131 float 1; -#A 0 0.970031 1 0.970031 0.881921 0.740952 0.555571 0.336891 0.0980184 --0.146729 -0.382682 -0.595698 -0.773009 -0.88 -0.9 -0.92 -0.92 -0.85773 --0.707109 -0.514106 -0.290288 -0.0490716 0.195086 0.427551 0.63439 -0.803205 0.86 0.88 0.88 0.88 0.84 0.82 0.471402 0.242986 6.63397e-06 --0.242974 -0.471391 -0.671554 -0.831465 -0.941541 -0.995184 -0.989178 --0.923883 -0.803213 -0.68 -0.42 -0.24 0.1 0.4 0.6 0.7071 0.857723 0.956937 -0.998795 0.980787 0.903994 0.773018 0.595708 0.382694 0.146742 -0.0980052 --0.336878 -0.55556 -0.7 -0.8 -0.88 -0.88 -0.88 -0.84 -0.82 -0.555582 --0.336903 -0.0980316 0.146716 0.38267 0.595687 0.773001 0.903983 0.980782 -0.998796 0.956945 0.857737 0.707119 0.514117 0.290301 0.0490849 -0.195073 --0.427539 -0.63438 -0.803197 -0.923873 -0.989174 -0.995187 -0.94155 --0.83148 -0.671573 -0.471414 -0.242999 -1.99019e-05 0.242961 0.471379 -0.671544 0.831458 0.88 0.9 0.9 0.88 0.803221 0.63441 0.08 -0.14 -0.28 --0.48 -0.64 -0.72 -0.857717 -0.956933 -0.998794 -0.98079 -0.904 -0.773026 --0.595719 -0.382706 -0.146755 0.097992 0.336866 0.555549 0.740934 0.881909 -0.970025 1 0.970038; -#X pop; -#X obj 236 342 tabosc4~ array62; -#X floatatom 236 286 3 0 0; -#X obj 236 313 / 6; -#X obj 236 370 *~; -#X floatatom 390 323 3 0 0; -#X text 235 421 since we'll multiply \,; -#X text 234 436 vibrato output should; -#X text 234 453 be centered at 1 \, not 0; -#X text 275 372 multiply by vib depth; -#X obj 390 350 / 6923; -#X text 28 35 Portamento can be treated as a special case of an ADSR -envelope \, with 100 percent sustain. Vibrato is properly computed -in units of pitch \, but it's also easy to add vibrato to the envelope--before -raising it to the fourth power \, so that it acts pseudo-logarithmically. -Rather than add to the ADSR output \, we multiply a signal which controls -relative frequency. The relative frequency change is one plus an oscillator. -; -#X text 61 417 apply vibrato; -#X text 65 445 fourth; -#X text 68 461 power; -#X text 96 529 waveform; -#X text 95 509 simple; -#X text 465 344 4/(exp(log(2)/1200)-1); -#X text 469 325 conversion factor is; -#X text 383 279 vibrato depth; -#X text 382 296 in cents; -#X text 233 245 vibrato speed; -#X text 232 262 in Hertz; -#X text 152 168 I made a table with 6 cycles of vibrato and made small -changes with the mouse to get a not-exactly-repeating vibrato \, and -thus have to divide vibrato frequency by 6 You can just use a sine -or triangle wave if you prefer.; -#X obj 27 375 adsr 0 100 200 100 300; -#X connect 0 0 8 0; -#X connect 1 0 2 1; -#X connect 2 0 1 0; -#X connect 3 0 2 2; -#X connect 4 0 5 0; -#X connect 4 0 5 1; -#X connect 5 0 13 0; -#X connect 6 0 15 0; -#X connect 8 0 9 0; -#X connect 8 1 6 0; -#X connect 9 0 50 0; -#X connect 11 0 12 0; -#X connect 12 0 2 0; -#X connect 13 0 11 0; -#X connect 15 0 16 0; -#X connect 16 0 17 0; -#X connect 17 0 50 1; -#X connect 24 0 4 0; -#X connect 24 0 4 1; -#X connect 25 0 24 1; -#X connect 27 0 30 0; -#X connect 28 0 29 0; -#X connect 29 0 27 0; -#X connect 30 0 25 0; -#X connect 31 0 36 0; -#X connect 36 0 30 1; -#X connect 50 0 24 0; diff --git a/pd/doc/3.audio.examples/J06.adsr.sequenced.pd b/pd/doc/3.audio.examples/J06.adsr.sequenced.pd deleted file mode 100644 index 26300054..00000000 --- a/pd/doc/3.audio.examples/J06.adsr.sequenced.pd +++ /dev/null @@ -1,217 +0,0 @@ -#N canvas 32 15 950 613 12; -#X obj 33 220 r trigger; -#X floatatom 70 520 0 0 0; -#N canvas 159 26 584 307 output 0; -#X obj 390 189 t b; -#X obj 390 129 f; -#X obj 390 69 inlet; -#X text 397 32 mute; -#X obj 390 219 f; -#X msg 451 217 0; -#X msg 390 99 bang; -#X obj 390 159 moses 1; -#X obj 460 137 moses 1; -#X obj 100 178 dbtorms; -#X obj 460 107 r master-lvl; -#X obj 100 50 r master-lvl; -#X obj 390 249 s master-lvl; -#X obj 26 217 inlet~; -#X obj 239 49 inlet; -#X text 239 22 level; -#X obj 239 120 s master-lvl; -#X msg 115 78 set \$1; -#X obj 115 107 outlet; -#X msg 257 77 \; pd dsp 1; -#X obj 100 233 line~; -#X obj 26 254 *~; -#X obj 26 289 dac~; -#X obj 100 205 pack 0 50; -#X text 24 190 audio; -#X text 112 132 show level; -#X connect 0 0 4 0; -#X connect 1 0 7 0; -#X connect 2 0 6 0; -#X connect 4 0 12 0; -#X connect 5 0 12 0; -#X connect 6 0 1 0; -#X connect 7 0 0 0; -#X connect 7 1 5 0; -#X connect 8 1 4 1; -#X connect 9 0 23 0; -#X connect 10 0 1 1; -#X connect 10 0 8 0; -#X connect 11 0 9 0; -#X connect 11 0 17 0; -#X connect 13 0 21 0; -#X connect 14 0 16 0; -#X connect 14 0 19 0; -#X connect 17 0 18 0; -#X connect 20 0 21 1; -#X connect 21 0 22 0; -#X connect 21 0 22 1; -#X connect 23 0 20 0; -#X restore 32 546 pd output; -#X msg 108 521 MUTE; -#X obj 33 438 *~; -#X obj 33 331 *~ 0.01; -#X obj 33 366 *~; -#X obj 33 396 *~; -#X obj 80 360 r pitch; -#X obj 80 410 mtof; -#X floatatom 80 385 4 0 0; -#X floatatom 57 272 4 0 0; -#X obj 57 247 r level; -#X floatatom 131 272 4 0 0; -#X obj 131 247 r attack; -#X floatatom 216 272 4 0 0; -#X obj 216 247 r decay; -#X floatatom 291 272 4 0 0; -#X floatatom 385 272 4 0 0; -#X obj 291 247 r sustain; -#X obj 385 247 r release; -#X obj 509 106 r note; -#X msg 510 195 \; trigger 1; -#X obj 634 185 del; -#X msg 634 210 \; trigger 0; -#X obj 9 167 qlist; -#X obj 8 6 r qlist; -#X msg 30 35 bang; -#X msg 30 60 rewind; -#X obj 37 89 r tempo; -#X floatatom 37 114 4 0 0; -#X msg 37 139 tempo \$1; -#X obj 509 156 t b f; -#X obj 564 157 s pitch; -#X obj 656 120 r duration; -#X floatatom 656 145 4 0 0; -#X floatatom 509 131 4 0 0; -#X obj 289 320 r trigger; -#X floatatom 315 376 4 0 0; -#X floatatom 387 406 4 0 0; -#X floatatom 477 406 4 0 0; -#X floatatom 563 406 4 0 0; -#X floatatom 659 406 4 0 0; -#X obj 315 351 r level2; -#X obj 387 381 r attack2; -#X obj 477 381 r decay2; -#X obj 563 381 r sustain2; -#X obj 659 381 r release2; -#X obj 80 435 tabosc4~ array1; -#X floatatom 239 366 4 0 0; -#X obj 33 482 vcf~; -#X floatatom 140 488 4 0 0; -#X obj 140 463 r q; -#X obj 33 306 adsr 0 0 0 0 0; -#X obj 289 444 adsr 0 0 0 0 0; -#X obj 315 401 / 69.23; -#X obj 239 391 mtof; -#X obj 239 416 sqrt; -#X obj 239 441 sqrt; -#X obj 197 336 r filter; -#X obj 240 494 *~; -#X obj 240 519 *~; -#X obj 289 469 +~ 1; -#X obj 239 466 *~; -#X text 139 215 ADSR for amplitude:; -#X text 402 300 ADSR for filter. Here \, I thought it better to make -the envelope modify a constant "filter pitch"--so the "filter" receive -gets the "mtof" treatment and the ADSR is an offset in halftones (thus -the "/ 69.23" as compared to the previous patch.); -#X text 141 5 USING QLIST TO MAKE SEQUENCES OF "NOTES"; -#N canvas -10 258 703 380 otherstuff 0; -#X obj 289 86 loadbang; -#X obj 418 85 loadbang; -#X graph graph2 0 -1 66 1 62 221 262 81; -#X array array1 67 float 1; -#A 0 0 0 0 0 0.714286 0.742857 0.757143 0.771429 0.778571 0.785714 -0.785714 0.785714 0.785714 0.790476 0.795238 0.614286 0.585714 0.442857 -0.271429 -0.128571 -0.142857 -0.157143 -0.171429 -0.642857 -0.528571 --0.614286 -0.685714 -0.828571 -0.828571 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -0.557143 0.571429 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; -#X pop; -#X msg 418 115 \; qlist read qlist2.txt; -#X msg 289 111 \; level 100 \; attack 20 \; decay 300 \; sustain 70 -\; release 300 \; duration 300 \; pitch 72 \; filter 38 \; level2 49 -\; attack2 19 \; decay2 300 \; sustain2 17 \; release2 700 \; q 3 \; -tempo 1; -#X connect 0 0 4 0; -#X connect 1 0 3 0; -#X restore 32 571 pd otherstuff; -#X text 82 34 <--start loop; -#X text 99 62 <--stop loop; -#X text 85 114 <--set tempo; -#X text 248 34 The qlist reads the file \, "qlist2.txt" \, which contains -four "note" messages and a message at the end that restarts the qlist -at the beginning. The "note" messages are translated into a pitch change -and triggers for the ADSRs:; -#X text 694 573 updated for Pd version 0.34; -#X text 155 573 <--loadbangs and table; -#X msg 468 518 \; qlist read qlist2.txt; -#X text 462 494 click to reload qlist2.txt; -#X text 149 521 <--output; -#X connect 0 0 53 0; -#X connect 1 0 2 1; -#X connect 2 0 1 0; -#X connect 3 0 2 2; -#X connect 4 0 50 0; -#X connect 5 0 6 0; -#X connect 5 0 6 1; -#X connect 6 0 7 0; -#X connect 6 0 7 1; -#X connect 7 0 4 0; -#X connect 8 0 10 0; -#X connect 9 0 48 0; -#X connect 10 0 9 0; -#X connect 11 0 53 1; -#X connect 12 0 11 0; -#X connect 13 0 53 2; -#X connect 14 0 13 0; -#X connect 15 0 53 3; -#X connect 16 0 15 0; -#X connect 17 0 53 4; -#X connect 18 0 53 5; -#X connect 19 0 17 0; -#X connect 20 0 18 0; -#X connect 21 0 36 0; -#X connect 23 0 24 0; -#X connect 26 0 25 0; -#X connect 27 0 25 0; -#X connect 28 0 25 0; -#X connect 29 0 30 0; -#X connect 30 0 31 0; -#X connect 31 0 25 0; -#X connect 32 0 23 0; -#X connect 32 0 22 0; -#X connect 32 1 33 0; -#X connect 34 0 35 0; -#X connect 35 0 23 1; -#X connect 36 0 32 0; -#X connect 37 0 54 0; -#X connect 38 0 55 0; -#X connect 39 0 54 2; -#X connect 40 0 54 3; -#X connect 41 0 54 4; -#X connect 42 0 54 5; -#X connect 43 0 38 0; -#X connect 44 0 39 0; -#X connect 45 0 40 0; -#X connect 46 0 41 0; -#X connect 47 0 42 0; -#X connect 48 0 4 1; -#X connect 49 0 56 0; -#X connect 50 0 2 0; -#X connect 51 0 50 2; -#X connect 52 0 51 0; -#X connect 53 0 5 0; -#X connect 54 0 62 0; -#X connect 55 0 54 1; -#X connect 56 0 57 0; -#X connect 57 0 58 0; -#X connect 58 0 63 0; -#X connect 59 0 49 0; -#X connect 60 0 61 0; -#X connect 60 0 61 1; -#X connect 61 0 50 1; -#X connect 62 0 63 1; -#X connect 63 0 60 0; -#X connect 63 0 60 1; diff --git a/pd/doc/3.audio.examples/J09.up.downsampling.pd b/pd/doc/3.audio.examples/J09.up.downsampling.pd deleted file mode 100644 index cf50f9b9..00000000 --- a/pd/doc/3.audio.examples/J09.up.downsampling.pd +++ /dev/null @@ -1,191 +0,0 @@ -#N canvas 32 25 1089 690 10; -#X obj 57 567 osc~ 412; -#X floatatom 58 543 5 0 0; -#X obj 122 595 tabwrite~ scope; -#X msg 122 571 bang; -#X msg 205 43 bang; -#X obj 42 191 tabwrite~ scope; -#X msg 54 165 bang; -#N canvas 316 181 600 400 simple 0; -#X obj 185 46 inlet; -#X obj 185 102 tabwrite~ scope; -#X obj 78 38 inlet~; -#X obj 78 258 outlet~; -#X obj 317 103 block~ 64 1 0.25; -#X connect 0 0 1 0; -#X connect 2 0 1 0; -#X connect 2 0 3 0; -#X restore 42 64 pd simple downsampling 4; -#X msg 451 42 bang; -#X obj 275 190 tabwrite~ scope; -#X msg 287 164 bang; -#X graph graph2 0 -1 511 1 297 629 897 489; -#X array scope 512 float 0; -#X pop; -#X msg 683 45 bang; -#X obj 520 193 tabwrite~ scope; -#X msg 532 167 bang; -#X msg 929 44 bang; -#X obj 753 192 tabwrite~ scope; -#X msg 765 166 bang; -#N canvas 165 168 600 400 simple 0; -#X obj 185 74 inlet; -#X obj 185 102 tabwrite~ scope; -#X obj 78 38 inlet~; -#X obj 78 258 outlet~; -#X text 130 38 zero-padding upsampling; -#X obj 317 103 block~ 64 1 4; -#X connect 0 0 1 0; -#X connect 2 0 1 0; -#X connect 2 0 3 0; -#X restore 520 66 pd simple upsampling 4; -#X obj 42 38 r~ sine; -#X obj 275 39 r~ sine; -#X obj 57 595 s~ sine; -#X obj 520 41 r~ sine; -#X obj 753 41 r~ sine; -#X obj 41 415 tabwrite~ scope; -#X msg 47 369 bang; -#X msg 804 265 bang; -#X obj 711 415 tabwrite~ scope; -#X msg 723 389 bang; -#X obj 41 262 r~ sine; -#X obj 711 264 r~ sine; -#X obj 152 416 tabwrite~ scope; -#X msg 158 370 bang; -#X text 43 431 zero-padded; -#N canvas 290 149 600 400 downsampling 0; -#X obj 78 38 inlet~; -#X obj 78 258 outlet~; -#X obj 152 258 outlet~ hold; -#X obj 317 103 block~ 64 1 0.25; -#X connect 0 0 1 0; -#X connect 0 0 2 0; -#X restore 41 288 pd downsampling 4 (mixed); -#N canvas 261 147 600 400 bad 0; -#X obj 185 81 inlet; -#X obj 185 102 tabwrite~ scope; -#X text 172 257 "lin" is for linear upsampling; -#X text 160 39 "lin" has no meaning when downsampling; -#X obj 317 103 block~ 64 2; -#X obj 78 258 outlet~; -#X obj 78 38 inlet~; -#X connect 0 0 1 0; -#X connect 6 0 1 0; -#X connect 6 0 5 0; -#X restore 711 288 pd bad overlap; -#X msg 1018 263 bang; -#X obj 841 415 tabwrite~ scope; -#X msg 853 389 bang; -#X obj 841 264 r~ sine; -#N canvas 121 72 600 400 bad 0; -#X obj 185 81 inlet; -#X obj 185 102 tabwrite~ scope; -#X obj 78 258 outlet~ lin; -#X obj 78 38 inlet~ lin; -#X text 167 38 "lin" is for linear upsampling; -#X text 166 259 "lin" has no meaning when downsampling; -#X obj 317 103 block~ 64 2 2; -#X connect 0 0 1 0; -#X connect 3 0 1 0; -#X connect 3 0 2 0; -#X restore 841 288 pd bad overlap (upsampled); -#X msg 458 267 bang; -#X obj 323 417 tabwrite~ scope; -#X msg 335 391 bang; -#X obj 323 266 r~ sine; -#X text 155 433 sample&hold; -#X msg 653 265 bang; -#X obj 511 416 tabwrite~ scope; -#X msg 523 390 bang; -#X obj 511 265 r~ sine; -#N canvas 249 128 600 400 downsampled 0; -#X obj 185 81 inlet; -#X obj 185 102 tabwrite~ scope; -#X obj 78 258 outlet~ lin; -#X obj 78 230 *~ 0.5; -#X obj 78 38 inlet~; -#X obj 317 103 block~ 128 2 0.25; -#X connect 0 0 1 0; -#X connect 3 0 2 0; -#X connect 4 0 1 0; -#X connect 4 0 3 0; -#X restore 511 289 pd downsampled overlap; -#N canvas 175 94 600 400 upsampled 0; -#X obj 185 81 inlet; -#X obj 185 102 tabwrite~ scope; -#X obj 78 258 outlet~ lin; -#X obj 78 38 inlet~ lin; -#X obj 78 230 *~ 0.5; -#X obj 317 103 block~ 256 2 2; -#X connect 0 0 1 0; -#X connect 3 0 1 0; -#X connect 3 0 4 0; -#X connect 4 0 2 0; -#X restore 323 290 pd upsampled overlap; -#N canvas 350 164 600 400 upsampling 0; -#X obj 185 81 inlet; -#X obj 185 102 tabwrite~ scope; -#X obj 78 38 inlet~ hold; -#X obj 78 258 outlet~; -#X text 160 39 "hold" is for sample&hold upsampling; -#X obj 317 103 block~ 64 1 16; -#X connect 0 0 1 0; -#X connect 2 0 1 0; -#X connect 2 0 3 0; -#X restore 753 65 pd upsampling 16 (sample&hold); -#N canvas 236 170 600 400 downsampling 0; -#X obj 185 81 inlet; -#X obj 185 102 tabwrite~ scope; -#X obj 78 258 outlet~ lin; -#X obj 78 38 inlet~ lin; -#X text 172 257 "lin" is for linear upsampling; -#X obj 320 102 block~ 64 1 0.125; -#X text 330 137 0.125 = 1/8 = 8*downsampling; -#X text 160 39 "lin" has (still !) no meaning when downsampling; -#X connect 0 0 1 0; -#X connect 3 0 1 0; -#X connect 3 0 2 0; -#X restore 275 63 pd downsampling 8 (linear); -#X text 718 314 a pd-bug !; -#X connect 0 0 2 0; -#X connect 0 0 21 0; -#X connect 1 0 0 0; -#X connect 3 0 2 0; -#X connect 4 0 7 1; -#X connect 6 0 5 0; -#X connect 7 0 5 0; -#X connect 8 0 53 1; -#X connect 10 0 9 0; -#X connect 12 0 18 1; -#X connect 14 0 13 0; -#X connect 15 0 52 1; -#X connect 17 0 16 0; -#X connect 18 0 13 0; -#X connect 19 0 7 0; -#X connect 20 0 53 0; -#X connect 22 0 18 0; -#X connect 23 0 52 0; -#X connect 25 0 24 0; -#X connect 26 0 35 1; -#X connect 28 0 27 0; -#X connect 29 0 34 0; -#X connect 30 0 35 0; -#X connect 32 0 31 0; -#X connect 34 0 24 0; -#X connect 34 1 31 0; -#X connect 35 0 27 0; -#X connect 36 0 40 1; -#X connect 38 0 37 0; -#X connect 39 0 40 0; -#X connect 40 0 37 0; -#X connect 41 0 51 1; -#X connect 43 0 42 0; -#X connect 44 0 51 0; -#X connect 46 0 50 1; -#X connect 48 0 47 0; -#X connect 49 0 50 0; -#X connect 50 0 47 0; -#X connect 51 0 42 0; -#X connect 52 0 16 0; -#X connect 53 0 9 0; diff --git a/pd/doc/3.audio.examples/K01.pulse.width.mod.pd b/pd/doc/3.audio.examples/K01.pulse.width.mod.pd deleted file mode 100644 index 214d250a..00000000 --- a/pd/doc/3.audio.examples/K01.pulse.width.mod.pd +++ /dev/null @@ -1,98 +0,0 @@ -#N canvas 27 355 931 532 12; -#X floatatom 86 104 0 0 0; -#X graph graph1 0 -1.02 882 1.02 669 456 869 326; -#X array difference-output 882 float 0; -#X pop; -#X floatatom 123 324 0 0 0; -#N canvas 159 26 495 266 output 0; -#X obj 338 160 t b; -#X obj 338 110 f; -#X obj 338 60 inlet; -#X text 344 29 mute; -#X obj 338 185 f; -#X msg 425 178 0; -#X msg 338 85 bang; -#X obj 338 135 moses 1; -#X obj 425 153 t b f; -#X obj 397 117 moses 1; -#X obj 83 148 dbtorms; -#X obj 397 92 r master-lvl; -#X obj 83 42 r master-lvl; -#X obj 338 210 s master-lvl; -#X obj 22 181 inlet~; -#X obj 199 41 inlet; -#X text 199 18 level; -#X obj 199 100 s master-lvl; -#X msg 96 65 set \$1; -#X obj 96 89 outlet; -#X msg 214 64 \; pd dsp 1; -#X obj 83 194 line~; -#X obj 22 212 *~; -#X obj 22 241 dac~; -#X obj 83 171 pack 0 50; -#X text 20 158 audio; -#X text 93 110 show level; -#X connect 0 0 4 0; -#X connect 1 0 7 0; -#X connect 2 0 6 0; -#X connect 4 0 13 0; -#X connect 5 0 13 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 9 1 4 1; -#X connect 10 0 24 0; -#X connect 11 0 1 1; -#X connect 11 0 9 0; -#X connect 12 0 10 0; -#X connect 12 0 18 0; -#X connect 14 0 22 0; -#X connect 15 0 17 0; -#X connect 15 0 20 0; -#X connect 18 0 19 0; -#X connect 21 0 22 1; -#X connect 22 0 23 0; -#X connect 22 0 23 1; -#X connect 24 0 21 0; -#X restore 86 351 pd output; -#X msg 162 324 MUTE; -#X obj 86 137 phasor~ 0; -#X text 83 86 frequency; -#X graph graph1 0 -1.02 882 1.02 668 179 868 49; -#X array phasor1-output 882 float 0; -#X pop; -#X msg 191 77 bang; -#X text 231 76 <-- click to graph; -#X text 57 9 CLASSICAL PULSE WIDTH MODULATION; -#X obj 102 196 phasor~ 0; -#X obj 102 172 + 0.2; -#X obj 86 246 -~; -#X graph graph1 0 -1.02 882 1.02 668 316 868 186; -#X array phasor2-output 882 float 0; -#X pop; -#X obj 191 164 tabwrite~ phasor1-output; -#X obj 191 222 tabwrite~ phasor2-output; -#X obj 191 276 tabwrite~ difference-output; -#X text 12 386 This patch demonstrates pulse width modulation \, which -is accomplished simply by subtracting two sawtooth waves at a varying -phase difference. Here their frequencies are set to differ by 1/5 Hz. -so that the relative phase wanders continuously.; -#X text 669 459 ---- 0.02 seconds ----; -#X text 665 498 updated for Pd version 0.34; -#X text 203 325 <-- output; -#X connect 0 0 5 0; -#X connect 0 0 12 0; -#X connect 2 0 3 1; -#X connect 3 0 2 0; -#X connect 4 0 3 2; -#X connect 5 0 13 0; -#X connect 5 0 15 0; -#X connect 8 0 15 0; -#X connect 8 0 16 0; -#X connect 8 0 17 0; -#X connect 11 0 13 1; -#X connect 11 0 16 0; -#X connect 12 0 11 0; -#X connect 13 0 17 0; -#X connect 13 0 3 0; diff --git a/pd/doc/3.audio.examples/K02.stereo.pd b/pd/doc/3.audio.examples/K02.stereo.pd deleted file mode 100644 index 1c417df5..00000000 --- a/pd/doc/3.audio.examples/K02.stereo.pd +++ /dev/null @@ -1,87 +0,0 @@ -#N canvas 27 355 553 341 12; -#X floatatom 59 63; -#X msg 340 12 \; pd dsp 1; -#X msg 407 12 \; pd dsp 0; -#X text 361 45 ON; -#X text 424 43 OFF; -#X floatatom 123 196; -#N canvas 159 26 618 383 output 0; -#X obj 393 156 t b; -#X obj 393 106 f; -#X obj 393 56 inlet; -#X text 399 25 mute; -#X obj 393 181 f; -#X msg 480 174 0; -#X msg 393 81 bang; -#X obj 393 131 moses 1; -#X obj 480 149 t b f; -#X obj 452 113 moses 1; -#X obj 138 144 dbtorms; -#X obj 452 88 r master-lvl; -#X obj 138 38 r master-lvl; -#X obj 393 206 s master-lvl; -#X obj 22 181 inlet~; -#X obj 254 37 inlet; -#X text 254 14 level; -#X obj 254 96 s master-lvl; -#X msg 151 61 set \$1; -#X obj 151 85 outlet; -#X msg 269 60 \; pd dsp 1; -#X obj 138 190 line~; -#X obj 22 212 *~; -#X obj 138 167 pack 0 50; -#X text 34 159 audio; -#X text 148 106 show level; -#X obj 73 182 inlet~; -#X obj 73 213 *~; -#X obj 22 241 dac~ 1; -#X obj 73 241 dac~ 2; -#X connect 0 0 4 0; -#X connect 1 0 7 0; -#X connect 2 0 6 0; -#X connect 4 0 13 0; -#X connect 5 0 13 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 9 1 4 1; -#X connect 10 0 23 0; -#X connect 11 0 1 1; -#X connect 11 0 9 0; -#X connect 12 0 10 0; -#X connect 12 0 18 0; -#X connect 14 0 22 0; -#X connect 15 0 17 0; -#X connect 15 0 20 0; -#X connect 18 0 19 0; -#X connect 21 0 22 1; -#X connect 21 0 27 1; -#X connect 22 0 28 0; -#X connect 23 0 21 0; -#X connect 26 0 27 0; -#X connect 27 0 29 0; -#X restore 61 224 pd output; -#X msg 152 196 MUTE; -#X text 186 195 <-- output amplitude; -#X obj 59 111 phasor~ 0; -#X text 56 45 frequency; -#X text 331 323 updated for Pd version 0.26; -#X text 57 9 CLASSICAL PULSE WIDTH MODULATION; -#X obj 131 110 phasor~ 0; -#X obj 59 134 -~ 0.5; -#X obj 131 85 + 0.5; -#X obj 131 135 -~ 0.5; -#X obj 131 160 *~ -1; -#X text 34 262 Here's what happens if you take the previous patch but \, instead of subtracting the two sawtooth waves \, we put them in two speakers with opposite phase.; -#X connect 0 0 9 0; -#X connect 0 0 15 0; -#X connect 5 0 6 2; -#X connect 6 0 5 0; -#X connect 7 0 6 3; -#X connect 9 0 14 0; -#X connect 13 0 16 0; -#X connect 14 0 6 0; -#X connect 15 0 13 0; -#X connect 16 0 17 0; -#X connect 17 0 6 1; diff --git a/pd/doc/3.audio.examples/K03.envelope.mod.pd b/pd/doc/3.audio.examples/K03.envelope.mod.pd deleted file mode 100644 index 52551163..00000000 --- a/pd/doc/3.audio.examples/K03.envelope.mod.pd +++ /dev/null @@ -1,148 +0,0 @@ -#N canvas 75 15 1014 733 12; -#X graph graph1 0 -1.02 44100 1.02 764 446 964 316; -#X array cos-output 44100 float 0; -#X pop; -#X graph graph1 0 -1.02 44103 1.02 761 148 961 18; -#X array sample-table 44103 float 0; -#X pop; -#X obj 593 579 loadbang; -#X floatatom 96 489 0 0 0; -#N canvas 159 26 495 266 output 0; -#X obj 338 160 t b; -#X obj 338 110 f; -#X obj 338 60 inlet; -#X text 344 29 mute; -#X obj 338 185 f; -#X msg 425 178 0; -#X msg 338 85 bang; -#X obj 338 135 moses 1; -#X obj 425 153 t b f; -#X obj 397 117 moses 1; -#X obj 83 148 dbtorms; -#X obj 397 92 r master-lvl; -#X obj 83 42 r master-lvl; -#X obj 338 210 s master-lvl; -#X obj 22 181 inlet~; -#X obj 199 41 inlet; -#X text 199 18 level; -#X obj 199 100 s master-lvl; -#X msg 96 65 set \$1; -#X obj 96 89 outlet; -#X msg 214 64 \; pd dsp 1; -#X obj 83 194 line~; -#X obj 22 212 *~; -#X obj 22 241 dac~; -#X obj 83 171 pack 0 50; -#X text 20 158 audio; -#X text 93 110 show level; -#X connect 0 0 4 0; -#X connect 1 0 7 0; -#X connect 2 0 6 0; -#X connect 4 0 13 0; -#X connect 5 0 13 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 9 1 4 1; -#X connect 10 0 24 0; -#X connect 11 0 1 1; -#X connect 11 0 9 0; -#X connect 12 0 10 0; -#X connect 12 0 18 0; -#X connect 14 0 22 0; -#X connect 15 0 17 0; -#X connect 15 0 20 0; -#X connect 18 0 19 0; -#X connect 21 0 22 1; -#X connect 22 0 23 0; -#X connect 22 0 23 1; -#X connect 24 0 21 0; -#X restore 67 517 pd output; -#X msg 133 490 MUTE; -#X text 176 490 <-- output amplitude; -#X obj 67 460 hip~ 5; -#X obj 47 408 tabread4~ sample-table; -#X floatatom 46 50 0 0 0; -#X text 85 49 <-- frequency (Hz.); -#X floatatom 97 358 0 0 0; -#X obj 97 385 * 441; -#X obj 47 358 *~ 0; -#X obj 47 383 +~ 1; -#X text 271 274 <-- click to display output; -#X msg 229 275 bang; -#X text 136 357 <-- chunk size (100ths of a second); -#X obj 588 471 adc~ 1; -#X obj 588 495 hip~ 5; -#X obj 588 545 tabwrite~ sample-table; -#X msg 603 518 bang; -#X text 635 518 <-- click here to record your own sample; -#X text 704 583 v-- re-read the original sample; -#X text 40 9 ENVELOPING YOUR LOOPING SAMPLER; -#X obj 88 101 -~ 0.5; -#X obj 88 259 clip~ -0.5 0.5; -#X obj 88 237 *~ 1; -#X graph graph1 0 -1.02 44100 1.02 763 311 963 181; -#X array cos-input 44100 float 0; -#X pop; -#X obj 229 303 tabwrite~ cos-input; -#X obj 88 284 cos~; -#X obj 88 126 wrap~; -#X obj 88 155 -~ 0.5; -#X obj 88 332 *~ -0.5; -#X obj 88 307 -~ 1; -#X obj 229 329 tabwrite~ cos-output; -#X floatatom 119 187 0 0 0; -#X obj 67 433 *~; -#X text 157 98 subtracting 0.5 and wrapping produces a sawtooth wave -180 degrees out of phase from the original.; -#X text 153 150 as before we subtract 1/2 again to center the sawtooth -from -1/2 to 1/2.; -#X text 153 188 <-- sharpness (at least 1); -#X msg 593 608 read ../sound/voice.wav sample-table; -#X obj 593 633 soundfiler; -#X text 776 150 -- 44103 samples ---; -#X text 767 447 ----- 1 second ------; -#X obj 119 211 max 1; -#X obj 46 77 phasor~; -#X text 24 560 Here we apply an amplitude envelope to protect against -discontinuities at the loop point. The envelope is based on the pulse -width modulation example \, except that the widening is applied to -the "1" part of the pulse \, not the "0" part.; -#X text 23 647 To see the envelope \, put the phasor on 2 Hz \, select -"sharpness" values between 1 and 3 \, and look at "cos-input" and "cos-output." -You should both see and hear the effect of the "sharpness" parameter. -; -#X text 734 688 updated for Pd version 0.34; -#X connect 2 0 41 0; -#X connect 3 0 4 1; -#X connect 4 0 3 0; -#X connect 5 0 4 2; -#X connect 7 0 4 0; -#X connect 8 0 37 0; -#X connect 9 0 46 0; -#X connect 11 0 12 0; -#X connect 12 0 13 1; -#X connect 13 0 14 0; -#X connect 14 0 8 0; -#X connect 16 0 29 0; -#X connect 16 0 35 0; -#X connect 18 0 19 0; -#X connect 19 0 20 0; -#X connect 21 0 20 0; -#X connect 25 0 31 0; -#X connect 26 0 30 0; -#X connect 26 0 29 0; -#X connect 27 0 26 0; -#X connect 30 0 34 0; -#X connect 31 0 32 0; -#X connect 32 0 27 0; -#X connect 33 0 35 0; -#X connect 33 0 37 1; -#X connect 34 0 33 0; -#X connect 36 0 45 0; -#X connect 37 0 7 0; -#X connect 41 0 42 0; -#X connect 45 0 27 1; -#X connect 46 0 13 0; -#X connect 46 0 25 0; diff --git a/pd/doc/3.audio.examples/K04.even.odd.pd b/pd/doc/3.audio.examples/K04.even.odd.pd deleted file mode 100644 index bfa950a9..00000000 --- a/pd/doc/3.audio.examples/K04.even.odd.pd +++ /dev/null @@ -1,116 +0,0 @@ -#N canvas 213 27 840 639 12; -#X floatatom 45 74 0 0 0; -#X obj 99 164 wrap~; -#X graph graph1 0 -1.02 882 1.02 624 153 824 23; -#X array phasor-output 882 float 0; -#X pop; -#X obj 45 102 phasor~ 0; -#X text 81 73 frequency; -#X obj 45 130 -~ 0.5; -#X obj 99 192 -~ 0.5; -#X obj 36 244 -~; -#X obj 98 244 +~; -#X graph graph1 0 -1.02 882 1.02 625 288 825 158; -#X array wrap-output 882 float 0; -#X pop; -#X graph graph1 0 -1.02 882 1.02 626 423 826 293; -#X array sum 882 float 0; -#X pop; -#X graph graph1 0 -1.02 882 1.02 626 563 826 433; -#X array difference 882 float 0; -#X pop; -#X obj 172 166 tabwrite~ phasor-output; -#X obj 172 218 tabwrite~ wrap-output; -#X obj 172 282 tabwrite~ sum; -#X obj 172 327 tabwrite~ difference; -#X msg 172 120 bang; -#X text 106 13 BUCHLA'S METHOD; -#X floatatom 119 369 0 0 0; -#N canvas 159 26 618 383 output 0; -#X obj 393 156 t b; -#X obj 393 106 f; -#X obj 393 56 inlet; -#X text 399 25 mute; -#X obj 393 181 f; -#X msg 480 174 0; -#X msg 393 81 bang; -#X obj 393 131 moses 1; -#X obj 480 149 t b f; -#X obj 452 113 moses 1; -#X obj 138 144 dbtorms; -#X obj 452 88 r master-lvl; -#X obj 138 38 r master-lvl; -#X obj 393 206 s master-lvl; -#X obj 22 181 inlet~; -#X obj 254 37 inlet; -#X text 254 14 level; -#X obj 254 96 s master-lvl; -#X msg 151 61 set \$1; -#X obj 151 85 outlet; -#X msg 269 60 \; pd dsp 1; -#X obj 138 190 line~; -#X obj 22 212 *~; -#X obj 138 167 pack 0 50; -#X text 34 159 audio; -#X text 148 106 show level; -#X obj 73 182 inlet~; -#X obj 73 213 *~; -#X obj 22 241 dac~ 1; -#X obj 73 241 dac~ 2; -#X connect 0 0 4 0; -#X connect 1 0 7 0; -#X connect 2 0 6 0; -#X connect 4 0 13 0; -#X connect 5 0 13 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 9 1 4 1; -#X connect 10 0 23 0; -#X connect 11 0 1 1; -#X connect 11 0 9 0; -#X connect 12 0 10 0; -#X connect 12 0 18 0; -#X connect 14 0 22 0; -#X connect 15 0 17 0; -#X connect 15 0 20 0; -#X connect 18 0 19 0; -#X connect 21 0 22 1; -#X connect 21 0 27 1; -#X connect 22 0 28 0; -#X connect 23 0 21 0; -#X connect 26 0 27 0; -#X connect 27 0 29 0; -#X restore 81 392 pd output; -#X msg 156 369 MUTE; -#X text 13 430 A patch to split a sawtooth into even and odd harmonics -ala Buchla. The wrap~ object folds its input into the interval [0 \, -1) so taht \, for instance \, subtracting 1/5 from a phasor and wrapping -it gives another phasor a half cycle out of phase frmo the original. -Adding and subtracting the two give the results shown and heard. (Listen -to the two outputs separately \, then together.); -#X text 631 567 ---- 0.02 seconds ----; -#X text 577 613 updated for Pd version 0.34; -#X text 193 369 <-- output; -#X connect 0 0 3 0; -#X connect 1 0 6 0; -#X connect 3 0 5 0; -#X connect 5 0 1 0; -#X connect 5 0 12 0; -#X connect 5 0 8 0; -#X connect 5 0 7 0; -#X connect 6 0 13 0; -#X connect 6 0 8 1; -#X connect 6 0 7 1; -#X connect 7 0 15 0; -#X connect 7 0 19 0; -#X connect 8 0 14 0; -#X connect 8 0 19 1; -#X connect 16 0 13 0; -#X connect 16 0 14 0; -#X connect 16 0 15 0; -#X connect 16 0 12 0; -#X connect 18 0 19 2; -#X connect 19 0 18 0; -#X connect 20 0 19 3; diff --git a/pd/doc/3.audio.examples/K05.bandlimited.pd b/pd/doc/3.audio.examples/K05.bandlimited.pd deleted file mode 100644 index f49bcb68..00000000 --- a/pd/doc/3.audio.examples/K05.bandlimited.pd +++ /dev/null @@ -1,166 +0,0 @@ -#N canvas 21 90 540 752 12; -#X floatatom 183 91; -#X obj 183 115 mtof; -#X floatatom 340 183; -#X obj 164 431 -~; -#N canvas 391 51 561 806 tables 1; -#X graph graph1 0 -1 1002 1 99 322 499 22; -#X array array1 1002 float; -#X pop; -#X graph graph1 0 -1 882 1 96 684 496 384; -#X array array2 882 float; -#X pop; -#X text 138 326 ---------------- 1002 samples ---------------; -#X text 150 693 ---------------- 0.02 sec ---------------; -#X restore 33 201 pd tables; -#N canvas 104 390 728 408 make-table 0; -#X obj 469 146 cos~; -#X obj 303 146 cos~; -#X obj 255 141 cos~; -#X msg 199 210 bang; -#X obj 255 229 tabwrite~ array1; -#X text 366 79 period is 2000 samples \, twice the table length; -#X msg 94 94 \; pd dsp 1; -#X text 118 286 this network puts a half cycle of a band-limited square wave into the table "array1."; -#X text 114 335 logically the half-cycle is in samples 1 through 1000 \; samples 0 and 1001 are provided so that the 4-point interpolation will work everywhere.; -#X text 401 57 back the phase up one sample; -#X msg 336 56 -0.0005; -#X obj 171 16 loadbang; -#X obj 303 120 *~ 3; -#X obj 468 122 *~ 5; -#X obj 303 171 *~ 0.33333; -#X obj 468 172 *~ -0.2; -#X obj 255 169 *~ -1; -#X msg 171 38 bang; -#X obj 254 80 phasor~ 22.05; -#X obj 255 202 *~ 0.57692; -#X connect 0 0 15 0; -#X connect 1 0 14 0; -#X connect 2 0 16 0; -#X connect 3 0 4 0; -#X connect 10 0 18 1; -#X connect 11 0 17 0; -#X connect 12 0 1 0; -#X connect 13 0 0 0; -#X connect 14 0 19 0; -#X connect 15 0 19 0; -#X connect 16 0 19 0; -#X connect 17 0 10 0; -#X connect 17 0 6 0; -#X connect 17 0 3 0; -#X connect 18 0 2 0; -#X connect 18 0 12 0; -#X connect 18 0 13 0; -#X connect 19 0 4 0; -#X restore 34 224 pd make-table; -#X obj 183 163 sig~; -#X obj 341 283 /~; -#X obj 357 256 clip~ 1 999999; -#X obj 183 218 phasor~; -#X obj 196 301 *~; -#X obj 196 325 clip~ -0.5 0.5; -#X floatatom 183 139; -#X obj 196 397 tabread4~ array1; -#X floatatom 340 135; -#X obj 340 206 * 0.33333; -#X obj 340 159 mtof; -#X text 374 110 band limit (MIDI units); -#X text 220 78 pitch; -#X obj 340 87 loadbang; -#X msg 340 111 130; -#X obj 340 230 sig~; -#X text 246 139 frequency; -#X obj 196 349 *~ 1000; -#X obj 196 373 +~ 501; -#X obj 183 242 -~ 0.5; -#X floatatom 206 441; -#N canvas 159 26 495 266 output 0; -#X obj 338 160 t b; -#X obj 338 110 f; -#X obj 338 60 inlet; -#X text 344 29 mute; -#X obj 338 185 f; -#X msg 425 178 0; -#X msg 338 85 bang; -#X obj 338 135 moses 1; -#X obj 425 153 t b f; -#X obj 397 117 moses 1; -#X obj 83 148 dbtorms; -#X obj 397 92 r master-lvl; -#X obj 83 42 r master-lvl; -#X obj 338 210 s master-lvl; -#X obj 22 181 inlet~; -#X obj 199 41 inlet; -#X text 199 18 level; -#X obj 199 100 s master-lvl; -#X msg 96 65 set \$1; -#X obj 96 89 outlet; -#X msg 214 64 \; pd dsp 1; -#X obj 83 194 line~; -#X obj 22 212 *~; -#X obj 22 241 dac~; -#X obj 83 171 pack 0 50; -#X text 20 158 audio; -#X text 93 110 show level; -#X connect 0 0 4 0; -#X connect 1 0 7 0; -#X connect 2 0 6 0; -#X connect 4 0 13 0; -#X connect 5 0 13 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 9 1 4 1; -#X connect 10 0 24 0; -#X connect 11 0 1 1; -#X connect 11 0 9 0; -#X connect 12 0 10 0; -#X connect 12 0 18 0; -#X connect 14 0 22 0; -#X connect 15 0 17 0; -#X connect 15 0 20 0; -#X connect 18 0 19 0; -#X connect 21 0 22 1; -#X connect 22 0 23 0; -#X connect 22 0 23 1; -#X connect 24 0 21 0; -#X restore 177 469 pd output; -#X msg 235 441 MUTE; -#X text 276 440 <-- output amplitude; -#X text 27 503 Patch to make an approximately band-limited sawtooth. This is useful if you intend to use sawtooth generators above about 200 Hz. \, perhaps to use any of the techniques shown in the previous four patches.; -#X text 28 562 We generate a perfect square wave at Nyquist/6 \; this will have partials 1 \, 3 \, and 5 \, but the Nyquist frequency at partial 6 will cut off the rest of the partials. This is stored in array1 using the "make-table" subpatch.; -#X text 64 34 BAND-LIMITED SAWTOOTH GENERATOR; -#X obj 43 459 tabwrite~ array2; -#X msg 44 435 bang; -#X text 28 632 Now any time we wish to make a discontinuity in the output signal \, we make it look exactly like the bandlimited square wave looks. We do this by reading through the table we recorded \, carefully adding a "digital" \, non-band-limited \, sawtooth to "array1" so that the discontinuities in the two cancel out and what you have left is the transition in the table.; -#X text 338 737 updated for Pd version 0.26; -#X text 41 409 graph output; -#X connect 0 0 1 0; -#X connect 1 0 12 0; -#X connect 2 0 15 0; -#X connect 3 0 27 0; -#X connect 3 0 33 0; -#X connect 6 0 8 0; -#X connect 6 0 9 0; -#X connect 7 0 10 1; -#X connect 8 0 7 1; -#X connect 9 0 25 0; -#X connect 10 0 11 0; -#X connect 11 0 23 0; -#X connect 12 0 6 0; -#X connect 13 0 3 0; -#X connect 14 0 16 0; -#X connect 15 0 21 0; -#X connect 16 0 2 0; -#X connect 19 0 20 0; -#X connect 20 0 14 0; -#X connect 21 0 7 0; -#X connect 23 0 24 0; -#X connect 24 0 13 0; -#X connect 25 0 10 0; -#X connect 25 0 3 1; -#X connect 26 0 27 1; -#X connect 27 0 26 0; -#X connect 28 0 27 2; -#X connect 34 0 33 0; diff --git a/pd/doc/3.audio.examples/K06.triangle.pd b/pd/doc/3.audio.examples/K06.triangle.pd deleted file mode 100644 index ce8ac916..00000000 --- a/pd/doc/3.audio.examples/K06.triangle.pd +++ /dev/null @@ -1,169 +0,0 @@ -#N canvas 80 114 729 584 12; -#X obj 33 482 hip~ 5; -#X text 92 12 DELAYS; -#X obj 33 341 -~; -#X obj 30 241 tabread4~ mtof; -#X obj 33 317 *~ 3; -#X obj 74 318 *~ 2; -#X obj 49 266 phasor~; -#X floatatom 81 215 0 0 0 0 - - -; -#X obj 33 293 clip~ 0 0.667; -#X obj 30 190 line~; -#X obj 30 165 pack 0 1000; -#X obj 30 70 metro 1000; -#X obj 30 94 random 200; -#X obj 30 118 - 100; -#X obj 30 142 * 0.001; -#X obj 33 453 +~; -#X obj 44 374 delwrite~ delay1 2000; -#X floatatom 49 401 0 0 0 0 - - -; -#X obj 49 426 delread~ delay1 1000; -#X obj 30 47 loadbang; -#X text 210 37 You can delay a signal using the delwrite~ and delread~ -objects. In this example \, the pitch of the oscillator is varying -slightly so that the delayed signal is different from the straight -signal.; -#X text 212 99 delread always delays the signal an integer number of -samples and does no interpolation.; -#X text 211 137 The delwrite~ object creates the delay line \; you -give it a name and a size in milliseconds. Each delwrite~ should have -a different name.; -#X text 209 184 Delread~'s arguments are the name of a delwrite (of -which there should be exactly one) and a delay time in milliseconds -between 0 and the length of the delay line. Each delwrite~ may have -as many delread~s as you wish \, which function as multiple delay taps. -; -#X obj 30 215 +~ 60; -#X text 115 216 <-- pitch; -#X text 83 401 <-- delay time; -#X text 65 342 asymmetric triangle wave; -#X text 236 372 write to delay line; -#X text 232 425 read from delay line; -#X text 64 454 add the original and the delayed signal; -#N canvas 0 0 600 392 conversion-tables 0; -#N canvas 0 0 450 300 graph1 0; -#X array dbtorms 123 float 1; -#A 0 0 0 1.25893e-05 1.41254e-05 1.58489e-05 1.77828e-05 1.99526e-05 -2.23872e-05 2.51189e-05 2.81838e-05 3.16228e-05 3.54813e-05 3.98107e-05 -4.46684e-05 5.01187e-05 5.62341e-05 6.30957e-05 7.07946e-05 7.94328e-05 -8.91251e-05 1e-04 0.000112202 0.000125893 0.000141254 0.000158489 0.000177828 -0.000199526 0.000223872 0.000251189 0.000281838 0.000316228 0.000354813 -0.000398107 0.000446684 0.000501187 0.000562341 0.000630957 0.000707946 -0.000794328 0.000891251 0.001 0.00112202 0.00125893 0.00141254 0.00158489 -0.00177828 0.00199526 0.00223872 0.00251189 0.00281838 0.00316228 0.00354813 -0.00398107 0.00446684 0.00501187 0.00562341 0.00630957 0.00707946 0.00794328 -0.00891251 0.01 0.0112202 0.0125893 0.0141254 0.0158489 0.0177828 0.0199526 -0.0223872 0.0251189 0.0281838 0.0316228 0.0354813 0.0398107 0.0446684 -0.0501187 0.0562341 0.0630957 0.0707946 0.0794328 0.0891251 0.1 0.112202 -0.125893 0.141254 0.158489 0.177828 0.199526 0.223872 0.251189 0.281838 -0.316228 0.354813 0.398107 0.446684 0.501187 0.562341 0.630957 0.707946 -0.794328 0.891251 1 1.12202 1.25893 1.41254 1.58489 1.77828 1.99526 -2.23872 2.51189 2.81838 3.16228 3.54813 3.98107 4.46684 5.01187 5.62341 -6.30957 7.07946 7.94328 8.91251 10 11.2202 12.5893; -#X coords 0 10 123 0 200 100 1; -#X restore 70 45 graph; -#X text 272 138 0; -#X text 274 38 10; -#X text 89 148 ------ 123 samples ------; -#N canvas 0 0 450 300 graph2 0; -#X array mtof 130 float 1; -#A 0 8.1758 8.66196 9.17702 9.72272 10.3009 10.9134 11.5623 12.2499 -12.9783 13.75 14.5676 15.4339 16.3516 17.3239 18.354 19.4454 20.6017 -21.8268 23.1247 24.4997 25.9565 27.5 29.1352 30.8677 32.7032 34.6478 -36.7081 38.8909 41.2034 43.6535 46.2493 48.9994 51.9131 55 58.2705 -61.7354 65.4064 69.2957 73.4162 77.7817 82.4069 87.3071 92.4986 97.9989 -103.826 110 116.541 123.471 130.813 138.591 146.832 155.563 164.814 -174.614 184.997 195.998 207.652 220 233.082 246.942 261.626 277.183 -293.665 311.127 329.628 349.228 369.994 391.995 415.305 440 466.164 -493.883 523.251 554.365 587.33 622.254 659.255 698.456 739.989 783.991 -830.609 880 932.328 987.767 1046.5 1108.73 1174.66 1244.51 1318.51 -1396.91 1479.98 1567.98 1661.22 1760 1864.66 1975.53 2093 2217.46 2349.32 -2489.02 2637.02 2793.83 2959.96 3135.96 3322.44 3520 3729.31 3951.07 -4186.01 4434.92 4698.64 4978.03 5274.04 5587.65 5919.91 6271.93 6644.88 -7040 7458.62 7902.13 8372.02 8869.84 9397.27 9956.06 10548.1 11175.3 -11839.8 12543.9 13289.8 14080 ; -#X coords 0 12000 130 0 200 100 1; -#X restore 77 222 graph; -#X text 87 330 ------ 130 samples ------; -#X text 286 315 0; -#X text 288 215 12000; -#N canvas 244 212 672 338 regenerate-tables 0; -#X msg 415 84 bang; -#X obj 415 113 t b b; -#X obj 474 177 f; -#X obj 512 177 + 1; -#X msg 483 147 0; -#X obj 415 142 until; -#X obj 474 211 t f f; -#X obj 414 238 mtof; -#X obj 405 202 sel 129; -#X obj 413 264 tabwrite mtof; -#X obj 35 227 moses 2; -#X msg 19 76 bang; -#X obj 19 105 t b b; -#X obj 90 166 f; -#X obj 128 166 + 1; -#X msg 112 138 0; -#X obj 19 134 until; -#X obj 11 194 sel 122; -#X msg 35 258 0; -#X obj 79 259 dbtorms; -#X obj 90 194 t f f; -#X obj 35 291 tabwrite dbtorms; -#X text 18 49 bang to recalculate dbtorms table; -#X text 356 50 bang to recalculate the mtof table; -#X connect 0 0 1 0; -#X connect 1 0 5 0; -#X connect 1 1 4 0; -#X connect 2 0 3 0; -#X connect 2 0 6 0; -#X connect 2 0 8 0; -#X connect 3 0 2 1; -#X connect 4 0 2 1; -#X connect 5 0 2 0; -#X connect 6 0 7 0; -#X connect 6 1 9 1; -#X connect 7 0 9 0; -#X connect 8 0 5 1; -#X connect 10 0 18 0; -#X connect 10 1 19 0; -#X connect 11 0 12 0; -#X connect 12 0 16 0; -#X connect 12 1 15 0; -#X connect 13 0 14 0; -#X connect 13 0 17 0; -#X connect 13 0 20 0; -#X connect 14 0 13 1; -#X connect 15 0 13 1; -#X connect 16 0 13 0; -#X connect 17 0 16 1; -#X connect 18 0 21 0; -#X connect 19 0 21 0; -#X connect 20 0 10 0; -#X connect 20 1 21 1; -#X restore 375 76 pd regenerate-tables; -#X restore 449 418 pd conversion-tables; -#X text 427 536 updated for Pd version 0.35; -#X obj 33 510 output~; -#X connect 0 0 33 0; -#X connect 0 0 33 1; -#X connect 2 0 15 0; -#X connect 2 0 16 0; -#X connect 3 0 6 0; -#X connect 4 0 2 0; -#X connect 5 0 2 1; -#X connect 6 0 5 0; -#X connect 6 0 8 0; -#X connect 7 0 24 1; -#X connect 8 0 4 0; -#X connect 9 0 24 0; -#X connect 10 0 9 0; -#X connect 11 0 12 0; -#X connect 12 0 13 0; -#X connect 13 0 14 0; -#X connect 14 0 10 0; -#X connect 15 0 0 0; -#X connect 17 0 18 0; -#X connect 18 0 15 1; -#X connect 19 0 11 0; -#X connect 24 0 3 0; diff --git a/pd/doc/4.fft.examples/01.fftanalysis.pd b/pd/doc/4.fft.examples/01.fftanalysis.pd deleted file mode 100644 index 9b5e1e4c..00000000 --- a/pd/doc/4.fft.examples/01.fftanalysis.pd +++ /dev/null @@ -1,143 +0,0 @@ -#N canvas 11 0 944 595 12; -#X text 60 368 frequency; -#X obj 20 238 tabwrite~ array2; -#X msg 141 117 0; -#N canvas 245 0 864 679 fft-analysis 0; -#X obj 57 75 *~; -#X obj 98 191 *~; -#X graph graph1 0 -1 256 1 397 304 797 4; -#X array array1 256 float 0; -#X pop; -#X graph graph2 0 -1 256 1 397 631 797 331; -#X array array2 256 float 0; -#X pop; -#X obj 57 4 inlet~; -#X obj 57 192 *~; -#X obj 57 310 tabsend~ array1; -#X msg 442 673 \; array1 resize 256 \; array2 resize 256; -#X obj 76 48 tabreceive~ array2; -#X obj 57 136 rfft~; -#X obj 57 222 rifft~; -#X obj 80 283 outlet~; -#X obj 229 216 print~; -#X msg 229 188 bang; -#X obj 94 632 block~ 256 2; -#X text 82 30 Hanning window; -#X text 61 106 forward real FFT; -#X text 74 243 inverse real FFT; -#X text 121 126 renormalize by 1/256; -#X obj 120 144 sig~ 0.0039; -#X connect 0 0 9 0; -#X connect 1 0 10 1; -#X connect 4 0 0 0; -#X connect 5 0 10 0; -#X connect 8 0 0 1; -#X connect 9 0 5 0; -#X connect 9 0 12 0; -#X connect 9 1 1 0; -#X connect 10 0 11 0; -#X connect 10 0 6 0; -#X connect 13 0 12 0; -#X connect 19 0 5 1; -#X connect 19 0 1 1; -#X restore 133 430 pd fft-analysis; -#X floatatom 133 379 0 0 0; -#X obj 134 525 dac~; -#X graph graph1 0 -1 256 1 352 461 608 261; -#X array array3 256 float 0; -#X pop; -#X obj 141 462 tabwrite~ array3; -#X msg 77 442 bang; -#X obj 133 324 * 44100; -#X obj 133 352 / 256; -#X floatatom 133 298 0 0 0; -#X text 71 165 sample rate / 256; -#X text 17 23 CLICK HERE TO; -#X text 15 41 CALCULATE HANNING; -#X text 14 58 WINDOW TABLE; -#X msg 20 79 bang \; pd dsp 1; -#X text 40 289 frequency; -#X text 50 305 in bins; -#X text 62 385 in Hz.; -#X text 14 440 scope; -#X text 236 23 A patch to test the rfft~ and rifft~ modules. An incoming -sine wave is Hanning windowed and transformed. The inverse transform -is then output.; -#X text 235 70 The block size (256) and overlap (2) are set by the -block~ object in the sub-patch. The output is automatically overlap-added -by the outlet~ object.; -#X floatatom 778 111 0 0 0; -#N canvas 194 37 397 591 output 0; -#X obj 72 249 t b; -#X obj 72 173 f; -#X obj 73 89 inlet; -#X text 86 54 mute; -#X obj 72 280 f; -#X msg 149 292 0; -#X msg 72 125 bang; -#X obj 73 197 moses 1; -#X obj 149 263 t b f; -#X obj 109 543 outlet; -#X msg 108 503 set \$1; -#X obj 92 337 s master-amp; -#X obj 206 153 r master-amp; -#X obj 107 424 r master-amp; -#X obj 206 186 moses 1; -#X obj 249 494 dbtorms; -#X obj 251 520 pack 0 100; -#X obj 252 548 s master-out; -#X connect 0 0 4 0; -#X connect 1 0 7 0; -#X connect 2 0 6 0; -#X connect 4 0 11 0; -#X connect 5 0 11 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 12 0 1 1; -#X connect 12 0 14 0; -#X connect 13 0 10 0; -#X connect 13 0 15 0; -#X connect 14 1 4 1; -#X connect 15 0 16 0; -#X connect 16 0 17 0; -#X restore 778 83 pd output; -#X msg 778 55 mute; -#X text 821 115 AMPLITUDE; -#X obj 778 142 s master-amp; -#X obj 191 522 line~; -#X obj 134 495 *~; -#X text 236 124 You can close the sub-patch if table updates are interfering -with your audio output.; -#X obj 191 495 r master-out; -#X obj 36 166 osc~; -#X obj 35 118 samplerate~; -#X obj 36 142 / 256; -#X obj 36 189 *~ -0.5; -#X obj 36 209 +~ 0.5; -#X obj 133 405 osc~; -#X connect 2 0 32 1; -#X connect 3 0 7 0; -#X connect 3 0 29 0; -#X connect 4 0 37 0; -#X connect 8 0 7 0; -#X connect 9 0 10 0; -#X connect 10 0 4 0; -#X connect 11 0 9 0; -#X connect 16 0 1 0; -#X connect 16 0 2 0; -#X connect 16 0 33 0; -#X connect 23 0 27 0; -#X connect 24 0 23 0; -#X connect 25 0 24 0; -#X connect 28 0 29 1; -#X connect 29 0 5 0; -#X connect 31 0 28 0; -#X connect 32 0 35 0; -#X connect 33 0 34 0; -#X connect 34 0 32 0; -#X connect 35 0 36 0; -#X connect 36 0 1 0; -#X connect 37 0 3 0; diff --git a/pd/doc/4.fft.examples/02.noisefft.pd b/pd/doc/4.fft.examples/02.noisefft.pd deleted file mode 100644 index 65b4d92f..00000000 --- a/pd/doc/4.fft.examples/02.noisefft.pd +++ /dev/null @@ -1,267 +0,0 @@ -#N canvas 24 0 884 580 12; -#X obj 279 320 sig~; -#X obj 187 375 *~; -#X floatatom 279 274 0 0 0; -#X floatatom 183 273 0 0 0; -#X obj 183 319 sig~; -#X text 10 246 frequency; -#N canvas 45 63 925 609 fft-analysis 0; -#X obj 241 228 + 1; -#X msg 313 322 0; -#X obj 127 190 *~; -#X obj 38 69 *~; -#X obj 37 38 *~; -#X obj 72 436 *~; -#X graph graph1 0 0 1024 1 476 244 876 44; -#X array fftout 1024 float 0; -#X pop; -#X obj 37 4 inlet~; -#X obj 37 436 *~; -#X obj 94 271 tabsend~ fftout; -#X obj 76 38 tabreceive~ hanning; -#X obj 38 116 rfft~; -#X obj 37 461 rifft~; -#X obj 37 517 outlet~; -#X text 88 21 Hanning window; -#X text 31 94 forward real FFT; -#X text 52 479 inverse real FFT; -#X obj 36 555 block~ 1024 2; -#X obj 72 69 sig~ 0.03125; -#X graph graph1 0 0 1024 1 476 554 876 354; -#X array mask 1024 float 0; -#X pop; -#X obj 94 190 *~; -#X obj 94 214 +~; -#X floatatom 241 253 0 0 0; -#X msg 247 105 0; -#X obj 175 184 float; -#X obj 226 184 + 1; -#X obj 175 123 bang~; -#X obj 175 148 spigot; -#X floatatom 303 86 0 0 0; -#X obj 101 314 tabreceive~ mask; -#X obj 241 277 t b b f; -#X obj 266 322 /; -#X msg 266 298 1; -#X obj 78 344 -~; -#X obj 266 358 sig~; -#X obj 313 298 sel 0; -#X obj 247 388 *~; -#X obj 212 419 +~; -#X obj 227 446 tabsend~ mask; -#X floatatom 313 358 0 0 0; -#X obj 175 209 t f f; -#X text 100 231 power is square; -#X text 100 245 modulus of FFT; -#X obj 303 36 loadbang; -#X obj 298 181 <; -#X msg 253 36 bang; -#X text 237 11 click to make an average; -#X obj 91 408 sig~ 0.03125; -#X text 574 249 power spectrum of this window; -#X text 338 70 Set the number; -#X text 340 85 of frames to; -#X text 342 101 average; -#X text 593 573 average power spectrum; -#X text 272 253 current frame; -#X text 284 378 weight of new; -#X text 275 391 frame in moving; -#X text 304 404 average; -#X msg 303 61 100; -#X connect 0 0 22 0; -#X connect 1 0 34 0; -#X connect 1 0 39 0; -#X connect 2 0 21 1; -#X connect 3 0 11 0; -#X connect 4 0 3 0; -#X connect 5 0 12 1; -#X connect 7 0 4 0; -#X connect 8 0 12 0; -#X connect 10 0 4 1; -#X connect 11 0 8 0; -#X connect 11 0 20 0; -#X connect 11 0 20 1; -#X connect 11 1 5 0; -#X connect 11 1 2 0; -#X connect 11 1 2 1; -#X connect 12 0 13 0; -#X connect 18 0 3 1; -#X connect 20 0 21 0; -#X connect 21 0 9 0; -#X connect 21 0 33 0; -#X connect 22 0 30 0; -#X connect 23 0 24 1; -#X connect 23 0 44 0; -#X connect 24 0 40 0; -#X connect 24 0 25 0; -#X connect 25 0 24 1; -#X connect 26 0 27 0; -#X connect 27 0 24 0; -#X connect 28 0 44 1; -#X connect 29 0 33 1; -#X connect 29 0 37 1; -#X connect 30 1 32 0; -#X connect 30 2 31 1; -#X connect 31 0 34 0; -#X connect 31 0 39 0; -#X connect 32 0 31 0; -#X connect 33 0 36 0; -#X connect 34 0 36 1; -#X connect 35 0 1 0; -#X connect 36 0 37 0; -#X connect 37 0 38 0; -#X connect 40 0 44 0; -#X connect 40 1 0 0; -#X connect 43 0 57 0; -#X connect 44 0 27 1; -#X connect 44 0 35 0; -#X connect 45 0 23 0; -#X connect 47 0 8 1; -#X connect 47 0 5 1; -#X connect 57 0 28 0; -#X restore 99 412 pd fft-analysis; -#X obj 99 275 sig~; -#X obj 99 297 phasor~; -#X obj 99 319 cos~; -#X floatatom 99 253 0 0 0; -#X graph graph1 0 -1 1024 1 431 525 687 325; -#X array scope 1024 float 0; -#X pop; -#X obj 105 439 tabwrite~ scope; -#X msg 49 418 bang; -#X obj 99 230 / 256; -#X floatatom 98 165 0 0 0; -#X text 10 155 frequency; -#X text 21 175 in bins; -#X text 16 259 in Hz.; -#X text 42 398 scope; -#N canvas 84 23 767 580 hanning-window 0; -#X obj 92 198 phasor~; -#X obj 92 234 cos~; -#X obj 23 328 tabwrite~ hanning; -#X obj 30 252 -~; -#X obj 28 218 sig~ 1; -#X msg 37 171 0; -#X text 48 59 CALCULATE HANNING; -#X text 45 71 WINDOW TABLE; -#X graph graph1 0 -1 1024 1 290 509 690 209; -#X array hanning 1024 float 0; -#X pop; -#X msg 290 521 \; hanning resize 1024; -#X obj 114 145 / 1024; -#X obj 114 168 sig~; -#X text 175 148 sample rate / window size; -#X msg 23 94 bang; -#X obj 66 269 sig~ 0.5; -#X obj 49 300 *~; -#X obj 22 38 loadbang; -#X obj 113 117 samplerate~; -#X connect 0 0 1 0; -#X connect 1 0 3 1; -#X connect 3 0 15 0; -#X connect 4 0 3 0; -#X connect 5 0 0 1; -#X connect 10 0 11 0; -#X connect 11 0 0 0; -#X connect 13 0 2 0; -#X connect 13 0 5 0; -#X connect 13 0 17 0; -#X connect 14 0 15 1; -#X connect 15 0 2 0; -#X connect 16 0 13 0; -#X connect 17 0 10 0; -#X restore 328 203 pd hanning-window; -#X obj 99 346 *~; -#X text 177 250 oscillator; -#X obj 166 349 noise~; -#X text 278 249 noise; -#X obj 99 374 +~; -#X text 214 232 amplitudes; -#X msg 26 84 \; pd dsp 1; -#X obj 98 207 *; -#X obj 135 181 loadbang; -#X obj 135 205 samplerate~; -#X text 22 51 CLICK HERE; -#X floatatom 673 67 0 0 0; -#N canvas 194 37 397 591 output 0; -#X obj 61 212 t b; -#X obj 61 147 f; -#X obj 62 76 inlet; -#X text 73 46 mute; -#X obj 61 238 f; -#X msg 127 248 0; -#X msg 61 106 bang; -#X obj 62 167 moses 1; -#X obj 127 224 t b f; -#X obj 93 462 outlet; -#X msg 92 428 set \$1; -#X obj 78 286 s master-amp; -#X obj 175 130 r master-amp; -#X obj 91 360 r master-amp; -#X obj 175 158 moses 1; -#X obj 212 420 dbtorms; -#X obj 213 442 pack 0 100; -#X obj 214 466 s master-out; -#X connect 0 0 4 0; -#X connect 1 0 7 0; -#X connect 2 0 6 0; -#X connect 4 0 11 0; -#X connect 5 0 11 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 12 0 1 1; -#X connect 12 0 14 0; -#X connect 13 0 10 0; -#X connect 13 0 15 0; -#X connect 14 1 4 1; -#X connect 15 0 16 0; -#X connect 16 0 17 0; -#X restore 673 43 pd output; -#X msg 673 19 mute; -#X text 710 70 AMPLITUDE; -#X obj 673 93 s master-amp; -#X text 241 9 NOISE FLOOR MEASUREMENT; -#X text 149 31 This patch shows how you can average the RMS spectra -of many windows of an incoming "noise floor" signal to estimate its -spectrum. We'll use this in the "denoiser" patch \, next.; -#X text 30 65 TO START; -#X obj 99 515 dac~; -#X obj 132 467 r master-out; -#X text 148 100 The controls below let you send a mixture of a sine -wave and white noise. The analysis is done in a subwindow.; -#X obj 132 490 line~; -#X obj 99 490 *~; -#X obj 183 295 dbtorms; -#X obj 279 297 dbtorms; -#X connect 0 0 1 1; -#X connect 1 0 25 1; -#X connect 2 0 46 0; -#X connect 3 0 45 0; -#X connect 4 0 21 1; -#X connect 6 0 12 0; -#X connect 6 0 44 0; -#X connect 7 0 8 0; -#X connect 8 0 9 0; -#X connect 9 0 21 0; -#X connect 10 0 7 0; -#X connect 13 0 12 0; -#X connect 14 0 10 0; -#X connect 15 0 28 0; -#X connect 21 0 25 0; -#X connect 23 0 1 0; -#X connect 25 0 6 0; -#X connect 28 0 14 0; -#X connect 29 0 30 0; -#X connect 30 0 28 1; -#X connect 32 0 36 0; -#X connect 33 0 32 0; -#X connect 34 0 33 0; -#X connect 41 0 43 0; -#X connect 43 0 44 1; -#X connect 44 0 40 0; -#X connect 44 0 40 1; -#X connect 45 0 4 0; -#X connect 46 0 0 0; diff --git a/pd/doc/4.fft.examples/03.denoise.pd b/pd/doc/4.fft.examples/03.denoise.pd deleted file mode 100644 index 09e1244e..00000000 --- a/pd/doc/4.fft.examples/03.denoise.pd +++ /dev/null @@ -1,364 +0,0 @@ -#N canvas 54 36 882 556 12; -#X floatatom 306 344; -#X floatatom 68 337; -#N canvas 72 0 896 679 fft-analysis 0; -#X obj 140 447 *~; -#X obj 54 705 *~; -#X obj 139 612 *~; -#X floatatom 206 267; -#X obj 185 349 *~; -#X obj 356 188 + 1; -#X msg 447 257 0; -#X obj 173 181 *~; -#X obj 57 89 *~; -#X obj 95 641 *~; -#X obj 57 49 inlet~; -#X obj 54 642 *~; -#X obj 126 68 tabreceive~ hanning; -#X obj 57 136 rfft~; -#X obj 54 672 rifft~; -#X obj 55 743 outlet~; -#X text 132 50 Hanning window; -#X text 63 115 forward real FFT; -#X text 72 721 inverse real FFT; -#X graph graph1 0 0 1024 20 491 631 891 331; -#X array mask 1024 float; -#X pop; -#X obj 134 180 *~; -#X obj 134 209 +~; -#X msg 447 132 0; -#X obj 317 129 float; -#X obj 377 149 + 1; -#X obj 318 72 bang~; -#X obj 318 101 spigot; -#X obj 449 186 < 10; -#X floatatom 497 185; -#X obj 256 306 tabreceive~ mask; -#X obj 357 267 /; -#X msg 357 237 1; -#X obj 230 350 -~; -#X obj 370 331 sig~; -#X obj 447 232 sel 0; -#X obj 348 356 *~; -#X obj 331 387 +~; -#X obj 330 412 tabsend~ mask; -#X floatatom 448 287; -#X obj 316 156 t f f; -#X obj 446 56 r make-mask; -#X obj 206 296 sig~; -#X obj 206 241 r mask-level; -#X obj 140 414 /~; -#X obj 356 212 t b f; -#X obj 177 612 sig~ 0.001; -#X obj 29 781 block~ 1024 4; -#X obj 663 76 r window-size; -#X obj 447 84 t b f; -#X obj 676 137 t b f; -#X obj 663 171 /; -#X obj 661 194 * 250; -#X text 728 202 hop size in msec; -#X obj 497 107 /; -#X text 497 206 number of; -#X text 505 221 frames; -#X text 439 12 calculate a mask using N msec of; -#X text 438 30 background noise; -#X obj 176 415 sig~ 1e-20; -#X text 152 467 multiply the signal by the; -#X text 153 485 quantity s/(s+m) where "s"; -#X text 152 505 is signal power and "m" is mask.; -#X text 153 527 The multiplier is close to 1 if; -#X text 155 549 s>>m \, but close to 0 if s<<m.; -#X text 157 572 We gratuitously square it.; -#X floatatom 657 237; -#X obj 699 109 r srate; -#X connect 0 0 2 0; -#X connect 1 0 15 0; -#X connect 2 0 11 1; -#X connect 2 0 9 1; -#X connect 3 0 41 0; -#X connect 4 0 43 1; -#X connect 5 0 44 0; -#X connect 6 0 38 0; -#X connect 7 0 21 1; -#X connect 8 0 13 0; -#X connect 9 0 14 1; -#X connect 10 0 8 0; -#X connect 11 0 14 0; -#X connect 12 0 8 1; -#X connect 12 0 1 1; -#X connect 13 0 11 0; -#X connect 13 0 20 0; -#X connect 13 0 20 1; -#X connect 13 1 9 0; -#X connect 13 1 7 0; -#X connect 13 1 7 1; -#X connect 14 0 1 0; -#X connect 20 0 21 0; -#X connect 21 0 32 0; -#X connect 21 0 43 0; -#X connect 21 0 43 1; -#X connect 22 0 23 1; -#X connect 22 0 27 0; -#X connect 23 0 39 0; -#X connect 23 0 24 0; -#X connect 24 0 23 1; -#X connect 25 0 26 0; -#X connect 26 0 23 0; -#X connect 27 0 26 1; -#X connect 27 0 34 0; -#X connect 28 0 27 1; -#X connect 29 0 32 1; -#X connect 29 0 4 0; -#X connect 29 0 36 0; -#X connect 30 0 38 0; -#X connect 31 0 30 0; -#X connect 32 0 35 0; -#X connect 33 0 35 1; -#X connect 34 0 6 0; -#X connect 35 0 36 1; -#X connect 36 0 37 0; -#X connect 38 0 33 0; -#X connect 39 0 27 0; -#X connect 39 1 5 0; -#X connect 40 0 48 0; -#X connect 41 0 4 1; -#X connect 42 0 3 0; -#X connect 43 0 0 0; -#X connect 43 0 0 1; -#X connect 44 0 31 0; -#X connect 44 1 30 1; -#X connect 45 0 2 1; -#X connect 47 0 50 0; -#X connect 48 0 22 0; -#X connect 48 1 53 0; -#X connect 49 0 50 0; -#X connect 49 1 50 1; -#X connect 50 0 51 0; -#X connect 51 0 53 1; -#X connect 51 0 65 0; -#X connect 53 0 28 0; -#X connect 58 0 43 1; -#X connect 66 0 49 0; -#X restore 67 412 pd fft-analysis; -#X obj 67 470 dac~; -#N canvas 99 31 767 592 hanning-window 0; -#X obj 108 242 phasor~; -#X obj 108 275 cos~; -#X obj 27 386 tabwrite~ hanning; -#X obj 35 297 -~; -#X obj 33 257 sig~ 1; -#X msg 44 212 0; -#X text 166 16 CALCULATE HANNING; -#X text 166 32 WINDOW TABLE; -#X graph graph1 0 -1 1024 1 308 538 708 238; -#X array hanning 1024 float; -#X pop; -#X msg 308 550 \; hanning resize 1024; -#X obj 109 154 / 1024; -#X obj 109 201 sig~; -#X text 206 174 sample rate / window size; -#X msg 27 169 bang; -#X obj 78 316 sig~ 0.5; -#X obj 58 353 *~; -#X obj 79 113 samplerate~; -#X obj 29 27 r window-size; -#X obj 29 62 t b f; -#X connect 0 0 1 0; -#X connect 1 0 3 1; -#X connect 3 0 15 0; -#X connect 4 0 3 0; -#X connect 5 0 0 1; -#X connect 10 0 11 0; -#X connect 11 0 0 0; -#X connect 13 0 2 0; -#X connect 13 0 5 0; -#X connect 14 0 15 1; -#X connect 15 0 2 0; -#X connect 16 0 10 0; -#X connect 17 0 18 0; -#X connect 18 0 16 0; -#X connect 18 0 13 0; -#X connect 18 1 10 1; -#X restore 459 435 pd hanning-window; -#X text 157 311 noise; -#X text 91 289 amplitudes; -#X obj 476 467 loadbang; -#N canvas 132 255 634 335 insample 0; -#X graph graph1 0 -1 155947 1 200 170 600 20; -#X array sample 155948 float; -#X pop; -#X obj 21 78 r read-sample; -#X obj 21 106 unpack s f; -#X obj 59 134 s insamprate; -#X obj 21 190 soundfiler; -#X msg 21 163 read -resize \$1 sample; -#X obj 21 223 s insamplength; -#X msg 397 219 \; sample resize 220500 \; insamplength 220500; -#X connect 1 0 2 0; -#X connect 2 0 5 0; -#X connect 2 1 3 0; -#X connect 4 0 6 0; -#X connect 5 0 4 0; -#X restore 459 407 pd insample; -#X obj 306 369 s mask-level; -#X obj 119 474 line~; -#X obj 67 442 *~; -#X obj 476 495 samplerate~; -#X obj 476 523 s srate; -#X floatatom 164 338; -#X obj 676 312 hip~ 5; -#X obj 676 284 adc~ 1; -#X msg 749 248 bang; -#X obj 782 284 r srate; -#X obj 749 284 f; -#X obj 749 312 s insamprate; -#X msg 24 209 \; window-size 1024 \; pd dsp 1; -#X obj 676 340 tabwrite~ sample; -#X msg 451 343 \; play-sample 0 5000; -#X floatatom 451 277; -#X floatatom 691 80; -#N canvas 194 37 397 591 output 0; -#X obj 95 230 t b; -#X obj 95 174 f; -#X obj 95 118 inlet; -#X text 101 94 mute; -#X obj 95 258 f; -#X msg 154 284 0; -#X msg 95 146 bang; -#X obj 95 202 moses 1; -#X obj 154 256 t b f; -#X obj 107 490 outlet; -#X msg 107 462 set \$1; -#X obj 228 182 moses 1; -#X obj 249 493 dbtorms; -#X obj 249 521 pack 0 100; -#X obj 228 154 r master-lvl; -#X obj 107 424 r master-lvl; -#X obj 95 315 s master-lvl; -#X obj 249 549 s master-out; -#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 restore 691 52 pd output; -#X msg 691 24 mute; -#X obj 119 446 r master-out; -#X text 734 71 MASTER; -#X text 733 85 LEVEL; -#X obj 691 108 s master-lvl; -#X msg 305 314 6; -#X text 306 291 on; -#X text 351 292 off; -#X text 23 189 click here first; -#X text 301 189 read a sample; -#X text 670 221 record your own sample; -#X text 305 270 masking; -#X text 481 322 play sample back; -#X text 290 5 DENOISER; -#X text 74 22 This patch attempts to scrub the noise floor from a sample in two steps. First using the "make-mask" message (which is caught in the "fft-analysis" window) \, you estimate the background spectrum. Do this while only the background noise is playing.; -#X msg 350 315 0; -#X obj 451 301 metro 2000; -#X msg 201 213 \; read-sample ../sound/bell.aiff 44100; -#N canvas 190 43 534 552 test-signal 0; -#X obj 149 326 tabread4~ sample; -#X obj 149 298 line~; -#X obj 106 162 f; -#X obj 204 137 r insamprate; -#X obj 356 422 *~; -#X obj 151 389 *~; -#X obj 359 290 noise~; -#X obj 151 441 +~; -#X obj 182 390 dbtorms; -#X obj 384 422 dbtorms; -#X obj 182 365 inlet; -#X obj 384 398 inlet; -#X obj 359 375 *~; -#X obj 359 315 bp~ 2000 7; -#X obj 151 499 outlet~; -#X obj 122 109 r insamplength; -#X msg 149 274 0 \, \$1 \$2; -#X obj 149 246 pack 0 0; -#X obj 200 221 /; -#X obj 204 163 * 0.001; -#X obj 200 190 t b f; -#X text 347 260 nasty non-flat noise; -#X obj 151 469 hip~ 5; -#X obj 100 8 loadbang; -#X text 269 15 sample playback; -#X msg 100 30 1; -#X obj 99 74 metro 1000; -#X floatatom 99 51; -#X obj 385 349 phasor~ 3000; -#X connect 0 0 5 0; -#X connect 1 0 0 0; -#X connect 2 0 17 0; -#X connect 2 0 18 0; -#X connect 3 0 19 0; -#X connect 4 0 7 1; -#X connect 5 0 7 0; -#X connect 6 0 13 0; -#X connect 7 0 22 0; -#X connect 8 0 5 1; -#X connect 9 0 4 1; -#X connect 10 0 8 0; -#X connect 11 0 9 0; -#X connect 12 0 4 0; -#X connect 13 0 12 0; -#X connect 15 0 2 1; -#X connect 16 0 1 0; -#X connect 17 0 16 0; -#X connect 18 0 17 1; -#X connect 18 0 26 1; -#X connect 19 0 20 0; -#X connect 20 0 18 0; -#X connect 20 1 18 1; -#X connect 22 0 14 0; -#X connect 23 0 25 0; -#X connect 25 0 27 0; -#X connect 26 0 2 0; -#X connect 27 0 26 0; -#X connect 28 0 12 1; -#X restore 70 375 pd test-signal; -#X text 56 310 sampler; -#X msg 507 213 \; make-mask 1000; -#X msg 564 492 \; window-size 1024; -#X text 488 186 calculate noise mask; -#X text 74 98 Then turn both the sample and the noise on together \, set the "mask-level" to 6 or so and enjoy the result. Alternatively \, you could try to mask the bell out of the noise...; -#X connect 0 0 9 0; -#X connect 1 0 45 0; -#X connect 2 0 11 0; -#X connect 7 0 12 0; -#X connect 7 0 48 0; -#X connect 10 0 11 1; -#X connect 11 0 3 0; -#X connect 11 0 3 1; -#X connect 12 0 13 0; -#X connect 14 0 45 1; -#X connect 15 0 22 0; -#X connect 16 0 15 0; -#X connect 17 0 19 0; -#X connect 17 0 22 0; -#X connect 18 0 19 1; -#X connect 19 0 20 0; -#X connect 24 0 43 0; -#X connect 25 0 31 0; -#X connect 26 0 25 0; -#X connect 27 0 26 0; -#X connect 28 0 10 0; -#X connect 32 0 0 0; -#X connect 42 0 0 0; -#X connect 43 0 23 0; -#X connect 45 0 2 0; diff --git a/pd/doc/4.fft.examples/04.shifts.pd b/pd/doc/4.fft.examples/04.shifts.pd deleted file mode 100644 index faf25118..00000000 --- a/pd/doc/4.fft.examples/04.shifts.pd +++ /dev/null @@ -1,27 +0,0 @@ -#N canvas 213 9 614 383 12; -#X msg 225 315 bang; -#X obj 201 341 print~; -#X graph graph1 0 -1 63 1 367 335 567 185; -#X array array1 64 float; -#X pop; -#X msg 155 317 bang; -#X obj 45 206 tabreceive~ array1; -#X obj 131 343 print~; -#X text 48 110 click here first; -#X msg 74 314 bang; -#X obj 50 340 print~; -#X text 93 23 This is a test of the "lrshift~" object \, which can be used for calculations that compare neighboring bins of an FFT. The "tabreceive~" picks up the contents of "array1' (consisting of 0 \, 1 \, 0 \, 0 \, ...) and the three print~ objects show the input and the two outputs.; -#X text 155 224 shift left; -#X text 182 260 shift right; -#X obj 128 240 lrshift~ 1; -#X obj 149 276 lrshift~ -1; -#X msg 49 131 \; pd dsp 1 \; array1 1 1; -#X text 223 5 SAMPLE SHIFTS; -#X connect 0 0 1 0; -#X connect 3 0 5 0; -#X connect 4 0 8 0; -#X connect 4 0 12 0; -#X connect 4 0 13 0; -#X connect 7 0 8 0; -#X connect 12 0 5 0; -#X connect 13 0 1 0; diff --git a/pd/doc/4.fft.examples/05.sheepgoat.pd b/pd/doc/4.fft.examples/05.sheepgoat.pd deleted file mode 100644 index 255b2a14..00000000 --- a/pd/doc/4.fft.examples/05.sheepgoat.pd +++ /dev/null @@ -1,395 +0,0 @@ -#N canvas 69 23 831 481 12; -#X floatatom 189 254; -#N canvas 31 3 710 622 fft-analysis 0; -#X obj 58 523 *~; -#X obj 306 397 +~; -#X obj 264 397 +~; -#X obj 232 427 *~; -#X obj 197 427 *~; -#X obj 197 452 +~; -#X obj 197 477 sqrt~; -#X obj 528 342 *~; -#X obj 493 342 *~; -#X obj 493 367 +~; -#X obj 399 256 *~; -#X obj 269 147 *~; -#X obj 234 147 *~; -#X obj 199 147 *~; -#X obj 163 147 *~; -#X obj 163 172 +~; -#X obj 21 573 *~; -#X obj 368 141 *~; -#X obj 80 80 *~; -#X obj 71 289 *~; -#X obj 99 56 inlet~; -#X obj 6 289 *~; -#X obj 28 32 tabreceive~ hanning; -#X obj 80 105 rfft~; -#X obj 21 548 rifft~; -#X obj 21 597 outlet~; -#X text 34 16 Hanning window; -#X text 106 88 forward real FFT; -#X obj 333 141 *~; -#X obj 333 167 +~; -#X obj 43 263 sig~ 0.001; -#X obj 601 576 block~ 2048 4; -#X obj 271 51 tabreceive~ last-real; -#X text 368 23 previous analysis; -#X obj 449 51 tabreceive~ last-imag; -#X obj 333 192 rsqrt~; -#X text 388 192 inverse modulus; -#X obj 234 172 -~; -#X obj 347 256 *~; -#X text 435 254 encoded as a single complex number; -#X text 435 229 amplitude and phase change; -#X obj 165 240 *~; -#X obj 128 289 tabsend~ last-real; -#X obj 165 266 tabsend~ last-imag; -#X text 191 240 sic; -#X text 543 393 modulus; -#X obj 493 448 +~; -#X text 522 447 sum of moduli; -#X obj 493 393 sqrt~; -#X text 244 472 modulus of sum; -#X obj 197 503 /~; -#X obj 197 529 -~; -#X obj 197 554 *~; -#X obj 197 579 clip~ 0 1; -#X obj 83 321 r threshold; -#X obj 83 371 t b f; -#X obj 83 422 -; -#X msg 83 397 1; -#X obj 83 472 sig~; -#X obj 10 523 *~; -#X obj 251 509 sig~ 1.5e-20; -#X obj 350 512 r flip; -#X obj 350 538 sel 0; -#X msg 350 563 1e+20; -#X msg 395 563 -1e+20; -#X floatatom 83 447; -#X obj 83 346 / 100; -#X obj 136 373 lrshift~ 1; -#X obj 210 373 lrshift~ -1; -#X obj 331 373 lrshift~ 1; -#X obj 405 373 lrshift~ -1; -#X obj 510 419 lrshift~ 1; -#X obj 593 422 lrshift~ -1; -#X connect 0 0 24 1; -#X connect 1 0 3 0; -#X connect 1 0 3 1; -#X connect 2 0 4 0; -#X connect 2 0 4 1; -#X connect 3 0 5 1; -#X connect 4 0 5 0; -#X connect 5 0 6 0; -#X connect 6 0 50 0; -#X connect 7 0 9 1; -#X connect 8 0 9 0; -#X connect 9 0 48 0; -#X connect 10 0 7 1; -#X connect 10 0 1 0; -#X connect 10 0 7 0; -#X connect 10 0 69 0; -#X connect 10 0 70 0; -#X connect 11 0 37 1; -#X connect 12 0 37 0; -#X connect 13 0 15 1; -#X connect 14 0 15 0; -#X connect 15 0 38 0; -#X connect 16 0 25 0; -#X connect 17 0 29 1; -#X connect 18 0 23 0; -#X connect 19 0 0 0; -#X connect 20 0 18 1; -#X connect 21 0 59 0; -#X connect 22 0 16 1; -#X connect 22 0 18 0; -#X connect 23 0 12 0; -#X connect 23 0 14 0; -#X connect 23 0 42 0; -#X connect 23 0 21 0; -#X connect 23 1 13 0; -#X connect 23 1 11 0; -#X connect 23 1 43 0; -#X connect 23 1 19 0; -#X connect 24 0 16 0; -#X connect 28 0 29 0; -#X connect 29 0 35 0; -#X connect 30 0 21 1; -#X connect 30 0 19 1; -#X connect 32 0 14 1; -#X connect 32 0 11 1; -#X connect 32 0 28 0; -#X connect 32 0 28 1; -#X connect 34 0 13 1; -#X connect 34 0 12 1; -#X connect 34 0 17 0; -#X connect 34 0 17 1; -#X connect 35 0 10 1; -#X connect 35 0 38 1; -#X connect 35 0 41 0; -#X connect 37 0 10 0; -#X connect 38 0 8 0; -#X connect 38 0 8 1; -#X connect 38 0 2 1; -#X connect 38 0 67 0; -#X connect 38 0 68 0; -#X connect 41 0 43 0; -#X connect 41 0 42 0; -#X connect 46 0 50 1; -#X connect 48 0 46 0; -#X connect 48 0 71 0; -#X connect 48 0 72 0; -#X connect 50 0 51 0; -#X connect 51 0 52 0; -#X connect 52 0 53 0; -#X connect 53 0 0 1; -#X connect 53 0 59 1; -#X connect 54 0 66 0; -#X connect 55 0 57 0; -#X connect 55 1 56 1; -#X connect 56 0 65 0; -#X connect 57 0 56 0; -#X connect 58 0 51 1; -#X connect 59 0 24 0; -#X connect 60 0 50 1; -#X connect 61 0 62 0; -#X connect 62 0 63 0; -#X connect 62 1 64 0; -#X connect 63 0 52 1; -#X connect 64 0 52 1; -#X connect 65 0 58 0; -#X connect 66 0 55 0; -#X connect 67 0 2 0; -#X connect 68 0 2 0; -#X connect 69 0 1 1; -#X connect 70 0 1 1; -#X connect 71 0 46 1; -#X connect 72 0 46 1; -#X restore 106 400 pd fft-analysis; -#X obj 106 468 dac~; -#X obj 106 443 *~; -#N canvas 211 72 625 525 previous-analysis 0; -#X graph graph1 0 -1 2048 1 310 246 510 96; -#X array last-real 2048 float; -#X pop; -#X graph graph2 0 -1 2048 1 309 433 509 283; -#X array last-imag 2048 float; -#X pop; -#X msg 67 202 \; last-real resize 2048 \; last-imag resize 2048; -#X restore 649 457 pd previous-analysis; -#X obj 189 279 s threshold; -#X obj 149 468 line~; -#X floatatom 622 72; -#N canvas 194 37 397 591 output 0; -#X obj 66 202 t b; -#X obj 66 152 f; -#X obj 66 102 inlet; -#X text 71 80 mute; -#X obj 66 228 f; -#X msg 134 244 0; -#X msg 66 127 bang; -#X obj 66 177 moses 1; -#X obj 134 219 t b f; -#X obj 96 441 outlet; -#X msg 96 416 set \$1; -#X obj 185 163 moses 1; -#X obj 224 444 dbtorms; -#X obj 224 469 pack 0 100; -#X obj 185 138 r master-lvl; -#X obj 96 382 r master-lvl; -#X obj 83 285 s master-lvl; -#X obj 224 494 s master-amp; -#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 restore 622 47 pd output; -#X msg 622 22 mute; -#X text 661 64 MASTER; -#X text 660 78 LEVEL; -#X obj 622 98 s master-lvl; -#X obj 149 443 r master-amp; -#X obj 571 310 loadbang; -#X obj 571 336 samplerate~; -#X text 27 215 click here first; -#X obj 470 364 hip~ 5; -#X obj 470 338 adc~ 1; -#X msg 535 306 bang; -#X obj 535 338 f; -#X obj 535 364 s insamprate; -#X obj 470 389 tabwrite~ sample; -#X text 476 279 record your own sample; -#N canvas 132 61 699 413 hanning-window 0; -#X obj 97 218 phasor~; -#X obj 97 247 cos~; -#X obj 24 347 tabwrite~ hanning; -#X obj 31 267 -~; -#X obj 30 231 sig~ 1; -#X msg 40 191 0; -#X text 149 14 CALCULATE HANNING; -#X text 149 29 WINDOW TABLE; -#X graph graph1 0 -1 2047 1 454 213 654 63; -#X array hanning 2048 float; -#X pop; -#X obj 98 139 / 1024; -#X obj 98 181 sig~; -#X text 185 156 sample rate / window size; -#X msg 24 152 bang; -#X obj 70 284 sig~ 0.5; -#X obj 52 318 *~; -#X obj 71 102 samplerate~; -#X obj 26 24 r window-size; -#X obj 26 56 t b f; -#X msg 468 265 \; hanning resize 2048; -#X connect 0 0 1 0; -#X connect 1 0 3 1; -#X connect 3 0 14 0; -#X connect 4 0 3 0; -#X connect 5 0 0 1; -#X connect 9 0 10 0; -#X connect 10 0 0 0; -#X connect 12 0 2 0; -#X connect 12 0 5 0; -#X connect 13 0 14 1; -#X connect 14 0 2 0; -#X connect 15 0 9 0; -#X connect 16 0 17 0; -#X connect 17 0 15 0; -#X connect 17 0 12 0; -#X connect 17 1 9 1; -#X restore 649 432 pd hanning-window; -#X text 190 0 PITCHED/UNPITCHED SEPARATION; -#X text 99 18 This is the first of two attempts to separate "pitched" sound from noisy sound. We perform the usual windowed FFT \, and estimate the frequency of the signal in each bin \, If a bin's frequency agrees with those of its two neighbors \, we conclude that that bin belongs to a "pitched" sound.; -#X floatatom 320 258; -#X obj 320 283 s flip; -#X msg 320 230 0; -#X text 324 192 select:; -#X text 293 211 pitched; -#X text 365 211 noisy; -#X msg 365 231 1; -#X text 182 204 threshold; -#X text 186 217 (range; -#X text 190 229 0-100); -#X text 97 90 A low threshold means to let only very coherent signals through. A high one permits more of the signal to be considered "pitched". You can select either to hear the pitched or the noisy part.; -#X text 97 147 You might agree with me that the subsequent patch works better than this one...; -#X msg 22 238 \; window-size 2048 \; flip 0 \; pd dsp 1; -#X floatatom 104 339; -#X text 184 316 noise; -#X text 125 296 amplitudes; -#X floatatom 191 340; -#N canvas 190 43 534 552 test-signal 0; -#X obj 134 293 tabread4~ sample; -#X obj 134 268 line~; -#X obj 95 146 f; -#X obj 184 123 r insamprate; -#X obj 320 380 *~; -#X obj 136 350 *~; -#X obj 323 261 noise~; -#X obj 136 397 +~; -#X obj 164 351 dbtorms; -#X obj 346 380 dbtorms; -#X obj 164 328 inlet; -#X obj 346 358 inlet; -#X obj 323 337 *~; -#X obj 323 283 bp~ 2000 7; -#X obj 136 449 outlet~; -#X obj 110 98 r insamplength; -#X msg 134 247 0 \, \$1 \$2; -#X obj 134 221 pack 0 0; -#X obj 180 199 /; -#X obj 184 147 * 0.001; -#X obj 180 171 t b f; -#X text 312 234 nasty non-flat noise; -#X obj 136 422 hip~ 5; -#X obj 90 7 loadbang; -#X text 242 13 sample playback; -#X msg 90 27 1; -#X obj 89 67 metro 1000; -#X floatatom 89 46; -#X obj 346 314 phasor~ 3000; -#X connect 0 0 5 0; -#X connect 1 0 0 0; -#X connect 2 0 17 0; -#X connect 2 0 18 0; -#X connect 3 0 19 0; -#X connect 4 0 7 1; -#X connect 5 0 7 0; -#X connect 6 0 13 0; -#X connect 7 0 22 0; -#X connect 8 0 5 1; -#X connect 9 0 4 1; -#X connect 10 0 8 0; -#X connect 11 0 9 0; -#X connect 12 0 4 0; -#X connect 13 0 12 0; -#X connect 15 0 2 1; -#X connect 16 0 1 0; -#X connect 17 0 16 0; -#X connect 18 0 17 1; -#X connect 18 0 26 1; -#X connect 19 0 20 0; -#X connect 20 0 18 0; -#X connect 20 1 18 1; -#X connect 22 0 14 0; -#X connect 23 0 25 0; -#X connect 25 0 27 0; -#X connect 26 0 2 0; -#X connect 27 0 26 0; -#X connect 28 0 12 1; -#X restore 106 373 pd test-signal; -#X text 94 315 sampler; -#N canvas 132 255 634 331 insample 0; -#X graph graph1 0 -1 155947 1 180 168 580 18; -#X array sample 155948 float; -#X pop; -#X obj 19 70 r read-sample; -#X obj 19 95 unpack s f; -#X obj 53 121 s insamprate; -#X obj 19 171 soundfiler; -#X msg 19 147 read -resize \$1 sample; -#X obj 19 201 s insamplength; -#X msg 357 197 \; sample resize 220500 \; insamplength 220500; -#X connect 1 0 2 0; -#X connect 2 0 5 0; -#X connect 2 1 3 0; -#X connect 4 0 6 0; -#X connect 5 0 4 0; -#X restore 647 409 pd insample; -#X text 536 219 read a sample; -#X msg 446 240 \; read-sample ../sound/bell.aiff 44100; -#X connect 0 0 5 0; -#X connect 1 0 3 0; -#X connect 3 0 2 0; -#X connect 3 0 2 1; -#X connect 6 0 3 1; -#X connect 7 0 12 0; -#X connect 8 0 7 0; -#X connect 9 0 8 0; -#X connect 13 0 6 0; -#X connect 14 0 15 0; -#X connect 15 0 20 1; -#X connect 17 0 22 0; -#X connect 18 0 17 0; -#X connect 19 0 20 0; -#X connect 19 0 22 0; -#X connect 20 0 21 0; -#X connect 27 0 28 0; -#X connect 29 0 27 0; -#X connect 33 0 27 0; -#X connect 40 0 44 0; -#X connect 43 0 44 1; -#X connect 44 0 1 0; diff --git a/pd/doc/4.fft.examples/06.sheepgoat2.pd b/pd/doc/4.fft.examples/06.sheepgoat2.pd deleted file mode 100644 index b62cc7a5..00000000 --- a/pd/doc/4.fft.examples/06.sheepgoat2.pd +++ /dev/null @@ -1,365 +0,0 @@ -#N canvas 5 22 761 478 12; -#N canvas 6 0 911 637 fft-analysis 0; -#X obj 581 379 *~; -#X obj 542 379 *~; -#X obj 542 407 -~; -#X obj 62 529 *~; -#X obj 318 304 *~; -#X obj 243 145 *~; -#X obj 279 144 *~; -#X obj 205 144 *~; -#X obj 166 144 *~; -#X obj 166 172 +~; -#X obj 25 597 *~; -#X floatatom 643 486; -#X obj 357 221 *~; -#X obj 94 77 *~; -#X obj 114 50 inlet~; -#X obj 37 21 tabreceive~ hanning; -#X obj 94 101 rfft~; -#X obj 25 573 rifft~; -#X obj 25 623 outlet~; -#X text 43 3 Hanning window; -#X text 123 84 forward real FFT; -#X obj 318 220 *~; -#X obj 318 249 +~; -#X obj 783 612 block~ 2048 4; -#X obj 283 45 tabreceive~ last-real; -#X text 390 13 previous analysis; -#X obj 478 45 tabreceive~ last-imag; -#X obj 318 276 rsqrt~; -#X text 390 224 inverse modulus; -#X obj 244 173 -~; -#X obj 260 304 *~; -#X obj 146 453 *~; -#X obj 100 505 tabsend~ last-real; -#X obj 138 481 tabsend~ last-imag; -#X text 174 449 sic; -#X obj 626 559 -~; -#X obj 627 586 *~; -#X obj 628 612 clip~ 0 1; -#X obj 644 435 r threshold; -#X obj 14 548 *~; -#X text 328 145 quotient (current/last); -#X obj 643 510 t f f; -#X obj 643 535 *; -#X obj 277 510 tabsend~ precess-real; -#X obj 535 327 tabreceive~ precess-real; -#X obj 724 327 tabreceive~ precess-imag; -#X obj 317 480 tabsend~ precess-imag; -#X text 621 364 imaginary part of quotient; -#X obj 539 440 *~; -#X obj 643 462 / 100; -#X text 374 270 normalized quotient \, which encodes the phase precession in the bin between two successive analyses.; -#X text 623 381 of successive phase precession; -#X text 621 397 values gives pitch stability; -#X obj 731 492 r flip; -#X obj 731 517 sel 0; -#X msg 798 547 1e+20; -#X msg 731 548 -1e+20; -#X obj 9 370 *~ 0.001; -#X obj 73 371 *~ 0.001; -#X connect 0 0 2 1; -#X connect 1 0 2 0; -#X connect 2 0 31 0; -#X connect 2 0 48 0; -#X connect 2 0 48 1; -#X connect 3 0 17 1; -#X connect 4 0 46 0; -#X connect 4 0 1 0; -#X connect 5 0 29 0; -#X connect 6 0 29 1; -#X connect 7 0 9 1; -#X connect 8 0 9 0; -#X connect 9 0 30 0; -#X connect 9 0 21 0; -#X connect 9 0 21 1; -#X connect 10 0 18 0; -#X connect 11 0 41 0; -#X connect 12 0 22 1; -#X connect 13 0 16 0; -#X connect 14 0 13 1; -#X connect 15 0 10 1; -#X connect 15 0 13 0; -#X connect 16 0 6 0; -#X connect 16 0 8 0; -#X connect 16 0 32 0; -#X connect 16 0 57 0; -#X connect 16 1 7 0; -#X connect 16 1 5 0; -#X connect 16 1 33 0; -#X connect 16 1 58 0; -#X connect 17 0 10 0; -#X connect 21 0 22 0; -#X connect 22 0 27 0; -#X connect 24 0 8 1; -#X connect 24 0 5 1; -#X connect 26 0 7 1; -#X connect 26 0 6 1; -#X connect 27 0 4 1; -#X connect 27 0 30 1; -#X connect 29 0 4 0; -#X connect 29 0 12 0; -#X connect 29 0 12 1; -#X connect 30 0 43 0; -#X connect 30 0 0 0; -#X connect 31 0 33 0; -#X connect 31 0 32 0; -#X connect 31 0 43 0; -#X connect 31 0 46 0; -#X connect 35 0 36 0; -#X connect 36 0 37 0; -#X connect 37 0 3 1; -#X connect 37 0 39 1; -#X connect 38 0 49 0; -#X connect 39 0 17 0; -#X connect 41 0 42 0; -#X connect 41 1 42 1; -#X connect 42 0 35 1; -#X connect 44 0 1 1; -#X connect 45 0 0 1; -#X connect 48 0 35 0; -#X connect 49 0 11 0; -#X connect 53 0 54 0; -#X connect 54 0 56 0; -#X connect 54 1 55 0; -#X connect 55 0 36 1; -#X connect 56 0 36 1; -#X connect 57 0 39 0; -#X connect 58 0 3 0; -#X restore 58 368 pd fft-analysis; -#X floatatom 207 217; -#X obj 58 416 dac~; -#X obj 58 388 *~; -#N canvas 662 12 796 785 previous-analysis 0; -#X graph graph1 0 -1 2048 1 344 407 744 107; -#X array last-real 2048 float; -#X pop; -#X graph graph2 0 -1 2048 1 349 719 749 419; -#X array last-imag 2048 float; -#X pop; -#X msg 43 217 \; last-real resize 2048 \; last-imag resize 2048; -#X restore 262 368 pd previous-analysis; -#X obj 207 245 s threshold; -#X obj 106 421 line~; -#X floatatom 553 78; -#N canvas 194 37 397 591 output 0; -#X obj 73 225 t b; -#X obj 73 169 f; -#X obj 73 113 inlet; -#X text 79 89 mute; -#X obj 73 253 f; -#X msg 149 271 0; -#X msg 73 141 bang; -#X obj 73 197 moses 1; -#X obj 149 243 t b f; -#X obj 107 490 outlet; -#X msg 107 462 set \$1; -#X obj 206 181 moses 1; -#X obj 249 493 dbtorms; -#X obj 249 521 pack 0 100; -#X obj 206 153 r master-lvl; -#X obj 107 424 r master-lvl; -#X obj 92 317 s master-lvl; -#X obj 249 549 s master-amp; -#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 restore 553 50 pd output; -#X msg 553 22 mute; -#X text 596 69 MASTER; -#X text 596 84 LEVEL; -#X obj 553 106 s master-lvl; -#X obj 106 393 r master-amp; -#X obj 582 277 loadbang; -#X obj 582 305 samplerate~; -#X text 30 161 click here first; -#X obj 472 334 hip~ 5; -#X obj 472 306 adc~ 1; -#X msg 545 265 bang; -#X obj 545 306 f; -#X obj 545 334 s insamprate; -#X obj 472 362 tabwrite~ sample; -#X text 465 235 record your own sample; -#N canvas 190 37 605 462 hanning-window 0; -#X obj 108 242 phasor~; -#X obj 108 275 cos~; -#X obj 27 386 tabwrite~ hanning; -#X obj 35 297 -~; -#X obj 33 257 sig~ 1; -#X msg 44 212 0; -#X text 166 16 CALCULATE HANNING; -#X text 166 32 WINDOW TABLE; -#X graph graph1 0 -1 2047 1 369 373 569 223; -#X array hanning 2048 float; -#X pop; -#X obj 109 154 / 1024; -#X obj 109 201 sig~; -#X text 171 152 sample rate / window size; -#X msg 27 169 bang; -#X obj 78 316 sig~ 0.5; -#X obj 58 353 *~; -#X obj 79 113 samplerate~; -#X obj 29 27 r window-size; -#X obj 29 62 t b f; -#X msg 385 402 \; hanning resize 2048; -#X connect 0 0 1 0; -#X connect 1 0 3 1; -#X connect 3 0 14 0; -#X connect 4 0 3 0; -#X connect 5 0 0 1; -#X connect 9 0 10 0; -#X connect 10 0 0 0; -#X connect 12 0 2 0; -#X connect 12 0 5 0; -#X connect 13 0 14 1; -#X connect 14 0 2 0; -#X connect 15 0 9 0; -#X connect 16 0 17 0; -#X connect 17 0 15 0; -#X connect 17 0 12 0; -#X connect 17 1 9 1; -#X restore 262 340 pd hanning-window; -#X text 121 15 PITCHED/UNPITCHED SEPARATION; -#X floatatom 356 205; -#X obj 356 233 s flip; -#X msg 356 177 0; -#X text 363 129 select:; -#X text 326 157 pitched; -#X text 391 156 noisy; -#X msg 391 176 1; -#X text 198 155 threshold; -#X text 204 171 (range; -#X text 207 189 0-100); -#X text 21 73 A low threshold means to let only very coherent signals through. A high one permits more of the signal to be considered "pitched". You can select either to hear the pitched or the noisy part.; -#N canvas 0 0 843 816 phase-precession 0; -#X graph graph1 0 -1 2048 1 349 423 749 123; -#X array precess-real 2048 float; -#X pop; -#X graph graph2 0 -1 2048 1 348 749 748 449; -#X array precess-imag 2048 float; -#X pop; -#X msg 45 91 \; precess-real resize 2048 \; precess-imag resize 2048; -#X restore 262 396 pd phase-precession; -#X msg 23 182 \; window-size 2048 \; flip 0 \; pd dsp 1; -#X text 20 35 Another patch to separate pitched from unpitched signals. This one does a frequency estimate for each bin and checks whether the frequency seems to be changing quickly or not.; -#X floatatom 58 323; -#X text 143 302 noise; -#X text 84 282 amplitudes; -#X floatatom 143 319; -#N canvas 190 43 534 552 test-signal 0; -#X obj 134 293 tabread4~ sample; -#X obj 134 268 line~; -#X obj 95 146 f; -#X obj 184 123 r insamprate; -#X obj 320 380 *~; -#X obj 136 350 *~; -#X obj 323 261 noise~; -#X obj 136 397 +~; -#X obj 164 351 dbtorms; -#X obj 346 380 dbtorms; -#X obj 164 328 inlet; -#X obj 346 358 inlet; -#X obj 323 337 *~; -#X obj 323 283 bp~ 2000 7; -#X obj 136 449 outlet~; -#X obj 110 98 r insamplength; -#X msg 134 247 0 \, \$1 \$2; -#X obj 134 221 pack 0 0; -#X obj 180 199 /; -#X obj 184 147 * 0.001; -#X obj 180 171 t b f; -#X text 312 234 nasty non-flat noise; -#X obj 136 422 hip~ 5; -#X obj 90 7 loadbang; -#X text 242 13 sample playback; -#X msg 90 27 1; -#X obj 89 67 metro 1000; -#X floatatom 89 46; -#X obj 346 314 phasor~ 3000; -#X connect 0 0 5 0; -#X connect 1 0 0 0; -#X connect 2 0 17 0; -#X connect 2 0 18 0; -#X connect 3 0 19 0; -#X connect 4 0 7 1; -#X connect 5 0 7 0; -#X connect 6 0 13 0; -#X connect 7 0 22 0; -#X connect 8 0 5 1; -#X connect 9 0 4 1; -#X connect 10 0 8 0; -#X connect 11 0 9 0; -#X connect 12 0 4 0; -#X connect 13 0 12 0; -#X connect 15 0 2 1; -#X connect 16 0 1 0; -#X connect 17 0 16 0; -#X connect 18 0 17 1; -#X connect 18 0 26 1; -#X connect 19 0 20 0; -#X connect 20 0 18 0; -#X connect 20 1 18 1; -#X connect 22 0 14 0; -#X connect 23 0 25 0; -#X connect 25 0 27 0; -#X connect 26 0 2 0; -#X connect 27 0 26 0; -#X connect 28 0 12 1; -#X restore 58 345 pd test-signal; -#X text 53 301 sampler; -#X text 549 158 read a sample; -#X msg 459 179 \; read-sample ../sound/bell.aiff 44100; -#N canvas 132 255 634 335 insample 0; -#X graph graph1 0 -1 155947 1 180 168 580 18; -#X array sample 155948 float; -#X pop; -#X obj 19 70 r read-sample; -#X obj 19 95 unpack s f; -#X obj 53 121 s insamprate; -#X obj 19 171 soundfiler; -#X msg 19 147 read -resize \$1 sample; -#X obj 19 201 s insamplength; -#X msg 357 197 \; sample resize 220500 \; insamplength 220500; -#X connect 1 0 2 0; -#X connect 2 0 5 0; -#X connect 2 1 3 0; -#X connect 4 0 6 0; -#X connect 5 0 4 0; -#X restore 261 310 pd insample; -#X connect 0 0 3 0; -#X connect 1 0 5 0; -#X connect 3 0 2 0; -#X connect 3 0 2 1; -#X connect 6 0 3 1; -#X connect 7 0 12 0; -#X connect 8 0 7 0; -#X connect 9 0 8 0; -#X connect 13 0 6 0; -#X connect 14 0 15 0; -#X connect 15 0 20 1; -#X connect 17 0 22 0; -#X connect 18 0 17 0; -#X connect 19 0 20 0; -#X connect 19 0 22 0; -#X connect 20 0 21 0; -#X connect 26 0 27 0; -#X connect 28 0 26 0; -#X connect 32 0 26 0; -#X connect 40 0 44 0; -#X connect 43 0 44 1; -#X connect 44 0 0 0; diff --git a/pd/doc/4.fft.examples/07.tinbell.pd b/pd/doc/4.fft.examples/07.tinbell.pd deleted file mode 100644 index 59ca1970..00000000 --- a/pd/doc/4.fft.examples/07.tinbell.pd +++ /dev/null @@ -1,248 +0,0 @@ -#N canvas 175 36 759 457 12; -#N canvas 147 -3 718 530 fft-analysis 0; -#X obj 138 257 *~; -#X obj 122 286 *~; -#X obj 87 286 *~; -#X obj 86 71 *~; -#X obj 117 71 inlet~; -#X obj 86 94 rfft~; -#X obj 60 351 *~; -#X obj 190 136 *~; -#X obj 63 40 tabreceive~ hanning; -#X obj 87 309 rifft~; -#X obj 60 374 outlet~; -#X obj 156 136 *~; -#X obj 156 159 +~; -#X obj 166 257 sig~ 0.001; -#X obj 185 349 block~ 1024 4; -#X obj 156 184 rsqrt~; -#X obj 217 187 sig~ 1e-20; -#X obj 156 211 clip~; -#X text 37 2 What does this do?; -#X floatatom 462 156; -#X obj 462 67 r squelch; -#X obj 462 177 moses; -#X msg 461 207 0; -#X obj 461 90 t f f; -#X obj 462 113 *; -#X obj 462 134 * 0.01; -#X connect 0 0 1 1; -#X connect 0 0 2 1; -#X connect 1 0 9 1; -#X connect 2 0 9 0; -#X connect 3 0 5 0; -#X connect 4 0 3 1; -#X connect 5 0 11 0; -#X connect 5 0 11 1; -#X connect 5 0 2 0; -#X connect 5 1 7 0; -#X connect 5 1 7 1; -#X connect 5 1 1 0; -#X connect 6 0 10 0; -#X connect 7 0 12 1; -#X connect 8 0 3 0; -#X connect 8 0 6 0; -#X connect 9 0 6 1; -#X connect 11 0 12 0; -#X connect 12 0 15 0; -#X connect 13 0 0 1; -#X connect 15 0 17 0; -#X connect 16 0 15 0; -#X connect 17 0 0 0; -#X connect 19 0 21 0; -#X connect 20 0 23 0; -#X connect 21 0 22 0; -#X connect 21 1 17 2; -#X connect 22 0 17 2; -#X connect 23 0 24 0; -#X connect 23 0 24 1; -#X connect 24 0 25 0; -#X connect 25 0 19 0; -#X restore 74 366 pd fft-analysis; -#X floatatom 192 206; -#X obj 74 414 dac~; -#X obj 74 390 *~; -#X obj 119 414 line~; -#X floatatom 587 68; -#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 230 0; -#X msg 62 120 bang; -#X obj 62 167 moses 1; -#X obj 127 207 t b f; -#X obj 91 417 outlet; -#X msg 91 393 set \$1; -#X obj 175 154 moses 1; -#X obj 212 419 dbtorms; -#X obj 212 443 pack 0 100; -#X obj 175 130 r master-lvl; -#X obj 91 360 r master-lvl; -#X obj 78 269 s master-lvl; -#X obj 212 467 s master-amp; -#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 restore 587 44 pd output; -#X msg 587 20 mute; -#X text 624 60 MASTER; -#X text 623 74 LEVEL; -#X obj 587 92 s master-lvl; -#X obj 119 390 r master-amp; -#X obj 664 177 loadbang; -#X obj 664 201 samplerate~; -#X text 30 187 click here first; -#X text 361 166 read a sample; -#X obj 562 225 hip~ 5; -#X obj 562 201 adc~ 1; -#X msg 624 170 bang; -#X obj 624 201 f; -#X obj 624 225 s insamprate; -#X obj 562 248 tabwrite~ sample; -#N canvas 107 33 607 436 hanning-window 0; -#X obj 92 206 phasor~; -#X obj 92 234 cos~; -#X obj 23 328 tabwrite~ hanning; -#X obj 30 252 -~; -#X obj 28 218 sig~ 1; -#X msg 37 180 0; -#X text 141 13 CALCULATE HANNING; -#X text 141 27 WINDOW TABLE; -#X graph graph1 0 -1 1024 1 295 345 495 195; -#X array hanning 1024 float; -#X pop; -#X msg 304 374 \; hanning resize 1024; -#X obj 93 131 / 1024; -#X obj 93 171 sig~; -#X text 175 148 sample rate / window size; -#X msg 23 144 bang; -#X obj 66 269 sig~ 0.5; -#X obj 49 300 *~; -#X obj 67 96 samplerate~; -#X obj 25 23 r window-size; -#X obj 25 53 t b f; -#X connect 0 0 1 0; -#X connect 1 0 3 1; -#X connect 3 0 15 0; -#X connect 4 0 3 0; -#X connect 5 0 0 1; -#X connect 10 0 11 0; -#X connect 11 0 0 0; -#X connect 13 0 2 0; -#X connect 13 0 5 0; -#X connect 14 0 15 1; -#X connect 15 0 2 0; -#X connect 16 0 10 0; -#X connect 17 0 18 0; -#X connect 18 0 16 0; -#X connect 18 0 13 0; -#X connect 18 1 10 1; -#X restore 521 332 pd hanning-window; -#X msg 24 205 \; window-size 1024 \; pd dsp 1; -#X obj 192 230 s squelch; -#X text 116 3 BOOSTING SMALL AMPLITUDES; -#X text 614 146 record; -#X floatatom 75 316; -#N canvas 190 43 405 461 test-signal 0; -#X obj 134 293 tabread4~ sample; -#X obj 134 268 line~; -#X obj 95 146 f; -#X obj 254 46 r insamprate; -#X obj 136 350 *~; -#X obj 164 351 dbtorms; -#X obj 164 328 inlet; -#X obj 135 415 outlet~; -#X obj 146 33 r insamplength; -#X msg 134 247 0 \, \$1 \$2; -#X obj 134 221 pack 0 0; -#X obj 209 190 /; -#X obj 299 99 * 0.001; -#X obj 135 388 hip~ 5; -#X obj 33 5 loadbang; -#X text 242 13 sample playback; -#X msg 33 25 1; -#X obj 33 69 metro 1000; -#X floatatom 33 48; -#X obj 255 75 t b b f; -#X obj 161 84 t b f; -#X connect 0 0 4 0; -#X connect 1 0 0 0; -#X connect 2 0 10 0; -#X connect 3 0 19 0; -#X connect 4 0 13 0; -#X connect 5 0 4 1; -#X connect 6 0 5 0; -#X connect 8 0 20 0; -#X connect 9 0 1 0; -#X connect 10 0 9 0; -#X connect 11 0 10 1; -#X connect 11 0 17 1; -#X connect 12 0 11 1; -#X connect 13 0 7 0; -#X connect 14 0 16 0; -#X connect 16 0 18 0; -#X connect 17 0 2 0; -#X connect 18 0 17 0; -#X connect 19 0 16 0; -#X connect 19 1 11 0; -#X connect 19 2 12 0; -#X connect 20 0 16 0; -#X connect 20 1 11 0; -#X connect 20 1 2 1; -#X restore 75 339 pd test-signal; -#X text 76 294 amplitude; -#N canvas 132 255 634 331 insample 0; -#X graph graph1 0 -1 155947 1 199 168 599 18; -#X array sample 155948 float; -#X pop; -#X obj 19 70 r read-sample; -#X obj 19 95 unpack s f; -#X obj 53 121 s insamprate; -#X obj 19 171 soundfiler; -#X msg 19 147 read -resize \$1 sample; -#X obj 19 201 s insamplength; -#X msg 357 197 \; sample resize 220500 \; insamplength 220500; -#X connect 1 0 2 0; -#X connect 2 0 5 0; -#X connect 2 1 3 0; -#X connect 4 0 6 0; -#X connect 5 0 4 0; -#X restore 521 357 pd insample; -#X msg 282 189 \; read-sample ../sound/bell.aiff 44100; -#X text 38 27 the "fft analysis" window here simply divides each complex bin of the FFT by its own magnitude to "flatten" the spectrum. The "squelch" control limits the amplitude boost the algorithm will apply. If infinite \, you'll get a white spectrum \; if less \, the louder parts of the spectrum will be flattened but the quieter ones will only be boosetd by the squelch value.; -#X msg 281 229 \; read-sample ../sound/voice.wav 32000; -#X connect 0 0 3 0; -#X connect 1 0 24 0; -#X connect 3 0 2 0; -#X connect 3 0 2 1; -#X connect 4 0 3 1; -#X connect 5 0 10 0; -#X connect 6 0 5 0; -#X connect 7 0 6 0; -#X connect 11 0 4 0; -#X connect 12 0 13 0; -#X connect 13 0 19 1; -#X connect 16 0 21 0; -#X connect 17 0 16 0; -#X connect 18 0 19 0; -#X connect 18 0 21 0; -#X connect 19 0 20 0; -#X connect 27 0 28 0; -#X connect 28 0 0 0; diff --git a/pd/doc/4.fft.examples/08.convobros.pd b/pd/doc/4.fft.examples/08.convobros.pd deleted file mode 100644 index 8e49ef3d..00000000 --- a/pd/doc/4.fft.examples/08.convobros.pd +++ /dev/null @@ -1,344 +0,0 @@ -#N canvas 16 29 916 517 12; -#N canvas 147 -3 669 492 fft-analysis 0; -#X obj 265 254 *~; -#X obj 249 284 *~; -#X obj 214 284 *~; -#X obj 114 120 *~; -#X obj 80 114 *~; -#X obj 80 137 +~; -#X obj 213 68 *~; -#X obj 245 68 inlet~; -#X obj 213 91 rfft~; -#X obj 59 304 *~; -#X floatatom 462 156 0 0 0; -#X obj 317 133 *~; -#X obj 80 68 *~; -#X obj 113 68 inlet~; -#X obj 61 34 tabreceive~ hanning; -#X obj 80 91 rfft~; -#X obj 214 307 rifft~; -#X obj 59 327 outlet~; -#X text 37 2 Hanning window; -#X obj 284 133 *~; -#X obj 284 156 +~; -#X obj 293 254 sig~ 0.001; -#X text 129 165 modulus; -#X obj 80 160 sqrt~; -#X obj 265 231 *~; -#X obj 462 67 r squelch; -#X obj 313 346 block~ 1024 4; -#X obj 284 182 rsqrt~; -#X obj 344 184 sig~ 1e-20; -#X obj 284 208 clip~; -#X obj 462 177 moses; -#X msg 457 221 0; -#X obj 461 90 t f f; -#X obj 462 113 *; -#X obj 462 134 * 0.01; -#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 23 0; -#X connect 6 0 8 0; -#X connect 7 0 6 1; -#X connect 8 0 19 0; -#X connect 8 0 19 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 30 0; -#X connect 11 0 20 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 19 0 20 0; -#X connect 20 0 27 0; -#X connect 21 0 0 1; -#X connect 23 0 24 0; -#X connect 24 0 0 0; -#X connect 25 0 32 0; -#X connect 27 0 29 0; -#X connect 28 0 27 0; -#X connect 29 0 24 1; -#X connect 30 0 31 0; -#X connect 30 1 29 2; -#X connect 31 0 29 2; -#X connect 32 0 33 0; -#X connect 32 0 33 1; -#X connect 33 0 34 0; -#X connect 34 0 10 0; -#X restore 119 405 pd fft-analysis; -#X floatatom 190 159 0 0 0; -#X obj 119 453 dac~; -#X obj 119 429 *~; -#X obj 164 453 line~; -#X floatatom 587 68 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 230 0; -#X msg 62 120 bang; -#X obj 62 167 moses 1; -#X obj 127 207 t b f; -#X obj 91 417 outlet; -#X msg 91 393 set \$1; -#X obj 175 154 moses 1; -#X obj 212 419 dbtorms; -#X obj 212 443 pack 0 100; -#X obj 175 130 r master-lvl; -#X obj 91 360 r master-lvl; -#X obj 78 269 s master-lvl; -#X obj 212 467 s master-amp; -#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 restore 587 44 pd output; -#X msg 587 20 mute; -#X text 624 61 MASTER; -#X text 624 75 LEVEL; -#X obj 587 92 s master-lvl; -#X obj 164 429 r master-amp; -#X obj 424 420 loadbang; -#X obj 424 443 samplerate~; -#X obj 424 467 s srate; -#X text 31 137 click here first; -#X obj 724 237 hip~ 5; -#X obj 724 213 adc~ 1; -#X msg 786 182 bang; -#X obj 814 213 r srate; -#X obj 786 213 f; -#X obj 786 237 s insamprate; -#X obj 724 260 tabwrite~ sample; -#N canvas 275 71 767 761 hanning-window 0; -#X obj 92 206 phasor~; -#X obj 92 234 cos~; -#X obj 23 328 tabwrite~ hanning; -#X obj 30 252 -~; -#X obj 28 218 sig~ 1; -#X msg 37 180 0; -#X text 141 13 CALCULATE HANNING; -#X text 141 27 WINDOW TABLE; -#X graph graph1 0 -1 1024 1 275 581 675 281; -#X array hanning 1024 float 0; -#X pop; -#X msg 275 547 \; hanning resize 1024; -#X obj 93 131 / 1024; -#X obj 93 171 sig~; -#X text 175 148 sample rate / window size; -#X msg 23 144 bang; -#X obj 66 269 sig~ 0.5; -#X obj 49 300 *~; -#X obj 67 96 samplerate~; -#X obj 25 23 r window-size; -#X obj 25 53 t b f; -#X connect 0 0 1 0; -#X connect 1 0 3 1; -#X connect 3 0 15 0; -#X connect 4 0 3 0; -#X connect 5 0 0 1; -#X connect 10 0 11 0; -#X connect 11 0 0 0; -#X connect 13 0 2 0; -#X connect 13 0 5 0; -#X connect 14 0 15 1; -#X connect 15 0 2 0; -#X connect 16 0 10 0; -#X connect 17 0 18 0; -#X connect 18 0 16 0; -#X connect 18 0 13 0; -#X connect 18 1 10 1; -#X restore 419 387 pd hanning-window; -#X msg 25 155 \; window-size 1024 \; pd dsp 1; -#X obj 190 183 s squelch; -#X obj 725 388 hip~ 5; -#X obj 725 364 adc~ 1; -#X msg 787 333 bang; -#X obj 815 364 r srate; -#X obj 787 364 f; -#X obj 787 388 s insamprate; -#X obj 725 412 tabwrite~ sample2; -#X text 177 6 CORT&ZACK's SECRET; -#X text 190 137 range 1-100; -#N canvas 190 43 743 445 test-signal 0; -#X obj 78 265 tabread4~ sample; -#X obj 78 244 line~; -#X obj 78 158 f; -#X obj 238 62 r insamprate; -#X obj 79 369 outlet~; -#X obj 130 54 r insamplength; -#X msg 78 223 0 \, \$1 \$2; -#X obj 78 202 pack 0 0; -#X obj 175 196 /; -#X obj 283 111 * 0.001; -#X obj 79 346 hip~ 5; -#X obj 25 29 loadbang; -#X text 150 24 sample playback; -#X msg 25 55 1; -#X obj 25 93 metro 1000; -#X floatatom 25 75 0 0 0; -#X obj 239 87 t b b f; -#X obj 134 105 t b f; -#X obj 445 256 line~; -#X obj 445 170 f; -#X obj 446 381 outlet~; -#X msg 445 235 0 \, \$1 \$2; -#X obj 445 214 pack 0 0; -#X obj 542 208 /; -#X obj 650 123 * 0.001; -#X obj 446 358 hip~ 5; -#X obj 392 41 loadbang; -#X msg 392 67 1; -#X obj 392 105 metro 1000; -#X floatatom 392 87 0 0 0; -#X obj 606 99 t b b f; -#X obj 501 117 t b f; -#X obj 445 277 tabread4~ sample2; -#X obj 497 66 r insamplength2; -#X obj 605 74 r insamprate2; -#X connect 0 0 10 0; -#X connect 1 0 0 0; -#X connect 2 0 7 0; -#X connect 3 0 16 0; -#X connect 5 0 17 0; -#X connect 6 0 1 0; -#X connect 7 0 6 0; -#X connect 8 0 7 1; -#X connect 8 0 14 1; -#X connect 9 0 8 1; -#X connect 10 0 4 0; -#X connect 11 0 13 0; -#X connect 13 0 15 0; -#X connect 14 0 2 0; -#X connect 15 0 14 0; -#X connect 16 0 13 0; -#X connect 16 1 8 0; -#X connect 16 2 9 0; -#X connect 17 0 13 0; -#X connect 17 1 8 0; -#X connect 17 1 2 1; -#X connect 18 0 32 0; -#X connect 19 0 22 0; -#X connect 21 0 18 0; -#X connect 22 0 21 0; -#X connect 23 0 22 1; -#X connect 23 0 28 1; -#X connect 24 0 23 1; -#X connect 25 0 20 0; -#X connect 26 0 27 0; -#X connect 27 0 29 0; -#X connect 28 0 19 0; -#X connect 29 0 28 0; -#X connect 30 0 27 0; -#X connect 30 1 23 0; -#X connect 30 2 24 0; -#X connect 31 0 27 0; -#X connect 31 1 23 0; -#X connect 31 1 19 1; -#X connect 32 0 25 0; -#X connect 33 0 31 0; -#X connect 34 0 30 0; -#X restore 117 371 pd test-signal; -#N canvas 132 255 634 327 insample 0; -#X graph graph1 0 -1 155947 1 199 168 599 18; -#X array sample 155948 float 0; -#X pop; -#X obj 19 70 r read-sample; -#X obj 19 95 unpack s f; -#X obj 53 121 s insamprate; -#X obj 19 171 soundfiler; -#X msg 19 147 read -resize \$1 sample; -#X obj 19 201 s insamplength; -#X msg 357 197 \; sample resize 220500 \; insamplength 220500; -#X connect 1 0 2 0; -#X connect 2 0 5 0; -#X connect 2 1 3 0; -#X connect 4 0 6 0; -#X connect 5 0 4 0; -#X restore 417 332 pd insample; -#N canvas 0 0 647 284 insample2 0; -#X obj 19 95 unpack s f; -#X obj 19 171 soundfiler; -#X msg 357 197 \; sample resize 220500 \; insamplength 220500; -#X graph graph2 0 -1 63023 1 207 159 607 19; -#X array sample2 63024 float 0; -#X pop; -#X obj 53 121 s insamprate2; -#X msg 19 147 read -resize \$1 sample2; -#X obj 19 201 s insamplength2; -#X obj 19 70 r read-sample2; -#X connect 0 0 5 0; -#X connect 0 1 4 0; -#X connect 1 0 6 0; -#X connect 5 0 1 0; -#X connect 7 0 0 0; -#X restore 418 358 pd insample2; -#X msg 19 230 \; read-sample ../sound/bell.aiff 44100; -#X msg 357 230 \; read-sample2 ../sound/bell.aiff 44100; -#X text 247 364 filter; -#X text 249 379 input; -#X text 51 401 source; -#X text 53 362 filter; -#X text 52 382 control; -#X text 719 158 record sample; -#X text 720 309 record sample2; -#X text 37 60 To get sound \, you have to "click here first" \, set -squelch to 10 or so \, read or record two samples \, and ease up the -master volume.; -#X msg 20 274 \; read-sample ../sound/voice.wav 32000; -#X msg 358 274 \; read-sample2 ../sound/voice.wav 32000; -#X text 37 27 This is an FFT based vocoder such as the one the Convo -bros showed at the Ann Arbor ICMC.; -#X connect 0 0 3 0; -#X connect 1 0 25 0; -#X connect 3 0 2 0; -#X connect 3 0 2 1; -#X connect 4 0 3 1; -#X connect 5 0 10 0; -#X connect 6 0 5 0; -#X connect 7 0 6 0; -#X connect 11 0 4 0; -#X connect 12 0 13 0; -#X connect 13 0 14 0; -#X connect 16 0 22 0; -#X connect 17 0 16 0; -#X connect 18 0 20 0; -#X connect 18 0 22 0; -#X connect 19 0 20 1; -#X connect 20 0 21 0; -#X connect 26 0 32 0; -#X connect 27 0 26 0; -#X connect 28 0 30 0; -#X connect 28 0 32 0; -#X connect 29 0 30 1; -#X connect 30 0 31 0; -#X connect 35 0 0 0; -#X connect 35 1 0 1; diff --git a/pd/doc/4.fft.examples/09.pvoc.pd b/pd/doc/4.fft.examples/09.pvoc.pd deleted file mode 100644 index 2af30f2b..00000000 --- a/pd/doc/4.fft.examples/09.pvoc.pd +++ /dev/null @@ -1,405 +0,0 @@ -#N canvas 100 38 719 544 12; -#X floatatom 283 336 0 0 0 0 - - -; -#X msg 569 149 bang; -#X floatatom 197 329 0 0 0 0 - - -; -#X floatatom 90 330 0 0 0 0 - - -; -#N canvas 0 2 986 683 fft-analysis 0; -#X obj 261 297 *~; -#X obj 230 297 *~; -#X obj 230 319 -~; -#X obj 326 298 *~; -#X obj 295 298 *~; -#X obj 295 320 +~; -#X obj 340 128 *~; -#X obj 309 128 *~; -#X obj 281 128 *~; -#X obj 250 128 *~; -#X obj 250 150 +~; -#X obj 220 179 *~; -#X obj 86 556 *~; -#X obj 366 251 rfft~; -#X obj 432 52 rfft~; -#X obj 477 637 *~; -#X obj 685 288 r window-size; -#X obj 751 201 r sample-rate; -#X obj 609 234 f; -#X obj 603 52 r sample-rate; -#X obj 578 29 r window-size; -#X obj 601 98 t b f; -#X obj 578 121 /; -#X obj 507 637 *~; -#X obj 87 536 *~; -#X obj 103 513 rifft~; -#X obj 87 582 outlet~; -#X obj 625 446 print~; -#X msg 624 418 bang; -#X text 152 513 inverse real FFT; -#X obj 589 210 bang~; -#X obj 516 424 line~; -#X obj 578 143 * 1000; -#X text 630 136 window size (msec); -#X obj 603 76 * 4; -#X obj 632 159 r speed; -#X obj 709 160 r location; -#X obj 640 235 +; -#X obj 633 200 *; -#X msg 710 188 0; -#X obj 609 341 +; -#X obj 600 298 t f f; -#X msg 516 396 \$1 \, \$2 \$3; -#X obj 516 369 pack 0 0 0; -#X obj 752 229 / 1000; -#X obj 609 269 *; -#X text 639 270 reading location (samples); -#X obj 637 381 / 4; -#X text 669 386 hop size (samples); -#X obj 564 464 sig~; -#X obj 534 463 +~; -#X text 638 82 (overlap times parent SR); -#X text 638 69 local sample rate; -#X obj 23 51 tabreceive~ phase-real; -#X obj 190 179 *~; -#X obj 190 201 +~; -#X obj 190 225 rsqrt~; -#X obj 309 150 -~; -#X obj 231 255 *~; -#X obj 291 255 *~; -#X obj 227 52 tabreceive~ phase-imag; -#X obj 105 381 sig~; -#X obj 88 311 t b f; -#X msg 88 332 1; -#X obj 102 355 /; -#X obj 227 436 tabsend~ phase-real; -#X obj 256 408 tabsend~ phase-imag; -#X obj 632 180 * 0.01; -#X obj 691 212 s speed; -#X obj 468 251 s see-location; -#X obj 598 618 block~ 2048 4; -#X floatatom 672 360 0 0 0 0 - - -; -#X obj 670 339 *; -#X obj 829 234 r transpo; -#X obj 829 256 * 0.01; -#X obj 831 277 + 69; -#X obj 832 298 mtof; -#X obj 832 320 / 440; -#X obj 689 316 t b f; -#X obj 88 290 r window-size; -#X floatatom 835 353 0 0 0 0 - - -; -#X obj 551 543 tabreceive~ hanning; -#X obj 536 488 tabread4~ sample; -#X obj 502 513 tabread4~ sample; -#X obj 116 126 sig~ 1e-15; -#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 69 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 67 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 68 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 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 10 0; -#X restore 43 402 pd fft-analysis; -#X obj 43 488 dac~; -#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 172 290 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 170 17 graph; -#X msg 167 564 \; phase-real resize 4096 \; phase-imag resize 4096 -; -#X restore 425 441 pd phase-tables; -#X obj 43 428 hip~ 5; -#X obj 43 458 *~; -#N canvas 249 280 600 398 loc&precess 0; -#X floatatom 160 229 0 0 0 0 - - -; -#X msg 270 175 set \$1; -#X obj 269 207 outlet; -#X obj 83 267 outlet; -#X obj 171 71 r location; -#X msg 82 235 set \$1; -#X obj 269 149 r speed; -#X obj 55 70 r see-location; -#X obj 67 102 t b f; -#X obj 82 214 f; -#X obj 54 127 int; -#X obj 54 151 sel 0; -#X msg 153 102 1; -#X msg 201 101 0; -#X obj 110 179 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 90 302 pd loc&precess; -#N canvas 0 0 600 400 setlocprecess 0; -#X obj 173 82 inlet; -#X obj 73 80 inlet; -#X obj 169 105 s speed; -#X obj 74 105 s location; -#X connect 0 0 2 0; -#X connect 1 0 3 0; -#X restore 90 353 pd setlocprecess; -#X msg 47 313 0; -#X obj 612 162 adc~; -#X obj 283 361 s transpo; -#X obj 283 285 r transpo; -#X msg 283 311 set \$1; -#X msg 423 268 \; location 0 \; speed 200; -#N canvas 138 111 767 761 hanning-window 0; -#X obj 92 206 phasor~; -#X obj 92 234 cos~; -#X obj 23 328 tabwrite~ hanning; -#X obj 30 252 -~; -#X obj 28 218 sig~ 1; -#X msg 37 180 0; -#X text 141 13 CALCULATE HANNING; -#X text 141 27 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 275 281 graph; -#X obj 93 171 sig~; -#X text 175 148 sample rate / window size; -#X msg 23 144 bang; -#X obj 66 269 sig~ 0.5; -#X obj 49 300 *~; -#X obj 94 80 samplerate~; -#X obj 25 23 r window-size; -#X obj 25 53 t b f; -#X msg 275 547 \; hanning resize 4096; -#X obj 93 132 /; -#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 423 464 pd hanning-window; -#X msg 31 172 \; window-size 2048 \; transpo 0 \; pd dsp 1; -#X floatatom 587 68 0 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 230 0; -#X msg 62 120 bang; -#X obj 62 167 moses 1; -#X obj 127 207 t b f; -#X obj 91 417 outlet; -#X msg 91 393 set \$1; -#X obj 175 154 moses 1; -#X obj 212 419 dbtorms; -#X obj 212 443 pack 0 100; -#X obj 175 130 r master-lvl; -#X obj 91 360 r master-lvl; -#X obj 78 269 s master-lvl; -#X obj 212 467 s master-amp; -#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 restore 587 44 pd output; -#X msg 587 20 mute; -#X text 624 60 MASTER; -#X text 623 74 LEVEL; -#X obj 587 92 s master-lvl; -#X text 41 153 click here first; -#X text 261 3 PHASE VOCODER; -#X obj 87 486 line~; -#X obj 87 462 r master-amp; -#X text 47 30 This is a Fourier-based analysis/resynthesis tool.; -#X text 55 251 set location; -#X text 54 265 and stop; -#X text 54 279 precession; -#X text 172 250 precession; -#X text 171 266 speed in; -#X text 171 280 hundredths; -#X text 281 244 transposition; -#X text 282 262 in cents; -#X text 491 223 examples; -#X text 428 248 contraction; -#X text 542 247 expansion; -#X msg 531 270 \; location 0 \; speed 10; -#X obj 425 340 loadbang; -#X obj 429 363 samplerate~; -#X obj 425 385 s sample-rate; -#N canvas 132 255 634 327 insample 0; -#N canvas 0 0 450 300 graph1 0; -#X array sample 155948 float 0; -#X coords 0 1 155947 -1 400 150 1; -#X restore 199 18 graph; -#X obj 19 70 r read-sample; -#X obj 19 95 unpack s f; -#X obj 53 121 s insamprate; -#X obj 19 171 soundfiler; -#X msg 19 147 read -resize \$1 sample; -#X obj 19 201 s insamplength; -#X msg 357 197 \; sample resize 220500 \; insamplength 220500; -#X connect 1 0 2 0; -#X connect 2 0 5 0; -#X connect 2 1 3 0; -#X connect 4 0 6 0; -#X connect 5 0 4 0; -#X restore 425 415 pd insample; -#X msg 196 146 \; read-sample ../sound/bell.aiff \; transpo 0; -#X msg 196 197 \; read-sample ../sound/voice.wav \; transpo -530; -#X text 46 99 The second soundfile read button sets the transposition -to correct for the 32000 sample rate of the file.; -#X text 47 50 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 obj 569 184 tabwrite~ sample; -#X connect 0 0 13 0; -#X connect 1 0 50 0; -#X connect 2 0 10 1; -#X connect 3 0 10 0; -#X connect 4 0 7 0; -#X connect 7 0 8 0; -#X connect 8 0 5 0; -#X connect 8 0 5 1; -#X connect 9 0 3 0; -#X connect 9 1 2 0; -#X connect 11 0 3 0; -#X connect 12 0 50 0; -#X connect 14 0 15 0; -#X connect 15 0 0 0; -#X connect 19 0 24 0; -#X connect 20 0 19 0; -#X connect 21 0 20 0; -#X connect 27 0 8 1; -#X connect 28 0 27 0; -#X connect 42 0 43 0; -#X connect 43 0 44 0; diff --git a/pd/doc/4.fft.examples/10.phaselockedvoc.pd b/pd/doc/4.fft.examples/10.phaselockedvoc.pd deleted file mode 100644 index 7c8be2bb..00000000 --- a/pd/doc/4.fft.examples/10.phaselockedvoc.pd +++ /dev/null @@ -1,444 +0,0 @@ -#N canvas 117 53 719 544 12; -#X floatatom 279 354 0 0 0 0 - - -; -#X msg 563 169 bang; -#X floatatom 186 351 0 0 0 0 - - -; -#X floatatom 84 350 0 0 0 0 - - -; -#N canvas 5 5 986 679 fft-analysis 0; -#X obj 177 242 *~; -#X obj 146 242 *~; -#X obj 146 264 -~; -#X obj 242 243 *~; -#X obj 211 243 *~; -#X obj 211 265 +~; -#X obj 256 73 *~; -#X obj 225 73 *~; -#X obj 197 73 *~; -#X obj 166 73 *~; -#X obj 166 95 +~; -#X obj 136 124 *~; -#X obj 49 560 *~; -#X obj 365 179 rfft~; -#X obj 291 34 rfft~; -#X obj 490 598 *~; -#X obj 685 288 r window-size; -#X obj 751 201 r sample-rate; -#X obj 609 234 f; -#X obj 603 52 r sample-rate; -#X obj 578 29 r window-size; -#X obj 601 98 t b f; -#X obj 578 121 /; -#X obj 520 598 *~; -#X obj 50 540 *~; -#X obj 66 517 rifft~; -#X obj 50 586 outlet~; -#X obj 625 446 print~; -#X msg 624 418 bang; -#X text 115 517 inverse real FFT; -#X obj 589 210 bang~; -#X obj 516 424 line~; -#X obj 578 143 * 1000; -#X text 630 136 window size (msec); -#X obj 603 76 * 4; -#X obj 632 159 r speed; -#X obj 709 160 r location; -#X obj 640 235 +; -#X obj 633 200 *; -#X msg 710 188 0; -#X obj 609 341 +; -#X obj 600 298 t f f; -#X msg 516 396 \$1 \, \$2 \$3; -#X obj 516 369 pack 0 0 0; -#X obj 752 229 / 1000; -#X obj 609 269 *; -#X text 639 270 reading location (samples); -#X obj 637 381 / 4; -#X text 669 386 hop size (samples); -#X obj 564 464 sig~; -#X obj 534 463 +~; -#X text 638 82 (overlap times parent SR); -#X text 638 69 local sample rate; -#X obj 103 10 tabreceive~ phase-real; -#X obj 106 124 *~; -#X obj 106 146 +~; -#X obj 106 170 rsqrt~; -#X obj 225 95 -~; -#X obj 147 200 *~; -#X obj 207 200 *~; -#X obj 266 9 tabreceive~ phase-imag; -#X obj 31 481 sig~; -#X obj 14 411 t b f; -#X msg 14 432 1; -#X obj 28 455 /; -#X obj 187 496 tabsend~ phase-real; -#X obj 288 474 tabsend~ phase-imag; -#X obj 632 180 * 0.01; -#X obj 691 212 s speed; -#X obj 474 263 s see-location; -#X obj 598 618 block~ 2048 4; -#X floatatom 672 360 0 0 0 0 - - -; -#X obj 670 339 *; -#X obj 829 234 r transpo; -#X obj 829 256 * 0.01; -#X obj 831 277 + 69; -#X obj 832 298 mtof; -#X obj 832 320 / 440; -#X obj 689 316 t b f; -#X obj 14 390 r window-size; -#X floatatom 835 353 0 0 0 0 - - -; -#X obj 551 543 tabreceive~ hanning; -#X obj 534 489 tabread4~ sample; -#X obj 516 515 tabread4~ sample; -#X obj 145 422 -~; -#X obj 249 385 r lock; -#X obj 162 291 lrshift~ 1; -#X obj 154 315 lrshift~ -1; -#X obj 227 339 lrshift~ 1; -#X obj 219 363 lrshift~ -1; -#X obj 210 432 -~; -#X obj 161 397 *~ 0; -#X obj 226 408 *~ 0; -#X obj 50 71 sig~ 1e-15; -#X connect 0 0 2 1; -#X connect 1 0 2 0; -#X connect 2 0 86 0; -#X connect 2 0 87 0; -#X connect 2 0 84 0; -#X connect 3 0 5 1; -#X connect 4 0 5 0; -#X connect 5 0 88 0; -#X connect 5 0 89 0; -#X connect 5 0 90 0; -#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 69 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 67 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 68 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 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 65 0; -#X connect 84 0 25 0; -#X connect 85 0 92 1; -#X connect 85 0 91 1; -#X connect 86 0 91 0; -#X connect 87 0 91 0; -#X connect 88 0 92 0; -#X connect 89 0 92 0; -#X connect 90 0 66 0; -#X connect 90 0 25 1; -#X connect 91 0 84 1; -#X connect 92 0 90 1; -#X connect 93 0 10 0; -#X restore 37 422 pd fft-analysis; -#X obj 37 508 dac~; -#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 172 290 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 170 17 graph; -#X msg 167 564 \; phase-real resize 4096 \; phase-imag resize 4096 -; -#X restore 419 489 pd phase-tables; -#X obj 37 448 hip~ 5; -#X obj 37 478 *~; -#N canvas 249 280 600 398 loc&precess 0; -#X floatatom 160 229 0 0 0 0 - - -; -#X msg 270 175 set \$1; -#X obj 269 207 outlet; -#X obj 83 267 outlet; -#X obj 171 71 r location; -#X msg 82 235 set \$1; -#X obj 269 149 r speed; -#X obj 55 70 r see-location; -#X obj 67 102 t b f; -#X obj 82 214 f; -#X obj 54 127 int; -#X obj 54 151 sel 0; -#X msg 153 102 1; -#X msg 201 101 0; -#X obj 110 179 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 84 322 pd loc&precess; -#N canvas 0 0 600 400 setlocprecess 0; -#X obj 173 82 inlet; -#X obj 73 80 inlet; -#X obj 169 105 s speed; -#X obj 74 105 s location; -#X connect 0 0 2 0; -#X connect 1 0 3 0; -#X restore 84 373 pd setlocprecess; -#X msg 41 333 0; -#X obj 606 182 adc~; -#X obj 279 379 s transpo; -#X obj 277 305 r transpo; -#X msg 277 331 set \$1; -#X msg 404 287 \; location 0 \; speed 200; -#N canvas 138 111 767 761 hanning-window 0; -#X obj 92 206 phasor~; -#X obj 92 234 cos~; -#X obj 23 328 tabwrite~ hanning; -#X obj 30 252 -~; -#X obj 28 218 sig~ 1; -#X msg 37 180 0; -#X text 141 13 CALCULATE HANNING; -#X text 141 27 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 275 281 graph; -#X obj 93 171 sig~; -#X text 175 148 sample rate / window size; -#X msg 23 144 bang; -#X obj 66 269 sig~ 0.5; -#X obj 49 300 *~; -#X obj 94 80 samplerate~; -#X obj 25 23 r window-size; -#X obj 25 53 t b f; -#X msg 275 547 \; hanning resize 4096; -#X obj 93 132 /; -#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 417 512 pd hanning-window; -#X msg 25 192 \; window-size 2048 \; transpo 0 \; pd dsp 1; -#X floatatom 587 68 0 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 230 0; -#X msg 62 120 bang; -#X obj 62 167 moses 1; -#X obj 127 207 t b f; -#X obj 91 417 outlet; -#X msg 91 393 set \$1; -#X obj 175 154 moses 1; -#X obj 212 419 dbtorms; -#X obj 212 443 pack 0 100; -#X obj 175 130 r master-lvl; -#X obj 91 360 r master-lvl; -#X obj 78 269 s master-lvl; -#X obj 212 467 s master-amp; -#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 restore 587 44 pd output; -#X msg 587 20 mute; -#X text 624 60 MASTER; -#X text 623 74 LEVEL; -#X obj 587 92 s master-lvl; -#X text 35 173 click here first; -#X obj 81 506 line~; -#X obj 81 482 r master-amp; -#X text 49 271 set location; -#X text 48 285 and stop; -#X text 48 299 precession; -#X text 166 270 precession; -#X text 165 286 speed in; -#X text 165 300 hundredths; -#X text 275 264 transposition; -#X text 276 282 in cents; -#X text 512 242 examples; -#X text 407 266 contraction; -#X text 623 265 expansion; -#X msg 612 288 \; location 0 \; speed 10; -#X obj 419 360 loadbang; -#X obj 423 383 samplerate~; -#X obj 419 405 s sample-rate; -#N canvas 132 255 846 368 insample 0; -#N canvas 0 0 450 300 graph1 0; -#X array sample 92615 float 0; -#X coords 0 1 92614 -1 400 150 1; -#X restore 406 155 graph; -#X obj 12 19 r read-sample; -#X obj 12 132 unpack s f; -#X obj 46 158 s insamprate; -#X obj 12 208 soundfiler; -#X msg 12 184 read -resize \$1 sample; -#X obj 12 238 s insamplength; -#X msg 20 289 \; sample resize 220500 \; insamplength 220500; -#X obj 22 46 inlet; -#X obj 22 73 openpanel; -#X obj 22 101 pack s 50; -#X connect 1 0 2 0; -#X connect 2 0 5 0; -#X connect 2 1 3 0; -#X connect 4 0 6 0; -#X connect 5 0 4 0; -#X connect 8 0 9 0; -#X connect 9 0 10 0; -#X connect 10 0 2 0; -#X restore 419 463 pd insample; -#X msg 190 163 \; read-sample ../sound/bell.aiff \; transpo 0; -#X msg 190 217 \; read-sample ../sound/voice.wav \; transpo -530; -#X obj 563 204 tabwrite~ sample; -#X obj 583 411 s lock; -#X floatatom 583 386 0 0 0 0 - - -; -#X msg 584 359 0; -#X msg 618 358 1; -#X text 135 18 PHASE LOCKING VOCODER; -#X text 32 46 This is a spin on the phase vocoder which prevents beating -between adjacent channels of the FFT. This is described in "Phase Locked -Vocoder" (reprinted on MSP's web page) and further improved by Laroche -and Dolson \, reported in ICMC97.; -#X obj 419 440 bng 15 250 50 0 empty empty read-sample 20 8 0 12 -262144 --1 -1; -#X text 528 265 normal; -#X msg 507 288 \; location 0 \; speed 100; -#X connect 0 0 13 0; -#X connect 1 0 46 0; -#X connect 2 0 10 1; -#X connect 3 0 10 0; -#X connect 4 0 7 0; -#X connect 7 0 8 0; -#X connect 8 0 5 0; -#X connect 8 0 5 1; -#X connect 9 0 3 0; -#X connect 9 1 2 0; -#X connect 11 0 3 0; -#X connect 12 0 46 0; -#X connect 14 0 15 0; -#X connect 15 0 0 0; -#X connect 19 0 24 0; -#X connect 20 0 19 0; -#X connect 21 0 20 0; -#X connect 26 0 8 1; -#X connect 27 0 26 0; -#X connect 40 0 41 0; -#X connect 41 0 42 0; -#X connect 48 0 47 0; -#X connect 49 0 48 0; -#X connect 50 0 48 0; -#X connect 53 0 43 0; diff --git a/pd/doc/4.fft.examples/11.pianorev.pd b/pd/doc/4.fft.examples/11.pianorev.pd deleted file mode 100644 index fd2f0c04..00000000 --- a/pd/doc/4.fft.examples/11.pianorev.pd +++ /dev/null @@ -1,378 +0,0 @@ -#N canvas 48 26 570 543 12; -#N canvas 52 71 774 520 previous-analysis 0; -#X graph graph1 0 -1 2048 1 103 165 303 15; -#X array last-real 2048 float; -#X pop; -#X graph graph2 0 -1 2048 1 497 156 697 6; -#X array last-imag 2048 float; -#X pop; -#X graph graph1 0 -1 2048 1 105 335 305 185; -#X array phase-real 2048 float; -#X pop; -#X graph graph2 0 -1 2048 1 501 328 701 178; -#X array phase-imag 2048 float; -#X pop; -#X msg 106 541 \; last-real resize 2048 \; last-imag resize 2048 \; phase-real resize 2048 \; phase-imag resize 2048 \; inc-real resize 2048 \; inc-imag resize 2048; -#X graph graph1 0 -1 2048 1 105 507 305 357; -#X array inc-real 2048 float; -#X pop; -#X graph graph2 0 -1 2048 1 503 492 703 342; -#X array inc-imag 2048 float; -#X pop; -#X restore 411 384 pd previous-analysis; -#N canvas 29 2 866 679 fft 0; -#X obj 14 640 *~; -#X obj 422 576 *~; -#X obj 396 576 *~; -#X obj 480 576 *~; -#X obj 455 576 *~; -#X obj 455 598 +~; -#X obj 395 601 -~; -#X obj 138 480 *~; -#X obj 531 332 -~; -#X obj 505 528 +~; -#X obj 531 528 *~; -#X obj 458 330 -~; -#X obj 431 526 +~; -#X obj 458 526 *~; -#X obj 159 336 -~; -#X obj 133 373 +~; -#X obj 159 373 *~; -#X obj 201 138 *~; -#X obj 172 138 *~; -#X obj 172 159 +~; -#X obj 351 288 *~; -#X obj 325 288 *~; -#X obj 404 115 *~; -#X obj 379 115 *~; -#X obj 336 116 *~; -#X obj 311 116 *~; -#X obj 181 408 *~; -#X obj 154 409 *~; -#X obj 198 37 *~; -#X obj 14 662 outlet~; -#X obj 14 615 *~; -#X obj 18 16 tabreceive~ hanning-window; -#X obj 537 561 block~ 2048 4; -#X obj 214 12 inlet~; -#X obj 198 58 rfft~; -#X obj 30 591 rifft~; -#X obj 30 99 tabsend~ last-real; -#X obj 30 130 tabsend~ last-imag; -#X obj 154 431 rsqrt~; -#X obj 311 138 +~; -#X obj 379 137 -~; -#X obj 35 255 tabreceive~ inc-real; -#X obj 69 278 tabreceive~ inc-imag; -#X obj 430 202 tabreceive~ phase-real; -#X obj 502 225 tabreceive~ phase-imag; -#X obj 325 309 +~; -#X obj 75 335 -~; -#X obj 354 40 tabreceive~ last-real; -#X obj 414 62 tabreceive~ last-imag; -#X obj 48 372 +~; -#X obj 75 372 *~; -#X obj 51 479 *~; -#X obj 191 454 r gain; -#X obj 46 560 tabsend~ inc-real; -#X obj 64 519 tabsend~ inc-imag; -#X obj 391 649 tabsend~ phase-real; -#X obj 453 620 tabsend~ phase-imag; -#X obj 52 618 sig~ 0.0002; -#X obj 60 217 *~ 0; -#X obj 154 453 *~ 0; -#N canvas 167 161 699 396 decision 0; -#X obj 63 32 inlet~; -#X obj 64 272 outlet~; -#X obj 64 114 -~; -#X obj 64 157 clip~ 0 1; -#X obj 64 135 *~ 1e+20; -#X obj 135 31 inlet~; -#X text 139 136 1 if new sig; -#X text 138 147 stronger than; -#X text 140 159 old one; -#X obj 245 130 -~; -#X obj 259 105 lrshift~ 1; -#X obj 245 178 clip~ 0 1; -#X obj 245 156 *~ 1e+20; -#X obj 421 130 -~; -#X obj 421 178 clip~ 0 1; -#X obj 421 156 *~ 1e+20; -#X obj 435 105 lrshift~ -1; -#X obj 64 214 *~; -#X obj 64 243 *~; -#X connect 0 0 2 0; -#X connect 0 0 10 0; -#X connect 0 0 9 0; -#X connect 0 0 13 0; -#X connect 0 0 16 0; -#X connect 2 0 4 0; -#X connect 3 0 17 0; -#X connect 4 0 3 0; -#X connect 5 0 2 1; -#X connect 9 0 12 0; -#X connect 10 0 9 1; -#X connect 11 0 17 1; -#X connect 12 0 11 0; -#X connect 13 0 15 0; -#X connect 14 0 18 1; -#X connect 15 0 14 0; -#X connect 16 0 13 1; -#X connect 17 0 18 0; -#X connect 18 0 1 0; -#X restore 253 334 pd decision; -#X obj 391 626 +~ 1e-15; -#X obj 46 540 +~ 1e-15; -#X connect 0 0 29 0; -#X connect 1 0 6 1; -#X connect 2 0 6 0; -#X connect 3 0 5 1; -#X connect 4 0 5 0; -#X connect 5 0 56 0; -#X connect 6 0 61 0; -#X connect 7 0 54 0; -#X connect 7 0 1 0; -#X connect 7 0 3 0; -#X connect 8 0 10 0; -#X connect 9 0 35 1; -#X connect 9 0 1 1; -#X connect 9 0 4 1; -#X connect 10 0 9 1; -#X connect 11 0 13 0; -#X connect 12 0 35 0; -#X connect 12 0 2 1; -#X connect 12 0 3 1; -#X connect 13 0 12 1; -#X connect 14 0 16 0; -#X connect 15 0 26 0; -#X connect 15 0 26 1; -#X connect 15 0 7 0; -#X connect 16 0 15 1; -#X connect 17 0 19 1; -#X connect 18 0 19 0; -#X connect 19 0 60 0; -#X connect 20 0 45 1; -#X connect 21 0 45 0; -#X connect 22 0 40 1; -#X connect 23 0 40 0; -#X connect 24 0 39 1; -#X connect 25 0 39 0; -#X connect 26 0 38 0; -#X connect 27 0 38 0; -#X connect 28 0 34 0; -#X connect 30 0 0 0; -#X connect 31 0 28 0; -#X connect 31 0 30 0; -#X connect 33 0 28 1; -#X connect 34 0 25 0; -#X connect 34 0 22 0; -#X connect 34 0 18 0; -#X connect 34 0 18 1; -#X connect 34 0 11 0; -#X connect 34 0 36 0; -#X connect 34 1 24 0; -#X connect 34 1 23 0; -#X connect 34 1 17 0; -#X connect 34 1 17 1; -#X connect 34 1 8 0; -#X connect 34 1 37 0; -#X connect 35 0 30 1; -#X connect 38 0 59 0; -#X connect 39 0 46 0; -#X connect 39 0 58 0; -#X connect 40 0 14 0; -#X connect 41 0 49 0; -#X connect 41 0 46 1; -#X connect 42 0 15 0; -#X connect 42 0 14 1; -#X connect 43 0 21 0; -#X connect 43 0 21 1; -#X connect 43 0 12 0; -#X connect 43 0 11 1; -#X connect 44 0 20 0; -#X connect 44 0 20 1; -#X connect 44 0 9 0; -#X connect 44 0 8 1; -#X connect 45 0 60 1; -#X connect 46 0 50 0; -#X connect 47 0 25 1; -#X connect 47 0 23 1; -#X connect 48 0 24 1; -#X connect 48 0 22 1; -#X connect 49 0 27 0; -#X connect 49 0 27 1; -#X connect 49 0 51 0; -#X connect 50 0 49 1; -#X connect 51 0 2 0; -#X connect 51 0 4 0; -#X connect 51 0 62 0; -#X connect 52 0 59 1; -#X connect 57 0 0 1; -#X connect 58 0 37 0; -#X connect 58 0 36 0; -#X connect 59 0 51 1; -#X connect 59 0 7 1; -#X connect 60 0 50 1; -#X connect 60 0 16 1; -#X connect 60 0 13 1; -#X connect 60 0 10 1; -#X connect 61 0 55 0; -#X connect 62 0 53 0; -#X restore 203 438 pd fft; -#X floatatom 47 260; -#X obj 202 518 dac~; -#N canvas 58 75 719 400 hanning-window 0; -#X obj 99 231 phasor~; -#X obj 99 267 cos~; -#X obj 45 284 -~; -#X obj 43 250 sig~ 1; -#X msg 53 212 0; -#X graph graph1 0 -1 2047 1 393 274 593 124; -#X array hanning-window 2048 float; -#X pop; -#X obj 101 117 r sample-rate; -#X obj 216 119 r window-size; -#X obj 124 145 t b f; -#X obj 101 167 /; -#X obj 99 204 sig~; -#X obj 39 71 r make-window; -#X msg 38 145 bang; -#X obj 31 349 tabwrite~ hanning-window; -#X floatatom 184 204; -#X obj 47 311 *~ 0.5; -#X msg 371 303 \; hanning-window resize 2048; -#X connect 0 0 1 0; -#X connect 1 0 2 1; -#X connect 2 0 15 0; -#X connect 3 0 2 0; -#X connect 4 0 0 1; -#X connect 6 0 9 0; -#X connect 7 0 8 0; -#X connect 8 0 9 0; -#X connect 8 1 9 1; -#X connect 9 0 10 0; -#X connect 10 0 0 0; -#X connect 11 0 12 0; -#X connect 12 0 4 0; -#X connect 12 0 13 0; -#X connect 15 0 13 0; -#X restore 411 355 pd hanning-window; -#X obj 410 419 loadbang; -#X obj 202 487 *~; -#X obj 262 464 line~; -#X obj 47 464 s gain; -#X msg 47 336 0; -#X msg 410 445 \; sample-rate 44100 \; window-size 2048 \; make-window bang \; gain 0 \;; -#X obj 92 341 t b b f; -#X obj 119 394 /; -#X msg 89 394 1; -#X obj 89 417 -; -#X floatatom 47 442; -#X obj 47 288 * 0.1; -#X floatatom 480 78; -#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 230 0; -#X msg 62 120 bang; -#X obj 62 167 moses 1; -#X obj 127 207 t b f; -#X obj 91 417 outlet; -#X msg 91 393 set \$1; -#X obj 175 154 moses 1; -#X obj 212 419 dbtorms; -#X obj 212 443 pack 0 100; -#X obj 175 130 r master-lvl; -#X obj 91 360 r master-lvl; -#X obj 78 269 s master-lvl; -#X obj 212 467 s master-amp; -#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 restore 480 54 pd output; -#X msg 480 30 mute; -#X text 517 70 MASTER; -#X text 516 84 LEVEL; -#X obj 480 102 s master-lvl; -#X obj 262 437 r master-amp; -#X obj 203 339 osc~; -#X obj 282 394 line~; -#X msg 270 268 bang; -#X floatatom 203 316; -#X obj 203 415 *~; -#X obj 271 343 pack 1 0; -#X obj 316 370 pack 0 0; -#X obj 301 316 del; -#X floatatom 338 283; -#X obj 203 293 mtof; -#X floatatom 203 269; -#X obj 203 364 cos~; -#X obj 202 461 hip~ 5; -#X obj 203 388 hip~ 20; -#X obj 48 313 moses 0.1; -#X msg 114 366 0.005; -#X text 131 9 PIANO REVERB; -#X text 42 29 This is intended as an imitation of how the strings of a piano can act as a reverberator. The sound is more "pitched" and less "whispered" than a standard delay-based reverberator (or for that matter \, than a reverberant room.); -#X text 41 88 Many pieces in the literature call for just this effect \, notably Boulez's Dialogue de l'ombre double.; -#X text 40 118 This particular algorithm is actually TOO clean sounding and would have to be chorused to make a serviceable imitation. However \, it might be interesting in its own right.; -#X text 39 173 The technique is to run a phase vocoder \, but only to "punch" the incoming sound into channels where (1) there's a peak \, and (2) the incoming sound drowns out whatever might already be there.; -#X text 27 238 reverb time; -#X text 179 248 test pitch; -#X text 267 249 trigger; -#X text 334 264 duration; -#X connect 1 0 36 0; -#X connect 2 0 16 0; -#X connect 5 0 10 0; -#X connect 6 0 3 0; -#X connect 6 0 3 1; -#X connect 7 0 6 1; -#X connect 9 0 15 0; -#X connect 11 0 13 0; -#X connect 11 1 39 0; -#X connect 11 2 12 1; -#X connect 12 0 14 1; -#X connect 13 0 14 0; -#X connect 14 0 15 0; -#X connect 15 0 8 0; -#X connect 16 0 38 0; -#X connect 17 0 22 0; -#X connect 18 0 17 0; -#X connect 19 0 18 0; -#X connect 23 0 7 0; -#X connect 24 0 35 0; -#X connect 25 0 28 1; -#X connect 26 0 29 0; -#X connect 26 0 31 0; -#X connect 27 0 24 0; -#X connect 28 0 1 0; -#X connect 29 0 25 0; -#X connect 30 0 25 0; -#X connect 31 0 30 0; -#X connect 32 0 31 1; -#X connect 32 0 29 1; -#X connect 32 0 30 1; -#X connect 33 0 27 0; -#X connect 34 0 33 0; -#X connect 35 0 37 0; -#X connect 36 0 6 0; -#X connect 37 0 28 0; -#X connect 38 0 9 0; -#X connect 38 1 11 0; -#X connect 39 0 12 0; diff --git a/pd/doc/4.fft.examples/14.waveformgrab.pd b/pd/doc/4.fft.examples/14.waveformgrab.pd deleted file mode 100644 index a9d17bed..00000000 --- a/pd/doc/4.fft.examples/14.waveformgrab.pd +++ /dev/null @@ -1,385 +0,0 @@ -#N canvas 59 19 701 580 12; -#X msg 415 337 set \$1; -#X floatatom 596 337; -#N canvas 81 37 483 329 fft 0; -#X obj 102 155 *~; -#X obj 70 155 *~; -#X obj 70 98 *~; -#X obj 70 52 inlet~; -#X obj 70 127 rfft~; -#X obj 70 182 sqrt~; -#X obj 70 209 *~; -#X obj 70 261 rifft~; -#X obj 70 287 tabwrite~ grab; -#X obj 86 74 tabreceive~ half-sine; -#X obj 70 235 /~ 512; -#X obj 137 191 tabreceive~ alternator; -#X obj 162 259 r do-grab; -#X obj 368 310 block~ 1024 2; -#X connect 0 0 5 0; -#X connect 1 0 5 0; -#X connect 2 0 4 0; -#X connect 3 0 2 0; -#X connect 4 0 1 0; -#X connect 4 0 1 1; -#X connect 4 1 0 0; -#X connect 4 1 0 1; -#X connect 5 0 6 0; -#X connect 6 0 10 0; -#X connect 7 0 8 0; -#X connect 9 0 2 1; -#X connect 10 0 7 0; -#X connect 11 0 6 1; -#X connect 12 0 8 0; -#X restore 186 422 pd fft; -#X floatatom 511 360; -#X floatatom 415 360; -#X obj 186 398 hip~ 5; -#X obj 99 544 dac~; -#N canvas 0 0 600 273 in-sample 0; -#X graph graph1 0 -1 440999 1 160 166 560 16; -#X array grab 441000 float; -#X pop; -#X msg 186 208 \; grab resize 441000; -#X obj 38 224 soundfiler; -#X msg 38 191 write x.wav grab; -#X msg 353 212 \; grab resize 4410; -#X connect 3 0 2 0; -#X restore 371 446 pd in-sample; -#X obj 116 491 hip~ 5; -#X obj 99 515 *~; -#N canvas 59 0 781 602 regenerate 0; -#X obj 90 400 r invblk; -#X obj 50 463 *~; -#X obj 67 443 clip~ 1 1000; -#X floatatom 31 41; -#X floatatom 221 117; -#X obj 430 368 *~; -#X obj 558 345 samphold~; -#X obj 672 345 samphold~; -#X obj 467 345 samphold~; -#X obj 446 493 clip~ -0.5 0.5; -#X obj 446 516 cos~; -#X obj 674 389 +~; -#X obj 565 443 -~; -#X obj 550 463 *~; -#X obj 602 491 +~; -#X obj 585 558 *~; -#X obj 37 373 *~; -#X obj 169 338 samphold~; -#X obj 311 343 samphold~; -#X obj 116 181 sig~; -#X obj 221 230 phasor~; -#X obj 330 180 wrap~; -#X obj 221 92 r pitch; -#X obj 221 161 mtof; -#X obj 116 157 r sample-rate; -#X obj 314 156 line~; -#X text 360 153 read location in blocks; -#X obj 314 234 -~; -#X text 374 179 fractional part; -#X text 338 234 integer part; -#X text 71 128 spectral stretch; -#X obj 66 335 samphold~; -#X obj 319 256 sig~ 0.5; -#X text 294 357 middle of block; -#X obj 413 34 t b f; -#X obj 413 80 /; -#X obj 413 56 1; -#X obj 51 488 clip~ -0.5 0.5; -#X obj 51 510 cos~; -#X obj 294 396 +~; -#X obj 173 450 -~; -#X obj 155 471 *~; -#X obj 162 494 +~; -#X obj 145 550 *~; -#X text 68 365 offset into; -#X text 78 376 sample; -#X text 128 243 samples; -#X text 128 228 period in; -#X text 175 353 weight for; -#X text 174 364 next block; -#X obj 640 193 wrap~; -#X obj 413 102 s invblk; -#X text 411 118 one over block size; -#X obj 483 406 r invblk; -#X obj 145 574 send~ outsig; -#X floatatom 328 87; -#X obj 328 112 pack 0 100; -#X obj 413 11 r window-size; -#X obj 454 239 r window-size; -#X obj 31 17 r specshift; -#X text 103 270 grain size in samples; -#X obj 314 37 r loco; -#X obj 444 472 *~; -#X obj 460 450 clip~ 1 1000; -#X text 91 347 grain; -#X obj 221 141 - 12; -#X obj 173 421 tabread4~ grab; -#X obj 294 422 tabread4~ grab; -#X obj 565 414 tabread4~ grab; -#X obj 674 415 tabread4~ grab; -#X obj 31 64 * 0.01; -#X obj 31 88 + 69; -#X obj 31 111 mtof; -#X obj 31 134 / 440; -#X obj 70 272 *~ 1; -#X obj 640 168 +~ 0.5; -#X obj 67 422 *~ 1; -#X obj 460 429 *~ 1; -#X obj 446 538 +~ 1; -#X obj 51 533 +~ 1; -#X obj 116 208 /~ 1; -#X obj 314 282 *~ 1; -#X obj 173 398 +~ 0; -#X obj 565 392 +~ 0; -#X obj 16 334 -~ 0.5; -#X obj 413 345 -~ 0.5; -#X msg 328 64 set \$1; -#X connect 0 0 76 1; -#X connect 1 0 37 0; -#X connect 2 0 1 1; -#X connect 3 0 70 0; -#X connect 4 0 65 0; -#X connect 5 0 11 0; -#X connect 6 0 13 0; -#X connect 7 0 11 1; -#X connect 8 0 5 1; -#X connect 8 0 77 0; -#X connect 9 0 10 0; -#X connect 10 0 78 0; -#X connect 11 0 69 0; -#X connect 11 0 83 0; -#X connect 12 0 13 1; -#X connect 13 0 14 0; -#X connect 14 0 15 1; -#X connect 15 0 54 0; -#X connect 16 0 39 0; -#X connect 17 0 41 0; -#X connect 18 0 39 1; -#X connect 19 0 80 0; -#X connect 20 0 31 1; -#X connect 20 0 18 1; -#X connect 20 0 17 1; -#X connect 20 0 75 0; -#X connect 20 0 84 0; -#X connect 21 0 27 1; -#X connect 21 0 17 0; -#X connect 21 0 6 0; -#X connect 22 0 4 0; -#X connect 23 0 20 0; -#X connect 23 0 80 1; -#X connect 24 0 19 0; -#X connect 25 0 21 0; -#X connect 25 0 27 0; -#X connect 27 0 81 0; -#X connect 31 0 16 1; -#X connect 31 0 76 0; -#X connect 32 0 81 0; -#X connect 34 0 36 0; -#X connect 34 1 35 1; -#X connect 35 0 51 0; -#X connect 36 0 35 0; -#X connect 37 0 38 0; -#X connect 38 0 79 0; -#X connect 39 0 67 0; -#X connect 39 0 82 0; -#X connect 40 0 41 1; -#X connect 41 0 42 0; -#X connect 42 0 43 1; -#X connect 43 0 54 0; -#X connect 50 0 8 1; -#X connect 50 0 6 1; -#X connect 50 0 7 1; -#X connect 50 0 85 0; -#X connect 53 0 77 1; -#X connect 55 0 56 0; -#X connect 56 0 25 0; -#X connect 57 0 34 0; -#X connect 58 0 81 1; -#X connect 58 0 82 1; -#X connect 58 0 83 1; -#X connect 59 0 3 0; -#X connect 61 0 25 0; -#X connect 61 0 86 0; -#X connect 62 0 9 0; -#X connect 63 0 62 1; -#X connect 65 0 23 0; -#X connect 66 0 40 0; -#X connect 67 0 40 1; -#X connect 67 0 42 1; -#X connect 68 0 12 0; -#X connect 69 0 12 1; -#X connect 69 0 14 1; -#X connect 70 0 71 0; -#X connect 71 0 72 0; -#X connect 72 0 73 0; -#X connect 73 0 74 1; -#X connect 74 0 31 0; -#X connect 74 0 8 0; -#X connect 75 0 50 0; -#X connect 76 0 2 0; -#X connect 77 0 63 0; -#X connect 78 0 15 0; -#X connect 79 0 43 0; -#X connect 80 0 74 0; -#X connect 81 0 18 0; -#X connect 81 0 7 0; -#X connect 82 0 66 0; -#X connect 83 0 68 0; -#X connect 84 0 16 0; -#X connect 84 0 1 0; -#X connect 85 0 5 0; -#X connect 85 0 62 0; -#X connect 86 0 55 0; -#X restore 371 495 pd regenerate; -#X obj 115 464 receive~ outsig; -#X obj 43 467 line~; -#X obj 416 383 s specshift; -#X obj 575 386 s loco; -#X obj 512 383 s pitch; -#X obj 511 319 r pitch; -#X msg 511 339 set \$1; -#X obj 415 317 r specshift; -#X floatatom 553 64; -#N canvas 194 37 397 591 output 0; -#X obj 58 180 t b; -#X obj 58 135 f; -#X obj 58 90 inlet; -#X text 63 71 mute; -#X obj 58 202 f; -#X msg 119 217 0; -#X msg 58 113 bang; -#X obj 58 158 moses 1; -#X obj 119 194 t b f; -#X obj 86 392 outlet; -#X msg 86 370 set \$1; -#X obj 165 145 moses 1; -#X obj 199 394 dbtorms; -#X obj 199 417 pack 0 100; -#X obj 165 122 r master-lvl; -#X obj 86 339 r master-lvl; -#X obj 74 254 s master-lvl; -#X obj 199 439 s master-amp; -#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 restore 553 42 pd output; -#X msg 553 19 mute; -#X text 587 57 MASTER; -#X text 586 69 LEVEL; -#X obj 553 86 s master-lvl; -#X obj 44 442 r master-amp; -#N canvas 93 44 649 449 window 0; -#X graph graph1 0 -1 1023 1 435 170 635 20; -#X array half-sine 1024 float; -#X pop; -#X obj 108 88 r window-size; -#X obj 108 110 t b f; -#X obj 72 136 /; -#X obj 25 16 r make-window; -#X msg 25 36 bang; -#X msg 109 136 -0.25; -#X obj 70 181 osc~; -#X obj 84 66 samplerate~; -#X graph graph2 0 -1 1023 1 439 331 639 191; -#X array alternator 1024 float; -#X pop; -#X obj 21 249 r make-window; -#X msg 21 269 bang; -#X obj 80 299 samplerate~; -#X obj 451 372 r window-size; -#X msg 451 397 \; half-sine resize \$1 \; alternator resize \$1; -#X obj 80 325 / 2; -#X obj 239 12 r make-window; -#X obj 80 351 phasor~; -#X obj 21 425 tabwrite~ alternator; -#X obj 256 106 switch~; -#X msg 239 70 1; -#X obj 277 44 del 500; -#X msg 277 70 0; -#X obj 80 373 -~ 0.5; -#X obj 25 224 tabwrite~ half-sine; -#X obj 72 160 / 2; -#X obj 80 396 *~ 4; -#X msg 124 325 0.75; -#X obj 68 203 *~; -#X connect 1 0 2 0; -#X connect 2 0 3 0; -#X connect 2 1 3 1; -#X connect 3 0 25 0; -#X connect 4 0 5 0; -#X connect 5 0 6 0; -#X connect 5 0 8 0; -#X connect 5 0 24 0; -#X connect 6 0 7 1; -#X connect 7 0 28 0; -#X connect 7 0 28 1; -#X connect 8 0 3 0; -#X connect 10 0 11 0; -#X connect 11 0 27 0; -#X connect 11 0 12 0; -#X connect 11 0 18 0; -#X connect 12 0 15 0; -#X connect 13 0 14 0; -#X connect 15 0 17 0; -#X connect 16 0 20 0; -#X connect 16 0 21 0; -#X connect 17 0 23 0; -#X connect 20 0 19 0; -#X connect 21 0 22 0; -#X connect 22 0 19 0; -#X connect 23 0 26 0; -#X connect 25 0 7 0; -#X connect 26 0 18 0; -#X connect 27 0 17 1; -#X connect 28 0 24 0; -#X restore 371 471 pd window; -#X obj 186 370 readsf~; -#X text 38 285 CLICK HERE FIRST; -#X msg 576 312 0 \, 250 10000; -#X msg 28 309 \; pd dsp 1 \; sample-rate 44100 \; window-size 1024 \; make-window bang \; pitch 48 \; specshift 0 \;; -#X obj 596 360 pack 0 100; -#X text 196 292 analyze from soundfile; -#X text 118 10 WAVEFORM GRABBER; -#X text 21 27 This patch takes an incoming sound does an overlap-2 FFT analysis of it \, and bashes the phases of the spectra to known values. In this way you can use samples as waveforms and cross-fade them at will without getting phase modulation.; -#X text 19 93 This might be useful for making synthetic instruments that mimic the spectral variation of recorded sounds. Here we analyze a soundfile \, but you can replace "readsf~" by "adc~" to analyze on the fly. The result is a massaged sample suitable for reading via the "regenerate" subpatch.; -#X text 18 169 Since the analysis is done with an overlap of 2 \, the analyzed sample is twice the length of the original sound.; -#X text 18 199 When you aren't busy doing analyses \, you can turn the "FFT" window off by replacing the block~ with a switch~.; -#X msg 186 322 open ../sound/voice.wav \, 1 \; specshift -720 \; do-grab bang; -#X text 15 231 The resynthesized sound seems to be skewed slightly north spectrally. The recorded sample should just need -530 cents of correction (because of the different sample rate) but my ears prefer -720; -#X connect 0 0 4 0; -#X connect 1 0 31 0; -#X connect 3 0 15 0; -#X connect 4 0 13 0; -#X connect 5 0 2 0; -#X connect 8 0 9 1; -#X connect 9 0 6 0; -#X connect 9 0 6 1; -#X connect 11 0 8 0; -#X connect 12 0 9 0; -#X connect 16 0 17 0; -#X connect 17 0 3 0; -#X connect 18 0 0 0; -#X connect 19 0 24 0; -#X connect 20 0 19 0; -#X connect 21 0 20 0; -#X connect 25 0 12 0; -#X connect 27 0 5 0; -#X connect 29 0 14 0; -#X connect 31 0 14 0; -#X connect 38 0 27 0; diff --git a/pd/doc/4.fft.examples/x.wav b/pd/doc/4.fft.examples/x.wav Binary files differdeleted file mode 100644 index 3a2fd446..00000000 --- a/pd/doc/4.fft.examples/x.wav +++ /dev/null |