From 57045df5fe3ec557e57dc7434ac1a07b5521bffc Mon Sep 17 00:00:00 2001 From: Guenter Geiger Date: Mon, 29 Jul 2002 17:06:19 +0000 Subject: This commit was generated by cvs2svn to compensate for changes in r58, which included commits to RCS files with non-trunk default branches. svn path=/trunk/; revision=59 --- pd/doc/4.fft.examples/06.sheepgoat2.pd | 365 +++++++++++++++++++++++++++++++++ 1 file changed, 365 insertions(+) create mode 100644 pd/doc/4.fft.examples/06.sheepgoat2.pd (limited to 'pd/doc/4.fft.examples/06.sheepgoat2.pd') diff --git a/pd/doc/4.fft.examples/06.sheepgoat2.pd b/pd/doc/4.fft.examples/06.sheepgoat2.pd new file mode 100644 index 00000000..b62cc7a5 --- /dev/null +++ b/pd/doc/4.fft.examples/06.sheepgoat2.pd @@ -0,0 +1,365 @@ +#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; -- cgit v1.2.1