#N canvas 182 50 1192 785 10; #X obj 867 747 dac~; #X obj 848 680 *~; #X obj 1053 619 hsl 128 15 0.01 1 1 0 empty empty empty -2 -8 0 10 -262144 -1 -1 7900 1; #X msg 1050 574 0; #X obj 894 655 e_agc; #X obj 891 679 *~; #X obj 846 654 e_agc; #X obj 974 742 writesf~ 2; #X msg 1028 710 start; #X msg 1071 713 stop; #X obj 839 716 hip~ 20; #X obj 904 712 hip~ 20; #X obj 838 625 e_lop2 18000 1; #X obj 958 625 e_lop2 18000 1; #X msg 988 713 print; #X obj 170 370 *~; #X obj 154 214 sig~ 1; #X obj 154 242 /~; #X obj 203 192 *~; #X obj 203 162 *~; #X obj 154 394 +~; #X obj 203 214 +~ 1; #X obj 170 265 *~ 0.4; #X obj 17 81 phasor~; #N canvas 722 183 424 461 rotor 0; #N canvas 0 0 450 300 grapha 0; #X obj 100 100 cnv 15 100 100 empty empty empty 20 12 0 14 -262144 -66577 0; #N canvas 0 0 450 300 (subpatch) 0; #X array A 100 float 0; #X coords 0 1 99 -1 100 100 1; #X restore 100 100 graph; #X obj 289 155 inlet~; #X obj 210 182 tabwrite~ A; #X obj 222 110 metro 200; #X obj 230 148 s b; #X obj 221 86 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 ; #X connect 2 0 3 0; #X connect 4 0 3 0; #X connect 4 0 5 0; #X connect 6 0 4 0; #X coords 0 -1 1 1 100 100 1 100 100; #X restore 4 260 pd grapha; #X obj 117 227 *~; #X obj 117 67 *~; #X obj 117 135 +~; #X obj 134 182 *~; #X obj 133 110 sig~ 0.2; #X obj 117 0 noise~; #X obj 133 44 r brush-level; #X obj 133 87 r rotor-level; #X obj 133 204 *~; #X obj 134 157 inlet~ drive; #X obj 117 272 outlet~; #N canvas 0 0 450 300 grapha 0; #X obj 100 100 cnv 15 100 100 empty empty empty 20 12 0 14 -262144 -66577 0; #N canvas 0 0 450 300 (subpatch) 0; #X array B 100 float 0; #X coords 0 1 99 -1 100 100 1; #X restore 100 100 graph; #X obj 289 155 inlet~; #X obj 210 182 tabwrite~ B; #X obj 210 156 r b; #X connect 2 0 3 0; #X connect 4 0 3 0; #X coords 0 -1 1 1 100 100 1 100 100; #X restore 189 259 pd grapha; #X obj 117 22 bp~ 2000 1; #X connect 1 0 11 0; #X connect 1 0 12 0; #X connect 2 0 3 0; #X connect 3 0 1 0; #X connect 3 0 0 0; #X connect 4 0 9 0; #X connect 4 0 9 1; #X connect 5 0 3 1; #X connect 6 0 13 0; #X connect 7 0 2 1; #X connect 8 0 5 0; #X connect 9 0 1 1; #X connect 10 0 4 0; #X connect 10 0 4 1; #X connect 13 0 2 0; #X restore 17 214 pd rotor; #N canvas 541 10 314 445 stator 0; #X obj -1 96 sig~ 1; #X obj 31 150 /~; #X obj 47 123 +~ 1; #X obj 47 96 *~; #X obj 47 68 cos~; #N canvas 0 0 450 300 grapha 0; #X obj 100 100 cnv 15 100 100 empty empty empty 20 12 0 14 -262144 -66577 0; #N canvas 0 0 450 300 (subpatch) 0; #X array C 100 float 0; #X coords 0 1 99 -1 100 100 1; #X restore 100 100 graph; #X obj 289 155 inlet~; #X obj 210 156 r b; #X obj 210 182 tabwrite~ C; #X connect 2 0 4 0; #X connect 3 0 4 0; #X coords 0 -1 1 1 100 100 1 100 100; #X restore 98 239 pd grapha; #X obj 47 46 wrap~; #X obj 30 172 -~ 0.5; #X obj 47 22 *~ 2; #X obj 48 -2 inlet~ drive; #X obj 31 249 outlet~; #X obj 31 222 *~; #X obj 47 198 r stator-level; #X connect 0 0 1 0; #X connect 1 0 7 0; #X connect 2 0 1 1; #X connect 3 0 2 0; #X connect 4 0 3 0; #X connect 4 0 3 1; #X connect 6 0 4 0; #X connect 7 0 5 0; #X connect 7 0 11 0; #X connect 8 0 6 0; #X connect 9 0 8 0; #X connect 11 0 10 0; #X connect 12 0 11 1; #X restore 83 214 pd stator; #X obj 18 240 +~; #X obj 18 35 sig~; #X obj 219 139 r fan-pulsewidth; #X obj 19 283 *~; #X obj 35 261 r motor-level; #X obj 18 13 r main-speed; #X obj 17 133 *~; #X obj 33 109 r motor-ratio; #X obj 17 156 wrap~; #X obj 203 113 cos~; #X obj 140 464 +~; #X obj 155 437 *~; #X obj 171 415 r fan-level; #X obj 278 357 r fan-noise; #X obj 186 349 *~; #X obj 174 571 s~ fba; #X obj 174 467 r~ fba; #X obj 174 501 delwrite~ a 22; #X obj 281 464 r~ fbb; #X obj 281 568 s~ fbb; #X obj 467 540 *~ 0.499; #X obj 302 488 delwrite~ b 200; #X obj 174 547 *~ 0.3; #X msg 374 204 \; main-speed 0 \; motor-ratio 20 \; motor-level 0.2 \; brush-level 0.05 \; rotor-level 0.1 \; stator-level 0.3 \; fan-pulsewidth 4 \; fan-noise 0.2 \; fan-level 0.5; #X obj 18 58 lop~ 0.1; #X obj 375 12 loadbang; #X obj 374 181 r shutdown-ventilator; #X obj 543 513 vd~ b 90; #X obj 502 480 vline~; #X obj 505 433 hsl 128 15 1 200 0 0 empty empty empty -2 -8 0 10 -262144 -1 -1 2585 1; #X floatatom 567 475 5 0 0 0 - - -; #X msg 363 42 \; main-speed 60 \; motor-ratio 10 \; motor-level 0.4 \; brush-level 0.05 \; rotor-level 0.1 \; stator-level 0.3 \; fan-pulsewidth 4 \; fan-noise 0.2 \; fan-level 0.5; #X obj 592 44 hsl 128 15 0 600 0 0 empty empty empty -2 -8 0 10 -262144 -1 -1 900 1; #X msg 601 143 \; main-speed \$1; #X obj 613 187 hsl 128 15 0 10 0 0 empty empty empty -2 -8 0 10 -262144 -1 -1 10100 1; #X msg 620 238 \; fan-pulsewidth \$1; #X floatatom 796 218 5 0 0 0 - - -; #X obj 792 249 + 3.5; #N canvas 598 280 450 300 drunkiness 0; #X obj 102 79 loadbang; #X obj 101 114 metro 10; #X obj 69 80 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 ; #X obj 99 202 outlet; #X obj 99 143 c_drunk 1000 60; #X obj 99 177 / 500; #X text 207 171 make this scale with speeed; #X connect 0 0 1 0; #X connect 1 0 4 0; #X connect 2 0 1 0; #X connect 4 0 5 0; #X connect 5 0 3 0; #X restore 739 105 pd drunkiness; #X obj 604 70 float; #X obj 610 105 +; #X obj 185 312 bp~ 14000 1; #N canvas 598 280 450 300 drunkiness 0; #X obj 102 79 loadbang; #X obj 101 114 metro 10; #X obj 69 80 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 ; #X obj 99 143 c_drunk 100 3; #X obj 99 176 / 100; #X obj 99 202 outlet; #X connect 0 0 1 0; #X connect 1 0 3 0; #X connect 2 0 1 0; #X connect 3 0 4 0; #X connect 4 0 5 0; #X restore 786 182 pd drunkiness; #N canvas 598 280 450 300 drunkiness 0; #X obj 102 79 loadbang; #X obj 101 114 metro 10; #X obj 69 80 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 ; #X obj 99 202 outlet; #X obj 99 175 / 100; #X obj 97 145 c_drunk 10000 30; #X connect 0 0 1 0; #X connect 1 0 5 0; #X connect 2 0 1 0; #X connect 4 0 3 0; #X connect 5 0 4 0; #X restore 511 386 pd drunkiness; #X floatatom 741 138 5 0 0 0 - - -; #X msg 502 456 \$1 100; #X obj 317 669 vline~; #X obj 320 622 hsl 128 15 1 200 0 0 empty empty empty -2 -8 0 10 -262144 -1 -1 469 1; #X floatatom 382 664 5 0 0 0 - - -; #N canvas 598 280 450 300 drunkiness 0; #X obj 102 79 loadbang; #X obj 101 114 metro 10; #X obj 69 80 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 ; #X obj 99 202 outlet; #X obj 97 145 c_drunk 10000 30; #X obj 99 175 / 400; #X connect 0 0 1 0; #X connect 1 0 4 0; #X connect 2 0 1 0; #X connect 4 0 5 0; #X connect 5 0 3 0; #X restore 326 575 pd drunkiness; #X msg 317 645 \$1 100; #X obj 174 524 vd~ a 12; #X floatatom 717 420 5 0 0 0 - - -; #X floatatom 760 444 5 0 0 0 - - -; #X floatatom 802 467 5 0 0 0 - - -; #X floatatom 845 493 5 0 0 0 - - -; #X obj 675 518 comb~ 100 0.2 0.2 0.3 0.9; #N canvas 598 280 450 300 drunkiness 0; #X obj 102 79 loadbang; #X obj 101 114 metro 10; #X obj 69 80 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 ; #X obj 99 143 c_drunk 100 3; #X obj 99 176 / 100; #X obj 99 202 outlet; #X connect 0 0 1 0; #X connect 1 0 3 0; #X connect 2 0 1 0; #X connect 3 0 4 0; #X connect 4 0 5 0; #X restore 761 370 pd drunkiness; #N canvas 598 280 450 300 drunkiness 0; #X obj 102 79 loadbang; #X obj 101 114 metro 10; #X obj 69 80 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 ; #X obj 99 143 c_drunk 100 3; #X obj 99 176 / 100; #X obj 99 202 outlet; #X connect 0 0 1 0; #X connect 1 0 3 0; #X connect 2 0 1 0; #X connect 3 0 4 0; #X connect 4 0 5 0; #X restore 846 387 pd drunkiness; #X floatatom 851 421 5 0 0 0 - - -; #X floatatom 894 445 5 0 0 0 - - -; #X floatatom 936 468 5 0 0 0 - - -; #X floatatom 979 494 5 0 0 0 - - -; #X obj 809 519 comb~ 100 0.2 0.2 0.3 0.9; #N canvas 598 280 450 300 drunkiness 0; #X obj 102 79 loadbang; #X obj 101 114 metro 10; #X obj 69 80 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 ; #X obj 99 143 c_drunk 100 3; #X obj 99 176 / 100; #X obj 99 202 outlet; #X connect 0 0 1 0; #X connect 1 0 3 0; #X connect 2 0 1 0; #X connect 3 0 4 0; #X connect 4 0 5 0; #X restore 895 371 pd drunkiness; #N canvas 598 280 450 300 drunkiness 0; #X obj 102 79 loadbang; #X obj 101 114 metro 10; #X obj 69 80 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 ; #X obj 99 143 c_drunk 100 3; #X obj 99 176 / 100; #X obj 99 202 outlet; #X connect 0 0 1 0; #X connect 1 0 3 0; #X connect 2 0 1 0; #X connect 3 0 4 0; #X connect 4 0 5 0; #X restore 980 388 pd drunkiness; #N canvas 598 280 450 300 drunkiness 0; #X obj 102 79 loadbang; #X obj 69 80 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 1 ; #X obj 99 143 c_drunk 100 3; #X obj 99 176 / 100; #X obj 99 202 outlet; #X obj 101 114 metro 100; #X connect 0 0 5 0; #X connect 1 0 5 0; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 5 0 2 0; #X restore 895 244 pd drunkiness; #X floatatom 1023 286 5 0 0 0 - - -; #X floatatom 1066 310 5 0 0 0 - - -; #X floatatom 1108 333 5 0 0 0 - - -; #X floatatom 1151 359 5 0 0 0 - - -; #X obj 1003 409 comb~ 100 0.2 0.2 0.3 0.9; #N canvas 598 280 450 300 drunkiness 0; #X obj 102 79 loadbang; #X obj 69 80 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 1 ; #X obj 99 176 / 100; #X obj 99 202 outlet; #X obj 99 143 c_drunk 100 2; #X obj 104 115 metro 100; #X connect 0 0 5 0; #X connect 1 0 5 0; #X connect 2 0 3 0; #X connect 4 0 2 0; #X connect 5 0 4 0; #X restore 1152 253 pd drunkiness; #X msg 1124 658; #X obj 1024 265 + 30; #X msg 978 681 open -bytes 3 16_d.wav; #X obj 850 401 + 56; #X obj 717 396 + 71; #N canvas 722 183 424 461 rotor 0; #N canvas 0 0 450 300 grapha 0; #X obj 100 100 cnv 15 100 100 empty empty empty 20 12 0 14 -262144 -66577 0; #N canvas 0 0 450 300 (subpatch) 0; #X array A 100 float 0; #X coords 0 1 99 -1 100 100 1; #X restore 100 100 graph; #X obj 289 155 inlet~; #X obj 210 182 tabwrite~ A; #X obj 222 110 metro 200; #X obj 230 148 s b; #X obj 221 86 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 ; #X connect 2 0 3 0; #X connect 4 0 3 0; #X connect 4 0 5 0; #X connect 6 0 4 0; #X coords 0 -1 1 1 100 100 1 100 100; #X restore 4 260 pd grapha; #X obj 117 227 *~; #X obj 117 67 *~; #X obj 117 135 +~; #X obj 134 182 *~; #X obj 133 110 sig~ 0.2; #X obj 117 0 noise~; #X obj 133 44 r brush-level; #X obj 133 87 r rotor-level; #X obj 133 204 *~; #X obj 134 157 inlet~ drive; #X obj 117 272 outlet~; #N canvas 0 0 450 300 grapha 0; #X obj 100 100 cnv 15 100 100 empty empty empty 20 12 0 14 -262144 -66577 0; #N canvas 0 0 450 300 (subpatch) 0; #X array B 100 float 0; #X coords 0 1 99 -1 100 100 1; #X restore 100 100 graph; #X obj 289 155 inlet~; #X obj 210 182 tabwrite~ B; #X obj 210 156 r b; #X connect 2 0 3 0; #X connect 4 0 3 0; #X coords 0 -1 1 1 100 100 1 100 100; #X restore 189 259 pd grapha; #X obj 116 21 bp~ 1000 10; #X connect 1 0 11 0; #X connect 1 0 12 0; #X connect 2 0 3 0; #X connect 3 0 1 0; #X connect 3 0 0 0; #X connect 4 0 9 0; #X connect 4 0 9 1; #X connect 5 0 3 1; #X connect 6 0 13 0; #X connect 7 0 2 1; #X connect 8 0 5 0; #X connect 9 0 1 1; #X connect 10 0 4 0; #X connect 10 0 4 1; #X connect 13 0 2 0; #X restore -37 215 pd rotor; #X obj 184 286 noise~; #X obj 266 283 noise~; #X obj 267 309 bp~ 1000 1; #X obj 186 656 *~ 1; #X text 517 22 from Andy Farnell's fan example. Buy his book!; #X connect 1 0 10 0; #X connect 2 0 1 1; #X connect 2 0 5 1; #X connect 3 0 2 0; #X connect 4 0 5 0; #X connect 5 0 11 0; #X connect 6 0 1 0; #X connect 8 0 7 0; #X connect 9 0 7 0; #X connect 10 0 0 0; #X connect 10 0 7 0; #X connect 11 0 0 1; #X connect 11 0 7 1; #X connect 12 0 6 0; #X connect 13 0 4 0; #X connect 14 0 7 0; #X connect 15 0 20 1; #X connect 16 0 17 0; #X connect 17 0 20 0; #X connect 17 0 22 0; #X connect 18 0 21 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 20 0 37 0; #X connect 21 0 17 1; #X connect 22 0 15 0; #X connect 23 0 32 0; #X connect 23 0 35 0; #X connect 24 0 26 0; #X connect 25 0 26 1; #X connect 26 0 29 0; #X connect 27 0 50 0; #X connect 28 0 19 1; #X connect 29 0 36 0; #X connect 30 0 29 1; #X connect 31 0 27 0; #X connect 32 0 34 0; #X connect 33 0 32 1; #X connect 34 0 25 0; #X connect 34 0 24 0; #X connect 34 0 104 0; #X connect 35 0 19 0; #X connect 36 0 43 0; #X connect 36 0 108 0; #X connect 37 0 36 1; #X connect 38 0 37 1; #X connect 39 0 40 1; #X connect 40 0 15 1; #X connect 42 0 47 0; #X connect 42 0 43 0; #X connect 44 0 43 0; #X connect 44 0 47 0; #X connect 46 0 45 0; #X connect 46 0 12 0; #X connect 46 0 13 0; #X connect 48 0 41 0; #X connect 50 0 23 0; #X connect 51 0 57 0; #X connect 52 0 49 0; #X connect 53 0 46 0; #X connect 53 0 82 0; #X connect 53 0 89 0; #X connect 54 0 53 0; #X connect 55 0 71 0; #X connect 55 0 56 0; #X connect 58 0 65 0; #X connect 60 0 63 1; #X connect 63 0 61 0; #X connect 64 0 66 0; #X connect 64 0 70 0; #X connect 65 0 66 1; #X connect 66 0 59 0; #X connect 67 0 40 0; #X connect 68 0 62 0; #X connect 68 0 63 0; #X connect 69 0 55 0; #X connect 71 0 54 0; #X connect 72 0 77 0; #X connect 73 0 76 0; #X connect 73 0 74 0; #X connect 75 0 73 0; #X connect 76 0 72 0; #X connect 77 0 48 0; #X connect 77 0 97 0; #X connect 78 0 82 1; #X connect 79 0 82 2; #X connect 80 0 82 3; #X connect 81 0 82 4; #X connect 82 0 12 0; #X connect 82 0 13 0; #X connect 83 0 103 0; #X connect 84 0 79 0; #X connect 85 0 89 1; #X connect 86 0 89 2; #X connect 87 0 89 3; #X connect 88 0 89 4; #X connect 89 0 12 0; #X connect 90 0 102 0; #X connect 91 0 86 0; #X connect 92 0 100 0; #X connect 93 0 97 1; #X connect 94 0 97 2; #X connect 95 0 97 3; #X connect 96 0 97 4; #X connect 97 0 13 0; #X connect 98 0 94 0; #X connect 100 0 93 0; #X connect 101 0 7 0; #X connect 102 0 85 0; #X connect 103 0 78 0; #X connect 104 0 26 0; #X connect 105 0 67 0; #X connect 106 0 107 0; #X connect 107 0 40 0; #X connect 108 0 82 0; #X connect 108 0 12 0; #X connect 108 0 13 0;