view scene demo/freqCalcCyl2_D9Mach.pd @ 199:2ded41e29e57

Projection matrix now calculated using control signals rather than audio. This makes sense as it was eating too much processing power for something that doesn't chage during the sound effect.
author Rod Selfridge <r.selfridge@qmul.ac.uk>
date Fri, 11 Mar 2016 20:51:21 +0000
parents ced3d7831a75
children
line wrap: on
line source
#N canvas 33 37 1269 776 10;
#X text 585 250 Mass Density of Air;
#X text 75 413 Frequency (Hz);
#X obj 692 621 throw~ l;
#X obj 719 598 throw~ r;
#X obj 707 472 osc~;
#X obj 707 251 *~ 1.225;
#X obj 707 326 /~ 1.81e-05;
#X obj 707 281 *~ 1;
#X obj 707 444 /~ 1;
#X floatatom 171 391 10 0 0 0 - - -;
#X obj 707 420 *~;
#X obj 182 38 inlet;
#X text 740 370 Reynolds Number;
#X text 587 437 Strouhal Number;
#X obj 347 36 inlet;
#X obj 707 502 *~;
#X text 737 306 Viscosity;
#X obj 486 441 *~ 2;
#X obj 486 468 osc~;
#X obj 486 490 *~;
#X obj 692 531 +~;
#X obj 189 61 s \$0-diameter;
#X obj 768 250 r \$0-diameter;
#X obj 775 425 r \$0-diameter;
#X obj 99 100 s~ \$0-windSpeed;
#X obj 271 139 r~ \$0-windSpeed;
#X obj 774 402 r~ \$0-windSpeed;
#X obj 707 223 r~ \$0-windSpeed;
#X obj 628 471 s~ \$0-myFreq;
#X obj 486 416 r~ \$0-myFreq;
#X obj 99 58 sig~;
#X obj 99 80 vd~ varwind;
#X obj 99 34 inlet;
#X obj 1020 214 r~ \$0-myFreq;
#X obj 932 162 noise~;
#X obj 980 323 *~;
#X obj 93 213 snapshot~;
#X obj 93 188 metro 100;
#X obj 93 166 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X floatatom 93 239 10 0 0 0 - - -;
#X obj 93 140 loadbang;
#X obj 7 188 r~ \$0-myRey;
#X obj 720 350 s~ \$0-myRey;
#X obj 1118 223 snapshot~;
#X floatatom 1118 249 10 0 0 0 - - -;
#X obj 1118 150 loadbang;
#X obj 1118 175 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1
1 1;
#X obj 1072 52 r~ \$0-myRey;
#X text 78 261 Reynolds Number;
#X obj 986 241 vcf~ 1000 10;
#X obj 692 574 fcpan;
#X obj 1118 198 metro 10;
#X obj 595 32 inlet;
#X floatatom 540 101 8 0 0 0 - - -;
#X obj 595 56 max 0.1;
#X obj 595 79 min 0.9;
#X text 516 335 Calculates the frequency;
#X text 517 347 based on the physics of;
#X text 517 360 the object and environment;
#X obj 275 421 r~ \$0-windSpeed;
#X obj 94 535 snapshot~;
#X obj 94 510 metro 100;
#X obj 94 488 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X floatatom 94 561 10 0 0 0 - - -;
#X obj 94 462 loadbang;
#N canvas 335 23 1006 797 noiseGain 0;
#X text -21029 166 Mass Density of Air \, squared;
#X text -20589 179 Speed of Sound to power 2;
#X obj -20894 66 *~;
#X obj -20846 107 *~;
#X obj -20846 141 *~ 1;
#X obj -20846 169 *~ 1.50063;
#X obj -20591 133 *;
#X obj -20591 156 * 118033;
#X obj -20846 296 /~ 1;
#X obj -20846 636 *~ 0.27;
#X text -20591 86 Distance;
#X text -21027 643 Calculates Lift Dipole gain;
#N canvas 759 125 286 289 pow8 0;
#X obj 47 67 *~;
#X obj 76 67 *~;
#X obj 76 35 inlet~;
#X obj 47 170 outlet~;
#X obj 136 173 snapshot~;
#X obj 136 148 metro 100;
#X obj 136 126 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X floatatom 136 200 10 0 0 0 - - -;
#X obj 136 100 loadbang;
#X obj 106 67 *~;
#X obj 47 93 *~;
#X obj 47 118 *~;
#X obj 136 67 *~;
#X obj 47 144 *~;
#X connect 0 0 10 0;
#X connect 1 0 10 1;
#X connect 2 0 0 0;
#X connect 2 0 0 1;
#X connect 2 0 1 1;
#X connect 2 0 9 0;
#X connect 2 0 9 1;
#X connect 2 0 1 0;
#X connect 2 0 12 0;
#X connect 2 0 12 1;
#X connect 4 0 7 0;
#X connect 5 0 4 0;
#X connect 6 0 5 0;
#X connect 8 0 6 0;
#X connect 9 0 11 1;
#X connect 10 0 11 0;
#X connect 11 0 13 0;
#X connect 12 0 13 1;
#X connect 13 0 3 0;
#X connect 13 0 4 0;
#X restore -20846 69 pd pow8;
#X obj -20894 44 inlet~;
#X obj -20846 44 inlet~;
#X obj -20810 118 inlet;
#X obj -20591 107 inlet;
#X obj -20846 679 outlet~;
#X text -20785 63 Gain proportional to windspeed to power 8 for spectrum
;
#X text -20805 102 Diameter;
#X obj -20815 200 inlet;
#X obj -20815 224 *;
#X obj -20846 246 *~ 1;
#X text -20774 199 Length;
#X obj -20829 325 s~ \$0-nGain;
#X text -20741 328 Azimuth;
#X text -20680 290 Elevation;
#X obj -20740 345 inlet;
#X obj -20683 306 inlet;
#X obj -20740 368 sig~;
#X obj -20683 368 sig~;
#X obj -20683 348 spigot;
#X text -20581 312 End Source;
#X obj -20831 456 +~ 90;
#X obj -20831 477 /~ 360;
#X obj -20831 499 cos~;
#X obj -20846 611 *~;
#X obj -20831 523 *~;
#X obj -20631 395 loadbang;
#X obj -20631 416 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1
1 1;
#X obj -20631 434 metro 10;
#X obj -20631 455 snapshot~;
#X floatatom -20631 475 5 0 0 0 - - -;
#X obj -20943 498 loadbang;
#X obj -20943 519 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1
1 1;
#X obj -20943 537 metro 10;
#X obj -20943 558 snapshot~;
#X floatatom -20943 578 8 0 0 0 - - -;
#X msg -20649 372 0;
#X obj -20612 353 t f b;
#X msg -20612 333 0;
#X msg -20612 313 1;
#X obj -20787 455 +~ 90;
#X obj -20787 476 /~ 360;
#X obj -20787 498 sin~;
#X text -20833 411 Quadrupole;
#X obj -20740 391 angleCalcN~;
#X obj -20846 658 *~ 0.005;
#X text -20992 36 Strouhal number;
#X text -20798 35 Wind speed;
#X text -20580 332 Mid Source;
#X text -20813 430 comment;
#X connect 2 0 3 1;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 5 0 22 0;
#X connect 6 0 7 0;
#X connect 7 0 8 1;
#X connect 8 0 24 0;
#X connect 8 0 36 0;
#X connect 9 0 57 0;
#X connect 12 0 3 0;
#X connect 13 0 2 0;
#X connect 13 0 2 1;
#X connect 14 0 12 0;
#X connect 15 0 4 1;
#X connect 16 0 6 0;
#X connect 16 0 6 1;
#X connect 20 0 21 0;
#X connect 20 0 21 1;
#X connect 21 0 22 1;
#X connect 22 0 8 0;
#X connect 27 0 29 0;
#X connect 28 0 31 0;
#X connect 29 0 56 0;
#X connect 30 0 56 1;
#X connect 31 0 30 0;
#X connect 33 0 34 0;
#X connect 34 0 35 0;
#X connect 35 0 37 0;
#X connect 36 0 9 0;
#X connect 37 0 36 1;
#X connect 37 0 46 0;
#X connect 38 0 39 0;
#X connect 39 0 40 0;
#X connect 40 0 41 0;
#X connect 41 0 42 0;
#X connect 43 0 44 0;
#X connect 44 0 45 0;
#X connect 45 0 46 0;
#X connect 46 0 47 0;
#X connect 48 0 30 0;
#X connect 49 0 31 1;
#X connect 49 1 48 0;
#X connect 50 0 49 0;
#X connect 51 0 31 1;
#X connect 52 0 53 0;
#X connect 53 0 54 0;
#X connect 54 0 37 1;
#X connect 56 0 33 0;
#X connect 56 0 41 0;
#X connect 56 0 52 0;
#X connect 57 0 17 0;
#X restore 264 556 pd noiseGain;
#X obj 298 466 r \$0-diameter;
#N canvas 299 77 1040 691 freqGain 0;
#X text 36 127 Mass Density of Air \, squared;
#X text 411 123 Speed of Sound to power 2;
#N canvas 759 125 286 289 pow6 0;
#X obj 47 67 *~;
#X obj 76 67 *~;
#X obj 76 35 inlet~;
#X obj 47 163 outlet~;
#X obj 136 184 snapshot~;
#X obj 136 159 metro 100;
#X obj 136 137 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X floatatom 136 211 10 0 0 0 - - -;
#X obj 216 210 outlet;
#X obj 136 111 loadbang;
#X obj 106 67 *~;
#X obj 47 93 *~;
#X obj 47 118 *~;
#X connect 0 0 11 0;
#X connect 1 0 11 1;
#X connect 2 0 0 0;
#X connect 2 0 0 1;
#X connect 2 0 1 1;
#X connect 2 0 10 0;
#X connect 2 0 10 1;
#X connect 2 0 1 0;
#X connect 4 0 7 0;
#X connect 4 0 8 0;
#X connect 5 0 4 0;
#X connect 6 0 5 0;
#X connect 9 0 6 0;
#X connect 10 0 12 1;
#X connect 11 0 12 0;
#X connect 12 0 4 0;
#X connect 12 0 3 0;
#X restore 219 30 pd pow6;
#X obj 173 32 *~;
#X obj 219 68 *~;
#X obj 219 102 *~ 1;
#X obj 219 130 *~ 1.50063;
#X obj 404 71 *;
#X obj 404 96 * 118033;
#X obj 219 224 /~ 1;
#X obj 219 497 *~ 0.27;
#X text 424 30 Distance;
#X obj 319 473 *~ 0.27;
#X floatatom 369 72 5 0 0 0 - - -;
#X text 304 556 Calculates Drag Dipole gain;
#X text 48 504 Calculates Lift Dipole gain;
#X obj 319 498 *~ 0.1;
#X obj 173 8 inlet~;
#X obj 219 7 inlet~;
#X text 256 54 Diameter;
#X obj 250 69 inlet;
#X obj 404 46 inlet;
#X obj 219 524 outlet~;
#X obj 319 523 outlet~;
#X obj 240 159 inlet;
#X text 278 154 Length;
#X obj 219 202 *~ 1;
#X text 397 195 Add in MACH deflection;
#X obj 236 253 s~ \$0-aGain;
#X obj 347 424 r~ \$0-aGain;
#X text 257 278 Azimuth;
#X text 318 240 Elevation;
#X obj 258 295 inlet;
#X obj 315 256 inlet;
#X obj 258 318 sig~;
#X obj 315 318 sig~;
#X obj 315 298 spigot;
#X text 414 265 End Source;
#X text 415 284 Mid Source;
#X obj 432 343 loadbang;
#X obj 432 364 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X obj 432 382 metro 10;
#X msg 349 322 0;
#X obj 386 303 t f b;
#X msg 386 283 0;
#X msg 386 263 1;
#X obj 234 382 +~ 90;
#X obj 234 403 /~ 360;
#X obj 234 425 cos~;
#X obj 234 449 *~;
#X obj 219 472 *~;
#X obj 319 377 /~ 360;
#X obj 319 400 cos~;
#X obj 319 424 *~;
#X obj 319 449 *~;
#X obj 432 403 snapshot~;
#X floatatom 432 423 5 0 0 0 - - -;
#X obj 466 450 loadbang;
#X obj 466 471 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X obj 466 489 metro 10;
#X obj 466 510 snapshot~;
#X floatatom 466 530 5 0 0 0 - - -;
#X obj 149 366 loadbang;
#X obj 149 387 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X obj 149 405 metro 10;
#X obj 149 426 snapshot~;
#X floatatom 149 446 5 0 0 0 - - -;
#X obj 651 38 inlet;
#X obj 750 40 inlet;
#X obj 846 43 inlet;
#X floatatom 651 85 5 0 0 0 - - -;
#X floatatom 750 86 5 0 0 0 - - -;
#X floatatom 847 87 5 0 0 0 - - -;
#X text 647 19 X Rotation;
#X text 744 21 Y Rotation;
#X text 841 24 Z Rotation;
#X obj 656 61 s \$0-this_rotaX;
#X obj 757 62 s \$0-thisrotaY;
#X obj 854 66 s \$0-thisrotaZ;
#X obj 258 337 angleCalc~;
#X text 74 8 Strouhal number;
#X text 269 7 Wind speed;
#X connect 2 0 4 0;
#X connect 3 0 4 1;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 6 0 26 0;
#X connect 7 0 8 0;
#X connect 8 0 9 1;
#X connect 9 0 28 0;
#X connect 9 0 50 0;
#X connect 10 0 22 0;
#X connect 12 0 16 0;
#X connect 16 0 23 0;
#X connect 17 0 3 0;
#X connect 17 0 3 1;
#X connect 18 0 2 0;
#X connect 20 0 5 1;
#X connect 21 0 7 1;
#X connect 21 0 7 0;
#X connect 21 0 13 0;
#X connect 24 0 26 1;
#X connect 26 0 9 0;
#X connect 29 0 54 1;
#X connect 32 0 34 0;
#X connect 33 0 36 0;
#X connect 34 0 79 0;
#X connect 35 0 79 1;
#X connect 36 0 35 0;
#X connect 39 0 40 0;
#X connect 40 0 41 0;
#X connect 41 0 55 0;
#X connect 42 0 35 0;
#X connect 43 0 36 1;
#X connect 43 1 42 0;
#X connect 44 0 43 0;
#X connect 45 0 36 1;
#X connect 46 0 47 0;
#X connect 47 0 48 0;
#X connect 48 0 49 0;
#X connect 48 0 49 1;
#X connect 49 0 50 1;
#X connect 49 0 65 0;
#X connect 50 0 10 0;
#X connect 51 0 52 0;
#X connect 52 0 53 0;
#X connect 52 0 53 1;
#X connect 53 0 54 0;
#X connect 53 0 60 0;
#X connect 54 0 12 0;
#X connect 55 0 56 0;
#X connect 57 0 58 0;
#X connect 58 0 59 0;
#X connect 59 0 60 0;
#X connect 60 0 61 0;
#X connect 62 0 63 0;
#X connect 63 0 64 0;
#X connect 64 0 65 0;
#X connect 65 0 66 0;
#X connect 67 0 70 0;
#X connect 67 0 76 0;
#X connect 68 0 71 0;
#X connect 68 0 77 0;
#X connect 69 0 72 0;
#X connect 69 0 78 0;
#X connect 79 0 46 0;
#X connect 79 0 51 0;
#X connect 79 0 55 0;
#X restore 262 283 pd freqGain;
#X obj 419 35 inlet;
#X obj 292 178 r \$0-diameter;
#X obj 493 34 inlet;
#X floatatom 347 83 5 0 0 0 - - -;
#X floatatom 419 81 5 0 0 0 - - -;
#X floatatom 494 78 5 0 0 0 - - -;
#X obj 42 391 outlet;
#X obj 86 364 snapshot~;
#X obj 86 317 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X obj 86 291 loadbang;
#X obj 86 339 metro 10;
#X obj 7 341 r~ \$0-myFreq;
#X text 93 590 Strouhal Number;
#X text 252 342 Calculates the gain of the dipole source;
#X text 255 620 Calculates the gain of the source;
#X text 485 15 Azimuth;
#X text 600 14 Pan;
#X text 413 16 Elevation;
#X text 343 17 Distance;
#X text 177 17 Diameter;
#X text 92 16 Wind Speed;
#X obj 274 35 inlet;
#X floatatom 274 79 5 0 0 0 - - -;
#X text 270 16 Length;
#X obj 707 391 newStrou;
#X floatatom 42 74 5 0 0 0 - - -;
#X floatatom 182 82 5 0 0 0 - - -;
#X obj 980 411 throw~ l;
#X obj 1007 389 throw~ r;
#X obj 980 367 fcpan;
#X obj 284 58 s \$0-leng;
#X obj 352 59 s \$0-dist;
#X obj 426 57 s \$0-elev;
#X obj 501 57 s \$0-azim;
#X obj 261 118 r~ \$0-str;
#X obj 282 158 r \$0-leng;
#X obj 303 198 r \$0-azim;
#X obj 313 219 r \$0-elev;
#X obj 324 240 r \$0-dist;
#X obj 325 307 s~ \$0-dragDiGain;
#X obj 262 327 s~ \$0-liftDiGain;
#X obj 264 398 r~ \$0-str;
#X obj 287 442 r \$0-leng;
#X obj 321 509 r \$0-elev;
#X obj 310 486 r \$0-azim;
#X obj 333 532 r \$0-dist;
#X obj 264 601 s~ \$0-liftNoiseGain;
#X obj 519 470 r~ \$0-dragDiGain;
#X obj 601 421 s~ \$0-str;
#X obj 745 472 r~ \$0-liftDiGain;
#X obj 719 545 r \$0-thisPan;
#X obj 595 101 s \$0-thisPan;
#X obj 953 184 r \$0-contFreq;
#X obj 86 391 s \$0-contFreq;
#X obj 9 510 r~ \$0-str;
#X obj 995 294 r~ \$0-liftNoiseGain;
#X obj 1007 348 r \$0-thisPan;
#X obj 690 41 inlet;
#X obj 762 40 inlet;
#X obj 836 39 inlet;
#X floatatom 690 88 5 0 0 0 - - -;
#X floatatom 762 86 5 0 0 0 - - -;
#X floatatom 837 83 5 0 0 0 - - -;
#X obj 695 64 s \$0-rotaX;
#X obj 769 62 s \$0-rotaY;
#X obj 844 62 s \$0-rotaZ;
#X text 686 22 X Rotation;
#X text 756 21 Y Rotation;
#X text 831 20 Z Rotation;
#X text 1034 313 Noise spectrum calculation;
#X obj 932 208 hip~;
#X obj 971 302 +~;
#X obj 1072 76 *~ -0.001;
#X obj 1072 101 +~ 20;
#X obj 1072 127 clip~ 1 20;
#X obj 837 370 sig~;
#X msg 837 345 0.27;
#X text 900 482 Mass Density of Air;
#X obj 1007 853 throw~ l;
#X obj 1034 830 throw~ r;
#X obj 1022 704 osc~;
#X obj 1022 483 *~ 1.225;
#X obj 1022 558 /~ 1.81e-05;
#X obj 1022 513 *~ 1;
#X obj 1022 676 /~ 1;
#X obj 1022 652 *~;
#X text 1055 602 Reynolds Number;
#X text 1052 538 Viscosity;
#X obj 1083 482 r \$0-diameter;
#X obj 1090 657 r \$0-diameter;
#X obj 1089 634 r~ \$0-windSpeed;
#X obj 1022 455 r~ \$0-windSpeed;
#X obj 1007 806 fcpan;
#X text 831 567 Calculates the frequency;
#X text 832 579 based on the physics of;
#X text 832 592 the object and environment;
#X obj 1022 623 newStrou;
#X obj 1060 704 r~ \$0-liftDiGain;
#X obj 1034 777 r \$0-thisPan;
#X obj 1132 681 hsl 128 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X floatatom 1176 708 5 0 0 0 - - -;
#X obj 1022 734 *~;
#X obj 1094 515 * 1.005;
#X msg 1094 678 0.5;
#X obj 932 257 *~ 0.2;
#X obj 986 263 *~ 0.5;
#X connect 4 0 15 0;
#X connect 5 0 7 0;
#X connect 6 0 42 0;
#X connect 6 0 92 0;
#X connect 7 0 6 0;
#X connect 8 0 4 0;
#X connect 8 0 28 0;
#X connect 10 0 8 0;
#X connect 11 0 21 0;
#X connect 11 0 94 0;
#X connect 14 0 71 0;
#X connect 14 0 99 0;
#X connect 15 0 20 1;
#X connect 17 0 18 0;
#X connect 18 0 19 0;
#X connect 19 0 20 0;
#X connect 20 0 50 0;
#X connect 22 0 7 1;
#X connect 23 0 8 1;
#X connect 25 0 67 1;
#X connect 26 0 10 1;
#X connect 27 0 5 0;
#X connect 29 0 17 0;
#X connect 30 0 31 0;
#X connect 31 0 24 0;
#X connect 32 0 30 0;
#X connect 32 0 93 0;
#X connect 33 0 49 1;
#X connect 34 0 138 0;
#X connect 34 0 49 0;
#X connect 35 0 97 0;
#X connect 36 0 39 0;
#X connect 37 0 36 0;
#X connect 38 0 37 0;
#X connect 40 0 38 0;
#X connect 41 0 36 0;
#X connect 43 0 44 0;
#X connect 43 0 49 2;
#X connect 45 0 46 0;
#X connect 46 0 51 0;
#X connect 47 0 140 0;
#X connect 49 0 173 0;
#X connect 50 0 2 0;
#X connect 50 1 3 0;
#X connect 51 0 43 0;
#X connect 52 0 54 0;
#X connect 54 0 55 0;
#X connect 55 0 53 0;
#X connect 55 0 119 0;
#X connect 59 0 65 1;
#X connect 60 0 63 0;
#X connect 61 0 60 0;
#X connect 62 0 61 0;
#X connect 64 0 62 0;
#X connect 65 0 114 0;
#X connect 66 0 65 3;
#X connect 67 0 108 0;
#X connect 67 1 107 0;
#X connect 68 0 72 0;
#X connect 68 0 100 0;
#X connect 69 0 67 3;
#X connect 70 0 73 0;
#X connect 70 0 101 0;
#X connect 75 0 74 0;
#X connect 75 0 9 0;
#X connect 75 0 121 0;
#X connect 76 0 78 0;
#X connect 77 0 76 0;
#X connect 78 0 75 0;
#X connect 79 0 75 0;
#X connect 89 0 90 0;
#X connect 89 0 98 0;
#X connect 92 0 116 0;
#X connect 92 0 10 0;
#X connect 97 0 95 0;
#X connect 97 1 96 0;
#X connect 102 0 67 0;
#X connect 103 0 67 2;
#X connect 104 0 67 4;
#X connect 105 0 67 5;
#X connect 106 0 67 6;
#X connect 109 0 65 0;
#X connect 110 0 65 2;
#X connect 111 0 65 5;
#X connect 112 0 65 4;
#X connect 113 0 65 6;
#X connect 115 0 19 1;
#X connect 117 0 15 1;
#X connect 118 0 50 1;
#X connect 120 0 138 1;
#X connect 122 0 60 0;
#X connect 123 0 35 1;
#X connect 124 0 97 1;
#X connect 125 0 128 0;
#X connect 125 0 131 0;
#X connect 126 0 129 0;
#X connect 126 0 132 0;
#X connect 127 0 130 0;
#X connect 127 0 133 0;
#X connect 138 0 172 0;
#X connect 139 0 35 0;
#X connect 140 0 141 0;
#X connect 141 0 142 0;
#X connect 142 0 43 0;
#X connect 144 0 143 0;
#X connect 148 0 169 0;
#X connect 149 0 151 0;
#X connect 150 0 164 0;
#X connect 151 0 150 0;
#X connect 152 0 148 0;
#X connect 153 0 152 0;
#X connect 156 0 170 0;
#X connect 157 0 152 1;
#X connect 158 0 153 1;
#X connect 159 0 149 0;
#X connect 160 0 146 0;
#X connect 160 1 147 0;
#X connect 164 0 153 0;
#X connect 165 0 169 1;
#X connect 166 0 160 1;
#X connect 167 0 148 1;
#X connect 167 0 168 0;
#X connect 170 0 151 1;
#X connect 171 0 148 1;
#X connect 172 0 139 0;
#X connect 173 0 139 1;