From 4d84d14ac1aa13958eaa2971b03f7f929a519105 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Fri, 8 Feb 2008 13:00:32 +0000 Subject: reorganized svn path=/trunk/; revision=9400 --- .../doc/3.audio.examples/I09.sheep.from.goats.pd | 411 +++++++++++++++++++++ 1 file changed, 411 insertions(+) create mode 100644 desiredata/doc/3.audio.examples/I09.sheep.from.goats.pd (limited to 'desiredata/doc/3.audio.examples/I09.sheep.from.goats.pd') diff --git a/desiredata/doc/3.audio.examples/I09.sheep.from.goats.pd b/desiredata/doc/3.audio.examples/I09.sheep.from.goats.pd new file mode 100644 index 00000000..87a779ed --- /dev/null +++ b/desiredata/doc/3.audio.examples/I09.sheep.from.goats.pd @@ -0,0 +1,411 @@ +#N canvas -6 5 609 588 12; +#N canvas 300 81 867 775 fft-analysis 0; +#X obj 85 664 *~; +#X obj 35 712 *~; +#X obj 316 148 *~; +#X obj 34 58 *~; +#X obj 34 35 inlet~; +#X obj 34 82 rfft~; +#X obj 35 688 rifft~; +#X obj 35 737 outlet~; +#X obj 277 147 *~; +#X obj 277 198 rsqrt~; +#X obj 105 421 -~; +#X obj 34 663 *~; +#X obj 68 58 tabreceive~ \$0-hann; +#X obj 644 51 loadbang; +#X obj 644 133 r window-size; +#X obj 69 711 tabreceive~ \$0-hann; +#X obj 131 327 *~; +#X msg 644 155 set \$1 4; +#X obj 644 179 block~; +#X msg 643 75 \; pd dsp 1 \; window-size 1024; +#X obj 125 616 /~ 1000; +#X obj 197 616 r window-size; +#X obj 254 229 *~; +#X obj 113 220 *~; +#X obj 277 171 +~ 1e-20; +#X obj 152 246 lrshift~ 1; +#X obj 313 254 lrshift~ 1; +#X obj 152 272 lrshift~ -1; +#X obj 314 281 lrshift~ -1; +#X obj 292 335 *~; +#X obj 105 475 clip~ 0 1; +#X obj 106 448 *~ 1e+20; +#X obj 105 392 +~; +#X obj 105 508 *~; +#X obj 144 508 lrshift~ 1; +#X obj 251 508 lrshift~ -1; +#X obj 125 540 *~; +#X obj 410 411 -~; +#X obj 410 459 clip~ 0 1; +#X obj 411 435 *~ 1e+20; +#X obj 410 488 *~; +#X obj 449 488 lrshift~ 1; +#X obj 553 487 lrshift~ -1; +#X obj 430 517 *~; +#X obj 430 540 *~ -1; +#X obj 430 563 +~ 1; +#X obj 125 582 +~; +#X obj 255 335 *~; +#X obj 98 327 *~; +#X text 195 476 0 if clean; +#X text 170 541 0 if a neighbor is clean; +#X obj 97 301 +~; +#X obj 130 300 +~; +#X obj 255 309 +~; +#X obj 292 308 +~; +#X text 169 558 1 if all neighbors dirty; +#X text 470 584 1 if a neighbor dirty; +#X text 472 568 0 if all neighbors clean; +#X obj 224 679 lrshift~ -1; +#X obj 224 655 sig~ 1; +#X obj 125 638 *~; +#X obj 220 442 expr $f1*$f1/1250; +#X obj 432 385 expr $f1*$f1/1250; +#X obj 220 417 r dirty; +#X obj 432 360 r clean; +#X text 362 148 normalize the amplitudes; +#X text 439 253 add neighboring amplitude to this one; +#X text 437 269 and take squared magnitude of result -; +#X text 437 286 do this for both the left neightbor and; +#X text 436 303 the right one; +#X text 94 82 forward real Hann-windowed FT; +#X text 284 658 I had trouble with the DC bin - this zeros it.; +#X text 594 366 adjust threshold to quadratic; +#X text 594 382 units and scale; +#X text 142 389 total incoherence; +#X text 496 414 compare incoherence with the threshold; +#X text 532 511 multiply by left and right; +#X text 531 529 neighbors \, so 0 if any of; +#X text 531 546 the 3 is "clean".; +#X text 497 429 If greater (dirty) \, the "clip" outputs; +#X text 498 444 1 \, otherwise (if clean) \, zero.; +#X text 161 583 add to let in channels; +#X text 159 597 for either criterion; +#X connect 0 0 6 1; +#X connect 1 0 7 0; +#X connect 2 0 24 0; +#X connect 3 0 5 0; +#X connect 4 0 3 0; +#X connect 5 0 11 0; +#X connect 5 0 8 0; +#X connect 5 0 8 1; +#X connect 5 0 23 0; +#X connect 5 1 0 0; +#X connect 5 1 2 0; +#X connect 5 1 2 1; +#X connect 5 1 22 0; +#X connect 6 0 1 0; +#X connect 8 0 24 0; +#X connect 9 0 23 1; +#X connect 9 0 22 1; +#X connect 10 0 31 0; +#X connect 11 0 6 0; +#X connect 12 0 3 1; +#X connect 13 0 19 0; +#X connect 14 0 17 0; +#X connect 15 0 1 1; +#X connect 16 0 32 0; +#X connect 17 0 18 0; +#X connect 20 0 60 0; +#X connect 21 0 20 1; +#X connect 22 0 26 0; +#X connect 22 0 28 0; +#X connect 22 0 53 0; +#X connect 22 0 54 0; +#X connect 23 0 25 0; +#X connect 23 0 27 0; +#X connect 23 0 51 0; +#X connect 23 0 52 0; +#X connect 24 0 9 0; +#X connect 25 0 51 1; +#X connect 26 0 53 1; +#X connect 27 0 52 1; +#X connect 28 0 54 1; +#X connect 29 0 32 1; +#X connect 30 0 33 0; +#X connect 30 0 35 0; +#X connect 30 0 34 0; +#X connect 31 0 30 0; +#X connect 32 0 10 0; +#X connect 32 0 37 0; +#X connect 33 0 36 0; +#X connect 34 0 33 1; +#X connect 35 0 36 1; +#X connect 36 0 46 0; +#X connect 37 0 39 0; +#X connect 38 0 40 0; +#X connect 38 0 42 0; +#X connect 38 0 41 0; +#X connect 39 0 38 0; +#X connect 40 0 43 0; +#X connect 41 0 40 1; +#X connect 42 0 43 1; +#X connect 43 0 44 0; +#X connect 44 0 45 0; +#X connect 45 0 46 1; +#X connect 46 0 20 0; +#X connect 47 0 32 1; +#X connect 48 0 32 0; +#X connect 51 0 48 0; +#X connect 51 0 48 1; +#X connect 52 0 16 0; +#X connect 52 0 16 1; +#X connect 53 0 47 0; +#X connect 53 0 47 1; +#X connect 54 0 29 0; +#X connect 54 0 29 1; +#X connect 58 0 60 1; +#X connect 59 0 58 0; +#X connect 60 0 11 1; +#X connect 60 0 0 1; +#X connect 61 0 10 1; +#X connect 62 0 37 1; +#X connect 63 0 61 0; +#X connect 64 0 62 0; +#X restore 49 410 pd fft-analysis; +#X floatatom 355 287 0 0 100 0 - - -; +#X text 138 10 PITCHED/UNPITCHED SEPARATION; +#X obj 48 443 output~; +#X floatatom 48 356 0 0 100 0 - - -; +#X text 105 337 noise; +#X floatatom 108 356 0 0 100 0 - - -; +#N canvas 214 193 769 642 test-signal 0; +#X obj 75 328 line~; +#X obj 75 250 f; +#X obj 517 236 *~; +#X obj 76 442 *~; +#X obj 517 127 noise~; +#X obj 371 494 +~; +#X obj 98 415 dbtorms; +#X obj 539 210 dbtorms; +#X obj 98 390 inlet; +#X obj 539 186 inlet; +#X obj 373 568 outlet~; +#X msg 75 304 0 \, \$1 \$2; +#X obj 75 276 pack 0 0; +#X obj 236 248 /; +#X obj 251 190 * 0.001; +#X obj 251 219 t b f; +#X obj 372 543 hip~ 5; +#X obj 75 136 loadbang; +#X obj 75 182 metro 1000; +#X obj 517 152 bp~ 10000 3; +#X obj 75 161 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 +; +#X text 270 247 sample duration \, msec; +#X text 126 84 looped sample playback; +#X obj 75 356 tabread4~ \$0-sample; +#X text 514 100 filtered noise; +#X text 105 15 TEST SIGNAL: looped sample plus noise. The inlets control +amplitude of each in dB.; +#X obj 236 139 r \$0-samplength; +#X obj 251 164 r \$0-insamprate; +#X obj 658 244 *~; +#X obj 680 218 dbtorms; +#X obj 680 194 inlet; +#X text 655 108 osc; +#X obj 658 134 osc~ 440; +#X obj 372 519 *~ 3; +#X connect 0 0 23 0; +#X connect 1 0 12 0; +#X connect 2 0 5 1; +#X connect 3 0 5 0; +#X connect 4 0 19 0; +#X connect 5 0 33 0; +#X connect 6 0 3 1; +#X connect 7 0 2 1; +#X connect 8 0 6 0; +#X connect 9 0 7 0; +#X connect 11 0 0 0; +#X connect 12 0 11 0; +#X connect 13 0 12 1; +#X connect 13 0 18 1; +#X connect 14 0 15 0; +#X connect 15 0 13 0; +#X connect 15 1 13 1; +#X connect 16 0 10 0; +#X connect 17 0 20 0; +#X connect 18 0 1 0; +#X connect 19 0 2 0; +#X connect 20 0 18 0; +#X connect 23 0 3 0; +#X connect 26 0 1 1; +#X connect 26 0 13 0; +#X connect 27 0 14 0; +#X connect 28 0 5 1; +#X connect 29 0 28 1; +#X connect 30 0 29 0; +#X connect 32 0 28 0; +#X connect 33 0 16 0; +#X restore 48 380 pd test-signal; +#X text 32 334 sampler; +#X text 56 314 amplitudes (dB); +#N canvas 0 110 565 454 hann-window 0; +#N canvas 0 0 450 300 graph1 0; +#X array \$0-hann 1024 float 0; +#X coords 0 1 1023 0 300 100 1; +#X restore 82 311 graph; +#X obj 378 165 osc~; +#X obj 378 190 *~ -0.5; +#X obj 378 214 +~ 0.5; +#X obj 331 247 tabwrite~ \$0-hann; +#X obj 37 88 r window-size; +#X obj 38 173 /; +#X obj 127 142 samplerate~; +#X obj 38 251 s window-sec; +#X obj 177 204 swap; +#X obj 177 228 /; +#X obj 177 252 s window-hz; +#X obj 49 201 * 1000; +#X obj 49 228 s window-msec; +#X obj 38 115 t f b f; +#X msg 173 92 resize \$1; +#X obj 173 116 s \$0-hann; +#X obj 330 105 r window-hz; +#X msg 382 130 0; +#X obj 330 131 t f b; +#X text 15 8 calculate Hann window table (variable window size) and +constants window-hz (fundamental frequency of analysis) \, window-sec +and window-msec (analysis window size in seconds and msec).; +#X connect 1 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 5 0 14 0; +#X connect 6 0 8 0; +#X connect 6 0 12 0; +#X connect 7 0 6 1; +#X connect 7 0 9 1; +#X connect 9 0 10 0; +#X connect 9 1 10 1; +#X connect 10 0 11 0; +#X connect 12 0 13 0; +#X connect 14 0 6 0; +#X connect 14 0 9 0; +#X connect 14 1 7 0; +#X connect 14 2 15 0; +#X connect 15 0 16 0; +#X connect 17 0 19 0; +#X connect 18 0 1 1; +#X connect 19 0 1 0; +#X connect 19 1 4 0; +#X connect 19 1 18 0; +#X restore 457 458 pd hann-window; +#N canvas 52 71 774 520 tables 0; +#N canvas 0 0 450 300 graph1 0; +#X array \$0-last-real 2048 float 0; +#X coords 0 500 2048 -500 200 150 1; +#X restore 103 15 graph; +#N canvas 0 0 450 300 graph2 0; +#X array \$0-last-imag 2048 float 0; +#X coords 0 500 2048 500 200 150 1; +#X restore 497 6 graph; +#N canvas 0 0 450 300 graph1 0; +#X array \$0-precess-real 2048 float 0; +#X coords 0 500 2048 -500 200 150 1; +#X restore 105 185 graph; +#N canvas 0 0 450 300 graph2 0; +#X array \$0-precess-imag 2048 float 0; +#X coords 0 500 2048 -500 200 150 1; +#X restore 501 178 graph; +#N canvas 0 0 450 300 graph1 0; +#X array \$0-inc-real 2048 float 0; +#X coords 0 1 2048 -1 200 150 1; +#X restore 105 357 graph; +#N canvas 0 0 450 300 graph2 0; +#X array \$0-inc-imag 2048 float 0; +#X coords 0 1 2048 -1 200 150 1; +#X restore 503 342 graph; +#X restore 457 479 pd tables; +#N canvas 388 86 722 350 insample 0; +#N canvas 0 0 450 300 graph1 0; +#X array \$0-sample 62079 float 0; +#X coords 0 1 62078 -1 400 150 1; +#X restore 259 24 graph; +#X obj 19 23 r read-sample; +#X obj 19 74 unpack s f; +#X obj 19 184 soundfiler; +#X text 356 250 read a sample; +#X obj 276 249 loadbang; +#X obj 19 100 t s b; +#X obj 75 99 symbol \$0-sample; +#X obj 19 135 pack s s; +#X msg 19 160 read -resize \$1 \$2; +#X obj 74 46 44100; +#X obj 19 47 t a b; +#X msg 276 273 \; read-sample ../sound/bell.aiff; +#X obj 29 208 s \$0-samplength; +#X obj 116 74 s \$0-insamprate; +#X obj 19 247 /; +#X obj 19 271 * 1000; +#X obj 19 294 s \$0-samp-msec; +#X obj 57 247 r \$0-insamprate; +#X connect 1 0 11 0; +#X connect 2 0 6 0; +#X connect 2 1 14 0; +#X connect 3 0 13 0; +#X connect 3 0 15 0; +#X connect 5 0 12 0; +#X connect 6 0 8 0; +#X connect 6 1 7 0; +#X connect 7 0 8 1; +#X connect 8 0 9 0; +#X connect 9 0 3 0; +#X connect 10 0 14 0; +#X connect 11 0 2 0; +#X connect 11 1 10 0; +#X connect 15 0 16 0; +#X connect 16 0 17 0; +#X connect 18 0 15 1; +#X restore 233 501 pd insample; +#X msg 233 403 ../sound/bell.aiff; +#X msg 233 426 ../sound/voice.wav; +#X msg 233 449 ../sound/voice2.wav; +#X text 236 383 change input sound; +#X obj 233 473 s read-sample; +#X floatatom 233 523 5 0 0 0 - #0-samp-msec -; +#X text 286 522 sample length \, msec; +#X floatatom 233 285 0 0 100 0 - - -; +#X floatatom 169 356 0 0 100 0 - - -; +#X text 167 336 osc; +#X msg 471 325 512; +#X msg 471 346 1024; +#X msg 471 368 2048; +#X obj 471 413 s window-size; +#X msg 471 390 4096; +#X obj 233 308 s clean; +#X text 233 331 0=silent; +#X text 231 351 100=all; +#X obj 355 310 s dirty; +#X text 351 331 100=silent; +#X text 353 348 0=all; +#X text 354 563 updated for Pd version 0.39; +#X text 11 212 Two separate thresholds may be adjusted to listen to +the "clean" or "dirty" part of the signal. You'll hear anything less +incoherent than the clean threshold \, OR more incoherent than the +dirty one.; +#X text 13 35 This patch applies a very simple coherence test to distinguish +between sinusoids and noise in an input signal. It works very imperfectly +(since noise is random \, no matter what test we place on it it will +sometimes spoof its way in.) Here we just test that neighboring channels +are 180 degrees (pi radians) out of phase \, as they should be in the +main lobe in response to a sinusoid. If any three channels are so arranged +\, all three are considered as contributing to a sinusoid. To do this +we make an "incoherence" measure which is zero if the phase relationship +is perfect and progressively larger otherwise.; +#X connect 0 0 3 0; +#X connect 0 0 3 1; +#X connect 1 0 31 0; +#X connect 4 0 7 0; +#X connect 6 0 7 1; +#X connect 7 0 0 0; +#X connect 13 0 17 0; +#X connect 14 0 17 0; +#X connect 15 0 17 0; +#X connect 20 0 28 0; +#X connect 21 0 7 2; +#X connect 23 0 26 0; +#X connect 24 0 26 0; +#X connect 25 0 26 0; +#X connect 27 0 26 0; -- cgit v1.2.1