#N canvas 4 79 822 649 10; #X msg 644 335 \; pd dsp 1; #X msg 329 431 0 \, 360 5000; #X obj 122 572 earplug~ 270 -25; #X floatatom 327 267 5 0 0 0 - - -; #N canvas 0 22 385 256 (subpatch) 0; #X floatatom 260 197 0 0 0 0 cpu-meter - -; #X obj 260 129 cputime; #X obj 260 33 loadbang; #X obj 260 80 metro 1000; #X msg 260 61 1; #X obj 260 108 t b b; #X obj 260 170 * 0.1; #X obj 260 150 int; #X connect 1 0 7 0; #X connect 2 0 4 0; #X connect 3 0 5 0; #X connect 4 0 3 0; #X connect 5 0 1 0; #X connect 5 1 1 1; #X connect 6 0 0 0; #X connect 7 0 6 0; #X coords 0 1 100 -1 120 20 1 200 195; #X restore 532 29 graph; #X msg 723 335 \; pd dsp 0; #X text 24 8 earplug~ - convolution binaural filter; #X text 23 39 This filter utilizes HRTF measurements (compact set) of KEMAR Dummy-Head Microphone (http://sound.media.mit.edu/KEMAR.html) ; #X obj 532 186 soundfiler; #N canvas 0 22 450 300 (subpatch) 0; #X array table 62079 float 0; #X coords 0 1 62078 -1 100 60 1; #X restore 657 252 graph; #X obj 122 323 tabplay~ table; #X obj 327 309 line 0 1; #X obj 327 286 pack 0 50; #X floatatom 328 357 5 0 0 0 - - -; #X obj 328 399 line 0 1; #X obj 328 376 pack 0 50; #X msg 331 488 0 \, 360 5000; #X obj 331 513 line 0 1; #X obj 329 456 line 0 50; #X text 646 371 audio on; #X obj 120 206 tabplay~ table; #X obj 120 236 dac~; #X text 24 83 You must use headphones to hear effective filter effects. This filter could be DSP intensive due to convolution.; #X msg 164 181 stop; #X text 11 237 original --->; #X obj 122 599 dac~ 1 2; #X text 24 570 filtered --->; #X msg 172 291 stop; #X msg 122 291 bang; #X msg 117 181 bang; #X text 405 487 <---a better circle; #X text 404 431 <--- circle with noise; #X text 327 538 avoid zipper noise: uase small line grain; #X text 361 264 <--- azimuth: 0 - 360 (degrees); #X text 361 356 <--- elevation: -40 - 90 (degrees); #X text 115 162 start; #X text 120 272 start; #X obj 532 103 openpanel; #X obj 532 83 bng 15 250 50 0 empty empty empty 17 7 0 10 -204786 -1 -1; #X text 553 82 <- open a soundfile; #X obj 218 275 noise~; #X obj 239 303 tgl 15 0 empty empty empty 17 7 0 10 -204786 -1 -1 0 1; #X text 226 253 for testing:; #X obj 218 323 *~ 0; #X msg 532 124 read -resize \$1 table; #X msg 541 163 read -resize ../../doc/sound/voice.wav table; #X obj 330 247 hsl 128 15 0 360 0 0 empty empty empty -2 -8 0 10 -262130 -1 -1 0 1; #X obj 331 339 hsl 128 15 -40 90 0 1 empty empty empty -2 -8 0 10 -262130 -1 -1 11400 0; #X obj 541 143 loadbang; #N canvas 306 231 494 344 META 0; #X text 12 185 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch to conform to the PDDP template for Pd version 0.42.; #X text 12 5 KEYWORDS signal filter; #X text 12 165 AUTHOR Pei Xiang; #X text 12 45 DESCRIPTION convolution binaural filter; #X text 12 25 LICENSE GPL v2; #X text 12 65 INLET_0 signal; #X text 12 85 INLET_1 float; #X text 12 105 INLET_2 float; #X text 12 125 OUTLET_0 signal; #X text 12 145 OUTLET_1 signal; #X restore 763 618 pd META; #X text 24 113 You can override the built-in impulse used in the calculation by putting them in a file called "earplug_text.txt" in the same folder as this object.; #X connect 1 0 18 0; #X connect 2 0 25 0; #X connect 2 1 25 1; #X connect 3 0 12 0; #X connect 10 0 2 0; #X connect 10 1 28 0; #X connect 11 0 2 1; #X connect 12 0 11 0; #X connect 13 0 15 0; #X connect 14 0 2 2; #X connect 15 0 14 0; #X connect 16 0 17 0; #X connect 17 0 2 1; #X connect 18 0 2 1; #X connect 20 0 21 0; #X connect 20 0 21 1; #X connect 23 0 20 0; #X connect 27 0 10 0; #X connect 28 0 10 0; #X connect 29 0 20 0; #X connect 37 0 44 0; #X connect 38 0 37 0; #X connect 40 0 43 0; #X connect 41 0 43 1; #X connect 43 0 2 0; #X connect 44 0 8 0; #X connect 45 0 8 0; #X connect 46 0 3 0; #X connect 47 0 13 0; #X connect 48 0 45 0;