view June/woosh_D3.pd @ 303:8b51c20529a6

Edgetone development models
author Rod Selfridge <r.selfridge@qmul.ac.uk>
date Sat, 11 Nov 2017 17:43:39 +0000
parents 5c8267c02763
children
line wrap: on
line source
#N canvas 111 28 1171 835 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 30 131 /~ 15;
#X obj 155 132 /~ 15;
#X connect 1 0 4 0;
#X connect 2 0 3 0;
#X connect 3 0 13 0;
#X connect 4 0 12 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 12 1;
#X connect 11 0 13 1;
#X connect 12 0 0 0;
#X connect 12 0 5 0;
#X connect 13 0 0 1;
#X connect 13 0 6 0;
#X restore 540 -146 pd opLevels;
#X msg 540 -197 5;
#N canvas 601 144 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 285 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 261 *;
#X floatatom 85 285 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 308 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 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 24 1;
#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 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 0 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 0 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 0 1;
#X obj 19 323 hsl 100 20 0 0.01 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 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 0 1;
#X obj 15 490 hsl 100 20 -180 180 0 0 empty empty empty -2 -8 0 10
-262144 -1 -1 0 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 361 106 954 607 angleCalc 0;
#X obj -142 102 * 0.75;
#X obj 231 187 * 0.25;
#X obj -142 142 /;
#X msg -157 248 1 \$1;
#X obj -157 225 f;
#X obj -157 274 line 0;
#X obj -171 193 r GO;
#X msg -113 248 0;
#X obj -142 166 * 1000;
#X obj 169 334 line 0;
#X obj 169 207 delay \$1;
#X obj 142 155 f;
#X obj 142 112 r GO;
#X obj 142 181 t f b;
#X obj 169 283 i;
#X msg 169 305 1 \$1;
#X msg 214 305 0;
#X obj 231 229 /;
#X obj 231 251 * 1000;
#X obj -157 352 *;
#X obj -128 297 r sweepAngle;
#X obj -154 405 hsl 100 25 0 360 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X obj -128 319 * -0.75;
#X obj -157 376 +;
#X obj -128 343 * -1;
#X obj -127 191 s \$0_thisDe;
#X obj 157 134 r \$0_thisDe;
#X obj 169 372 *;
#X obj 219 332 r sweepAngle;
#X obj 172 396 hsl 100 25 -360 360 0 0 empty empty empty -2 -8 0 10
-262144 -1 -1 0 1;
#X obj 214 283 r GO;
#X obj -142 78 r maxCirc;
#X obj 231 165 r maxCirc;
#X obj -127 121 r topSpeed;
#X obj 246 208 r topSpeed;
#X obj -35 535 s currentAngle;
#X obj -35 489 +;
#X floatatom -35 514 8 0 0 0 - - -;
#X obj -20 464 t f b;
#X obj 474 202 delay \$1;
#X obj 476 144 f;
#X obj 476 118 r GO;
#X obj 476 170 t f b;
#X obj 512 50 r maxCirc;
#X obj 527 72 r topSpeed;
#X obj 512 96 /;
#X obj 512 118 * 1000;
#X obj 474 224 s end;
#X obj -113 227 r end;
#X obj -20 431 r end;
#X obj 219 355 * -0.25;
#X text -206 42 0.75 represents the ratio of swing that;
#X text 106 71 0.25 represents the ratio of swing that;
#X text 106 85 the sword is decelerating;
#X text -115 146 Time taken for acceleration;
#X text -52 188 Send as a delay;
#X text 186 113 Recieve as a delay;
#X text -226 173 Start swing;
#X text -72 227 Reset angle;
#X text -72 239 once swing complete;
#X text -73 323 Start angle is;
#X text -73 335 3/4 of total angle;
#X text 452 243 Send bang message at the;
#X text 453 255 end of the swing to reset;
#X text 285 249 Time for last;
#X text 287 260 1/4 of swing;
#X text 245 294 Set to 0 at start;
#X text -206 56 the sword is before 0 degrees;
#X text -92 565 Output of complete swing \, split into 75% before 0
degrees and 25% past 0 degrees;
#X text 276 354 Once delay from start to 0 degrees complete;
#X text 276 366 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 connect 0 0 2 0;
#X connect 1 0 17 0;
#X connect 2 0 8 0;
#X connect 3 0 5 0;
#X connect 4 0 3 0;
#X connect 5 0 19 0;
#X connect 6 0 4 0;
#X connect 7 0 5 0;
#X connect 8 0 4 1;
#X connect 8 0 25 0;
#X connect 9 0 27 0;
#X connect 10 0 14 0;
#X connect 11 0 13 0;
#X connect 12 0 11 0;
#X connect 13 0 10 1;
#X connect 13 1 10 0;
#X connect 14 0 15 0;
#X connect 15 0 9 0;
#X connect 16 0 9 0;
#X connect 17 0 18 0;
#X connect 18 0 14 1;
#X connect 19 0 23 0;
#X connect 20 0 22 0;
#X connect 21 0 36 0;
#X connect 22 0 24 0;
#X connect 22 0 19 1;
#X connect 23 0 21 0;
#X connect 24 0 23 1;
#X connect 26 0 11 1;
#X connect 27 0 29 0;
#X connect 28 0 50 0;
#X connect 29 0 38 0;
#X connect 30 0 16 0;
#X connect 31 0 0 0;
#X connect 32 0 1 0;
#X connect 33 0 2 1;
#X connect 34 0 17 1;
#X connect 36 0 37 0;
#X connect 37 0 35 0;
#X connect 38 0 36 1;
#X connect 38 1 36 0;
#X connect 39 0 47 0;
#X connect 40 0 42 0;
#X connect 41 0 40 0;
#X connect 42 0 39 1;
#X connect 42 1 39 0;
#X connect 43 0 45 0;
#X connect 44 0 45 1;
#X connect 45 0 46 0;
#X connect 46 0 40 1;
#X connect 48 0 7 0;
#X connect 49 0 38 0;
#X connect 50 0 27 1;
#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 390 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 910 -81 tenSource;
#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 obj 774 72 tenSource;
#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 903 81 tenSource;
#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 771 223 tenSource;
#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 obj 905 230 tenSource;
#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 771 144 6;
#X msg 903 2 7;
#X msg 774 -7 8;
#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 msg 437 264 43 215 0.0085 0.0025 8 0 40;
#X msg 446 287 20 160 0.01 0.004 4 0 127;
#X obj 774 385 tenSource;
#X obj 808 349 r distance;
#X obj 791 328 r angle;
#X obj 774 287 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 774 259 r setUp;
#X obj 825 365 r elev;
#X obj 903 394 tenSource;
#X obj 937 358 r distance;
#X obj 920 337 r angle;
#X obj 903 296 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 903 268 r setUp;
#X obj 954 374 r elev;
#X obj 771 536 tenSource;
#X obj 805 500 r distance;
#X obj 788 479 r angle;
#X obj 771 438 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 771 410 r setUp;
#X obj 822 516 r elev;
#X obj 905 543 tenSource;
#X obj 939 507 r distance;
#X obj 922 486 r angle;
#X obj 905 445 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 905 417 r setUp;
#X obj 956 523 r elev;
#X msg 774 306 4;
#X msg 903 315 3;
#X msg 771 457 2;
#X msg 905 464 1;
#X msg 458 327 65 280 0.005 0.0025 20 60 20;
#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 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 90 0 89 2;
#X connect 91 0 89 1;
#X connect 92 0 123 0;
#X connect 93 0 92 0;
#X connect 94 0 89 3;
#X connect 96 0 95 2;
#X connect 97 0 95 1;
#X connect 98 0 122 0;
#X connect 99 0 98 0;
#X connect 100 0 95 3;
#X connect 102 0 101 2;
#X connect 103 0 101 1;
#X connect 104 0 121 0;
#X connect 105 0 104 0;
#X connect 106 0 101 3;
#X connect 108 0 107 2;
#X connect 109 0 107 1;
#X connect 110 0 120 0;
#X connect 111 0 110 0;
#X connect 112 0 107 3;
#X connect 114 0 113 2;
#X connect 115 0 113 1;
#X connect 116 0 119 0;
#X connect 117 0 116 0;
#X connect 118 0 113 3;
#X connect 119 0 113 0;
#X connect 120 0 107 0;
#X connect 121 0 101 0;
#X connect 122 0 95 0;
#X connect 123 0 89 0;
#X connect 124 0 86 0;
#X connect 132 0 20 0;
#X connect 133 0 26 0;
#X connect 134 0 40 0;
#X connect 135 0 41 0;
#X connect 136 0 53 0;
#X connect 137 0 54 0;
#X connect 138 0 80 0;
#X connect 139 0 125 0;
#X connect 139 1 126 0;
#X connect 139 2 127 0;
#X connect 139 3 128 0;
#X connect 139 4 129 0;
#X connect 139 5 130 0;
#X connect 139 6 131 0;
#X connect 140 0 139 0;
#X connect 141 0 139 0;
#X connect 143 0 142 2;
#X connect 144 0 142 1;
#X connect 145 0 166 0;
#X connect 146 0 145 0;
#X connect 147 0 142 3;
#X connect 149 0 148 2;
#X connect 150 0 148 1;
#X connect 151 0 167 0;
#X connect 152 0 151 0;
#X connect 153 0 148 3;
#X connect 155 0 154 2;
#X connect 156 0 154 1;
#X connect 157 0 168 0;
#X connect 158 0 157 0;
#X connect 159 0 154 3;
#X connect 161 0 160 2;
#X connect 162 0 160 1;
#X connect 163 0 169 0;
#X connect 164 0 163 0;
#X connect 165 0 160 3;
#X connect 166 0 142 0;
#X connect 167 0 148 0;
#X connect 168 0 154 0;
#X connect 169 0 160 0;
#X connect 170 0 139 0;
#X connect 171 0 86 0;
#X connect 172 0 10 0;
#X connect 173 0 11 0;
#X connect 174 0 9 0;