view June/woosh_D4.pd @ 303:8b51c20529a6

Edgetone development models
author Rod Selfridge <r.selfridge@qmul.ac.uk>
date Sat, 11 Nov 2017 17:43:39 +0000
parents 2dea66bf32a1
children
line wrap: on
line source
#N canvas 386 234 893 466 10;
#X obj 541 -103 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0;
#X obj 604 -103 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0;
#X text 601 -194 Gain;
#X obj 540 -220 loadbang;
#N canvas 865 368 284 318 opLevels 0;
#X obj 85 188 dac~;
#X obj 30 70 catch~ l;
#X obj 155 76 catch~ r;
#X obj 155 106 *~ 0.45;
#X obj 30 104 *~ 0.45;
#X obj 30 210 prvu~;
#X obj 155 213 prvu~;
#X obj 100 69 / 127;
#X obj 100 34 inlet;
#X obj 30 239 outlet;
#X obj 155 241 outlet;
#X obj 155 30 r NoOfSources;
#X obj 155 132 /~ 1;
#X obj 30 131 /~ 1;
#X obj 155 49 / 20;
#X connect 1 0 4 0;
#X connect 2 0 3 0;
#X connect 3 0 12 0;
#X connect 4 0 13 0;
#X connect 5 0 9 0;
#X connect 6 0 10 0;
#X connect 7 0 3 1;
#X connect 7 0 4 1;
#X connect 8 0 7 0;
#X connect 11 0 14 0;
#X connect 12 0 0 1;
#X connect 12 0 6 0;
#X connect 13 0 0 0;
#X connect 13 0 5 0;
#X connect 14 0 12 1;
#X connect 14 0 13 1;
#X restore 540 -146 pd opLevels;
#X msg 540 -197 5;
#N canvas 474 116 807 545 speedCalc 0;
#X obj 59 -12 inlet;
#X obj 135 -11 inlet;
#X obj 217 -12 inlet;
#X obj 317 -12 inlet;
#X obj 59 11 s \$0_swLen;
#X obj 135 11 s \$0_armLen;
#X obj 317 10 s \$0_tipSpeed;
#X obj 142 237 r \$0_tipSpeed;
#X obj 211 437 outlet;
#X obj 211 414 r \$0_minSpeed;
#X obj 127 338 s \$0_minSpeed;
#X obj 310 414 r \$0_deltaSpeed;
#X obj 504 335 s \$0_deltaSpeed;
#X obj 310 437 outlet;
#X obj 212 104 r \$0_swLen;
#X obj 127 216 /;
#X floatatom 81 243 5 0 0 0 - - -;
#X obj 227 127 r \$0_armLen;
#X obj 212 194 +;
#X obj 227 149 t f b;
#X floatatom 212 216 5 0 0 0 - - -;
#X obj 99 143 r \$0_armLen;
#X obj 217 11 s \$0_sourceTot;
#X obj 519 274 r \$0_sourceTot;
#X obj 127 314 *;
#X floatatom 85 338 5 0 0 0 - - -;
#X obj 519 186 r \$0_minSpeed;
#X obj 504 253 -;
#X obj 504 163 r \$0_tipSpeed;
#X obj 504 296 /;
#X obj 519 207 t f b;
#X floatatom 521 315 5 0 0 0 - - -;
#X obj 546 230 delay 9;
#X text 244 198 Length of blade and arm;
#X obj 99 165 t f b;
#X obj 126 189 delay 9;
#X obj 254 173 delay 6;
#X text -49 216 Ratio of arm to total length;
#X text 69 361 Speed of blade at the hilt;
#X text 387 247 Difference between;
#X text 369 259 speed at tip and hilt;
#X text 459 357 Difference in speed for each source;
#X text 459 369 based on a linear scale;
#X text 417 16 as well as the difference in speed of each source;
#X text 431 2 Patch that calculates the minimum speed;
#X obj 142 260 t f b;
#X obj 168 283 delay 8;
#X connect 0 0 4 0;
#X connect 1 0 5 0;
#X connect 2 0 22 0;
#X connect 3 0 6 0;
#X connect 7 0 45 0;
#X connect 9 0 8 0;
#X connect 11 0 13 0;
#X connect 14 0 18 0;
#X connect 15 0 16 0;
#X connect 15 0 24 0;
#X connect 17 0 19 0;
#X connect 18 0 20 0;
#X connect 18 0 15 1;
#X connect 19 0 18 1;
#X connect 19 1 36 0;
#X connect 21 0 34 0;
#X connect 23 0 29 1;
#X connect 24 0 10 0;
#X connect 24 0 25 0;
#X connect 26 0 30 0;
#X connect 27 0 29 0;
#X connect 28 0 27 0;
#X connect 29 0 31 0;
#X connect 29 0 12 0;
#X connect 30 0 27 1;
#X connect 30 1 32 0;
#X connect 32 0 27 0;
#X connect 34 0 15 0;
#X connect 34 1 35 0;
#X connect 35 0 15 0;
#X connect 36 0 18 0;
#X connect 45 0 24 1;
#X connect 45 1 46 0;
#X connect 46 0 24 0;
#X restore 534 140 pd speedCalc;
#X floatatom 443 164 8 0 0 0 - - -;
#X floatatom 688 162 8 0 0 0 - - -;
#X msg 14 -225 1;
#X msg 13 -94 100;
#X msg 12 -159 0.59;
#X obj 534 45 r bladeLen;
#X obj 557 68 r armLength;
#X obj 580 92 r NoOfSources;
#X obj 603 117 r topSpeed;
#X obj 14 -202 s bladeLen;
#X obj 12 -138 s armLength;
#X obj 13 -71 s NoOfSources;
#X obj 78 89 s topSpeed;
#X obj 26 63 hsl 100 20 0 100 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 100 1;
#X floatatom 23 89 8 0 0 0 - - -;
#X text 47 -226 Blade Length;
#X text 46 -160 Arm Length;
#X text 41 -94 Number of Sources;
#X text 134 67 Top Speed;
#X obj 23 147 hsl 100 20 0 360 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 6600 1;
#X floatatom 20 179 8 0 0 0 - - -;
#X obj 75 178 s sweepAngle;
#X text 134 148 Sweep Angle;
#X obj 370 -13 r sweepAngle;
#X obj 277 -57 r bladeLen;
#X obj 323 -34 r armLength;
#X obj 508 164 s firstSpeed;
#X obj 603 163 s deltaSpeed;
#X floatatom 220 38 8 0 0 0 - - -;
#X floatatom 458 36 8 0 0 0 - - -;
#N canvas 833 342 426 335 thickCalc 0;
#X obj 173 139 r NoOfSources;
#X obj 23 16 inlet;
#X obj 26 64 inlet;
#X obj 26 86 s \$0_tipThick;
#X obj 158 115 -;
#X obj 158 164 /;
#X obj 158 187 outlet;
#X obj 23 39 s \$0_hiltThick;
#X floatatom 126 147 5 0 0 0 - - -;
#X obj 173 44 r \$0_tipThick;
#X obj 158 19 r \$0_hiltThick;
#X floatatom 94 189 8 0 0 0 - - -;
#X obj 173 72 t f b;
#X obj 200 95 delay 9;
#X text 58 237 Calculates the difference in thickness between sources
;
#X text 59 254 based on the blade tapering in a straight line;
#X connect 0 0 5 1;
#X connect 1 0 7 0;
#X connect 2 0 3 0;
#X connect 4 0 5 0;
#X connect 4 0 8 0;
#X connect 5 0 6 0;
#X connect 5 0 11 0;
#X connect 9 0 12 0;
#X connect 10 0 4 0;
#X connect 12 0 4 1;
#X connect 12 1 13 0;
#X connect 13 0 4 0;
#X restore 372 -123 pd thickCalc;
#X obj 372 -100 s deltaThick;
#X floatatom 317 -99 8 0 0 0 - - -;
#X obj 20 238 hsl 100 20 0 0.03 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 3135 1;
#X obj 19 323 hsl 100 20 0 0.01 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 3168 1;
#X floatatom 17 268 8 0 0 0 - - -;
#X obj 71 267 s hiltThick;
#X floatatom 16 351 8 0 0 0 - - -;
#X obj 74 350 s tipThick;
#X text 134 240 Hilt Thickness;
#X text 126 324 Tip Thickness;
#X obj 372 -168 r hiltThick;
#X obj 441 -146 r tipThick;
#X obj 214 -180 bng 50 250 50 0 empty empty empty 17 7 0 10 -4034 -1
-1;
#X obj 214 -127 s GO;
#X obj 775 -93 tenSource;
#X obj 19 405 hsl 100 20 100 1 1 0 empty empty empty -2 -8 0 10 -262144
-1 -1 3210 1;
#X obj 15 490 hsl 100 20 -180 180 0 0 empty empty empty -2 -8 0 10
-262144 -1 -1 5000 1;
#X floatatom 16 431 8 0 0 0 - - -;
#X text 129 409 Distance to Observer;
#X floatatom 12 518 8 0 0 0 - - -;
#X text 137 484 Angle to Observer;
#X obj 809 -129 r distance;
#X obj 792 -150 r angle;
#X obj 775 -191 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 214 -226 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1
0 1;
#X obj 214 -207 metro 200;
#X obj 268 -231 hsl 100 20 300 50 0 0 empty empty empty -2 -8 0 10
-262144 -1 -1 0 1;
#X obj 154 -180 bng 50 250 50 0 empty empty empty 17 7 0 10 -257985
-1 -1;
#X obj 154 -127 s setUp;
#X obj -30 37 r setUp;
#X obj -38 127 r setUp;
#X obj -34 215 r setUp;
#X obj -35 303 r setUp;
#X obj -36 384 r setUp;
#X obj -39 468 r setUp;
#X obj 775 -219 r setUp;
#X obj 75 432 s obsDistance;
#X obj 71 519 s obsAngle;
#N canvas 427 69 911 675 circumferCalc 0;
#X obj 266 13 inlet;
#X floatatom 365 172 5 0 0 0 - - -;
#X obj 80 13 inlet;
#X obj 170 13 inlet;
#X obj 247 146 +;
#X obj 316 172 / 360;
#X obj 247 171 * 3.14159;
#X obj 247 219 *;
#X obj 247 195 * 2;
#X obj 80 36 s \$0_bladeLen;
#X obj 170 36 s \$0_armLength;
#X obj 266 36 s \$0_sweepAngle;
#X obj 247 99 r \$0_bladeLen;
#X obj 262 123 r \$0_armLength;
#X obj 316 148 r \$0_sweepAngle;
#X floatatom 734 192 5 0 0 0 - - -;
#X obj 685 192 / 360;
#X floatatom 628 168 5 0 0 0 - - -;
#X obj 616 191 * 3.14159;
#X obj 616 239 *;
#X floatatom 560 267 8 0 0 0 - - -;
#X obj 616 215 * 2;
#X obj 616 143 r \$0_armLength;
#X obj 685 168 r \$0_sweepAngle;
#X obj 616 267 s \$0_minCirc;
#X obj 265 459 r \$0_minCirc;
#X obj 265 481 outlet;
#X obj 262 279 r \$0_minCirc;
#X floatatom 188 339 8 0 0 0 - - -;
#X obj 247 305 -;
#X obj 247 341 /;
#X obj 277 317 r NoOfSources;
#X floatatom 185 370 8 0 0 0 - - -;
#X obj 247 367 s \$0_deltaCirc;
#X obj 354 459 r \$0_deltaCirc;
#X obj 354 481 outlet;
#X obj 260 246 s maxCirc;
#X obj 191 172 s length;
#X text 122 176 Arc radius;
#X text 318 195 % of circle;
#X text 323 242 Circumference of arc of tip;
#X text 692 210 % of circle;
#X text 601 289 Circumference of arc of hilt;
#X floatatom 187 243 8 0 0 0 - - -;
#X text 199 390 Difference of circumference length for each source
;
#X text 199 405 based on linear spacing between sources;
#X connect 0 0 11 0;
#X connect 2 0 9 0;
#X connect 3 0 10 0;
#X connect 4 0 6 0;
#X connect 4 0 37 0;
#X connect 5 0 7 1;
#X connect 6 0 8 0;
#X connect 7 0 29 0;
#X connect 7 0 36 0;
#X connect 7 0 43 0;
#X connect 8 0 7 0;
#X connect 12 0 4 0;
#X connect 13 0 4 1;
#X connect 14 0 5 0;
#X connect 14 0 1 0;
#X connect 16 0 19 1;
#X connect 18 0 21 0;
#X connect 19 0 20 0;
#X connect 19 0 24 0;
#X connect 21 0 19 0;
#X connect 22 0 18 0;
#X connect 22 0 17 0;
#X connect 23 0 16 0;
#X connect 23 0 15 0;
#X connect 25 0 26 0;
#X connect 27 0 29 1;
#X connect 29 0 28 0;
#X connect 29 0 30 0;
#X connect 30 0 32 0;
#X connect 30 0 33 0;
#X connect 31 0 30 1;
#X connect 34 0 35 0;
#X restore 277 11 pd circumferCalc;
#X obj 277 37 s circumMin;
#X obj 370 36 s deltaCircum;
#N canvas 303 28 1094 768 angleCalc 0;
#X obj -129 105 * 0.75;
#X obj 325 234 * 0.25;
#X obj -129 145 /;
#X obj -144 199 * 1000;
#X obj 263 254 delay \$1;
#X obj 236 202 f;
#X obj 236 159 r GO;
#X obj 236 228 t f b;
#X msg 227 367 0;
#X obj 325 276 /;
#X obj 325 298 * 1000;
#X obj -127 225 s \$0_thisDe;
#X obj 251 181 r \$0_thisDe;
#X obj 145 237 r sweepAngle;
#X obj -129 81 r maxCirc;
#X obj 325 212 r maxCirc;
#X obj -114 124 r topSpeed;
#X obj 340 255 r topSpeed;
#X obj 644 360 delay \$1;
#X obj 646 302 f;
#X obj 639 248 r GO;
#X obj 646 328 t f b;
#X obj 682 208 r maxCirc;
#X obj 697 230 r topSpeed;
#X obj 682 254 /;
#X obj 682 276 * 1000;
#X obj 644 407 s end;
#X obj -77 312 r end;
#X obj 145 260 * -0.25;
#X text -193 45 0.75 represents the ratio of swing that;
#X text 200 118 0.25 represents the ratio of swing that;
#X text 200 132 the sword is decelerating;
#X text -102 149 Time taken for acceleration;
#X text -54 221 Send as a delay;
#X text 280 160 Recieve as a delay;
#X text -36 312 Reset angle;
#X text -38 325 once swing complete;
#X text 622 426 Send bang message at the;
#X text 623 438 end of the swing to reset;
#X text 379 296 Time for last;
#X text 381 307 1/4 of swing;
#X text -193 59 the sword is before 0 degrees;
#X text -121 700 Output of complete swing \, split into 75% before
0 degrees and 25% past 0 degrees;
#X text 568 517 Once delay from start to 0 degrees complete;
#X text 564 535 count down from 0 to finish the total swing angle;
#X text 98 9 Patch that calculates the angle between 0 degrees for
the full length of the swing;
#X obj -144 482 line~;
#X obj 86 601 metro 10;
#X obj 86 632 snapshot~;
#X floatatom 85 656 8 0 0 0 - - -;
#X obj 172 397 line~;
#X msg 172 350 \$1 \$2;
#X obj 151 319 pack;
#X obj 86 570 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X floatatom -108 266 5 0 0 0 - - -;
#X msg -90 438 \$1;
#X obj -48 365 r sweepAngle;
#X obj -48 387 * 0.75;
#X msg -144 427 0 \$1;
#X obj -62 341 r setUp;
#X obj 151 294 f;
#X obj -4 549 +~;
#X obj 227 342 r setUp;
#X floatatom -63 474 5 0 0 0 - - -;
#X text 11 464 comment;
#X obj -63 409 f;
#X floatatom -26 434 5 0 0 0 - - -;
#X obj 286 343 r end;
#X obj 632 276 delay 9;
#X obj 644 383 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj -144 174 f;
#X obj -163 143 r GO;
#X obj -4 633 s~ swordAngle;
#X text 241 325 Set to 0 at end;
#X obj 86 545 loadbang;
#X obj 68 509 r obsAngle;
#X obj -4 576 +~ 1;
#X text 141 470 Adding in the observer angle here offsets the swing
angle by the angle the observer is at. This makes all the future calculations
as if the observer is positioned at 0 degrees to the swordSwing.;
#X connect 0 0 2 0;
#X connect 1 0 9 0;
#X connect 2 0 70 1;
#X connect 3 0 11 0;
#X connect 3 0 54 0;
#X connect 3 0 58 0;
#X connect 4 0 60 0;
#X connect 5 0 7 0;
#X connect 6 0 5 0;
#X connect 7 0 4 1;
#X connect 7 1 4 0;
#X connect 8 0 50 0;
#X connect 9 0 10 0;
#X connect 10 0 52 1;
#X connect 12 0 5 1;
#X connect 13 0 28 0;
#X connect 14 0 0 0;
#X connect 15 0 1 0;
#X connect 16 0 2 1;
#X connect 17 0 9 1;
#X connect 18 0 69 0;
#X connect 19 0 21 0;
#X connect 20 0 68 0;
#X connect 21 0 18 1;
#X connect 21 1 18 0;
#X connect 22 0 24 0;
#X connect 23 0 24 1;
#X connect 24 0 25 0;
#X connect 25 0 19 1;
#X connect 27 0 65 0;
#X connect 28 0 60 1;
#X connect 46 0 61 0;
#X connect 47 0 48 0;
#X connect 48 0 49 0;
#X connect 50 0 61 1;
#X connect 51 0 50 0;
#X connect 52 0 51 0;
#X connect 53 0 47 0;
#X connect 55 0 46 0;
#X connect 55 0 63 0;
#X connect 56 0 57 0;
#X connect 57 0 65 1;
#X connect 57 0 66 0;
#X connect 58 0 46 0;
#X connect 59 0 65 0;
#X connect 60 0 52 0;
#X connect 61 0 76 0;
#X connect 62 0 8 0;
#X connect 65 0 55 0;
#X connect 67 0 8 0;
#X connect 68 0 19 0;
#X connect 69 0 26 0;
#X connect 70 0 3 0;
#X connect 71 0 70 0;
#X connect 74 0 53 0;
#X connect 75 0 76 1;
#X connect 76 0 72 0;
#X connect 76 0 48 0;
#X restore 431 -220 pd angleCalc;
#X obj 543 -175 hsl 100 25 0 127 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 9354 1;
#X msg 775 -172 10;
#X obj 14 -249 loadbang;
#X obj 12 -180 loadbang;
#X obj 13 -116 loadbang;
#X obj 826 -113 r elev;
#X msg 15 -22 0;
#X obj 15 0 s elev;
#X text 134 496 (Azimuth);
#X obj 944 -117 r distance;
#X obj 927 -138 r angle;
#X obj 910 -179 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 910 -207 r setUp;
#X obj 961 -101 r elev;
#X msg 910 -160 9;
#X obj 15 -45 loadbang;
#X obj 437 545 s thisTS;
#X obj 456 524 s thisSA;
#X obj 476 502 s thisHT;
#X obj 495 479 s thisTT;
#X obj 515 458 s thisOD;
#X obj 534 438 s thisOA;
#X obj 554 416 s thisG;
#X obj 23 37 r thisTS;
#X obj 20 126 r thisSA;
#X obj 17 215 r thisHT;
#X obj 16 303 r thisTT;
#X obj 16 384 r thisOD;
#X obj 13 469 r thisOA;
#X obj 488 -195 r thisG;
#X obj 437 392 unpack f f f f f f f;
#X obj -37 -45 r setUp;
#X obj -40 -114 r setUp;
#X obj -37 -182 r setUp;
#X obj -38 -247 r setUp;
#X text 351 -82 Calculate thicknes delta;
#X text 279 55 Circumference calculations;
#X text 540 185 Speed calculations;
#X text 374 392 Presets;
#X obj 808 36 r distance;
#X obj 791 15 r angle;
#X obj 774 -26 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 774 -54 r setUp;
#X obj 825 52 r elev;
#X obj 937 45 r distance;
#X obj 920 24 r angle;
#X obj 903 -17 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 903 -45 r setUp;
#X obj 954 61 r elev;
#X obj 805 187 r distance;
#X obj 788 166 r angle;
#X obj 771 125 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 771 97 r setUp;
#X obj 822 203 r elev;
#X msg 771 144 6;
#X msg 903 2 7;
#X msg 774 -7 8;
#X obj 939 194 r distance;
#X obj 922 173 r angle;
#X obj 905 132 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 905 104 r setUp;
#X obj 956 210 r elev;
#X msg 905 151 5;
#X msg 446 287 20 160 0.01 0.004 2 0 127;
#X msg 437 264 43 215 0.0085 0.0025 4 90 40;
#X msg 456 310 30 280 0.0095 0.0032 2 60 120;
#X text 706 273 Currently the noise sources are not connected but still
getting a zipping type sound. It seems to get worse with sources lower
down the blade - this needs looked into;
#X obj 437 235 loadbang;
#X obj 154 -232 loadbang;
#X obj 154 -208 delay 13;
#X obj 389 317 t b;
#X obj 369 340 s setUp;
#X obj 910 -81 tenSource;
#X obj 774 72 tenSource;
#X obj 903 81 tenSource;
#X obj 771 223 tenSource;
#X obj 905 230 tenSource;
#X connect 3 0 5 0;
#X connect 4 0 0 0;
#X connect 4 1 1 0;
#X connect 5 0 80 0;
#X connect 6 0 7 0;
#X connect 6 0 33 0;
#X connect 6 1 8 0;
#X connect 6 1 34 0;
#X connect 9 0 16 0;
#X connect 10 0 18 0;
#X connect 11 0 17 0;
#X connect 12 0 6 0;
#X connect 13 0 6 1;
#X connect 14 0 6 2;
#X connect 15 0 6 3;
#X connect 20 0 19 0;
#X connect 20 0 21 0;
#X connect 26 0 27 0;
#X connect 26 0 28 0;
#X connect 30 0 76 2;
#X connect 31 0 76 0;
#X connect 32 0 76 1;
#X connect 37 0 38 0;
#X connect 37 0 39 0;
#X connect 40 0 42 0;
#X connect 40 0 43 0;
#X connect 41 0 44 0;
#X connect 41 0 45 0;
#X connect 48 0 37 0;
#X connect 49 0 37 1;
#X connect 50 0 51 0;
#X connect 53 0 55 0;
#X connect 53 0 74 0;
#X connect 54 0 57 0;
#X connect 54 0 75 0;
#X connect 59 0 52 2;
#X connect 60 0 52 1;
#X connect 61 0 81 0;
#X connect 62 0 63 0;
#X connect 63 0 50 0;
#X connect 64 0 63 1;
#X connect 65 0 66 0;
#X connect 67 0 20 0;
#X connect 68 0 26 0;
#X connect 69 0 40 0;
#X connect 70 0 41 0;
#X connect 71 0 53 0;
#X connect 72 0 54 0;
#X connect 73 0 61 0;
#X connect 76 0 35 0;
#X connect 76 0 77 0;
#X connect 76 1 36 0;
#X connect 76 1 78 0;
#X connect 80 0 4 0;
#X connect 81 0 52 0;
#X connect 82 0 9 0;
#X connect 83 0 11 0;
#X connect 84 0 10 0;
#X connect 85 0 52 3;
#X connect 86 0 87 0;
#X connect 89 0 152 2;
#X connect 90 0 152 1;
#X connect 91 0 94 0;
#X connect 92 0 91 0;
#X connect 93 0 152 3;
#X connect 94 0 152 0;
#X connect 95 0 86 0;
#X connect 103 0 20 0;
#X connect 104 0 26 0;
#X connect 105 0 40 0;
#X connect 106 0 41 0;
#X connect 107 0 53 0;
#X connect 108 0 54 0;
#X connect 109 0 80 0;
#X connect 110 0 96 0;
#X connect 110 1 97 0;
#X connect 110 2 98 0;
#X connect 110 3 99 0;
#X connect 110 4 100 0;
#X connect 110 5 101 0;
#X connect 110 6 102 0;
#X connect 111 0 86 0;
#X connect 112 0 10 0;
#X connect 113 0 11 0;
#X connect 114 0 9 0;
#X connect 119 0 153 2;
#X connect 120 0 153 1;
#X connect 121 0 136 0;
#X connect 122 0 121 0;
#X connect 123 0 153 3;
#X connect 124 0 154 2;
#X connect 125 0 154 1;
#X connect 126 0 135 0;
#X connect 127 0 126 0;
#X connect 128 0 154 3;
#X connect 129 0 155 2;
#X connect 130 0 155 1;
#X connect 131 0 134 0;
#X connect 132 0 131 0;
#X connect 133 0 155 3;
#X connect 134 0 155 0;
#X connect 135 0 154 0;
#X connect 136 0 153 0;
#X connect 137 0 156 2;
#X connect 138 0 156 1;
#X connect 139 0 142 0;
#X connect 140 0 139 0;
#X connect 141 0 156 3;
#X connect 142 0 156 0;
#X connect 143 0 110 0;
#X connect 143 0 150 0;
#X connect 144 0 110 0;
#X connect 144 0 150 0;
#X connect 145 0 110 0;
#X connect 145 0 150 0;
#X connect 147 0 144 0;
#X connect 148 0 149 0;
#X connect 149 0 65 0;
#X connect 150 0 151 0;