r@165: #N canvas 34 32 1433 837 10; r@165: #X obj 561 -83 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0; r@165: #X obj 624 -83 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0; r@165: #X text 621 -174 Gain; r@165: #X obj 560 -200 loadbang; r@165: #N canvas 865 368 284 318 opLevels 0; r@165: #X obj 85 188 dac~; r@165: #X obj 30 70 catch~ l; r@165: #X obj 155 76 catch~ r; r@165: #X obj 155 106 *~ 0.45; r@165: #X obj 30 104 *~ 0.45; r@165: #X obj 30 210 prvu~; r@165: #X obj 155 213 prvu~; r@165: #X obj 100 69 / 127; r@165: #X obj 100 34 inlet; r@165: #X obj 30 239 outlet; r@165: #X obj 155 241 outlet; r@165: #X obj 155 132 /~ 1; r@165: #X obj 30 131 /~ 1; r@165: #X obj 204 29 inlet; r@165: #X connect 1 0 4 0; r@165: #X connect 2 0 3 0; r@165: #X connect 3 0 11 0; r@165: #X connect 4 0 12 0; r@165: #X connect 5 0 9 0; r@165: #X connect 6 0 10 0; r@165: #X connect 7 0 3 1; r@165: #X connect 7 0 4 1; r@165: #X connect 8 0 7 0; r@165: #X connect 11 0 0 1; r@165: #X connect 11 0 6 0; r@165: #X connect 12 0 0 0; r@165: #X connect 12 0 5 0; r@165: #X connect 13 0 12 1; r@165: #X connect 13 0 11 1; r@165: #X restore 560 -126 pd opLevels; r@165: #X msg 560 -177 5; r@165: #X msg 34 -205 1; r@165: #X obj 34 -182 s bladeLen; r@165: #X obj -168 -173 s NoOfSources; r@165: #X obj 95 151 s topSpeed; r@165: #X obj 43 125 hsl 100 20 0 100 0 0 empty empty empty -2 -8 0 10 -262144 r@165: -1 -1 3070 1; r@165: #X floatatom 40 151 8 0 0 0 - - -; r@165: #X text 67 -206 Blade Length; r@165: #X text 66 -140 Arm Length; r@165: #X text -140 -196 Number of Sources; r@165: #X text 151 129 Top Speed; r@165: #X obj 830 -131 hsl 100 20 0 180 0 0 empty empty empty -2 -8 0 10 -262144 r@165: -1 -1 8000 1; r@165: #X floatatom 827 -99 8 0 0 0 - - -; r@165: #N canvas 528 427 426 335 thickCalc 0; r@165: #X obj 173 139 r NoOfSources; r@165: #X obj 158 115 -; r@165: #X obj 158 164 /; r@165: #X floatatom 126 147 5 0 0 0 - - -; r@165: #X floatatom 94 189 8 0 0 0 - - -; r@165: #X obj 173 72 t f b; r@165: #X obj 200 95 delay 9; r@165: #X text 58 237 Calculates the difference in thickness between sources r@165: ; r@165: #X text 59 254 based on the blade tapering in a straight line; r@165: #X obj 158 19 r hiltThick; r@165: #X obj 173 44 r tipThick; r@165: #X obj 158 187 s deltaThick; r@165: #X connect 0 0 2 1; r@165: #X connect 1 0 2 0; r@165: #X connect 1 0 3 0; r@165: #X connect 2 0 4 0; r@165: #X connect 2 0 11 0; r@165: #X connect 5 0 1 1; r@165: #X connect 5 1 6 0; r@165: #X connect 6 0 1 0; r@165: #X connect 9 0 1 0; r@165: #X connect 10 0 5 0; r@165: #X restore 392 -103 pd thickCalc; r@165: #X obj 37 212 hsl 100 20 0 0.03 0 0 empty empty empty -2 -8 0 10 -262144 r@165: -1 -1 3500 1; r@165: #X obj 36 297 hsl 100 20 0 0.01 0 0 empty empty empty -2 -8 0 10 -262144 r@165: -1 -1 1368 1; r@165: #X floatatom 34 242 8 0 0 0 - - -; r@165: #X obj 88 241 s hiltThick; r@165: #X floatatom 33 325 8 0 0 0 - - -; r@165: #X obj 91 324 s tipThick; r@165: #X text 151 214 Hilt Thickness; r@165: #X text 143 298 Tip Thickness; r@165: #X obj 234 -160 bng 50 250 50 0 empty empty empty 17 7 0 10 -4034 -1 r@165: -1; r@165: #X obj 234 -107 s GO; r@165: #X obj -249 138 hsl 100 20 100 1 1 0 empty empty empty -2 -8 0 10 -262144 r@165: -1 -1 8410 1; r@165: #X obj -253 223 hsl 100 20 -180 180 0 0 empty empty empty -2 -8 0 10 r@165: -262144 -1 -1 6600 1; r@165: #X floatatom -252 164 8 0 0 0 - - -; r@165: #X text -139 142 Distance to Observer; r@165: #X floatatom -256 251 8 0 0 0 - - -; r@165: #X text -131 217 Angle to Observer; r@165: #X obj 234 -206 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 r@165: 0 1; r@165: #X obj 234 -187 metro 200; r@165: #X obj 288 -211 hsl 100 20 300 50 0 0 empty empty empty -2 -8 0 10 r@165: -262144 -1 -1 900 1; r@165: #X obj 174 -160 bng 50 250 50 0 empty empty empty 17 7 0 10 -257985 r@165: -1 -1; r@165: #X obj 174 -107 s setUp; r@165: #X obj -13 99 r setUp; r@165: #X obj 769 -151 r setUp; r@165: #X obj -17 189 r setUp; r@165: #X obj -18 277 r setUp; r@165: #X obj -304 117 r setUp; r@165: #X obj -307 201 r setUp; r@165: #X obj -193 165 s obsDistance; r@165: #X obj -197 252 s obsAngle; r@165: #N canvas 215 79 911 675 circumferCalc 0; r@165: #X obj 440 104 +; r@165: #X obj 440 127 s length; r@165: #X obj 168 153 r start_armLength; r@165: #X obj 153 86 r presweepAzim; r@165: #X obj 644 76 bng 50 250 50 0 empty empty empty 17 7 0 10 -4034 -1 r@165: -1; r@165: #X obj 644 129 s GO; r@165: #X obj 584 76 bng 50 250 50 0 empty empty empty 17 7 0 10 -257985 -1 r@165: -1; r@165: #X obj 584 129 s setUp; r@165: #X obj 153 132 * 6.28312; r@165: #X obj 153 110 / 360; r@165: #X obj 153 174 *; r@165: #X floatatom 91 198 5 0 0 0 - - -; r@165: #X text 194 175 Circumference of the nearest source on blade; r@165: #X text 307 191 up to 0 azimuth; r@165: #X obj 153 200 s minPreCirc; r@165: #X obj 452 300 r start_armLength; r@165: #X obj 437 279 * 6.28312; r@165: #X obj 437 257 / 360; r@165: #X obj 437 321 *; r@165: #X floatatom 375 345 5 0 0 0 - - -; r@165: #X text 478 322 Circumference of the nearest source on blade; r@165: #X text 914 158 up to 0 azimuth; r@165: #X obj 437 233 r postsweepAzim; r@165: #X obj 437 347 s minPostCirc; r@165: #X obj 149 252 r presweepAzim; r@165: #X obj 149 298 * 6.28312; r@165: #X obj 149 276 / 360; r@165: #X obj 149 342 *; r@165: #X obj 164 320 r length; r@165: #X floatatom 111 364 5 0 0 0 - - -; r@165: #X obj 440 57 r bladeLen; r@165: #X obj 455 81 r start_armLength; r@165: #X obj 437 434 * 6.28312; r@165: #X obj 437 412 / 360; r@165: #X obj 437 478 *; r@165: #X obj 452 456 r length; r@165: #X floatatom 399 501 5 0 0 0 - - -; r@165: #X obj 437 388 r postsweepAzim; r@165: #X obj 164 362 r minPreCirc; r@165: #X obj 149 383 -; r@165: #X obj 149 426 /; r@165: #X floatatom 111 454 5 0 0 0 - - -; r@165: #X obj 164 403 r NoOfSources; r@165: #X obj 149 454 s deltaPreCirc; r@165: #X obj 437 519 -; r@165: #X obj 437 562 /; r@165: #X obj 452 539 r NoOfSources; r@165: #X obj 452 498 r minPostCirc; r@165: #X obj 437 590 s deltaPostCirc; r@165: #X floatatom 397 591 5 0 0 0 - - -; r@165: #X text 33 334 Max Circumference; r@165: #X text 323 472 Max Circumference; r@165: #X connect 0 0 1 0; r@165: #X connect 2 0 10 1; r@165: #X connect 3 0 9 0; r@165: #X connect 4 0 5 0; r@165: #X connect 6 0 7 0; r@165: #X connect 8 0 10 0; r@165: #X connect 9 0 8 0; r@165: #X connect 10 0 11 0; r@165: #X connect 10 0 14 0; r@165: #X connect 15 0 18 1; r@165: #X connect 16 0 18 0; r@165: #X connect 17 0 16 0; r@165: #X connect 18 0 19 0; r@165: #X connect 18 0 23 0; r@165: #X connect 22 0 17 0; r@165: #X connect 24 0 26 0; r@165: #X connect 25 0 27 0; r@165: #X connect 26 0 25 0; r@165: #X connect 27 0 29 0; r@165: #X connect 27 0 39 0; r@165: #X connect 28 0 27 1; r@165: #X connect 30 0 0 0; r@165: #X connect 31 0 0 1; r@165: #X connect 32 0 34 0; r@165: #X connect 33 0 32 0; r@165: #X connect 34 0 36 0; r@165: #X connect 34 0 44 0; r@165: #X connect 35 0 34 1; r@165: #X connect 37 0 33 0; r@165: #X connect 38 0 39 1; r@165: #X connect 39 0 40 0; r@165: #X connect 40 0 41 0; r@165: #X connect 40 0 43 0; r@165: #X connect 42 0 40 1; r@165: #X connect 44 0 45 0; r@165: #X connect 45 0 48 0; r@165: #X connect 45 0 49 0; r@165: #X connect 46 0 45 1; r@165: #X connect 47 0 44 1; r@165: #X restore 367 -26 pd circumferCalc; r@165: #N canvas 303 28 1094 768 angleCalc 0; r@165: #X obj -129 105 * 0.75; r@165: #X obj 325 234 * 0.25; r@165: #X obj -129 145 /; r@165: #X obj -144 199 * 1000; r@165: #X obj 263 254 delay \$1; r@165: #X obj 236 202 f; r@165: #X obj 236 159 r GO; r@165: #X obj 236 228 t f b; r@165: #X msg 227 367 0; r@165: #X obj 325 276 /; r@165: #X obj 325 298 * 1000; r@165: #X obj -127 225 s \$0_thisDe; r@165: #X obj 251 181 r \$0_thisDe; r@165: #X obj 145 237 r sweepAngle; r@165: #X obj -129 81 r maxCirc; r@165: #X obj 325 212 r maxCirc; r@165: #X obj -114 124 r topSpeed; r@165: #X obj 340 255 r topSpeed; r@165: #X obj 644 360 delay \$1; r@165: #X obj 646 302 f; r@165: #X obj 639 248 r GO; r@165: #X obj 646 328 t f b; r@165: #X obj 682 208 r maxCirc; r@165: #X obj 697 230 r topSpeed; r@165: #X obj 682 254 /; r@165: #X obj 682 276 * 1000; r@165: #X obj 644 407 s end; r@165: #X obj -77 312 r end; r@165: #X obj 145 260 * -0.25; r@165: #X text -193 45 0.75 represents the ratio of swing that; r@165: #X text 200 118 0.25 represents the ratio of swing that; r@165: #X text 200 132 the sword is decelerating; r@165: #X text -102 149 Time taken for acceleration; r@165: #X text -54 221 Send as a delay; r@165: #X text 280 160 Recieve as a delay; r@165: #X text -36 312 Reset angle; r@165: #X text -38 325 once swing complete; r@165: #X text 622 426 Send bang message at the; r@165: #X text 623 438 end of the swing to reset; r@165: #X text 379 296 Time for last; r@165: #X text 381 307 1/4 of swing; r@165: #X text -193 59 the sword is before 0 degrees; r@165: #X text -121 700 Output of complete swing \, split into 75% before r@165: 0 degrees and 25% past 0 degrees; r@165: #X text 568 517 Once delay from start to 0 degrees complete; r@165: #X text 564 535 count down from 0 to finish the total swing angle; r@165: #X text 98 9 Patch that calculates the angle between 0 degrees for r@165: the full length of the swing; r@165: #X obj -144 482 line~; r@165: #X obj 86 601 metro 10; r@165: #X obj 86 632 snapshot~; r@165: #X floatatom 85 656 8 0 0 0 - - -; r@165: #X obj 172 397 line~; r@165: #X msg 172 350 \$1 \$2; r@165: #X obj 151 319 pack; r@165: #X obj 86 570 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 r@165: 1; r@165: #X floatatom -108 266 5 0 0 0 - - -; r@165: #X msg -90 438 \$1; r@165: #X obj -48 365 r sweepAngle; r@165: #X obj -48 387 * 0.75; r@165: #X msg -144 427 0 \$1; r@165: #X obj -62 341 r setUp; r@165: #X obj 151 294 f; r@165: #X obj -4 549 +~; r@165: #X obj 227 342 r setUp; r@165: #X floatatom -63 474 5 0 0 0 - - -; r@165: #X text 11 464 comment; r@165: #X obj -63 409 f; r@165: #X floatatom -26 434 5 0 0 0 - - -; r@165: #X obj 286 343 r end; r@165: #X obj 632 276 delay 9; r@165: #X obj 644 383 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 r@165: -1 -1; r@165: #X obj -144 174 f; r@165: #X obj -163 143 r GO; r@165: #X obj -4 633 s~ swordAngle; r@165: #X text 241 325 Set to 0 at end; r@165: #X obj 86 545 loadbang; r@165: #X obj 68 509 r obsAngle; r@165: #X obj -4 576 +~ 1; r@165: #X text 141 470 Adding in the observer angle here offsets the swing r@165: angle by the angle the observer is at. This makes all the future calculations r@165: as if the observer is positioned at 0 degrees to the swordSwing.; r@165: #X connect 0 0 2 0; r@165: #X connect 1 0 9 0; r@165: #X connect 2 0 70 1; r@165: #X connect 3 0 11 0; r@165: #X connect 3 0 54 0; r@165: #X connect 3 0 58 0; r@165: #X connect 4 0 60 0; r@165: #X connect 5 0 7 0; r@165: #X connect 6 0 5 0; r@165: #X connect 7 0 4 1; r@165: #X connect 7 1 4 0; r@165: #X connect 8 0 50 0; r@165: #X connect 9 0 10 0; r@165: #X connect 10 0 52 1; r@165: #X connect 12 0 5 1; r@165: #X connect 13 0 28 0; r@165: #X connect 14 0 0 0; r@165: #X connect 15 0 1 0; r@165: #X connect 16 0 2 1; r@165: #X connect 17 0 9 1; r@165: #X connect 18 0 69 0; r@165: #X connect 19 0 21 0; r@165: #X connect 20 0 68 0; r@165: #X connect 21 0 18 1; r@165: #X connect 21 1 18 0; r@165: #X connect 22 0 24 0; r@165: #X connect 23 0 24 1; r@165: #X connect 24 0 25 0; r@165: #X connect 25 0 19 1; r@165: #X connect 27 0 65 0; r@165: #X connect 28 0 60 1; r@165: #X connect 46 0 61 0; r@165: #X connect 47 0 48 0; r@165: #X connect 48 0 49 0; r@165: #X connect 50 0 61 1; r@165: #X connect 51 0 50 0; r@165: #X connect 52 0 51 0; r@165: #X connect 53 0 47 0; r@165: #X connect 55 0 46 0; r@165: #X connect 55 0 63 0; r@165: #X connect 56 0 57 0; r@165: #X connect 57 0 65 1; r@165: #X connect 57 0 66 0; r@165: #X connect 58 0 46 0; r@165: #X connect 59 0 65 0; r@165: #X connect 60 0 52 0; r@165: #X connect 61 0 76 0; r@165: #X connect 62 0 8 0; r@165: #X connect 65 0 55 0; r@165: #X connect 67 0 8 0; r@165: #X connect 68 0 19 0; r@165: #X connect 69 0 26 0; r@165: #X connect 70 0 3 0; r@165: #X connect 71 0 70 0; r@165: #X connect 74 0 53 0; r@165: #X connect 75 0 76 1; r@165: #X connect 76 0 72 0; r@165: #X connect 76 0 48 0; r@165: #X restore 391 -136 pd angleCalc; r@165: #X obj 563 -155 hsl 100 25 0 127 0 0 empty empty empty -2 -8 0 10 -262144 r@165: -1 -1 5354 1; r@165: #X obj 34 -229 loadbang; r@165: #X obj 32 -160 loadbang; r@165: #X obj -168 -218 loadbang; r@165: #X msg -166 -124 0; r@165: #X obj -166 -102 s elev; r@165: #X text -134 229 (Azimuth); r@165: #X obj -166 -147 loadbang; r@165: #X obj 457 565 s thisTS; r@165: #X obj 476 544 s thisSA; r@165: #X obj 496 522 s thisHT; r@165: #X obj 515 499 s thisTT; r@165: #X obj 535 478 s thisOD; r@165: #X obj 554 458 s thisOA; r@165: #X obj 574 436 s thisG; r@165: #X obj 40 99 r thisTS; r@165: #X obj 827 -152 r thisSA; r@165: #X obj 34 189 r thisHT; r@165: #X obj 33 277 r thisTT; r@165: #X obj -252 117 r thisOD; r@165: #X obj -255 202 r thisOA; r@165: #X obj 508 -175 r thisG; r@165: #X obj 457 412 unpack f f f f f f f; r@165: #X obj -218 -147 r setUp; r@165: #X obj -221 -216 r setUp; r@165: #X obj -17 -162 r setUp; r@165: #X obj -18 -227 r setUp; r@165: #X text 394 412 Presets; r@165: #X msg 466 307 20 160 0.01 0.004 2 0 127; r@165: #X msg 457 284 43 215 0.0085 0.0025 4 90 40; r@165: #X msg 476 330 30 280 0.0095 0.0032 2 60 120; r@165: #X text 726 293 Currently the noise sources are not connected but still r@165: getting a zipping type sound. It seems to get worse with sources lower r@165: down the blade - this needs looked into; r@165: #X obj 457 255 loadbang; r@165: #X obj 174 -212 loadbang; r@165: #X obj 174 -188 delay 13; r@165: #X obj 409 337 t b; r@165: #X obj 389 360 s setUp; r@165: #X obj -257 297 hsl 100 20 -180 180 0 0 empty empty empty -2 -8 0 10 r@165: -262144 -1 -1 0 1; r@165: #X floatatom -260 325 8 0 0 0 - - -; r@165: #X text -135 291 Angle to Observer; r@165: #X obj -311 275 r setUp; r@165: #X obj -259 276 r thisOE; r@165: #X obj -201 326 s obsElev; r@165: #X text -138 303 (Elevation); r@165: #X obj 828 -53 hsl 100 20 0 180 0 0 empty empty empty -2 -8 0 10 -262144 r@165: -1 -1 3300 1; r@165: #X floatatom 825 -21 8 0 0 0 - - -; r@165: #X obj 767 -73 r setUp; r@165: #X obj 825 -74 r thisSA; r@165: #X obj 823 60 hsl 100 20 0 90 0 0 empty empty empty -2 -8 0 10 -262144 r@165: -1 -1 5600 1; r@165: #X floatatom 820 92 8 0 0 0 - - -; r@165: #X obj 762 40 r setUp; r@165: #X obj 820 39 r thisSA; r@165: #X obj 821 138 hsl 100 20 0 90 0 0 empty empty empty -2 -8 0 10 -262144 r@165: -1 -1 2400 1; r@165: #X floatatom 818 170 8 0 0 0 - - -; r@165: #X obj 760 118 r setUp; r@165: #X obj 818 117 r thisSA; r@165: #N canvas 419 64 689 650 allSource 1; r@165: #X obj 187 127 r distance; r@165: #X obj 170 106 r angle; r@165: #X obj 153 65 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 r@165: -1; r@165: #X obj 153 37 r setUp; r@165: #X obj 204 147 r elev; r@165: #X msg 153 84 10; r@165: #X obj 153 170 tenSource; r@165: #X connect 0 0 6 2; r@165: #X connect 1 0 6 1; r@165: #X connect 2 0 5 0; r@165: #X connect 3 0 2 0; r@165: #X connect 4 0 6 3; r@165: #X connect 5 0 6 0; r@165: #X restore 391 -75 pd allSource; r@165: #X obj 875 91 s presweepElev; r@165: #X obj 873 169 s postsweepElev; r@165: #X text 934 61 pre-sweep elevation; r@165: #X text 932 138 post-sweep elevation; r@165: #X text 941 -130 pre-sweep azimuth; r@165: #X text 939 -52 post-sweep azimuth; r@165: #X obj 882 -100 s presweepAzim; r@165: #X obj 880 -22 s postsweepAzim; r@165: #X obj 32 -118 s start_armLength; r@165: #X msg 32 -139 0.35; r@165: #X obj 410 -50 sweepTime; r@165: #X obj 672 -195 hsl 100 25 1 100 0 0 empty empty empty -2 -8 0 10 -262144 r@165: -1 -1 900 1; r@165: #X floatatom 688 -155 5 0 0 0 - - -; r@165: #X msg -168 -196 10; r@165: #X connect 3 0 5 0; r@165: #X connect 4 0 0 0; r@165: #X connect 4 1 1 0; r@165: #X connect 5 0 50 0; r@165: #X connect 6 0 7 0; r@165: #X connect 10 0 9 0; r@165: #X connect 10 0 11 0; r@165: #X connect 16 0 17 0; r@165: #X connect 16 0 113 0; r@165: #X connect 19 0 21 0; r@165: #X connect 19 0 22 0; r@165: #X connect 20 0 23 0; r@165: #X connect 20 0 24 0; r@165: #X connect 27 0 28 0; r@165: #X connect 29 0 31 0; r@165: #X connect 29 0 46 0; r@165: #X connect 30 0 33 0; r@165: #X connect 30 0 47 0; r@165: #X connect 35 0 36 0; r@165: #X connect 36 0 27 0; r@165: #X connect 37 0 36 1; r@165: #X connect 38 0 39 0; r@165: #X connect 40 0 10 0; r@165: #X connect 41 0 16 0; r@165: #X connect 42 0 19 0; r@165: #X connect 43 0 20 0; r@165: #X connect 44 0 29 0; r@165: #X connect 45 0 30 0; r@165: #X connect 50 0 4 0; r@165: #X connect 51 0 6 0; r@165: #X connect 52 0 116 0; r@165: #X connect 53 0 120 0; r@165: #X connect 54 0 55 0; r@165: #X connect 57 0 54 0; r@165: #X connect 65 0 10 0; r@165: #X connect 67 0 19 0; r@165: #X connect 68 0 20 0; r@165: #X connect 69 0 29 0; r@165: #X connect 70 0 30 0; r@165: #X connect 71 0 50 0; r@165: #X connect 72 0 58 0; r@165: #X connect 72 1 59 0; r@165: #X connect 72 2 60 0; r@165: #X connect 72 3 61 0; r@165: #X connect 72 4 62 0; r@165: #X connect 72 5 63 0; r@165: #X connect 72 6 64 0; r@165: #X connect 73 0 54 0; r@165: #X connect 74 0 120 0; r@165: #X connect 75 0 116 0; r@165: #X connect 76 0 6 0; r@165: #X connect 78 0 72 0; r@165: #X connect 78 0 85 0; r@165: #X connect 79 0 72 0; r@165: #X connect 79 0 85 0; r@165: #X connect 80 0 72 0; r@165: #X connect 80 0 85 0; r@165: #X connect 82 0 79 0; r@165: #X connect 83 0 84 0; r@165: #X connect 84 0 38 0; r@165: #X connect 85 0 86 0; r@165: #X connect 87 0 88 0; r@165: #X connect 87 0 92 0; r@165: #X connect 90 0 87 0; r@165: #X connect 91 0 87 0; r@165: #X connect 94 0 95 0; r@165: #X connect 94 0 114 0; r@165: #X connect 96 0 94 0; r@165: #X connect 98 0 99 0; r@165: #X connect 98 0 107 0; r@165: #X connect 100 0 98 0; r@165: #X connect 101 0 98 0; r@165: #X connect 102 0 103 0; r@165: #X connect 102 0 108 0; r@165: #X connect 104 0 102 0; r@165: #X connect 105 0 102 0; r@165: #X connect 116 0 115 0; r@165: #X connect 118 0 4 1; r@165: #X connect 118 0 119 0; r@165: #X connect 120 0 8 0;