changeset 299:3b72edb16d83

Signal version of sword started
author Rod Selfridge <r.selfridge@qmul.ac.uk>
date Sat, 24 Jun 2017 09:58:00 +0100
parents 8fbae9352283
children ecd89cad1811
files Katana/SigGrooveSword/sigSword.pd Katana/SwordGrooveInterp.pd Katana/centreAngles.pd
diffstat 3 files changed, 3219 insertions(+), 208 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Katana/SigGrooveSword/sigSword.pd	Sat Jun 24 09:58:00 2017 +0100
@@ -0,0 +1,2868 @@
+#N canvas 415 132 1175 660 10;
+#X obj -25 24 bng 50 250 50 0 empty empty empty 17 7 0 10 -4034 -1
+-1;
+#X obj -25 77 s GO;
+#X obj -106 372 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0;
+#X obj -43 372 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0;
+#X text -46 281 Gain;
+#X obj -98 252 loadbang;
+#N canvas 555 179 313 396 opLevels 0;
+#X obj 83 210 dac~;
+#X obj 30 70 catch~ l;
+#X obj 128 70 catch~ r;
+#X obj 129 104 *~ 0.45;
+#X obj 30 104 *~ 0.45;
+#X obj 30 210 prvu~;
+#X obj 129 211 prvu~;
+#X obj 93 33 inlet;
+#X obj 30 239 outlet;
+#X obj 129 239 outlet;
+#X connect 1 0 4 0;
+#X connect 2 0 3 0;
+#X connect 3 0 6 0;
+#X connect 3 0 0 1;
+#X connect 4 0 5 0;
+#X connect 4 0 0 0;
+#X connect 5 0 8 0;
+#X connect 6 0 9 0;
+#X connect 7 0 4 1;
+#X connect 7 0 3 1;
+#X restore -107 329 pd opLevels;
+#X obj -104 300 hsl 100 25 0.1 1e+09 1 0 empty empty empty -2 -8 0
+10 -262144 -1 -1 0 1;
+#X obj -107 229 r GAIN;
+#X floatatom -164 330 8 0 0 0 - - -;
+#X msg -98 275 50000;
+#X obj -105 23 loadbang;
+#X obj -105 45 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
+1;
+#X obj -105 86 s myMet;
+#X obj 71 389 s topSpeed;
+#X obj 74 328 hsl 100 15 0 70 0 0 empty empty Top_Speed 2 8 0 10 -204800
+-1 -1 71 1;
+#X obj 217 204 hsl 100 15 0 0.09 0 0 empty empty Hilt_Thickness 2 8
+0 10 -204786 -1 -1 3300 1;
+#X obj 333 200 hsl 100 15 0.0001 0.1 0 0 empty empty Tip_thickness
+2 8 0 10 -204786 -1 -1 981 1;
+#X obj 330 260 s tipThick;
+#X obj 71 287 r thisTS;
+#X obj 214 162 r thisHT;
+#X obj 330 162 r thisTT;
+#X obj 75 73 hsl 100 15 -50 50 0 0 empty empty X_Position 4 8 0 10
+-261234 -1 -1 5346 1;
+#X obj 201 76 hsl 100 15 -50 50 0 0 empty empty Y_Position 2 8 0 10
+-261234 -1 -1 5049 1;
+#X obj 328 75 hsl 100 15 -50 50 0 0 empty empty Z_Position 2 8 0 10
+-261234 -1 -1 5148 1;
+#X obj 198 133 s Yobs;
+#X obj 325 135 s Zobs;
+#X floatatom 122 91 0 0 0 0 - - -;
+#X msg 80 49 0;
+#X msg 334 49 0;
+#X msg 207 50 0;
+#X msg 119 50 4;
+#X msg 78 307 0.5;
+#X obj 72 28 r thisXobs;
+#X obj 198 29 r thisYobs;
+#X obj 325 30 r thisZobs;
+#X obj 214 264 s hiltThick;
+#X msg 265 50 1;
+#X obj 76 201 hsl 100 15 0.1 3 0 0 empty empty Blade_Length 2 8 0 10
+-204786 -1 -1 3072 1;
+#X obj 73 178 r thisLength;
+#X obj 73 260 s bladeLen;
+#X msg 153 181 1;
+#X obj 266 30 loadbang;
+#X obj 140 27 loadbang;
+#X obj 393 30 loadbang;
+#X obj 153 161 loadbang;
+#X obj 128 287 loadbang;
+#X obj 270 162 loadbang;
+#X msg 128 308 30;
+#X obj 448 200 hsl 100 15 0 0.45 0 0 empty empty Groove_Depth_% 2 8
+0 10 -204786 -1 -1 4400 1;
+#X obj 562 201 hsl 100 15 0 0.8 0 0 empty empty Groove_Length_% 2 8
+0 10 -204786 -1 -1 6187 1;
+#X obj 500 158 loadbang;
+#X obj 445 260 s GrooveDepth;
+#X obj 559 261 s Groove Length;
+#X msg 500 179 0.2;
+#X msg 614 180 0.5;
+#X msg 393 51 2;
+#X obj 73 134 s Xobs;
+#X obj 73 91 r myMet;
+#X obj 73 112 f;
+#X floatatom 247 93 0 0 0 0 - - -;
+#X obj 198 93 r myMet;
+#X obj 198 114 f;
+#X floatatom -197 64 0 0 0 0 - - -;
+#X obj -246 64 r myMet;
+#X obj -246 85 f;
+#X floatatom 374 94 0 0 0 0 - - -;
+#X obj 325 94 r myMet;
+#X obj 325 115 f;
+#X text 142 203;
+#X floatatom 122 219 0 0 0 0 - - -;
+#X obj 73 219 r myMet;
+#X obj 73 240 f;
+#X floatatom 120 347 0 0 0 0 - - -;
+#X obj 71 347 r myMet;
+#X obj 71 368 f;
+#X msg 270 184 0.03;
+#X msg 384 181 0.01;
+#X msg 223 182 0.025;
+#X msg 336 181 0.025;
+#X floatatom 263 223 0 0 0 0 - - -;
+#X obj 214 223 r myMet;
+#X obj 214 244 f;
+#X obj 384 162 loadbang;
+#X floatatom 379 218 0 0 0 0 - - -;
+#X obj 330 218 r myMet;
+#X obj 330 239 f;
+#X obj 445 179 r thisGD;
+#X floatatom 494 218 0 0 0 0 - - -;
+#X obj 445 218 r myMet;
+#X obj 445 239 f;
+#X obj 614 160 loadbang;
+#X obj 559 181 r thisGL;
+#X floatatom 608 220 0 0 0 0 - - -;
+#X obj 559 220 r myMet;
+#X obj 559 241 f;
+#X text 485 50 Arm Length;
+#X obj 451 30 loadbang;
+#X obj 451 72 s start_armLength;
+#X msg 451 51 0.35;
+#X obj 190 328 hsl 100 15 0 180 0 0 empty empty Pre_Sweep_Azim 2 8
+0 10 -204800 -1 -1 7575 1;
+#X obj 300 328 hsl 100 15 180 360 0 0 empty empty Post_Sweep_Azim 2
+8 0 10 -204800 -1 -1 1400 1;
+#X obj 420 329 hsl 100 15 90 -90 0 0 empty empty Pre_Sweep_Elev 2 8
+0 10 -204800 -1 -1 1500 1;
+#X obj 541 329 hsl 100 15 90 -90 0 0 empty empty Post_Sweep_Elev 2
+8 0 10 -204800 -1 -1 6600 1;
+#X obj 417 388 s presweepElev;
+#X obj 538 387 s postsweepElev;
+#X obj 187 389 s presweepAzim;
+#X obj 297 387 s postsweepAzim;
+#X msg 249 309 90;
+#X obj 187 309 r thisPrA;
+#X obj 297 307 r thisPoA;
+#X obj 417 288 r thisPrE;
+#X obj 538 290 r thisPoE;
+#X obj 249 288 loadbang;
+#X obj 480 288 loadbang;
+#X msg 604 310 0;
+#X msg 480 308 0;
+#X msg 428 308 10;
+#X msg 547 309 -10;
+#X floatatom 236 347 0 0 0 0 - - -;
+#X obj 187 347 r myMet;
+#X obj 187 368 f;
+#X obj 360 289 loadbang;
+#X floatatom 346 345 0 0 0 0 - - -;
+#X obj 297 345 r myMet;
+#X obj 297 366 f;
+#X floatatom 466 347 0 0 0 0 - - -;
+#X obj 417 347 r myMet;
+#X obj 417 368 f;
+#X msg 360 308 280;
+#X obj 604 290 loadbang;
+#X floatatom 587 347 0 0 0 0 - - -;
+#X obj 538 347 r myMet;
+#X obj 538 368 f;
+#X obj -106 109 loadbang;
+#X obj -103 153 hsl 80 25 1e-06 0.001 0 0 empty empty empty -2 -8 0
+10 -262144 -1 -1 0 1;
+#X floatatom -96 184 0 0 0 0 - - -;
+#X obj -106 206 s cavGain;
+#X msg -50 112 0;
+#X msg -106 132 0.0002;
+#X text -45 134 comment;
+#N canvas 18 423 1131 485 Sources 1;
+#N canvas 218 182 549 568 sourceQuantity 0;
+#X obj 93 81 t f b;
+#X obj 78 104 -;
+#X obj 108 167 t f b;
+#X obj 93 190 -;
+#X obj 108 146 r start_armLength;
+#X obj 78 237 /;
+#X obj 93 212 t f b;
+#X obj 78 40 r tipThick;
+#X obj 93 60 r hiltThick;
+#X obj 224 308 *;
+#X obj 239 284 t f b;
+#X floatatom 297 328 0 0 0 0 - - -;
+#X obj 224 394 +;
+#X obj 239 370 t f b;
+#X obj 239 348 r tipThick;
+#X floatatom 274 412 0 0 0 0 - - -;
+#X obj 224 262 * -1;
+#X obj 78 270 s bladeGrad;
+#X obj 224 432 s bladeConst;
+#X floatatom 40 306 0 0 0 0 - - -;
+#X obj 224 238 r Length;
+#X obj 93 126 r Length;
+#X connect 0 0 1 1;
+#X connect 0 1 1 0;
+#X connect 1 0 5 0;
+#X connect 2 0 3 1;
+#X connect 2 1 3 0;
+#X connect 3 0 6 0;
+#X connect 4 0 2 0;
+#X connect 5 0 10 0;
+#X connect 5 0 17 0;
+#X connect 5 0 19 0;
+#X connect 6 0 5 1;
+#X connect 7 0 1 0;
+#X connect 8 0 0 0;
+#X connect 9 0 11 0;
+#X connect 9 0 12 0;
+#X connect 10 0 9 1;
+#X connect 10 1 9 0;
+#X connect 12 0 15 0;
+#X connect 12 0 18 0;
+#X connect 13 0 12 1;
+#X connect 13 1 12 0;
+#X connect 14 0 13 0;
+#X connect 16 0 9 0;
+#X connect 20 0 16 0;
+#X connect 21 0 3 0;
+#X restore 241 -100 pd sourceQuantity;
+#N canvas 230 416 532 341 strike 0;
+#X obj 107 151 line~;
+#X obj 107 38 r strike;
+#X obj 107 86 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 182 179 *~;
+#X obj 182 276 throw~ l;
+#X obj 233 253 throw~ r;
+#X obj 182 232 fcpan;
+#X msg 246 204 0.5;
+#X obj 301 183 *~;
+#X obj 301 280 throw~ l;
+#X obj 352 257 throw~ r;
+#X obj 301 236 fcpan;
+#X msg 365 208 0.5;
+#X obj 182 147 *~;
+#X obj 301 154 *~;
+#X obj 107 64 spigot;
+#X msg 229 45 0;
+#X msg 311 48 1;
+#X obj 311 28 r PGA;
+#X obj 180 26 r MLB;
+#X obj 224 24 r SWD1;
+#X obj 266 24 r SWD2;
+#X obj 316 131 osc~ 50;
+#X obj 301 109 osc~ 45;
+#X msg 50 130 0 10;
+#X obj 51 109 delay 10;
+#X msg 107 124 0.01 10;
+#X obj 197 121 osc~ 500;
+#X obj 182 101 osc~ 4000;
+#X obj 417 160 loadbang;
+#X obj 301 208 *~ 1e-06;
+#X obj 182 204 *~ 1e-06;
+#X connect 0 0 3 1;
+#X connect 0 0 8 1;
+#X connect 1 0 15 0;
+#X connect 2 0 26 0;
+#X connect 2 0 25 0;
+#X connect 3 0 31 0;
+#X connect 6 0 4 0;
+#X connect 6 1 5 0;
+#X connect 7 0 6 1;
+#X connect 8 0 30 0;
+#X connect 11 0 9 0;
+#X connect 11 1 10 0;
+#X connect 12 0 11 1;
+#X connect 13 0 3 0;
+#X connect 14 0 8 0;
+#X connect 15 0 2 0;
+#X connect 16 0 15 1;
+#X connect 17 0 15 1;
+#X connect 18 0 17 0;
+#X connect 19 0 16 0;
+#X connect 20 0 16 0;
+#X connect 21 0 16 0;
+#X connect 22 0 14 1;
+#X connect 23 0 14 0;
+#X connect 24 0 0 0;
+#X connect 25 0 24 0;
+#X connect 26 0 0 0;
+#X connect 27 0 13 1;
+#X connect 28 0 13 0;
+#X connect 29 0 12 0;
+#X connect 29 0 7 0;
+#X connect 30 0 11 0;
+#X connect 31 0 6 0;
+#X restore 241 -79 pd strike;
+#N canvas 6 106 447 640 Haversine 0;
+#X obj 62 46 r presweepAzim;
+#X obj 47 8 r postsweepAzim;
+#X obj 217 44 r presweepElev;
+#X obj 202 2 r postsweepElev;
+#X obj 47 95 -;
+#X obj 47 117 / 2;
+#X obj 9 117 > 0.5;
+#X obj 47 159 sin;
+#X obj 47 184 *;
+#X obj 202 88 -;
+#X obj 202 110 / 2;
+#X obj 202 158 sin;
+#X obj 202 183 *;
+#X obj 146 156 cos;
+#X obj 171 157 cos;
+#X obj 156 180 *;
+#X obj 187 205 *;
+#X obj 172 227 +;
+#X obj 172 249 sqrt;
+#X obj 172 272 asin;
+#X obj 187 314 r Length;
+#X obj 172 335 *;
+#X obj 101 305 r Length;
+#X obj 172 294 * 2;
+#X obj 150 526 s arcLength;
+#X text 38 562 The Haversine formula for calculating the length of
+the great circle from two points on sphere.;
+#X obj 156 442 +~;
+#X obj 101 413 spigot~;
+#X obj 171 415 spigot~;
+#X msg 172 356 \$1 2;
+#X obj 172 377 line~;
+#X msg 101 325 \$1 2;
+#X obj 101 346 line~;
+#X obj 101 366 *~ 6.28319;
+#X obj 101 389 -~;
+#X obj 171 482 snapshot~;
+#X floatatom 171 502 0 0 0 0 - - -;
+#X obj 171 462 r myMet;
+#X obj 47 27 / 360;
+#X obj 62 67 / 360;
+#X obj 202 23 / 360;
+#X obj 217 66 / 360;
+#X obj 47 139 * 6.28319;
+#X obj 202 133 * 6.28319;
+#X obj 131 105 * 6.28319;
+#X obj 121 85 * 6.28319;
+#X connect 0 0 39 0;
+#X connect 1 0 38 0;
+#X connect 2 0 41 0;
+#X connect 3 0 40 0;
+#X connect 4 0 5 0;
+#X connect 4 0 6 0;
+#X connect 5 0 42 0;
+#X connect 6 0 28 1;
+#X connect 6 0 27 1;
+#X connect 7 0 8 0;
+#X connect 7 0 8 1;
+#X connect 8 0 17 0;
+#X connect 9 0 10 0;
+#X connect 10 0 43 0;
+#X connect 11 0 12 0;
+#X connect 11 0 12 1;
+#X connect 12 0 16 1;
+#X connect 13 0 15 0;
+#X connect 14 0 15 1;
+#X connect 15 0 16 0;
+#X connect 16 0 17 1;
+#X connect 17 0 18 0;
+#X connect 18 0 19 0;
+#X connect 19 0 23 0;
+#X connect 20 0 21 1;
+#X connect 21 0 29 0;
+#X connect 22 0 31 0;
+#X connect 23 0 21 0;
+#X connect 26 0 35 0;
+#X connect 27 1 26 0;
+#X connect 28 0 26 1;
+#X connect 29 0 30 0;
+#X connect 30 0 34 1;
+#X connect 30 0 28 0;
+#X connect 31 0 32 0;
+#X connect 32 0 33 0;
+#X connect 33 0 34 0;
+#X connect 34 0 27 0;
+#X connect 35 0 36 0;
+#X connect 35 0 24 0;
+#X connect 37 0 35 0;
+#X connect 38 0 4 0;
+#X connect 38 0 45 0;
+#X connect 39 0 4 1;
+#X connect 39 0 44 0;
+#X connect 40 0 9 0;
+#X connect 41 0 9 1;
+#X connect 42 0 7 0;
+#X connect 43 0 11 0;
+#X connect 44 0 14 0;
+#X connect 45 0 13 0;
+#X restore 241 -59 pd Haversine;
+#N canvas 236 216 503 659 Timings 0;
+#X obj 259 98 r presweepAzim;
+#X obj 179 77 r postsweepAzim;
+#X obj 217 130 -;
+#X obj 217 152 / 2;
+#X obj 217 173 +;
+#X obj 244 203 -;
+#X obj 179 203 -;
+#X obj 210 232 +;
+#X obj 179 262 /;
+#X obj 244 263 /;
+#X obj 259 282 r arcLength;
+#X obj 179 308 *;
+#X obj 244 307 *;
+#X obj 259 327 r topSpeed;
+#X obj 259 349 / 2;
+#X obj 179 371 /;
+#X obj 244 370 /;
+#X obj 179 396 * 1000;
+#X obj 244 395 * 1000;
+#X obj 179 437 s PostSwingTime;
+#X obj 244 416 s PreSwingTime;
+#X floatatom 64 531 0 0 0 0 - - -;
+#X obj 200 488 +;
+#X obj 185 511 f;
+#X obj 185 468 r GO;
+#X obj 185 537 t f b;
+#X obj 185 585 delay;
+#X obj 212 565 + 5;
+#X obj 185 608 s myEnd;
+#X obj 263 607 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X connect 0 0 2 1;
+#X connect 0 0 5 1;
+#X connect 0 0 4 1;
+#X connect 1 0 2 0;
+#X connect 1 0 6 0;
+#X connect 2 0 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 5 0;
+#X connect 4 0 6 1;
+#X connect 5 0 7 1;
+#X connect 5 0 9 0;
+#X connect 6 0 7 0;
+#X connect 6 0 8 0;
+#X connect 7 0 9 1;
+#X connect 7 0 8 1;
+#X connect 8 0 11 0;
+#X connect 9 0 12 0;
+#X connect 10 0 12 1;
+#X connect 10 0 11 1;
+#X connect 11 0 15 0;
+#X connect 12 0 16 0;
+#X connect 13 0 14 0;
+#X connect 14 0 16 1;
+#X connect 14 0 15 1;
+#X connect 15 0 17 0;
+#X connect 16 0 18 0;
+#X connect 17 0 19 0;
+#X connect 17 0 22 0;
+#X connect 18 0 20 0;
+#X connect 18 0 22 1;
+#X connect 22 0 23 1;
+#X connect 23 0 25 0;
+#X connect 24 0 23 0;
+#X connect 25 0 27 0;
+#X connect 25 1 26 0;
+#X connect 26 0 28 0;
+#X connect 26 0 29 0;
+#X connect 27 0 26 1;
+#X connect 27 0 21 0;
+#X restore 240 -38 pd Timings;
+#N canvas 169 101 399 325 tipSpeedCalc 0;
+#X obj 225 142 r PostSwingTime;
+#X obj 107 98 r PreSwingTime;
+#X obj 188 119 r GO;
+#X obj 188 142 delay;
+#X obj 188 166 f;
+#X obj 139 165 r myEnd;
+#X obj 139 236 line;
+#X msg 188 189 0 \$1;
+#X floatatom 251 258 0 0 0 0 - - -;
+#X msg 139 189 0;
+#X obj 92 78 r GO;
+#X obj 92 118 f;
+#X obj 113 141 r topSpeed;
+#X obj 92 162 pack;
+#X msg 92 184 \$2 \$1;
+#X obj 139 260 s currentTipSpeed;
+#X text 30 15 Calculates the current speed of the tip by a linear ramp
+up from stationary to the top speed within the pre swing time then
+ramps down to rest in the post swing time.;
+#X connect 0 0 4 1;
+#X connect 1 0 3 1;
+#X connect 1 0 11 1;
+#X connect 2 0 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 7 0;
+#X connect 5 0 9 0;
+#X connect 6 0 8 0;
+#X connect 6 0 15 0;
+#X connect 7 0 6 0;
+#X connect 9 0 6 0;
+#X connect 10 0 11 0;
+#X connect 11 0 13 0;
+#X connect 12 0 13 1;
+#X connect 13 0 14 0;
+#X connect 14 0 6 0;
+#X restore 351 -99 pd tipSpeedCalc;
+#N canvas 185 185 732 634 CentreAngles 0;
+#X obj 81 221 r presweepAzim;
+#X obj 66 202 r postsweepAzim;
+#X obj 575 204 r presweepElev;
+#X obj 560 184 r postsweepElev;
+#X obj 518 40 r currentTipSpeed;
+#X obj 237 304 r PostSwingTime;
+#X obj 326 325 r PreSwingTime;
+#X obj 66 243 -;
+#X obj 66 264 / 2;
+#X obj 66 287 +;
+#X obj 560 227 -;
+#X obj 560 248 / 2;
+#X obj 560 271 +;
+#X obj 114 323 -;
+#X obj 114 346 *;
+#X obj 99 369 +;
+#X obj 533 60 r topSpeed;
+#X obj 518 80 /;
+#X obj 14 330 *;
+#X obj 14 354 +;
+#X obj 274 8 r GO;
+#X obj 225 52 r myEnd;
+#X msg 225 73 0;
+#X obj 274 51 f;
+#X msg 274 72 \$1 \$1;
+#X obj 274 95 line;
+#X obj 430 70 f;
+#X msg 430 91 0 \$1;
+#X obj 430 112 line;
+#X obj 245 326 r GO;
+#X obj 299 349 delay;
+#X msg 245 398 0;
+#X msg 299 398 1;
+#X obj 210 376 delay;
+#X obj 274 115 *;
+#X obj 274 155 /;
+#X msg 328 72 \$1;
+#X obj 430 133 *;
+#X obj 415 155 -;
+#X obj 415 198 /;
+#X obj 289 133 r PreSwingTime;
+#X obj 289 28 r PreSwingTime;
+#X obj 415 43 r PostSwingTime;
+#X obj 430 178 r PostSwingTime;
+#X obj 627 304 -;
+#X obj 627 327 *;
+#X obj 612 348 +;
+#X obj 507 302 *;
+#X obj 509 340 +;
+#X floatatom 357 52 0 0 0 0 - - -;
+#X floatatom 535 110 0 0 0 0 - - -;
+#X floatatom 138 390 0 0 0 0 - - -;
+#X floatatom 56 424 0 0 0 0 - - -;
+#X obj 14 397 line~;
+#X obj 93 417 line~;
+#X obj 206 447 spigot~;
+#X obj 260 447 spigot~;
+#X obj 250 491 +~;
+#X obj 291 500 r myMet;
+#X obj 291 520 snapshot~;
+#X floatatom 291 540 0 0 0 0 - - -;
+#X msg 93 396 \$1 2;
+#X msg 14 376 \$1 2;
+#X obj 426 449 spigot~;
+#X obj 477 449 spigot~;
+#X obj 482 484 +~;
+#X obj 523 493 r myMet;
+#X obj 523 513 snapshot~;
+#X floatatom 523 533 0 0 0 0 - - -;
+#X obj 612 391 line~;
+#X msg 612 370 \$1 2;
+#X obj 509 383 line~;
+#X msg 509 362 \$1 2;
+#X floatatom 662 283 0 0 0 0 - - -;
+#X floatatom 552 355 0 0 0 0 - - -;
+#X floatatom 560 325 0 0 0 0 - - -;
+#X floatatom 463 70 0 0 0 0 - - -;
+#X obj 240 564 s currentAzim;
+#X obj 466 560 s currentElev;
+#X connect 0 0 7 1;
+#X connect 0 0 9 1;
+#X connect 0 0 19 1;
+#X connect 1 0 7 0;
+#X connect 1 0 13 0;
+#X connect 2 0 10 1;
+#X connect 2 0 12 1;
+#X connect 2 0 75 0;
+#X connect 2 0 48 0;
+#X connect 3 0 10 0;
+#X connect 3 0 44 0;
+#X connect 4 0 17 0;
+#X connect 5 0 33 1;
+#X connect 6 0 30 1;
+#X connect 7 0 8 0;
+#X connect 8 0 9 0;
+#X connect 8 0 18 0;
+#X connect 9 0 13 1;
+#X connect 9 0 15 0;
+#X connect 10 0 11 0;
+#X connect 11 0 12 0;
+#X connect 11 0 47 1;
+#X connect 12 0 44 1;
+#X connect 12 0 46 0;
+#X connect 13 0 14 0;
+#X connect 14 0 15 1;
+#X connect 15 0 51 0;
+#X connect 15 0 61 0;
+#X connect 16 0 17 1;
+#X connect 17 0 34 1;
+#X connect 17 0 37 1;
+#X connect 17 0 50 0;
+#X connect 18 0 19 0;
+#X connect 19 0 52 0;
+#X connect 19 0 62 0;
+#X connect 20 0 23 0;
+#X connect 21 0 22 0;
+#X connect 22 0 25 0;
+#X connect 23 0 24 0;
+#X connect 23 0 36 0;
+#X connect 24 0 25 0;
+#X connect 25 0 34 0;
+#X connect 26 0 27 0;
+#X connect 27 0 28 0;
+#X connect 28 0 37 0;
+#X connect 29 0 31 0;
+#X connect 29 0 30 0;
+#X connect 30 0 33 0;
+#X connect 30 0 32 0;
+#X connect 30 0 26 0;
+#X connect 31 0 55 1;
+#X connect 31 0 56 1;
+#X connect 31 0 63 1;
+#X connect 31 0 64 1;
+#X connect 32 0 56 1;
+#X connect 32 0 55 1;
+#X connect 32 0 64 1;
+#X connect 32 0 63 1;
+#X connect 33 0 31 0;
+#X connect 34 0 35 0;
+#X connect 35 0 18 1;
+#X connect 35 0 47 0;
+#X connect 36 0 28 0;
+#X connect 37 0 38 1;
+#X connect 38 0 39 0;
+#X connect 39 0 14 1;
+#X connect 39 0 45 1;
+#X connect 40 0 35 1;
+#X connect 41 0 23 1;
+#X connect 41 0 49 0;
+#X connect 42 0 38 0;
+#X connect 42 0 26 1;
+#X connect 42 0 76 0;
+#X connect 43 0 39 1;
+#X connect 44 0 45 0;
+#X connect 45 0 46 1;
+#X connect 46 0 70 0;
+#X connect 46 0 73 0;
+#X connect 47 0 48 1;
+#X connect 48 0 72 0;
+#X connect 48 0 74 0;
+#X connect 53 0 55 0;
+#X connect 54 0 56 0;
+#X connect 55 0 57 0;
+#X connect 56 1 57 1;
+#X connect 57 0 59 0;
+#X connect 58 0 59 0;
+#X connect 59 0 60 0;
+#X connect 59 0 77 0;
+#X connect 61 0 54 0;
+#X connect 62 0 53 0;
+#X connect 63 0 65 0;
+#X connect 64 1 65 1;
+#X connect 65 0 67 0;
+#X connect 66 0 67 0;
+#X connect 67 0 68 0;
+#X connect 67 0 78 0;
+#X connect 69 0 64 0;
+#X connect 70 0 69 0;
+#X connect 71 0 63 0;
+#X connect 72 0 71 0;
+#X restore 351 -79 pd CentreAngles;
+#N canvas 7 314 686 338 Positions 0;
+#X obj 66 32 r currentAzim;
+#X obj 174 34 r currentElev;
+#X obj 541 33 r postsweepElev;
+#X obj 433 32 r postsweepAzim;
+#X obj 66 55 swap 180;
+#X obj 66 79 -;
+#X obj 66 101 * 0.0174533;
+#X obj 66 126 cos;
+#X obj 126 126 sin;
+#X obj 79 150 sin;
+#X obj 139 150 sin;
+#X obj 185 151 cos;
+#X obj 174 102 * 0.0174533;
+#X obj 174 56 swap 90;
+#X obj 65 175 *;
+#X obj 124 173 *;
+#X obj 65 209 *;
+#X obj 124 207 *;
+#X obj 185 203 *;
+#X obj 185 173 * -1;
+#X obj 10 177 r Length;
+#X floatatom 36 255 0 0 0 0 - - -;
+#X floatatom 99 254 0 0 0 0 - - -;
+#X floatatom 163 253 0 0 0 0 - - -;
+#X obj 174 80 +;
+#X obj 65 231 s tipX;
+#X obj 124 229 s tipY;
+#X obj 185 225 s tipZ;
+#X obj 433 54 swap 180;
+#X obj 433 78 -;
+#X obj 433 100 * 0.0174533;
+#X obj 433 125 cos;
+#X obj 493 125 sin;
+#X obj 446 149 sin;
+#X obj 506 149 sin;
+#X obj 552 150 cos;
+#X obj 541 101 * 0.0174533;
+#X obj 541 55 swap 90;
+#X obj 432 174 *;
+#X obj 491 172 *;
+#X obj 432 208 *;
+#X obj 491 206 *;
+#X obj 552 202 *;
+#X obj 552 172 * -1;
+#X obj 377 176 r Length;
+#X floatatom 403 254 0 0 0 0 - - -;
+#X floatatom 466 253 0 0 0 0 - - -;
+#X floatatom 530 252 0 0 0 0 - - -;
+#X obj 541 79 +;
+#X obj 432 230 s tipXend;
+#X obj 491 228 s tipYend;
+#X obj 552 224 s tipZend;
+#N canvas 200 190 316 367 PlanePerp 0;
+#X obj 92 78 -;
+#X obj 92 100 * 0.0174533;
+#X obj 92 125 cos;
+#X obj 152 125 sin;
+#X obj 105 149 sin;
+#X obj 165 149 sin;
+#X obj 211 150 cos;
+#X obj 200 101 * 0.0174533;
+#X obj 200 55 swap 90;
+#X obj 91 174 *;
+#X obj 150 172 *;
+#X obj 91 208 *;
+#X obj 150 206 *;
+#X obj 211 202 *;
+#X obj 211 172 * -1;
+#X obj 36 176 r Length;
+#X floatatom 61 286 0 0 0 0 - - -;
+#X floatatom 159 272 0 0 0 0 - - -;
+#X floatatom 224 246 0 0 0 0 - - -;
+#X obj 200 79 +;
+#X obj 92 54 swap 90;
+#X obj 92 29 r currentAzim;
+#X obj 200 31 r currentElev;
+#X text 57 306 Rotate 90 Degrees in the Z axis;
+#X obj 90 262 s tipXPerp;
+#X obj 149 244 s tipYPerp;
+#X obj 211 224 s tipZPerp;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 1 0 3 0;
+#X connect 2 0 9 0;
+#X connect 3 0 10 0;
+#X connect 4 0 9 1;
+#X connect 5 0 10 1;
+#X connect 6 0 14 0;
+#X connect 7 0 6 0;
+#X connect 7 0 5 0;
+#X connect 7 0 4 0;
+#X connect 8 0 19 0;
+#X connect 8 1 19 1;
+#X connect 9 0 11 0;
+#X connect 10 0 12 0;
+#X connect 11 0 16 0;
+#X connect 11 0 24 0;
+#X connect 12 0 17 0;
+#X connect 12 0 25 0;
+#X connect 13 0 18 0;
+#X connect 13 0 26 0;
+#X connect 14 0 13 0;
+#X connect 15 0 11 1;
+#X connect 15 0 12 1;
+#X connect 15 0 13 1;
+#X connect 19 0 7 0;
+#X connect 20 0 0 0;
+#X connect 20 1 0 1;
+#X connect 21 0 20 0;
+#X connect 22 0 8 0;
+#X restore 305 83 pd PlanePerp;
+#N canvas 286 106 309 354 PlanePerp2 0;
+#X obj 86 66 -;
+#X obj 86 88 * 0.0174533;
+#X obj 86 113 cos;
+#X obj 146 113 sin;
+#X obj 99 137 sin;
+#X obj 159 137 sin;
+#X obj 205 138 cos;
+#X obj 194 89 * 0.0174533;
+#X obj 85 162 *;
+#X obj 144 160 *;
+#X obj 85 196 *;
+#X obj 144 194 *;
+#X obj 205 190 *;
+#X obj 30 164 r Length;
+#X floatatom 56 270 0 0 0 0 - - -;
+#X floatatom 119 269 0 0 0 0 - - -;
+#X floatatom 183 268 0 0 0 0 - - -;
+#X obj 194 67 +;
+#X obj 86 42 swap 180;
+#X obj 194 43 swap 0;
+#X obj 86 21 r currentAzim;
+#X obj 194 23 r currentElev;
+#X obj 85 221 * -1;
+#X text 51 295 Rotate 90 Degrees in the Y axis;
+#X obj 85 246 s tipXPerp2;
+#X obj 144 231 s tipYPerp2;
+#X obj 205 214 s tipZPerp2;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 1 0 3 0;
+#X connect 2 0 8 0;
+#X connect 3 0 9 0;
+#X connect 4 0 8 1;
+#X connect 5 0 9 1;
+#X connect 6 0 12 0;
+#X connect 7 0 6 0;
+#X connect 7 0 5 0;
+#X connect 7 0 4 0;
+#X connect 8 0 10 0;
+#X connect 9 0 11 0;
+#X connect 10 0 22 0;
+#X connect 11 0 15 0;
+#X connect 11 0 25 0;
+#X connect 12 0 16 0;
+#X connect 12 0 26 0;
+#X connect 13 0 10 1;
+#X connect 13 0 11 1;
+#X connect 13 0 12 1;
+#X connect 17 0 7 0;
+#X connect 18 0 0 0;
+#X connect 18 1 0 1;
+#X connect 19 0 17 0;
+#X connect 19 1 17 1;
+#X connect 20 0 18 0;
+#X connect 21 0 19 0;
+#X connect 22 0 14 0;
+#X connect 22 0 24 0;
+#X restore 306 102 pd PlanePerp2;
+#X text 44 301 Current position of the tip;
+#X text 423 291 End position of the tip;
+#X connect 0 0 4 0;
+#X connect 1 0 13 0;
+#X connect 2 0 37 0;
+#X connect 3 0 28 0;
+#X connect 4 0 5 0;
+#X connect 4 1 5 1;
+#X connect 5 0 6 0;
+#X connect 6 0 7 0;
+#X connect 6 0 8 0;
+#X connect 7 0 14 0;
+#X connect 8 0 15 0;
+#X connect 9 0 14 1;
+#X connect 10 0 15 1;
+#X connect 11 0 19 0;
+#X connect 12 0 11 0;
+#X connect 12 0 10 0;
+#X connect 12 0 9 0;
+#X connect 13 0 24 0;
+#X connect 13 1 24 1;
+#X connect 14 0 16 0;
+#X connect 15 0 17 0;
+#X connect 16 0 21 0;
+#X connect 16 0 25 0;
+#X connect 17 0 22 0;
+#X connect 17 0 26 0;
+#X connect 18 0 23 0;
+#X connect 18 0 27 0;
+#X connect 19 0 18 0;
+#X connect 20 0 16 1;
+#X connect 20 0 17 1;
+#X connect 20 0 18 1;
+#X connect 24 0 12 0;
+#X connect 28 0 29 0;
+#X connect 28 1 29 1;
+#X connect 29 0 30 0;
+#X connect 30 0 31 0;
+#X connect 30 0 32 0;
+#X connect 31 0 38 0;
+#X connect 32 0 39 0;
+#X connect 33 0 38 1;
+#X connect 34 0 39 1;
+#X connect 35 0 43 0;
+#X connect 36 0 35 0;
+#X connect 36 0 34 0;
+#X connect 36 0 33 0;
+#X connect 37 0 48 0;
+#X connect 37 1 48 1;
+#X connect 38 0 40 0;
+#X connect 39 0 41 0;
+#X connect 40 0 45 0;
+#X connect 40 0 49 0;
+#X connect 41 0 46 0;
+#X connect 41 0 50 0;
+#X connect 42 0 47 0;
+#X connect 42 0 51 0;
+#X connect 43 0 42 0;
+#X connect 44 0 40 1;
+#X connect 44 0 41 1;
+#X connect 44 0 42 1;
+#X connect 48 0 36 0;
+#X restore 351 -59 pd Positions;
+#N canvas 24 55 416 436 contPlaneFind 1;
+#N canvas 300 23 1002 846 baseFind 0;
+#X obj -8813 28 bng 50 250 50 0 empty empty empty 17 7 0 10 -4034 -1
+-1;
+#X obj -8813 81 s GO;
+#X obj -8873 28 bng 50 250 50 0 empty empty empty 17 7 0 10 -257985
+-1 -1;
+#X obj -8873 81 s setUp;
+#X text -8303 44 Calculate where the mid point of the swing should
+be in order that the max speed is in the xz plane;
+#X text -8738 -1 The start position of the sword and the mid point
+are then vectors that describe plane of the sword. From this we can
+project to a point that is the closest point to the observer and calculate
+the elevation and azimuth between source and observer.;
+#X text -8750 112 a11;
+#X text -8692 111 a21;
+#X text -8588 108 a31;
+#X text -8071 98 a32;
+#X text -8151 87 a22;
+#X text -8233 96 a12;
+#X text -8737 222 b11;
+#X text -8478 308 b12 & b21;
+#X text -8203 213 b22;
+#X text -8103 413 Determinant;
+#X text -8527 354 -b12 & -b21;
+#X text -8849 290 Martix a is original;
+#X text -8849 320 Martix c is inverse b;
+#X text -8849 305 Martix b is a' * a;
+#X text -8086 478 c11;
+#X text -8498 528 c12 & c21;
+#X text -8750 513 c22;
+#X text -8778 668 d11;
+#X text -8645 669 d21;
+#X text -8521 681 d31;
+#X text -8385 690 d12;
+#X text -8256 689 d22;
+#X text -8126 700 d32;
+#N canvas 478 224 632 467 ProjectionPoint 0;
+#X obj 108 56 r Xobs;
+#X obj 183 99 r Zobs;
+#X obj 147 76 r Yobs;
+#X obj -106 63 bng 50 250 50 0 empty empty empty 17 7 0 10 -4034 -1
+-1;
+#X obj -106 116 s GO;
+#X obj -166 63 bng 50 250 50 0 empty empty empty 17 7 0 10 -257985
+-1 -1;
+#X obj -166 116 s setUp;
+#X text -50 346 x' \, y' & z' relates to the point in the plane of
+the sword when the observer position is projected on;
+#X text 1 269 x';
+#X text 144 274 y';
+#X text 288 277 z';
+#X obj 93 143 inlet;
+#X obj 132 165 inlet;
+#X obj 168 187 inlet;
+#X obj 241 146 inlet;
+#X obj 280 166 inlet;
+#X obj 316 187 inlet;
+#X obj 316 216 *;
+#X obj 280 215 *;
+#X obj 241 215 *;
+#X obj 265 248 +;
+#X obj 265 279 +;
+#X obj 265 304 outlet;
+#X obj 168 216 *;
+#X obj 132 214 *;
+#X obj 93 214 *;
+#X obj 117 244 +;
+#X obj 117 272 +;
+#X obj 117 297 outlet;
+#X obj -26 291 outlet;
+#X obj -26 267 +;
+#X obj -26 242 +;
+#X obj 25 218 *;
+#X obj -11 217 *;
+#X obj -50 217 *;
+#X obj -50 144 inlet;
+#X obj -11 165 inlet;
+#X obj 25 185 inlet;
+#X floatatom 162 52 0 0 0 0 - - -;
+#X floatatom 207 76 0 0 0 0 - - -;
+#X floatatom 236 112 0 0 0 0 - - -;
+#X floatatom -107 291 0 0 0 0 - - -;
+#X floatatom -136 223 0 0 0 0 - - -;
+#X floatatom -117 246 0 0 0 0 - - -;
+#X floatatom -102 266 0 0 0 0 - - -;
+#X floatatom 58 299 0 0 0 0 - - -;
+#X floatatom 193 304 0 0 0 0 - - -;
+#X connect 0 0 34 1;
+#X connect 0 0 25 1;
+#X connect 0 0 19 1;
+#X connect 0 0 38 0;
+#X connect 1 0 32 1;
+#X connect 1 0 23 1;
+#X connect 1 0 17 1;
+#X connect 1 0 40 0;
+#X connect 2 0 33 1;
+#X connect 2 0 24 1;
+#X connect 2 0 18 1;
+#X connect 2 0 39 0;
+#X connect 3 0 4 0;
+#X connect 5 0 6 0;
+#X connect 11 0 25 0;
+#X connect 12 0 24 0;
+#X connect 13 0 23 0;
+#X connect 14 0 19 0;
+#X connect 15 0 18 0;
+#X connect 16 0 17 0;
+#X connect 17 0 21 1;
+#X connect 18 0 20 1;
+#X connect 19 0 20 0;
+#X connect 20 0 21 0;
+#X connect 21 0 22 0;
+#X connect 21 0 46 0;
+#X connect 23 0 27 1;
+#X connect 24 0 26 1;
+#X connect 25 0 26 0;
+#X connect 26 0 27 0;
+#X connect 27 0 28 0;
+#X connect 27 0 45 0;
+#X connect 30 0 29 0;
+#X connect 30 0 41 0;
+#X connect 31 0 30 0;
+#X connect 32 0 30 1;
+#X connect 33 0 31 1;
+#X connect 34 0 31 0;
+#X connect 35 0 34 0;
+#X connect 35 0 42 0;
+#X connect 36 0 33 0;
+#X connect 36 0 43 0;
+#X connect 37 0 32 0;
+#X connect 37 0 44 0;
+#X restore -8320 786 pd ProjectionPoint;
+#X floatatom -8587 86 0 0 0 0 - - -;
+#X floatatom -8530 86 0 0 0 0 - - -;
+#X floatatom -8666 86 0 0 0 0 - - -;
+#X obj -8749 129 inlet;
+#X obj -8695 129 inlet;
+#X obj -8589 126 inlet;
+#X obj -8749 170 *;
+#X obj -8695 168 *;
+#X obj -8589 167 *;
+#X obj -8695 198 +;
+#X obj -8710 222 +;
+#X obj -8725 525 *;
+#X obj -8749 620 *;
+#X obj -8734 645 *;
+#X obj -8749 670 +;
+#X obj -8421 265 *;
+#X obj -8390 266 *;
+#X obj -8360 267 *;
+#X obj -8390 292 +;
+#X obj -8405 316 +;
+#X obj -8404 351 *;
+#X obj -8464 367 * -1;
+#X obj -8464 498 *;
+#X obj -8619 622 *;
+#X obj -8604 647 *;
+#X obj -8619 672 +;
+#X obj -8479 657 *;
+#X obj -8494 682 +;
+#X obj -8494 632 *;
+#X obj -8244 115 inlet;
+#X obj -8144 109 inlet;
+#X obj -8071 119 inlet;
+#X obj -8074 159 *;
+#X obj -8160 159 *;
+#X obj -8244 153 *;
+#X obj -8160 191 +;
+#X obj -8175 216 +;
+#X obj -8131 385 *;
+#X obj -8131 411 -;
+#X obj -8131 459 /;
+#X obj -8146 488 *;
+#X obj -8359 641 *;
+#X obj -8344 666 *;
+#X obj -8359 688 +;
+#X obj -8229 643 *;
+#X obj -8214 668 *;
+#X obj -8229 693 +;
+#X obj -8104 653 *;
+#X obj -8089 678 *;
+#X obj -8104 703 +;
+#N canvas 165 174 1128 600 ProjectionMatrix 0;
+#X obj -385 72 inlet;
+#X obj -297 70 inlet;
+#X obj -213 70 inlet;
+#X obj -129 70 inlet;
+#X obj -48 70 inlet;
+#X obj 37 70 inlet;
+#X obj 125 71 inlet;
+#X obj 208 70 inlet;
+#X obj 314 71 inlet;
+#X obj 399 69 inlet;
+#X obj 483 70 inlet;
+#X obj 572 70 inlet;
+#X text -128 460 p13;
+#X text -257 459 p12;
+#X text -375 460 p11;
+#X text 231 452 p23;
+#X text 100 457 p22;
+#X text -18 461 p21;
+#X text 591 468 p33;
+#X text 463 465 p32;
+#X text 349 460 p31;
+#X obj -400 385 *;
+#X obj -385 410 *;
+#X obj -400 460 +;
+#X obj -385 437 t f b;
+#X obj -370 388 t f b;
+#X obj -385 365 t f b;
+#X obj -284 383 *;
+#X obj -269 408 *;
+#X obj -284 458 +;
+#X obj -269 435 t f b;
+#X obj -254 386 t f b;
+#X obj -269 363 t f b;
+#X obj -153 383 *;
+#X obj -138 408 *;
+#X obj -153 458 +;
+#X obj -138 435 t f b;
+#X obj -123 386 t f b;
+#X obj -138 363 t f b;
+#X obj -46 386 *;
+#X obj -31 411 *;
+#X obj -46 461 +;
+#X obj -31 438 t f b;
+#X obj -16 389 t f b;
+#X obj -31 366 t f b;
+#X obj 76 382 *;
+#X obj 91 407 *;
+#X obj 76 457 +;
+#X obj 91 434 t f b;
+#X obj 106 385 t f b;
+#X obj 91 362 t f b;
+#X obj 206 379 *;
+#X obj 221 404 *;
+#X obj 206 454 +;
+#X obj 221 431 t f b;
+#X obj 236 382 t f b;
+#X obj 221 359 t f b;
+#X obj 316 384 *;
+#X obj 331 409 *;
+#X obj 316 459 +;
+#X obj 331 436 t f b;
+#X obj 346 387 t f b;
+#X obj 331 364 t f b;
+#X obj 430 387 *;
+#X obj 445 412 *;
+#X obj 430 462 +;
+#X obj 445 439 t f b;
+#X obj 460 390 t f b;
+#X obj 445 367 t f b;
+#X obj 557 392 *;
+#X obj 572 417 *;
+#X obj 557 467 +;
+#X obj 572 444 t f b;
+#X obj 587 395 t f b;
+#X obj 572 372 t f b;
+#X obj -400 487 outlet;
+#X obj -153 482 outlet;
+#X obj -284 486 outlet;
+#X obj 206 480 outlet;
+#X obj 76 482 outlet;
+#X obj -46 487 outlet;
+#X obj 557 491 outlet;
+#X obj 430 488 outlet;
+#X obj 316 482 outlet;
+#X text -380 50 a11;
+#X text -300 52 a21;
+#X text -217 52 a31;
+#X text -126 43 a12;
+#X text -45 51 a22;
+#X text 43 51 a32;
+#X text 144 45 d11;
+#X text 219 51 d21;
+#X text 318 49 d31;
+#X text 405 49 d12;
+#X text 485 48 d22;
+#X text 574 47 d32;
+#X floatatom -200 526 0 0 0 0 - - -;
+#X floatatom -200 546 0 0 0 0 - - -;
+#X floatatom -198 567 0 0 0 0 - - -;
+#X floatatom 73 524 0 0 0 0 - - -;
+#X floatatom 74 546 0 0 0 0 - - -;
+#X floatatom 76 568 0 0 0 0 - - -;
+#X floatatom 422 517 0 0 0 0 - - -;
+#X floatatom 423 538 0 0 0 0 - - -;
+#X floatatom 425 561 0 0 0 0 - - -;
+#X connect 0 0 26 0;
+#X connect 0 0 44 0;
+#X connect 0 0 62 0;
+#X connect 1 0 32 0;
+#X connect 1 0 50 0;
+#X connect 1 0 68 0;
+#X connect 2 0 38 0;
+#X connect 2 0 56 0;
+#X connect 2 0 74 0;
+#X connect 3 0 25 0;
+#X connect 3 0 43 0;
+#X connect 3 0 61 0;
+#X connect 4 0 31 0;
+#X connect 4 0 49 0;
+#X connect 4 0 67 0;
+#X connect 5 0 37 0;
+#X connect 5 0 55 0;
+#X connect 5 0 73 0;
+#X connect 6 0 21 0;
+#X connect 6 0 27 0;
+#X connect 6 0 33 0;
+#X connect 7 0 39 0;
+#X connect 7 0 45 0;
+#X connect 7 0 51 0;
+#X connect 8 0 57 0;
+#X connect 8 0 63 0;
+#X connect 8 0 69 0;
+#X connect 9 0 22 0;
+#X connect 9 0 28 0;
+#X connect 9 0 34 0;
+#X connect 10 0 40 0;
+#X connect 10 0 46 0;
+#X connect 10 0 52 0;
+#X connect 11 0 58 0;
+#X connect 11 0 64 0;
+#X connect 11 0 70 0;
+#X connect 21 0 23 0;
+#X connect 22 0 24 0;
+#X connect 23 0 75 0;
+#X connect 23 0 96 0;
+#X connect 24 0 23 1;
+#X connect 24 1 23 0;
+#X connect 25 0 22 1;
+#X connect 25 1 22 0;
+#X connect 26 0 21 1;
+#X connect 26 1 21 0;
+#X connect 27 0 29 0;
+#X connect 28 0 30 0;
+#X connect 29 0 77 0;
+#X connect 29 0 97 0;
+#X connect 30 0 29 1;
+#X connect 30 1 29 0;
+#X connect 31 0 28 1;
+#X connect 31 1 28 0;
+#X connect 32 0 27 1;
+#X connect 32 1 27 0;
+#X connect 33 0 35 0;
+#X connect 34 0 36 0;
+#X connect 35 0 76 0;
+#X connect 35 0 98 0;
+#X connect 36 0 35 1;
+#X connect 36 1 35 0;
+#X connect 37 0 34 1;
+#X connect 37 1 34 0;
+#X connect 38 0 33 1;
+#X connect 38 1 33 0;
+#X connect 39 0 41 0;
+#X connect 40 0 42 0;
+#X connect 41 0 80 0;
+#X connect 41 0 99 0;
+#X connect 42 0 41 1;
+#X connect 42 1 41 0;
+#X connect 43 0 40 1;
+#X connect 43 1 40 0;
+#X connect 44 0 39 1;
+#X connect 44 1 39 0;
+#X connect 45 0 47 0;
+#X connect 46 0 48 0;
+#X connect 47 0 79 0;
+#X connect 47 0 100 0;
+#X connect 48 0 47 1;
+#X connect 48 1 47 0;
+#X connect 49 0 46 1;
+#X connect 49 1 46 0;
+#X connect 50 0 45 1;
+#X connect 50 1 45 0;
+#X connect 51 0 53 0;
+#X connect 52 0 54 0;
+#X connect 53 0 78 0;
+#X connect 53 0 101 0;
+#X connect 54 0 53 1;
+#X connect 54 1 53 0;
+#X connect 55 0 52 1;
+#X connect 55 1 52 0;
+#X connect 56 0 51 1;
+#X connect 56 1 51 0;
+#X connect 57 0 59 0;
+#X connect 58 0 60 0;
+#X connect 59 0 83 0;
+#X connect 59 0 102 0;
+#X connect 60 0 59 1;
+#X connect 60 1 59 0;
+#X connect 61 0 58 1;
+#X connect 61 1 58 0;
+#X connect 62 0 57 1;
+#X connect 62 1 57 0;
+#X connect 63 0 65 0;
+#X connect 64 0 66 0;
+#X connect 65 0 82 0;
+#X connect 65 0 103 0;
+#X connect 66 0 65 1;
+#X connect 66 1 65 0;
+#X connect 67 0 64 1;
+#X connect 67 1 64 0;
+#X connect 68 0 63 1;
+#X connect 68 1 63 0;
+#X connect 69 0 71 0;
+#X connect 70 0 72 0;
+#X connect 71 0 81 0;
+#X connect 71 0 104 0;
+#X connect 72 0 71 1;
+#X connect 72 1 71 0;
+#X connect 73 0 70 1;
+#X connect 73 1 70 0;
+#X connect 74 0 69 1;
+#X connect 74 1 69 0;
+#X restore -8323 762 pd ProjectionMatrix;
+#X obj -8131 435 swap 1;
+#X floatatom -8345 85 0 0 0 0 - - -;
+#X floatatom -8288 83 0 0 0 0 - - -;
+#X floatatom -8417 86 0 0 0 0 - - -;
+#X obj -8320 808 outlet;
+#X obj -8268 808 outlet;
+#X obj -8215 809 outlet;
+#X floatatom -8787 251 0 0 0 0 - - -;
+#X floatatom -8048 242 0 0 0 0 - - -;
+#X floatatom -8375 335 0 0 0 0 - - -;
+#X floatatom -8728 556 0 0 0 0 - - -;
+#X floatatom -8403 506 0 0 0 0 - - -;
+#X floatatom -8129 534 0 0 0 0 - - -;
+#X text -8851 334 Matrix d is a * c;
+#X connect 0 0 1 0;
+#X connect 2 0 3 0;
+#X connect 29 0 85 0;
+#X connect 29 1 86 0;
+#X connect 29 2 87 0;
+#X connect 33 0 36 0;
+#X connect 33 0 36 1;
+#X connect 33 0 42 0;
+#X connect 33 0 45 0;
+#X connect 33 0 71 0;
+#X connect 33 0 80 0;
+#X connect 33 0 32 0;
+#X connect 34 0 37 0;
+#X connect 34 0 37 1;
+#X connect 34 0 46 0;
+#X connect 34 0 53 0;
+#X connect 34 0 74 0;
+#X connect 34 0 80 1;
+#X connect 34 0 30 0;
+#X connect 35 0 38 0;
+#X connect 35 0 38 1;
+#X connect 35 0 47 0;
+#X connect 35 0 58 0;
+#X connect 35 0 77 0;
+#X connect 35 0 80 2;
+#X connect 35 0 31 0;
+#X connect 36 0 40 0;
+#X connect 37 0 39 0;
+#X connect 38 0 39 1;
+#X connect 39 0 40 1;
+#X connect 40 0 41 1;
+#X connect 40 0 67 0;
+#X connect 40 0 88 0;
+#X connect 41 0 72 0;
+#X connect 41 0 75 0;
+#X connect 41 0 78 0;
+#X connect 41 0 91 0;
+#X connect 42 0 44 0;
+#X connect 43 0 44 1;
+#X connect 44 0 80 6;
+#X connect 45 0 49 0;
+#X connect 46 0 48 0;
+#X connect 47 0 48 1;
+#X connect 48 0 49 1;
+#X connect 49 0 50 0;
+#X connect 49 0 50 1;
+#X connect 49 0 51 0;
+#X connect 49 0 90 0;
+#X connect 50 0 68 1;
+#X connect 51 0 52 0;
+#X connect 52 0 43 1;
+#X connect 52 0 54 1;
+#X connect 52 0 56 1;
+#X connect 52 0 71 1;
+#X connect 52 0 74 1;
+#X connect 52 0 77 1;
+#X connect 52 0 92 0;
+#X connect 53 0 55 0;
+#X connect 54 0 55 1;
+#X connect 55 0 80 7;
+#X connect 56 0 57 1;
+#X connect 57 0 80 8;
+#X connect 58 0 57 0;
+#X connect 59 0 43 0;
+#X connect 59 0 45 1;
+#X connect 59 0 64 0;
+#X connect 59 0 64 1;
+#X connect 59 0 72 1;
+#X connect 59 0 80 3;
+#X connect 59 0 84 0;
+#X connect 60 0 46 1;
+#X connect 60 0 54 0;
+#X connect 60 0 63 0;
+#X connect 60 0 63 1;
+#X connect 60 0 75 1;
+#X connect 60 0 80 4;
+#X connect 60 0 82 0;
+#X connect 61 0 47 1;
+#X connect 61 0 56 0;
+#X connect 61 0 62 1;
+#X connect 61 0 62 0;
+#X connect 61 0 78 1;
+#X connect 61 0 80 5;
+#X connect 61 0 83 0;
+#X connect 62 0 65 1;
+#X connect 63 0 65 0;
+#X connect 64 0 66 0;
+#X connect 65 0 66 1;
+#X connect 66 0 67 1;
+#X connect 66 0 70 0;
+#X connect 66 0 89 0;
+#X connect 67 0 68 0;
+#X connect 68 0 81 0;
+#X connect 69 0 41 0;
+#X connect 69 0 52 1;
+#X connect 69 0 70 1;
+#X connect 70 0 42 1;
+#X connect 70 0 53 1;
+#X connect 70 0 58 1;
+#X connect 70 0 93 0;
+#X connect 71 0 73 0;
+#X connect 72 0 73 1;
+#X connect 73 0 80 9;
+#X connect 74 0 76 0;
+#X connect 75 0 76 1;
+#X connect 76 0 80 10;
+#X connect 77 0 79 0;
+#X connect 78 0 79 1;
+#X connect 79 0 80 11;
+#X connect 80 0 29 0;
+#X connect 80 1 29 1;
+#X connect 80 2 29 2;
+#X connect 80 3 29 3;
+#X connect 80 4 29 4;
+#X connect 80 5 29 5;
+#X connect 80 6 29 6;
+#X connect 80 7 29 7;
+#X connect 80 8 29 8;
+#X connect 81 0 69 0;
+#X connect 81 1 69 1;
+#X restore -7130 61 pd baseFind;
+#X obj -7093 3 r tipXPerp2;
+#X obj -7080 23 r tipYPerp2;
+#X obj -7067 42 r tipZPerp2;
+#X obj -7130 -58 r tipXPerp;
+#X obj -7118 -36 r tipYPerp;
+#X obj -7105 -17 r tipZPerp;
+#X floatatom -7006 83 0 0 0 0 - - -;
+#X floatatom -7037 105 0 0 0 0 - - -;
+#X floatatom -7067 129 0 0 0 0 - - -;
+#X obj -7067 84 s obVertZ;
+#X obj -7099 105 s obVertY;
+#X obj -7130 124 s obVertX;
+#N canvas 300 23 1002 846 baseFind 0;
+#X obj -8813 28 bng 50 250 50 0 empty empty empty 17 7 0 10 -4034 -1
+-1;
+#X obj -8813 81 s GO;
+#X obj -8873 28 bng 50 250 50 0 empty empty empty 17 7 0 10 -257985
+-1 -1;
+#X obj -8873 81 s setUp;
+#X text -8303 44 Calculate where the mid point of the swing should
+be in order that the max speed is in the xz plane;
+#X text -8738 -1 The start position of the sword and the mid point
+are then vectors that describe plane of the sword. From this we can
+project to a point that is the closest point to the observer and calculate
+the elevation and azimuth between source and observer.;
+#X text -8750 112 a11;
+#X text -8692 111 a21;
+#X text -8588 108 a31;
+#X text -8071 98 a32;
+#X text -8151 87 a22;
+#X text -8233 96 a12;
+#X text -8737 222 b11;
+#X text -8478 308 b12 & b21;
+#X text -8203 213 b22;
+#X text -8103 413 Determinant;
+#X text -8527 354 -b12 & -b21;
+#X text -8849 290 Martix a is original;
+#X text -8849 320 Martix c is inverse b;
+#X text -8849 305 Martix b is a' * a;
+#X text -8086 478 c11;
+#X text -8498 528 c12 & c21;
+#X text -8750 513 c22;
+#X text -8778 668 d11;
+#X text -8645 669 d21;
+#X text -8521 681 d31;
+#X text -8385 690 d12;
+#X text -8256 689 d22;
+#X text -8126 700 d32;
+#N canvas 478 224 632 467 ProjectionPoint 0;
+#X obj 108 56 r Xobs;
+#X obj 183 99 r Zobs;
+#X obj 147 76 r Yobs;
+#X obj -106 63 bng 50 250 50 0 empty empty empty 17 7 0 10 -4034 -1
+-1;
+#X obj -106 116 s GO;
+#X obj -166 63 bng 50 250 50 0 empty empty empty 17 7 0 10 -257985
+-1 -1;
+#X obj -166 116 s setUp;
+#X text -50 346 x' \, y' & z' relates to the point in the plane of
+the sword when the observer position is projected on;
+#X text 1 269 x';
+#X text 144 274 y';
+#X text 288 277 z';
+#X obj 93 143 inlet;
+#X obj 132 165 inlet;
+#X obj 168 187 inlet;
+#X obj 241 146 inlet;
+#X obj 280 166 inlet;
+#X obj 316 187 inlet;
+#X obj 316 216 *;
+#X obj 280 215 *;
+#X obj 241 215 *;
+#X obj 265 248 +;
+#X obj 265 279 +;
+#X obj 265 304 outlet;
+#X obj 168 216 *;
+#X obj 132 214 *;
+#X obj 93 214 *;
+#X obj 117 244 +;
+#X obj 117 272 +;
+#X obj 117 297 outlet;
+#X obj -26 291 outlet;
+#X obj -26 267 +;
+#X obj -26 242 +;
+#X obj 25 218 *;
+#X obj -11 217 *;
+#X obj -50 217 *;
+#X obj -50 144 inlet;
+#X obj -11 165 inlet;
+#X obj 25 185 inlet;
+#X floatatom 162 52 0 0 0 0 - - -;
+#X floatatom 207 76 0 0 0 0 - - -;
+#X floatatom 236 112 0 0 0 0 - - -;
+#X floatatom -107 291 0 0 0 0 - - -;
+#X floatatom -136 223 0 0 0 0 - - -;
+#X floatatom -117 246 0 0 0 0 - - -;
+#X floatatom -102 266 0 0 0 0 - - -;
+#X floatatom 58 299 0 0 0 0 - - -;
+#X floatatom 193 304 0 0 0 0 - - -;
+#X connect 0 0 34 1;
+#X connect 0 0 25 1;
+#X connect 0 0 19 1;
+#X connect 0 0 38 0;
+#X connect 1 0 32 1;
+#X connect 1 0 23 1;
+#X connect 1 0 17 1;
+#X connect 1 0 40 0;
+#X connect 2 0 33 1;
+#X connect 2 0 24 1;
+#X connect 2 0 18 1;
+#X connect 2 0 39 0;
+#X connect 3 0 4 0;
+#X connect 5 0 6 0;
+#X connect 11 0 25 0;
+#X connect 12 0 24 0;
+#X connect 13 0 23 0;
+#X connect 14 0 19 0;
+#X connect 15 0 18 0;
+#X connect 16 0 17 0;
+#X connect 17 0 21 1;
+#X connect 18 0 20 1;
+#X connect 19 0 20 0;
+#X connect 20 0 21 0;
+#X connect 21 0 22 0;
+#X connect 21 0 46 0;
+#X connect 23 0 27 1;
+#X connect 24 0 26 1;
+#X connect 25 0 26 0;
+#X connect 26 0 27 0;
+#X connect 27 0 28 0;
+#X connect 27 0 45 0;
+#X connect 30 0 29 0;
+#X connect 30 0 41 0;
+#X connect 31 0 30 0;
+#X connect 32 0 30 1;
+#X connect 33 0 31 1;
+#X connect 34 0 31 0;
+#X connect 35 0 34 0;
+#X connect 35 0 42 0;
+#X connect 36 0 33 0;
+#X connect 36 0 43 0;
+#X connect 37 0 32 0;
+#X connect 37 0 44 0;
+#X restore -8320 786 pd ProjectionPoint;
+#X floatatom -8587 86 0 0 0 0 - - -;
+#X floatatom -8530 86 0 0 0 0 - - -;
+#X floatatom -8666 86 0 0 0 0 - - -;
+#X obj -8749 129 inlet;
+#X obj -8695 129 inlet;
+#X obj -8589 126 inlet;
+#X obj -8749 170 *;
+#X obj -8695 168 *;
+#X obj -8589 167 *;
+#X obj -8695 198 +;
+#X obj -8710 222 +;
+#X obj -8725 525 *;
+#X obj -8749 620 *;
+#X obj -8734 645 *;
+#X obj -8749 670 +;
+#X obj -8421 265 *;
+#X obj -8390 266 *;
+#X obj -8360 267 *;
+#X obj -8390 292 +;
+#X obj -8405 316 +;
+#X obj -8404 351 *;
+#X obj -8464 367 * -1;
+#X obj -8464 498 *;
+#X obj -8619 622 *;
+#X obj -8604 647 *;
+#X obj -8619 672 +;
+#X obj -8479 657 *;
+#X obj -8494 682 +;
+#X obj -8494 632 *;
+#X obj -8244 115 inlet;
+#X obj -8144 109 inlet;
+#X obj -8071 119 inlet;
+#X obj -8074 159 *;
+#X obj -8160 159 *;
+#X obj -8244 153 *;
+#X obj -8160 191 +;
+#X obj -8175 216 +;
+#X obj -8131 385 *;
+#X obj -8131 411 -;
+#X obj -8131 459 /;
+#X obj -8146 488 *;
+#X obj -8359 641 *;
+#X obj -8344 666 *;
+#X obj -8359 688 +;
+#X obj -8229 643 *;
+#X obj -8214 668 *;
+#X obj -8229 693 +;
+#X obj -8104 653 *;
+#X obj -8089 678 *;
+#X obj -8104 703 +;
+#N canvas 165 174 1128 600 ProjectionMatrix 0;
+#X obj -385 72 inlet;
+#X obj -297 70 inlet;
+#X obj -213 70 inlet;
+#X obj -129 70 inlet;
+#X obj -48 70 inlet;
+#X obj 37 70 inlet;
+#X obj 125 71 inlet;
+#X obj 208 70 inlet;
+#X obj 314 71 inlet;
+#X obj 399 69 inlet;
+#X obj 483 70 inlet;
+#X obj 572 70 inlet;
+#X text -128 460 p13;
+#X text -257 459 p12;
+#X text -375 460 p11;
+#X text 231 452 p23;
+#X text 100 457 p22;
+#X text -18 461 p21;
+#X text 591 468 p33;
+#X text 463 465 p32;
+#X text 349 460 p31;
+#X obj -400 385 *;
+#X obj -385 410 *;
+#X obj -400 460 +;
+#X obj -385 437 t f b;
+#X obj -370 388 t f b;
+#X obj -385 365 t f b;
+#X obj -284 383 *;
+#X obj -269 408 *;
+#X obj -284 458 +;
+#X obj -269 435 t f b;
+#X obj -254 386 t f b;
+#X obj -269 363 t f b;
+#X obj -153 383 *;
+#X obj -138 408 *;
+#X obj -153 458 +;
+#X obj -138 435 t f b;
+#X obj -123 386 t f b;
+#X obj -138 363 t f b;
+#X obj -46 386 *;
+#X obj -31 411 *;
+#X obj -46 461 +;
+#X obj -31 438 t f b;
+#X obj -16 389 t f b;
+#X obj -31 366 t f b;
+#X obj 76 382 *;
+#X obj 91 407 *;
+#X obj 76 457 +;
+#X obj 91 434 t f b;
+#X obj 106 385 t f b;
+#X obj 91 362 t f b;
+#X obj 206 379 *;
+#X obj 221 404 *;
+#X obj 206 454 +;
+#X obj 221 431 t f b;
+#X obj 236 382 t f b;
+#X obj 221 359 t f b;
+#X obj 316 384 *;
+#X obj 331 409 *;
+#X obj 316 459 +;
+#X obj 331 436 t f b;
+#X obj 346 387 t f b;
+#X obj 331 364 t f b;
+#X obj 430 387 *;
+#X obj 445 412 *;
+#X obj 430 462 +;
+#X obj 445 439 t f b;
+#X obj 460 390 t f b;
+#X obj 445 367 t f b;
+#X obj 557 392 *;
+#X obj 572 417 *;
+#X obj 557 467 +;
+#X obj 572 444 t f b;
+#X obj 587 395 t f b;
+#X obj 572 372 t f b;
+#X obj -400 487 outlet;
+#X obj -153 482 outlet;
+#X obj -284 486 outlet;
+#X obj 206 480 outlet;
+#X obj 76 482 outlet;
+#X obj -46 487 outlet;
+#X obj 557 491 outlet;
+#X obj 430 488 outlet;
+#X obj 316 482 outlet;
+#X text -380 50 a11;
+#X text -300 52 a21;
+#X text -217 52 a31;
+#X text -126 43 a12;
+#X text -45 51 a22;
+#X text 43 51 a32;
+#X text 144 45 d11;
+#X text 219 51 d21;
+#X text 318 49 d31;
+#X text 405 49 d12;
+#X text 485 48 d22;
+#X text 574 47 d32;
+#X floatatom -200 526 0 0 0 0 - - -;
+#X floatatom -200 546 0 0 0 0 - - -;
+#X floatatom -198 567 0 0 0 0 - - -;
+#X floatatom 73 524 0 0 0 0 - - -;
+#X floatatom 74 546 0 0 0 0 - - -;
+#X floatatom 76 568 0 0 0 0 - - -;
+#X floatatom 422 517 0 0 0 0 - - -;
+#X floatatom 423 538 0 0 0 0 - - -;
+#X floatatom 425 561 0 0 0 0 - - -;
+#X connect 0 0 26 0;
+#X connect 0 0 44 0;
+#X connect 0 0 62 0;
+#X connect 1 0 32 0;
+#X connect 1 0 50 0;
+#X connect 1 0 68 0;
+#X connect 2 0 38 0;
+#X connect 2 0 56 0;
+#X connect 2 0 74 0;
+#X connect 3 0 25 0;
+#X connect 3 0 43 0;
+#X connect 3 0 61 0;
+#X connect 4 0 31 0;
+#X connect 4 0 49 0;
+#X connect 4 0 67 0;
+#X connect 5 0 37 0;
+#X connect 5 0 55 0;
+#X connect 5 0 73 0;
+#X connect 6 0 21 0;
+#X connect 6 0 27 0;
+#X connect 6 0 33 0;
+#X connect 7 0 39 0;
+#X connect 7 0 45 0;
+#X connect 7 0 51 0;
+#X connect 8 0 57 0;
+#X connect 8 0 63 0;
+#X connect 8 0 69 0;
+#X connect 9 0 22 0;
+#X connect 9 0 28 0;
+#X connect 9 0 34 0;
+#X connect 10 0 40 0;
+#X connect 10 0 46 0;
+#X connect 10 0 52 0;
+#X connect 11 0 58 0;
+#X connect 11 0 64 0;
+#X connect 11 0 70 0;
+#X connect 21 0 23 0;
+#X connect 22 0 24 0;
+#X connect 23 0 75 0;
+#X connect 23 0 96 0;
+#X connect 24 0 23 1;
+#X connect 24 1 23 0;
+#X connect 25 0 22 1;
+#X connect 25 1 22 0;
+#X connect 26 0 21 1;
+#X connect 26 1 21 0;
+#X connect 27 0 29 0;
+#X connect 28 0 30 0;
+#X connect 29 0 77 0;
+#X connect 29 0 97 0;
+#X connect 30 0 29 1;
+#X connect 30 1 29 0;
+#X connect 31 0 28 1;
+#X connect 31 1 28 0;
+#X connect 32 0 27 1;
+#X connect 32 1 27 0;
+#X connect 33 0 35 0;
+#X connect 34 0 36 0;
+#X connect 35 0 76 0;
+#X connect 35 0 98 0;
+#X connect 36 0 35 1;
+#X connect 36 1 35 0;
+#X connect 37 0 34 1;
+#X connect 37 1 34 0;
+#X connect 38 0 33 1;
+#X connect 38 1 33 0;
+#X connect 39 0 41 0;
+#X connect 40 0 42 0;
+#X connect 41 0 80 0;
+#X connect 41 0 99 0;
+#X connect 42 0 41 1;
+#X connect 42 1 41 0;
+#X connect 43 0 40 1;
+#X connect 43 1 40 0;
+#X connect 44 0 39 1;
+#X connect 44 1 39 0;
+#X connect 45 0 47 0;
+#X connect 46 0 48 0;
+#X connect 47 0 79 0;
+#X connect 47 0 100 0;
+#X connect 48 0 47 1;
+#X connect 48 1 47 0;
+#X connect 49 0 46 1;
+#X connect 49 1 46 0;
+#X connect 50 0 45 1;
+#X connect 50 1 45 0;
+#X connect 51 0 53 0;
+#X connect 52 0 54 0;
+#X connect 53 0 78 0;
+#X connect 53 0 101 0;
+#X connect 54 0 53 1;
+#X connect 54 1 53 0;
+#X connect 55 0 52 1;
+#X connect 55 1 52 0;
+#X connect 56 0 51 1;
+#X connect 56 1 51 0;
+#X connect 57 0 59 0;
+#X connect 58 0 60 0;
+#X connect 59 0 83 0;
+#X connect 59 0 102 0;
+#X connect 60 0 59 1;
+#X connect 60 1 59 0;
+#X connect 61 0 58 1;
+#X connect 61 1 58 0;
+#X connect 62 0 57 1;
+#X connect 62 1 57 0;
+#X connect 63 0 65 0;
+#X connect 64 0 66 0;
+#X connect 65 0 82 0;
+#X connect 65 0 103 0;
+#X connect 66 0 65 1;
+#X connect 66 1 65 0;
+#X connect 67 0 64 1;
+#X connect 67 1 64 0;
+#X connect 68 0 63 1;
+#X connect 68 1 63 0;
+#X connect 69 0 71 0;
+#X connect 70 0 72 0;
+#X connect 71 0 81 0;
+#X connect 71 0 104 0;
+#X connect 72 0 71 1;
+#X connect 72 1 71 0;
+#X connect 73 0 70 1;
+#X connect 73 1 70 0;
+#X connect 74 0 69 1;
+#X connect 74 1 69 0;
+#X restore -8323 762 pd ProjectionMatrix;
+#X obj -8131 435 swap 1;
+#X floatatom -8345 85 0 0 0 0 - - -;
+#X floatatom -8288 83 0 0 0 0 - - -;
+#X floatatom -8417 86 0 0 0 0 - - -;
+#X obj -8320 808 outlet;
+#X obj -8268 808 outlet;
+#X obj -8215 809 outlet;
+#X floatatom -8787 251 0 0 0 0 - - -;
+#X floatatom -8048 242 0 0 0 0 - - -;
+#X floatatom -8375 335 0 0 0 0 - - -;
+#X floatatom -8728 556 0 0 0 0 - - -;
+#X floatatom -8403 506 0 0 0 0 - - -;
+#X floatatom -8129 534 0 0 0 0 - - -;
+#X text -8851 334 Matrix d is a * c;
+#N canvas 211 46 1092 605 ProjectionPoint 0;
+#X obj -106 63 bng 50 250 50 0 empty empty empty 17 7 0 10 -4034 -1
+-1;
+#X obj -106 116 s GO;
+#X obj -166 63 bng 50 250 50 0 empty empty empty 17 7 0 10 -257985
+-1 -1;
+#X obj -166 116 s setUp;
+#X obj 93 143 inlet;
+#X obj 132 165 inlet;
+#X obj 168 187 inlet;
+#X obj 241 146 inlet;
+#X obj 280 166 inlet;
+#X obj 316 187 inlet;
+#X obj 316 216 *;
+#X obj 280 215 *;
+#X obj 241 215 *;
+#X obj 265 248 +;
+#X obj 265 279 +;
+#X obj 265 304 outlet;
+#X obj 168 216 *;
+#X obj 132 214 *;
+#X obj 93 214 *;
+#X obj 117 244 +;
+#X obj 117 272 +;
+#X obj 117 297 outlet;
+#X obj -26 291 outlet;
+#X obj -26 267 +;
+#X obj -26 242 +;
+#X obj 25 218 *;
+#X obj -11 217 *;
+#X obj -50 217 *;
+#X obj -50 144 inlet;
+#X obj -11 165 inlet;
+#X obj 25 185 inlet;
+#X floatatom 182 52 0 0 0 0 - - -;
+#X floatatom 228 78 0 0 0 0 - - -;
+#X floatatom 257 114 0 0 0 0 - - -;
+#X floatatom -107 291 0 0 0 0 - - -;
+#X floatatom -136 223 0 0 0 0 - - -;
+#X floatatom -117 246 0 0 0 0 - - -;
+#X floatatom -102 266 0 0 0 0 - - -;
+#X floatatom 58 299 0 0 0 0 - - -;
+#X floatatom 193 304 0 0 0 0 - - -;
+#X obj 108 56 r tipXPerp;
+#X obj 147 76 r tipYPerp;
+#X obj 183 99 r tipZPerp;
+#X text 1 269 x'';
+#X text 144 274 y'';
+#X text 288 277 z'';
+#X text -50 346 x'' \, y'' & z'' relates to the point in the plane
+of the sword based on the perpendicular to the sword.;
+#X connect 0 0 1 0;
+#X connect 2 0 3 0;
+#X connect 4 0 18 0;
+#X connect 5 0 17 0;
+#X connect 6 0 16 0;
+#X connect 7 0 12 0;
+#X connect 8 0 11 0;
+#X connect 9 0 10 0;
+#X connect 10 0 14 1;
+#X connect 11 0 13 1;
+#X connect 12 0 13 0;
+#X connect 13 0 14 0;
+#X connect 14 0 15 0;
+#X connect 14 0 39 0;
+#X connect 16 0 20 1;
+#X connect 17 0 19 1;
+#X connect 18 0 19 0;
+#X connect 19 0 20 0;
+#X connect 20 0 21 0;
+#X connect 20 0 38 0;
+#X connect 23 0 22 0;
+#X connect 23 0 34 0;
+#X connect 24 0 23 0;
+#X connect 25 0 23 1;
+#X connect 26 0 24 1;
+#X connect 27 0 24 0;
+#X connect 28 0 27 0;
+#X connect 28 0 35 0;
+#X connect 29 0 26 0;
+#X connect 29 0 36 0;
+#X connect 30 0 25 0;
+#X connect 30 0 37 0;
+#X connect 40 0 27 1;
+#X connect 40 0 18 1;
+#X connect 40 0 12 1;
+#X connect 40 0 31 0;
+#X connect 41 0 26 1;
+#X connect 41 0 17 1;
+#X connect 41 0 11 1;
+#X connect 41 0 32 0;
+#X connect 42 0 25 1;
+#X connect 42 0 16 1;
+#X connect 42 0 10 1;
+#X connect 42 0 33 0;
+#X restore -8137 791 pd ProjectionPoint;
+#X obj -8137 813 outlet;
+#X obj -8085 813 outlet;
+#X obj -8032 814 outlet;
+#X connect 0 0 1 0;
+#X connect 2 0 3 0;
+#X connect 29 0 85 0;
+#X connect 29 1 86 0;
+#X connect 29 2 87 0;
+#X connect 33 0 36 0;
+#X connect 33 0 36 1;
+#X connect 33 0 42 0;
+#X connect 33 0 45 0;
+#X connect 33 0 71 0;
+#X connect 33 0 80 0;
+#X connect 33 0 32 0;
+#X connect 34 0 37 0;
+#X connect 34 0 37 1;
+#X connect 34 0 46 0;
+#X connect 34 0 53 0;
+#X connect 34 0 74 0;
+#X connect 34 0 80 1;
+#X connect 34 0 30 0;
+#X connect 35 0 38 0;
+#X connect 35 0 38 1;
+#X connect 35 0 47 0;
+#X connect 35 0 58 0;
+#X connect 35 0 77 0;
+#X connect 35 0 80 2;
+#X connect 35 0 31 0;
+#X connect 36 0 40 0;
+#X connect 37 0 39 0;
+#X connect 38 0 39 1;
+#X connect 39 0 40 1;
+#X connect 40 0 41 1;
+#X connect 40 0 67 0;
+#X connect 40 0 88 0;
+#X connect 41 0 72 0;
+#X connect 41 0 75 0;
+#X connect 41 0 78 0;
+#X connect 41 0 91 0;
+#X connect 42 0 44 0;
+#X connect 43 0 44 1;
+#X connect 44 0 80 6;
+#X connect 45 0 49 0;
+#X connect 46 0 48 0;
+#X connect 47 0 48 1;
+#X connect 48 0 49 1;
+#X connect 49 0 50 0;
+#X connect 49 0 50 1;
+#X connect 49 0 51 0;
+#X connect 49 0 90 0;
+#X connect 50 0 68 1;
+#X connect 51 0 52 0;
+#X connect 52 0 43 1;
+#X connect 52 0 54 1;
+#X connect 52 0 56 1;
+#X connect 52 0 71 1;
+#X connect 52 0 74 1;
+#X connect 52 0 77 1;
+#X connect 52 0 92 0;
+#X connect 53 0 55 0;
+#X connect 54 0 55 1;
+#X connect 55 0 80 7;
+#X connect 56 0 57 1;
+#X connect 57 0 80 8;
+#X connect 58 0 57 0;
+#X connect 59 0 43 0;
+#X connect 59 0 45 1;
+#X connect 59 0 64 0;
+#X connect 59 0 64 1;
+#X connect 59 0 72 1;
+#X connect 59 0 80 3;
+#X connect 59 0 84 0;
+#X connect 60 0 46 1;
+#X connect 60 0 54 0;
+#X connect 60 0 63 0;
+#X connect 60 0 63 1;
+#X connect 60 0 75 1;
+#X connect 60 0 80 4;
+#X connect 60 0 82 0;
+#X connect 61 0 47 1;
+#X connect 61 0 56 0;
+#X connect 61 0 62 1;
+#X connect 61 0 62 0;
+#X connect 61 0 78 1;
+#X connect 61 0 80 5;
+#X connect 61 0 83 0;
+#X connect 62 0 65 1;
+#X connect 63 0 65 0;
+#X connect 64 0 66 0;
+#X connect 65 0 66 1;
+#X connect 66 0 67 1;
+#X connect 66 0 70 0;
+#X connect 66 0 89 0;
+#X connect 67 0 68 0;
+#X connect 68 0 81 0;
+#X connect 69 0 41 0;
+#X connect 69 0 52 1;
+#X connect 69 0 70 1;
+#X connect 70 0 42 1;
+#X connect 70 0 53 1;
+#X connect 70 0 58 1;
+#X connect 70 0 93 0;
+#X connect 71 0 73 0;
+#X connect 72 0 73 1;
+#X connect 73 0 80 9;
+#X connect 74 0 76 0;
+#X connect 75 0 76 1;
+#X connect 76 0 80 10;
+#X connect 77 0 79 0;
+#X connect 78 0 79 1;
+#X connect 79 0 80 11;
+#X connect 80 0 29 0;
+#X connect 80 0 95 0;
+#X connect 80 1 29 1;
+#X connect 80 1 95 1;
+#X connect 80 2 29 2;
+#X connect 80 2 95 2;
+#X connect 80 3 29 3;
+#X connect 80 3 95 3;
+#X connect 80 4 29 4;
+#X connect 80 4 95 4;
+#X connect 80 5 29 5;
+#X connect 80 5 95 5;
+#X connect 80 6 29 6;
+#X connect 80 6 95 6;
+#X connect 80 7 29 7;
+#X connect 80 7 95 7;
+#X connect 80 8 29 8;
+#X connect 80 8 95 8;
+#X connect 81 0 69 0;
+#X connect 81 1 69 1;
+#X connect 95 0 96 0;
+#X connect 95 1 97 0;
+#X connect 95 2 98 0;
+#X restore -7336 51 pd baseFind;
+#X floatatom -7255 132 0 0 0 0 - - -;
+#X floatatom -7269 152 0 0 0 0 - - -;
+#X floatatom -7277 172 0 0 0 0 - - -;
+#X floatatom -7206 72 0 0 0 0 - - -;
+#X floatatom -7219 94 0 0 0 0 - - -;
+#X floatatom -7232 113 0 0 0 0 - - -;
+#X obj -7299 112 s conPerpX;
+#X obj -7273 73 s conPerpZ;
+#X obj -7286 93 s conPerpY;
+#X obj -7311 132 s obProZ;
+#X obj -7324 151 s obProY;
+#X obj -7336 171 s obProX;
+#X obj -7336 -68 r tipX;
+#X obj -7324 -48 r tipY;
+#X obj -7311 -29 r tipZ;
+#X obj -7299 -9 r tipXend;
+#X obj -7286 11 r tipYend;
+#X obj -7273 30 r tipZend;
+#X text -7345 197 ConPerp is the projection of perpendicular onto the
+plane of the sword swing;
+#X text -7346 232 obPro is the projection of the point on the observer
+onto the plane of the sword swing;
+#X text -7345 282 obVert is the projection of the point of the observer
+projected onto the perpendicular of the sword.;
+#X obj -6986 153 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj -6985 180 s GO;
+#X connect 0 0 9 0;
+#X connect 0 0 12 0;
+#X connect 0 1 8 0;
+#X connect 0 1 11 0;
+#X connect 0 2 7 0;
+#X connect 0 2 10 0;
+#X connect 1 0 0 3;
+#X connect 2 0 0 4;
+#X connect 3 0 0 5;
+#X connect 4 0 0 0;
+#X connect 5 0 0 1;
+#X connect 6 0 0 2;
+#X connect 13 0 16 0;
+#X connect 13 0 25 0;
+#X connect 13 1 15 0;
+#X connect 13 1 24 0;
+#X connect 13 2 14 0;
+#X connect 13 2 23 0;
+#X connect 13 3 20 0;
+#X connect 13 3 19 0;
+#X connect 13 4 22 0;
+#X connect 13 4 18 0;
+#X connect 13 5 21 0;
+#X connect 13 5 17 0;
+#X connect 26 0 13 0;
+#X connect 27 0 13 1;
+#X connect 28 0 13 2;
+#X connect 29 0 13 3;
+#X connect 30 0 13 4;
+#X connect 31 0 13 5;
+#X connect 35 0 36 0;
+#X restore 351 -39 pd contPlaneFind;
+#N canvas 262 478 378 237 sourceTipSpeed 0;
+#X obj 34 38 r currentTipSpeed;
+#X obj 56 107 /;
+#X floatatom 71 132 0 0 0 0 - - -;
+#X obj 108 153 outlet;
+#X obj 108 132 *;
+#X obj 123 107 t f b;
+#X floatatom 152 153 0 0 0 0 - - -;
+#X obj 71 79 r Length;
+#X obj 56 58 r Length;
+#X obj 35 132 *;
+#X obj 35 155 outlet;
+#X obj 204 119 r tipThick;
+#X obj 204 153 outlet;
+#X floatatom 250 154 0 0 0 0 - - -;
+#X connect 0 0 9 0;
+#X connect 1 0 2 0;
+#X connect 1 0 4 0;
+#X connect 1 0 9 1;
+#X connect 4 0 6 0;
+#X connect 4 0 3 0;
+#X connect 5 0 4 1;
+#X connect 5 1 4 0;
+#X connect 7 0 1 1;
+#X connect 7 0 5 0;
+#X connect 8 0 1 0;
+#X connect 9 0 10 0;
+#X connect 11 0 12 0;
+#X connect 11 0 13 0;
+#X restore 570 82 pd sourceTipSpeed;
+#N canvas 770 158 499 497 sourceTipPosition 1;
+#X obj -287 46 r tipX;
+#X obj -225 46 r tipY;
+#X obj -162 45 r tipZ;
+#X obj -147 89 r Zobs;
+#X obj -210 92 r Yobs;
+#X obj -272 91 r Xobs;
+#X obj -287 114 -;
+#X obj -225 112 -;
+#X obj -162 111 -;
+#X obj -287 134 *;
+#X obj -225 134 *;
+#X obj -162 132 *;
+#X obj -240 176 +;
+#X obj -240 155 +;
+#X obj -240 197 sqrt;
+#X floatatom -286 218 0 0 0 0 - - -;
+#X obj -240 219 outlet;
+#X obj 24 202 /;
+#X obj 24 224 atan;
+#X obj 24 246 / 3.14159;
+#X obj 24 267 abs;
+#X obj 24 287 swap 1;
+#X obj 24 307 -;
+#X msg 24 327 \$1 2;
+#X obj 24 346 line~;
+#X msg -42 326 \$1 2;
+#X obj -42 345 line~;
+#X obj -3 344 < 0;
+#X obj 63 345 > 0;
+#X obj 24 366 spigot~;
+#X obj -42 367 spigot~;
+#X obj 76 382 r myMet;
+#X obj 75 405 snapshot~;
+#X floatatom 119 426 0 0 0 0 - - -;
+#X obj 75 426 outlet;
+#X text 82 444 Pan Value;
+#X text -323 20 Distance between observer and source;
+#N canvas 136 148 1250 624 Elevation 1;
+#X obj 186 25 inlet;
+#X obj 259 25 inlet;
+#X obj 222 25 inlet;
+#X obj 316 33 r obVertX;
+#X obj 344 53 r obVertY;
+#X obj 371 74 r obVertZ;
+#X obj 43 26 r conPerpX;
+#X obj 72 47 r conPerpY;
+#X obj 100 71 r conPerpZ;
+#X obj 43 96 +;
+#X obj 72 96 +;
+#X obj 100 95 +;
+#X obj 43 184 -;
+#X obj 72 185 -;
+#X obj 100 184 -;
+#X obj 316 98 -;
+#X obj 344 97 -;
+#X obj 371 96 -;
+#X obj 43 208 *;
+#X obj 72 208 *;
+#X obj 100 207 *;
+#X obj 194 136 *;
+#X obj 219 157 *;
+#X obj 244 177 *;
+#X obj 316 118 *;
+#X obj 344 118 *;
+#X obj 371 118 *;
+#X obj 57 250 +;
+#X obj 72 229 +;
+#X obj 204 177 +;
+#X obj 229 198 +;
+#X obj 344 140 +;
+#X obj 329 161 +;
+#X obj 194 115 r conPerpX;
+#X obj 219 136 r conPerpY;
+#X obj 244 156 r conPerpZ;
+#X obj 229 218 sqrt;
+#X obj 329 182 sqrt;
+#X obj 57 270 sqrt;
+#X obj 297 252 +;
+#X obj 297 278 -;
+#X obj 330 252 *;
+#X obj 330 277 * 2;
+#X obj 297 301 /;
+#X obj 297 323 acos;
+#X obj 297 366 outlet;
+#X floatatom 342 365 0 0 0 0 - - -;
+#X obj 297 344 * 57.2958;
+#X text 35 390 Calculates the elevation angle between the source and
+the observer with 0 degrees as the direction of travel;
+#X obj 58 125 r obVertX;
+#X obj 87 144 r obVertY;
+#X obj 115 163 r obVertZ;
+#X floatatom 185 72 0 0 0 0 - - -;
+#X floatatom 203 91 0 0 0 0 - - -;
+#X floatatom 244 72 0 0 0 0 - - -;
+#X floatatom -12 205 0 0 0 0 - - -;
+#X floatatom -15 264 0 0 0 0 - - -;
+#X floatatom -18 321 0 0 0 0 - - -;
+#X floatatom 392 145 0 0 0 0 - - -;
+#X floatatom 410 164 0 0 0 0 - - -;
+#X floatatom 451 145 0 0 0 0 - - -;
+#X obj 435 325 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 436 352 s GO;
+#X floatatom 336 323 0 0 0 0 - - -;
+#X floatatom 30 343 0 0 0 0 - - -;
+#X floatatom 83 344 0 0 0 0 - - -;
+#X floatatom 134 343 0 0 0 0 - - -;
+#X obj 761 75 line~;
+#X msg 761 56 \$1 5;
+#X obj 761 35 r conPerpX;
+#X obj 799 55 r conPerpY;
+#X obj 838 75 r conPerpZ;
+#X obj 799 95 line~;
+#X msg 799 76 \$1 5;
+#X obj 838 114 line~;
+#X msg 838 95 \$1 5;
+#X obj 930 203 line~;
+#X msg 930 184 \$1 5;
+#X obj 930 163 r conPerpX;
+#X obj 968 183 r conPerpY;
+#X obj 1007 203 r conPerpZ;
+#X obj 968 223 line~;
+#X msg 968 204 \$1 5;
+#X obj 1007 242 line~;
+#X msg 1007 223 \$1 5;
+#X obj 1043 72 line~;
+#X msg 1043 53 \$1 5;
+#X obj 1081 92 line~;
+#X msg 1081 73 \$1 5;
+#X obj 1120 111 line~;
+#X msg 1120 92 \$1 5;
+#X obj 1043 32 r obVertX;
+#X obj 1081 52 r obVertY;
+#X obj 1120 72 r obVertZ;
+#X obj 770 184 -~;
+#X obj 799 185 -~;
+#X obj 827 184 -~;
+#X obj 770 208 *~;
+#X obj 799 208 *~;
+#X obj 827 207 *~;
+#X obj 799 229 +~;
+#X obj 784 250 +~;
+#X obj 784 270 sqrt~;
+#X obj 1090 190 *~;
+#X obj 1119 190 *~;
+#X obj 1147 189 *~;
+#X obj 1119 211 +~;
+#X obj 1104 232 +~;
+#X obj 1104 252 sqrt~;
+#X obj 767 146 +~ 1;
+#X obj 798 147 +~ 1;
+#X obj 831 146 +~ 1;
+#X obj 1090 166 -~ 1;
+#X obj 1119 167 -~ 1;
+#X obj 1147 166 -~ 1;
+#X obj 937 272 *~;
+#X obj 966 272 *~;
+#X obj 994 271 *~;
+#X obj 966 293 +~;
+#X obj 951 314 +~;
+#X obj 951 334 sqrt~;
+#X obj 1006 497 outlet;
+#X floatatom 1051 496 0 0 0 0 - - -;
+#X obj 1006 383 +~;
+#X obj 1039 383 *~;
+#X obj 1006 409 -~;
+#X obj 1039 408 *~ 2;
+#X obj 1006 432 /~;
+#X obj 1006 454 arccos;
+#X connect 0 0 9 1;
+#X connect 0 0 15 1;
+#X connect 0 0 52 0;
+#X connect 0 0 112 1;
+#X connect 0 0 109 1;
+#X connect 1 0 11 1;
+#X connect 1 0 17 1;
+#X connect 1 0 54 0;
+#X connect 1 0 114 1;
+#X connect 1 0 111 1;
+#X connect 2 0 10 1;
+#X connect 2 0 16 1;
+#X connect 2 0 53 0;
+#X connect 2 0 113 1;
+#X connect 2 0 110 1;
+#X connect 3 0 15 0;
+#X connect 3 0 58 0;
+#X connect 4 0 16 0;
+#X connect 4 0 59 0;
+#X connect 5 0 17 0;
+#X connect 5 0 60 0;
+#X connect 6 0 9 0;
+#X connect 7 0 10 0;
+#X connect 8 0 11 0;
+#X connect 9 0 12 0;
+#X connect 10 0 13 0;
+#X connect 11 0 14 0;
+#X connect 12 0 18 0;
+#X connect 12 0 18 1;
+#X connect 13 0 19 0;
+#X connect 13 0 19 1;
+#X connect 14 0 20 0;
+#X connect 14 0 20 1;
+#X connect 15 0 24 0;
+#X connect 15 0 24 1;
+#X connect 16 0 25 0;
+#X connect 16 0 25 1;
+#X connect 17 0 26 0;
+#X connect 17 0 26 1;
+#X connect 18 0 27 0;
+#X connect 19 0 28 0;
+#X connect 20 0 28 1;
+#X connect 21 0 29 0;
+#X connect 21 0 55 0;
+#X connect 22 0 29 1;
+#X connect 22 0 56 0;
+#X connect 23 0 30 1;
+#X connect 23 0 57 0;
+#X connect 24 0 32 0;
+#X connect 25 0 31 0;
+#X connect 26 0 31 1;
+#X connect 27 0 38 0;
+#X connect 27 0 40 1;
+#X connect 28 0 27 1;
+#X connect 29 0 30 0;
+#X connect 30 0 36 0;
+#X connect 30 0 39 0;
+#X connect 30 0 65 0;
+#X connect 31 0 32 1;
+#X connect 32 0 37 0;
+#X connect 32 0 39 1;
+#X connect 33 0 21 0;
+#X connect 33 0 21 1;
+#X connect 34 0 22 0;
+#X connect 34 0 22 1;
+#X connect 35 0 23 0;
+#X connect 35 0 23 1;
+#X connect 36 0 41 0;
+#X connect 37 0 41 1;
+#X connect 37 0 66 0;
+#X connect 38 0 64 0;
+#X connect 39 0 40 0;
+#X connect 40 0 43 0;
+#X connect 41 0 42 0;
+#X connect 42 0 43 1;
+#X connect 43 0 44 0;
+#X connect 43 0 63 0;
+#X connect 44 0 47 0;
+#X connect 47 0 45 0;
+#X connect 47 0 46 0;
+#X connect 49 0 12 1;
+#X connect 50 0 13 1;
+#X connect 51 0 14 1;
+#X connect 61 0 62 0;
+#X connect 67 0 109 0;
+#X connect 68 0 67 0;
+#X connect 69 0 68 0;
+#X connect 70 0 73 0;
+#X connect 71 0 75 0;
+#X connect 72 0 110 0;
+#X connect 73 0 72 0;
+#X connect 74 0 111 0;
+#X connect 75 0 74 0;
+#X connect 76 0 115 1;
+#X connect 76 0 115 0;
+#X connect 77 0 76 0;
+#X connect 78 0 77 0;
+#X connect 79 0 82 0;
+#X connect 80 0 84 0;
+#X connect 81 0 116 1;
+#X connect 81 0 116 0;
+#X connect 82 0 81 0;
+#X connect 83 0 117 0;
+#X connect 83 0 117 1;
+#X connect 84 0 83 0;
+#X connect 85 0 94 1;
+#X connect 85 0 112 0;
+#X connect 86 0 85 0;
+#X connect 87 0 95 1;
+#X connect 87 0 113 0;
+#X connect 88 0 87 0;
+#X connect 89 0 96 1;
+#X connect 89 0 114 0;
+#X connect 90 0 89 0;
+#X connect 91 0 86 0;
+#X connect 92 0 88 0;
+#X connect 93 0 90 0;
+#X connect 94 0 97 0;
+#X connect 94 0 97 1;
+#X connect 95 0 98 0;
+#X connect 95 0 98 1;
+#X connect 96 0 99 0;
+#X connect 96 0 99 1;
+#X connect 97 0 101 0;
+#X connect 98 0 100 0;
+#X connect 99 0 100 1;
+#X connect 100 0 101 1;
+#X connect 101 0 102 0;
+#X connect 103 0 107 0;
+#X connect 104 0 106 0;
+#X connect 105 0 106 1;
+#X connect 106 0 107 1;
+#X connect 107 0 108 0;
+#X connect 109 0 94 0;
+#X connect 110 0 95 0;
+#X connect 111 0 96 0;
+#X connect 112 0 103 0;
+#X connect 112 0 103 1;
+#X connect 113 0 104 0;
+#X connect 113 0 104 1;
+#X connect 114 0 105 0;
+#X connect 114 0 105 1;
+#X connect 115 0 119 0;
+#X connect 116 0 118 0;
+#X connect 117 0 118 1;
+#X connect 118 0 119 1;
+#X connect 119 0 120 0;
+#X connect 123 0 125 0;
+#X connect 124 0 126 0;
+#X connect 125 0 127 0;
+#X connect 126 0 127 1;
+#X connect 127 0 128 0;
+#X restore -207 333 pd Elevation;
+#X obj -287 68 * 1;
+#X obj -225 66 * 1;
+#X obj -162 66 * 1;
+#N canvas 184 48 454 463 Azimuth 0;
+#X obj 186 25 inlet;
+#X obj 258 25 inlet;
+#X obj 222 25 inlet;
+#X obj 43 26 r conPerpX;
+#X obj 72 47 r conPerpY;
+#X obj 100 71 r conPerpZ;
+#X obj 43 96 +;
+#X obj 72 96 +;
+#X obj 100 95 +;
+#X obj 43 184 -;
+#X obj 72 185 -;
+#X obj 100 184 -;
+#X obj 316 98 -;
+#X obj 344 97 -;
+#X obj 371 96 -;
+#X obj 43 208 *;
+#X obj 72 208 *;
+#X obj 100 207 *;
+#X obj 194 136 *;
+#X obj 219 157 *;
+#X obj 244 177 *;
+#X obj 316 118 *;
+#X obj 344 118 *;
+#X obj 371 118 *;
+#X obj 57 250 +;
+#X obj 72 229 +;
+#X obj 204 177 +;
+#X obj 229 198 +;
+#X obj 344 140 +;
+#X obj 329 161 +;
+#X obj 194 115 r conPerpX;
+#X obj 219 136 r conPerpY;
+#X obj 244 156 r conPerpZ;
+#X obj 229 218 sqrt;
+#X obj 329 182 sqrt;
+#X obj 57 270 sqrt;
+#X obj 297 252 +;
+#X obj 297 278 -;
+#X obj 330 252 *;
+#X obj 330 277 * 2;
+#X obj 297 301 /;
+#X obj 297 323 acos;
+#X obj 297 366 outlet;
+#X floatatom 342 365 0 0 0 0 - - -;
+#X obj 297 344 * 57.2958;
+#X obj 58 126 r obProX;
+#X obj 316 33 r obProX;
+#X obj 87 144 r obProY;
+#X obj 344 53 r obProY;
+#X obj 115 163 r obProZ;
+#X obj 371 74 r obProZ;
+#X text 35 390 Calculates the azimuth angle between the source and
+the observer with 0 degrees as the direction of travel;
+#X connect 0 0 6 1;
+#X connect 0 0 12 1;
+#X connect 1 0 8 1;
+#X connect 1 0 14 1;
+#X connect 2 0 7 1;
+#X connect 2 0 13 1;
+#X connect 3 0 6 0;
+#X connect 4 0 7 0;
+#X connect 5 0 8 0;
+#X connect 6 0 9 0;
+#X connect 7 0 10 0;
+#X connect 8 0 11 0;
+#X connect 9 0 15 0;
+#X connect 9 0 15 1;
+#X connect 10 0 16 0;
+#X connect 10 0 16 1;
+#X connect 11 0 17 0;
+#X connect 11 0 17 1;
+#X connect 12 0 21 0;
+#X connect 12 0 21 1;
+#X connect 13 0 22 0;
+#X connect 13 0 22 1;
+#X connect 14 0 23 0;
+#X connect 14 0 23 1;
+#X connect 15 0 24 0;
+#X connect 16 0 25 0;
+#X connect 17 0 25 1;
+#X connect 18 0 26 0;
+#X connect 19 0 26 1;
+#X connect 20 0 27 1;
+#X connect 21 0 29 0;
+#X connect 22 0 28 0;
+#X connect 23 0 28 1;
+#X connect 24 0 35 0;
+#X connect 24 0 37 1;
+#X connect 25 0 24 1;
+#X connect 26 0 27 0;
+#X connect 27 0 33 0;
+#X connect 27 0 36 0;
+#X connect 28 0 29 1;
+#X connect 29 0 34 0;
+#X connect 29 0 36 1;
+#X connect 30 0 18 0;
+#X connect 30 0 18 1;
+#X connect 31 0 19 0;
+#X connect 31 0 19 1;
+#X connect 32 0 20 0;
+#X connect 32 0 20 1;
+#X connect 33 0 38 0;
+#X connect 34 0 38 1;
+#X connect 36 0 37 0;
+#X connect 37 0 40 0;
+#X connect 38 0 39 0;
+#X connect 39 0 40 1;
+#X connect 40 0 41 0;
+#X connect 41 0 44 0;
+#X connect 44 0 42 0;
+#X connect 44 0 43 0;
+#X connect 45 0 9 1;
+#X connect 46 0 12 0;
+#X connect 47 0 10 1;
+#X connect 48 0 13 0;
+#X connect 49 0 11 1;
+#X connect 50 0 14 0;
+#X restore -123 333 pd Azimuth;
+#X floatatom -197 354 0 0 0 0 - - -;
+#X floatatom -113 355 0 0 0 0 - - -;
+#X obj -207 374 outlet;
+#X obj -123 374 outlet;
+#X connect 0 0 38 0;
+#X connect 1 0 39 0;
+#X connect 2 0 40 0;
+#X connect 3 0 8 1;
+#X connect 4 0 7 1;
+#X connect 5 0 6 1;
+#X connect 6 0 9 0;
+#X connect 6 0 9 1;
+#X connect 6 0 17 0;
+#X connect 7 0 10 0;
+#X connect 7 0 10 1;
+#X connect 7 0 17 1;
+#X connect 7 0 28 0;
+#X connect 7 0 27 0;
+#X connect 8 0 11 0;
+#X connect 8 0 11 1;
+#X connect 9 0 13 0;
+#X connect 10 0 13 1;
+#X connect 11 0 12 1;
+#X connect 12 0 14 0;
+#X connect 13 0 12 0;
+#X connect 14 0 15 0;
+#X connect 14 0 16 0;
+#X connect 17 0 18 0;
+#X connect 18 0 19 0;
+#X connect 19 0 20 0;
+#X connect 20 0 21 0;
+#X connect 20 0 25 0;
+#X connect 21 0 22 0;
+#X connect 21 1 22 1;
+#X connect 22 0 23 0;
+#X connect 23 0 24 0;
+#X connect 24 0 29 0;
+#X connect 25 0 26 0;
+#X connect 26 0 30 0;
+#X connect 27 0 30 1;
+#X connect 28 0 29 1;
+#X connect 29 1 32 0;
+#X connect 30 1 32 0;
+#X connect 31 0 32 0;
+#X connect 32 0 33 0;
+#X connect 32 0 34 0;
+#X connect 37 0 42 0;
+#X connect 37 0 44 0;
+#X connect 38 0 6 0;
+#X connect 38 0 37 0;
+#X connect 38 0 41 0;
+#X connect 39 0 7 0;
+#X connect 39 0 37 1;
+#X connect 39 0 41 1;
+#X connect 40 0 8 0;
+#X connect 40 0 37 2;
+#X connect 40 0 41 2;
+#X connect 41 0 43 0;
+#X connect 41 0 45 0;
+#X restore 569 136 pd sourceTipPosition;
+#X restore 128 511 pd Sources;
+#X obj 582 48 r start_armLength;
+#X obj 567 28 r bladeLen;
+#X obj 567 68 +;
+#X obj 567 90 s Length;
+#X obj -105 64 metro 1;
+#X connect 0 0 1 0;
+#X connect 5 0 10 0;
+#X connect 6 0 2 0;
+#X connect 6 1 3 0;
+#X connect 7 0 6 0;
+#X connect 7 0 9 0;
+#X connect 8 0 7 0;
+#X connect 10 0 7 0;
+#X connect 11 0 12 0;
+#X connect 12 0 146 0;
+#X connect 15 0 75 1;
+#X connect 15 0 73 0;
+#X connect 16 0 82 1;
+#X connect 16 0 80 0;
+#X connect 17 0 84 0;
+#X connect 17 0 86 1;
+#X connect 19 0 15 0;
+#X connect 20 0 16 0;
+#X connect 21 0 17 0;
+#X connect 22 0 27 0;
+#X connect 22 0 59 1;
+#X connect 23 0 62 1;
+#X connect 23 0 60 0;
+#X connect 24 0 68 1;
+#X connect 24 0 66 0;
+#X connect 28 0 22 0;
+#X connect 29 0 24 0;
+#X connect 30 0 23 0;
+#X connect 31 0 22 0;
+#X connect 32 0 15 0;
+#X connect 33 0 22 0;
+#X connect 34 0 23 0;
+#X connect 35 0 24 0;
+#X connect 37 0 23 0;
+#X connect 38 0 72 1;
+#X connect 38 0 70 0;
+#X connect 39 0 38 0;
+#X connect 41 0 38 0;
+#X connect 42 0 37 0;
+#X connect 43 0 31 0;
+#X connect 44 0 56 0;
+#X connect 45 0 41 0;
+#X connect 46 0 48 0;
+#X connect 47 0 76 0;
+#X connect 48 0 15 0;
+#X connect 49 0 90 1;
+#X connect 49 0 88 0;
+#X connect 50 0 93 0;
+#X connect 50 0 95 1;
+#X connect 51 0 54 0;
+#X connect 54 0 49 0;
+#X connect 55 0 50 0;
+#X connect 56 0 24 0;
+#X connect 58 0 59 0;
+#X connect 59 0 57 0;
+#X connect 61 0 62 0;
+#X connect 62 0 25 0;
+#X connect 64 0 65 0;
+#X connect 67 0 68 0;
+#X connect 68 0 26 0;
+#X connect 71 0 72 0;
+#X connect 72 0 40 0;
+#X connect 74 0 75 0;
+#X connect 75 0 14 0;
+#X connect 76 0 16 0;
+#X connect 77 0 17 0;
+#X connect 78 0 16 0;
+#X connect 79 0 17 0;
+#X connect 81 0 82 0;
+#X connect 82 0 36 0;
+#X connect 83 0 77 0;
+#X connect 85 0 86 0;
+#X connect 86 0 18 0;
+#X connect 87 0 49 0;
+#X connect 89 0 90 0;
+#X connect 90 0 52 0;
+#X connect 91 0 55 0;
+#X connect 92 0 50 0;
+#X connect 94 0 95 0;
+#X connect 95 0 53 0;
+#X connect 97 0 99 0;
+#X connect 99 0 98 0;
+#X connect 100 0 121 1;
+#X connect 100 0 119 0;
+#X connect 101 0 125 1;
+#X connect 101 0 123 0;
+#X connect 102 0 126 0;
+#X connect 102 0 128 1;
+#X connect 103 0 133 1;
+#X connect 103 0 131 0;
+#X connect 108 0 100 0;
+#X connect 109 0 100 0;
+#X connect 110 0 101 0;
+#X connect 111 0 102 0;
+#X connect 112 0 103 0;
+#X connect 113 0 108 0;
+#X connect 114 0 116 0;
+#X connect 115 0 103 0;
+#X connect 116 0 102 0;
+#X connect 117 0 102 0;
+#X connect 118 0 103 0;
+#X connect 120 0 121 0;
+#X connect 121 0 106 0;
+#X connect 122 0 129 0;
+#X connect 124 0 125 0;
+#X connect 125 0 107 0;
+#X connect 127 0 128 0;
+#X connect 128 0 104 0;
+#X connect 129 0 101 0;
+#X connect 130 0 115 0;
+#X connect 132 0 133 0;
+#X connect 133 0 105 0;
+#X connect 134 0 139 0;
+#X connect 135 0 137 0;
+#X connect 135 0 136 0;
+#X connect 138 0 135 0;
+#X connect 139 0 135 0;
+#X connect 142 0 144 1;
+#X connect 143 0 144 0;
+#X connect 144 0 145 0;
+#X connect 146 0 13 0;
--- a/Katana/SwordGrooveInterp.pd	Fri Jun 23 15:46:23 2017 +0100
+++ b/Katana/SwordGrooveInterp.pd	Sat Jun 24 09:58:00 2017 +0100
@@ -1,22 +1,22 @@
-#N canvas 78 41 1263 791 10;
+#N canvas 91 35 1057 824 10;
 #X obj 315 22 loadbang;
 #X obj 315 44 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
 1;
 #X obj 315 85 s myMet;
 #X obj -221 455 s topSpeed;
 #X obj -273 428 hsl 100 20 0 70 0 0 empty empty empty -2 -8 0 10 -262144
--1 -1 6543 1;
+-1 -1 71 1;
 #X floatatom -276 455 8 0 0 0 - - -;
 #X text -165 346 Blade Length;
 #X text -9 37 Arm Length;
 #X text -165 433 Top Speed;
-#X obj 21 251 hsl 100 20 0 360 0 0 empty empty empty -2 -8 0 10 -262144
--1 -1 3600 1;
+#X obj 21 251 hsl 100 20 0 180 0 0 empty empty empty -2 -8 0 10 -262144
+-1 -1 7600 1;
 #X floatatom 18 280 8 0 0 0 - - -;
 #X obj -279 516 hsl 100 20 0 0.09 0 0 empty empty empty -2 -8 0 10
--262144 -1 -1 5000 1;
+-262144 -1 -1 1430 1;
 #X obj -280 601 hsl 100 20 0.0001 0.1 0 0 empty empty empty -2 -8 0
-10 -262144 -1 -1 2784 1;
+10 -262144 -1 -1 783 1;
 #X floatatom -282 546 8 0 0 0 - - -;
 #X floatatom -283 629 8 0 0 0 - - -;
 #X obj -225 628 s tipThick;
@@ -41,13 +41,13 @@
 #X obj 83 21 loadbang;
 #X obj 83 45 delay 13;
 #X obj 19 326 hsl 100 20 180 360 0 0 empty empty empty -2 -8 0 10 -262144
--1 -1 3950 1;
+-1 -1 1400 1;
 #X floatatom 16 358 8 0 0 0 - - -;
 #X obj 14 443 hsl 100 20 90 -90 0 0 empty empty empty -2 -8 0 10 -262144
--1 -1 4400 1;
+-1 -1 1500 1;
 #X floatatom 11 471 8 0 0 0 - - -;
 #X obj 12 517 hsl 100 20 90 -90 0 0 empty empty empty -2 -8 0 10 -262144
--1 -1 5500 1;
+-1 -1 6600 1;
 #X floatatom 9 549 8 0 0 0 - - -;
 #X obj 66 470 s presweepElev;
 #X obj 90 547 s postsweepElev;
@@ -60,11 +60,11 @@
 #X obj -43 59 s start_armLength;
 #X msg -43 38 0.35;
 #X obj -275 52 hsl 100 20 -50 50 0 0 empty empty empty -2 -8 0 10 -262144
--1 -1 9900 1;
+-1 -1 5346 1;
 #X obj -276 146 hsl 100 20 -50 50 0 0 empty empty empty -2 -8 0 10
--262144 -1 -1 4950 1;
+-262144 -1 -1 5049 1;
 #X obj -276 237 hsl 100 20 -50 50 0 0 empty empty empty -2 -8 0 10
--262144 -1 -1 9900 1;
+-262144 -1 -1 5148 1;
 #X obj -278 75 s Xobs;
 #X obj -279 170 s Yobs;
 #X obj -279 264 s Zobs;
@@ -112,14 +112,13 @@
 #X connect 7 0 3 1;
 #X restore 427 102 pd opLevels;
 #X obj 430 73 hsl 100 25 0.1 1e+09 1 0 empty empty empty -2 -8 0 10
--262144 -1 -1 5642 1;
+-262144 -1 -1 5248 1;
 #X obj 427 2 r GAIN;
 #X floatatom 370 103 8 0 0 0 - - -;
 #X obj -227 545 s hiltThick;
-#X msg 89 307 270;
 #X msg 170 416 90;
 #X msg -171 120 1;
-#N canvas 443 72 928 460 sources 1;
+#N canvas 273 23 928 460 sources 1;
 #X obj 187 -120 centreAngles;
 #N canvas 656 32 742 749 tipRe 0;
 #X text -122 17 Start calculation with elevation = 0 \, arm length
@@ -331,7 +330,7 @@
 #X connect 6 0 1 1;
 #X connect 7 0 8 0;
 #X restore 29 -19 pd sourceHiltSpeed;
-#N canvas 500 151 660 718 sourceTipSpeed 0;
+#N canvas 832 126 660 718 sourceTipSpeed 0;
 #X obj 67 330 *~ 1;
 #X obj 67 352 outlet~;
 #X text 53 378 Source Speed;
@@ -402,7 +401,7 @@
 #X connect 30 0 29 0;
 #X connect 31 0 3 0;
 #X restore 745 174 pd sourceTipSpeed;
-#N canvas 40 135 1410 648 sourceTipPositions 0;
+#N canvas 24 51 832 591 sourceTipPositions 1;
 #X obj -101 195 r Zobs;
 #X obj -187 193 r Yobs;
 #X obj -271 185 r Xobs;
@@ -871,6 +870,9 @@
 #X connect 90 0 49 1;
 #X connect 90 0 85 1;
 #X restore 118 368 pd Azimuth;
+#X obj 271 141 r myMet;
+#X obj 271 161 snapshot~;
+#X floatatom 271 182 0 0 0 0 - - -;
 #X connect 0 0 13 0;
 #X connect 1 0 15 0;
 #X connect 2 0 17 0;
@@ -911,6 +913,7 @@
 #X connect 28 0 40 0;
 #X connect 30 0 31 0;
 #X connect 31 0 32 0;
+#X connect 31 0 64 0;
 #X connect 32 0 33 0;
 #X connect 33 0 38 0;
 #X connect 33 0 37 1;
@@ -938,6 +941,8 @@
 #X connect 61 0 54 0;
 #X connect 62 0 21 0;
 #X connect 62 0 57 0;
+#X connect 63 0 64 0;
+#X connect 64 0 65 0;
 #X restore 759 207 pd sourceTipPositions;
 #N canvas 144 122 1130 580 sourceHiltPositions 0;
 #X obj 271 193 r Zobs;
@@ -2448,7 +2453,7 @@
 #X connect 20 0 16 0;
 #X connect 21 0 3 0;
 #X restore 311 -99 pd sourceQuantity;
-#N canvas 88 48 1262 772 contPlaneFind 0;
+#N canvas 70 63 1262 772 contPlaneFind 1;
 #N canvas 300 23 1002 846 baseFind 0;
 #X obj -8813 28 bng 50 250 50 0 empty empty empty 17 7 0 10 -4034 -1
 -1;
@@ -4006,7 +4011,7 @@
 #X connect 31 0 6 0;
 #X restore 230 -20 pd strike;
 #X obj 745 266 freqCalcCyl4HiFi;
-#N canvas 374 121 472 660 Haversine 0;
+#N canvas 830 68 472 660 Haversine 0;
 #X obj 71 61 r presweepAzim;
 #X obj 27 40 r postsweepAzim;
 #X obj 296 68 r presweepElev;
@@ -4039,11 +4044,9 @@
 #X obj 251 290 sqrt~;
 #X obj 251 313 asin~;
 #X obj 251 334 *~ 2;
-#X obj 272 355 r length;
 #X obj 251 376 *~ 1;
 #X obj 91 339 sig~ 6.28319;
 #X obj 91 384 *~ 1;
-#X obj 112 363 r length;
 #X obj 251 539 snapshot~;
 #X floatatom 251 559 0 0 0 0 - - -;
 #X obj 251 518 r myMet;
@@ -4060,28 +4063,34 @@
 #X obj 343 131 outlet~;
 #X obj 204 112 outlet~;
 #X obj -25 109 outlet~;
+#X obj 272 355 r Length;
+#X obj 112 363 r Length;
+#X obj 302 420 snapshot~;
+#X floatatom 302 440 0 0 0 0 - - -;
+#X obj 302 399 r myMet;
 #X connect 0 0 5 0;
 #X connect 1 0 7 0;
 #X connect 2 0 9 0;
 #X connect 3 0 11 0;
 #X connect 4 0 17 0;
-#X connect 4 0 49 0;
+#X connect 4 0 47 0;
 #X connect 5 0 4 0;
 #X connect 6 0 16 0;
-#X connect 6 0 52 0;
+#X connect 6 0 50 0;
 #X connect 7 0 6 0;
 #X connect 8 0 20 0;
-#X connect 8 0 50 0;
+#X connect 8 0 48 0;
 #X connect 9 0 8 0;
 #X connect 10 0 21 0;
-#X connect 10 0 51 0;
+#X connect 10 0 49 0;
 #X connect 11 0 10 0;
 #X connect 12 0 13 0;
-#X connect 12 0 43 0;
+#X connect 12 0 41 0;
 #X connect 13 0 14 0;
 #X connect 14 0 15 0;
 #X connect 14 0 15 1;
 #X connect 15 0 28 0;
+#X connect 15 0 53 0;
 #X connect 16 0 12 0;
 #X connect 16 0 18 0;
 #X connect 17 0 12 1;
@@ -4100,27 +4109,29 @@
 #X connect 28 0 29 0;
 #X connect 29 0 30 0;
 #X connect 30 0 31 0;
-#X connect 31 0 33 0;
-#X connect 32 0 33 1;
-#X connect 33 0 45 0;
-#X connect 33 0 47 1;
-#X connect 34 0 35 0;
-#X connect 35 0 47 0;
-#X connect 36 0 35 1;
-#X connect 37 0 38 0;
-#X connect 39 0 37 0;
-#X connect 40 0 41 0;
-#X connect 40 0 44 1;
-#X connect 40 0 45 1;
-#X connect 42 0 40 0;
-#X connect 43 0 40 0;
-#X connect 44 1 46 0;
-#X connect 45 0 46 1;
-#X connect 46 0 37 0;
-#X connect 46 0 48 0;
-#X connect 47 0 44 0;
+#X connect 31 0 32 0;
+#X connect 32 0 43 0;
+#X connect 32 0 45 1;
+#X connect 33 0 34 0;
+#X connect 34 0 45 0;
+#X connect 35 0 36 0;
+#X connect 37 0 35 0;
+#X connect 38 0 39 0;
+#X connect 38 0 42 1;
+#X connect 38 0 43 1;
+#X connect 40 0 38 0;
+#X connect 41 0 38 0;
+#X connect 42 1 44 0;
+#X connect 43 0 44 1;
+#X connect 44 0 35 0;
+#X connect 44 0 46 0;
+#X connect 45 0 42 0;
+#X connect 51 0 32 1;
+#X connect 52 0 34 1;
+#X connect 53 0 54 0;
+#X connect 55 0 53 0;
 #X restore 503 -45 pd Haversine;
-#N canvas 305 23 660 741 SweepTinings 0;
+#N canvas 761 103 660 741 SweepTinings 0;
 #X obj 116 39 inlet~;
 #X text 95 19 PostSweepAzimuth;
 #X obj 306 40 inlet~;
@@ -4142,7 +4153,7 @@
 #X obj 208 305 / 2;
 #X obj 124 339 /~ 1;
 #X obj 338 333 /~ 1;
-#X obj 125 381 *~ 1000;
+#X obj 125 372 *~ 1000;
 #X obj 338 377 *~ 1000;
 #X obj 13 438 snapshot~;
 #X floatatom 13 458 0 0 0 0 - - -;
@@ -4192,10 +4203,10 @@
 #X connect 18 0 20 1;
 #X connect 19 0 21 0;
 #X connect 20 0 22 0;
-#X connect 21 0 23 0;
 #X connect 21 0 27 0;
 #X connect 21 0 36 0;
 #X connect 21 0 41 0;
+#X connect 21 0 23 0;
 #X connect 22 0 7 0;
 #X connect 22 0 26 0;
 #X connect 22 0 36 1;
@@ -4219,7 +4230,7 @@
 #X connect 45 0 6 0;
 #X connect 45 0 5 1;
 #X restore 402 -20 pd SweepTinings;
-#N canvas 168 63 1206 597 CentreAngles 0;
+#N canvas 158 98 1023 609 CentreAngles 0;
 #X obj 389 49 inlet~;
 #X obj 520 49 inlet~;
 #X obj 130 47 inlet~;
@@ -4278,9 +4289,9 @@
 #X obj 476 283 /~;
 #X obj 57 304 *~;
 #X obj 57 335 +~;
-#X obj 669 440 spigot~;
-#X obj 727 439 spigot~;
-#X obj 571 262 *~;
+#X obj 564 430 spigot~;
+#X obj 622 431 spigot~;
+#X obj 571 260 *~;
 #X obj 571 237 line~;
 #X obj 571 194 f;
 #X obj 599 317 /~;
@@ -4290,16 +4301,16 @@
 #X obj 363 513 snapshot~;
 #X floatatom 363 533 0 0 0 0 - - -;
 #X obj 363 492 r myMet;
-#X obj 801 514 snapshot~;
-#X floatatom 801 534 0 0 0 0 - - -;
-#X obj 801 493 r myMet;
+#X obj 696 504 snapshot~;
+#X floatatom 696 524 0 0 0 0 - - -;
+#X obj 696 483 r myMet;
 #X obj 370 218 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
 -1 -1;
 #X msg 540 194 \$1;
 #X obj 599 295 -~;
 #X msg 571 216 0 \$1;
 #X obj 789 201 -~;
-#X obj 703 506 +~;
+#X obj 598 496 +~;
 #X obj 788 226 /~ 2;
 #X obj 683 373 +~;
 #X obj 683 348 *~;
@@ -4311,9 +4322,12 @@
 #X obj 160 143 /~ 2;
 #X obj 160 164 +~;
 #X obj 251 541 outlet~;
-#X obj 703 534 outlet~;
+#X obj 598 524 outlet~;
 #X text 212 565 Current Azimuth;
-#X text 668 554 Current Elevation;
+#X text 563 544 Current Elevation;
+#X obj 51 448 snapshot~;
+#X floatatom 51 468 0 0 0 0 - - -;
+#X obj 51 427 r myMet;
 #X connect 0 0 12 0;
 #X connect 0 0 54 1;
 #X connect 1 0 15 0;
@@ -4398,6 +4412,7 @@
 #X connect 63 0 88 0;
 #X connect 64 0 65 1;
 #X connect 65 0 39 0;
+#X connect 65 0 92 0;
 #X connect 66 0 67 0;
 #X connect 68 0 66 0;
 #X connect 69 0 70 0;
@@ -4406,8 +4421,8 @@
 #X connect 74 0 62 0;
 #X connect 75 0 60 0;
 #X connect 76 0 78 0;
+#X connect 77 0 89 0;
 #X connect 77 0 69 0;
-#X connect 77 0 89 0;
 #X connect 78 0 80 1;
 #X connect 78 0 84 0;
 #X connect 79 0 57 0;
@@ -4422,8 +4437,10 @@
 #X connect 86 0 55 0;
 #X connect 87 0 53 1;
 #X connect 87 0 65 0;
+#X connect 92 0 93 0;
+#X connect 94 0 92 0;
 #X restore 489 41 pd CentreAngles;
-#N canvas 429 48 980 557 tipSpeedCalc 0;
+#N canvas 729 84 980 557 tipSpeedCalc 0;
 #X obj 185 61 inlet~;
 #X obj 316 61 inlet~;
 #X text 155 30 PreSweepTiming;
@@ -4489,7 +4506,7 @@
 #X connect 29 0 19 0;
 #X connect 30 0 31 0;
 #X restore 576 12 pd tipSpeedCalc;
-#N canvas 34 173 1312 556 Positions 0;
+#N canvas 68 219 1312 556 Positions 0;
 #X obj 319 34 inlet~;
 #X obj 449 26 inlet~;
 #X text 303 9 current azimuth;
@@ -7069,7 +7086,7 @@
 #X obj 634 152 s PGA;
 #X msg -128 120 0.35;
 #X obj 818 566 hsl 85 35 0.1 1e+09 1 0 empty empty Gain 0 16 0 14 -203904
--1 -1 0 1;
+-1 -1 4453 1;
 #X obj 818 619 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0;
 #X obj 881 619 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0;
 #X obj 864 508 bng 50 250 50 0 empty empty Go 14 24 0 16 -4034 -1 -1
@@ -7077,25 +7094,25 @@
 #X obj 804 508 bng 50 250 50 0 empty empty Prime 0 22 0 16 -257985
 -1 -1;
 #X obj 633 636 hsl 100 35 0 180 0 0 empty empty Elevation-Post 2 16
-0 12 -261682 -1 -1 0 1;
+0 12 -261682 -1 -1 4950 1;
 #X obj 633 598 hsl 100 35 0 180 0 0 empty empty Elevation-Pre 2 16
-0 12 -261682 -1 -1 0 1;
+0 12 -261682 -1 -1 4950 1;
 #X obj 633 554 hsl 100 35 180 360 0 0 empty empty Azimuth-Post 2 16
-0 12 -261234 -1 -1 0 1;
+0 12 -261234 -1 -1 3025 1;
 #X obj 633 516 hsl 100 35 0 360 0 0 empty empty Azimuth-Pre 2 16 0
-12 -261234 -1 -1 0 1;
+12 -261234 -1 -1 3080 1;
 #X obj 427 518 hsl 100 35 -50 50 0 0 empty empty Observer-X 2 16 0
-12 -262130 -1 -1 0 1;
+12 -262130 -1 -1 4970 1;
 #X obj 427 558 hsl 100 35 -50 50 0 0 empty empty Observer-Y 2 16 0
-12 -262130 -1 -1 0 1;
+12 -262130 -1 -1 5049 1;
 #X obj 427 598 hsl 100 35 -50 50 0 0 empty empty Observer-Z 2 16 0
-12 -262130 -1 -1 0 1;
+12 -262130 -1 -1 5049 1;
 #X obj 634 708 hsl 100 35 0 700 0 0 empty empty Top-Tip-Speed 2 16
-0 12 -204786 -1 -1 0 1;
+0 12 -204786 -1 -1 509 1;
 #X obj 427 666 hsl 100 35 0 0.09 0 0 empty empty Thickness-Hilt 2 16
-0 12 -204800 -1 -1 0 1;
+0 12 -204800 -1 -1 1430 1;
 #X obj 427 705 hsl 100 35 0.0001 0.1 0 0 empty empty Thickness-Tip
-2 16 0 12 -204800 -1 -1 0 1;
+2 16 0 12 -204800 -1 -1 783 1;
 #X obj 718 440 bng 50 250 50 0 empty empty MLB 12 22 0 16 -261234 -1
 -1;
 #X obj 516 440 bng 50 250 50 0 empty empty Model1 5 22 0 12 -262130
@@ -7126,7 +7143,7 @@
 #X text 800 470 Click Prime after changing;
 #X text 800 481 settings \, prior to Go.;
 #X obj 427 762 hsl 100 35 0.1 3 0 0 empty empty Blade-Length 2 16 0
-12 -203904 -45076 -45076 0 1;
+12 -203904 -45076 -45076 3475 1;
 #X floatatom 539 771 8 0 0 0 - - -;
 #X msg 738 14 Xpos 0.2 \, Ypos 0.5 \, Zpos 2 \, Len 1.143 \, TopSpeed
 40 \, HiltThick 0.0152 \, TipThick 0.0085 \, PreAzim 1 \, PostAzim
@@ -7146,7 +7163,7 @@
 #X obj -276 680 hsl 100 20 0 0.45 0 0 empty empty empty -2 -8 0 10
 -262144 -1 -1 4400 1;
 #X obj -277 765 hsl 100 20 0 0.8 0 0 empty empty empty -2 -8 0 10 -262144
--1 -1 6187 1;
+-1 -1 99 1;
 #X floatatom -279 710 8 0 0 0 - - -;
 #X floatatom -280 793 8 0 0 0 - - -;
 #X obj -280 745 r thisTT;
@@ -7164,19 +7181,20 @@
 #X msg 79 494 -10;
 #X msg 87 225 200;
 #X msg 238 222 180;
-#X text 356 146 Gain;
 #X obj 295 121 loadbang;
 #X obj 298 165 hsl 80 25 1e-06 0.001 0 0 empty empty empty -2 -8 0
-10 -262144 -1 -1 3155 1;
+10 -262144 -1 -1 1574 1;
 #X floatatom 305 196 0 0 0 0 - - -;
 #X obj 295 218 s cavGain;
 #X msg 436 48 50000;
 #X msg -78 119 1.35;
 #X msg 206 221 91;
-#X msg 231 192 0;
-#X msg 295 144 0.0003;
+#X msg 351 124 0;
+#X msg 295 144 0.0002;
+#X text 356 146;
+#X msg 89 307 280;
 #X connect 0 0 1 0;
-#X connect 1 0 189 0;
+#X connect 1 0 188 0;
 #X connect 4 0 3 0;
 #X connect 4 0 5 0;
 #X connect 9 0 10 0;
@@ -7189,15 +7207,15 @@
 #X connect 20 0 21 0;
 #X connect 21 0 18 0;
 #X connect 22 0 21 1;
-#X connect 22 0 84 0;
-#X connect 23 0 95 0;
+#X connect 22 0 83 0;
+#X connect 23 0 94 0;
 #X connect 25 0 47 0;
 #X connect 26 0 4 0;
-#X connect 26 0 157 0;
+#X connect 26 0 156 0;
 #X connect 27 0 11 0;
-#X connect 27 0 158 0;
+#X connect 27 0 157 0;
 #X connect 28 0 12 0;
-#X connect 28 0 159 0;
+#X connect 28 0 158 0;
 #X connect 29 0 47 0;
 #X connect 30 0 31 0;
 #X connect 31 0 23 0;
@@ -7208,7 +7226,7 @@
 #X connect 36 0 37 0;
 #X connect 36 0 39 0;
 #X connect 47 0 46 0;
-#X connect 47 0 120 0;
+#X connect 47 0 119 0;
 #X connect 48 0 51 0;
 #X connect 48 0 54 0;
 #X connect 49 0 55 0;
@@ -7223,148 +7241,148 @@
 #X connect 62 0 4 0;
 #X connect 63 0 48 0;
 #X connect 64 0 48 0;
-#X connect 64 0 154 0;
+#X connect 64 0 153 0;
 #X connect 65 0 49 0;
-#X connect 65 0 155 0;
+#X connect 65 0 154 0;
 #X connect 66 0 50 0;
-#X connect 66 0 156 0;
+#X connect 66 0 155 0;
 #X connect 67 0 9 0;
-#X connect 67 0 153 0;
+#X connect 67 0 152 0;
 #X connect 68 0 32 0;
-#X connect 68 0 152 0;
+#X connect 68 0 151 0;
 #X connect 69 0 34 0;
-#X connect 69 0 151 0;
+#X connect 69 0 150 0;
 #X connect 70 0 36 0;
-#X connect 70 0 150 0;
-#X connect 74 0 215 0;
+#X connect 70 0 149 0;
+#X connect 74 0 213 0;
 #X connect 75 0 71 0;
-#X connect 75 0 146 0;
+#X connect 75 0 145 0;
 #X connect 75 1 72 0;
-#X connect 75 1 147 0;
+#X connect 75 1 146 0;
 #X connect 76 0 75 0;
 #X connect 76 0 78 0;
 #X connect 77 0 76 0;
-#X connect 77 0 145 0;
-#X connect 80 0 32 0;
-#X connect 81 0 34 0;
-#X connect 81 0 36 0;
-#X connect 82 0 49 0;
-#X connect 85 0 86 0;
-#X connect 85 0 88 0;
-#X connect 87 0 85 0;
-#X connect 87 0 182 0;
-#X connect 92 0 85 0;
-#X connect 93 0 85 0;
-#X connect 94 0 85 0;
-#X connect 95 0 24 0;
-#X connect 108 0 23 0;
-#X connect 108 0 149 0;
-#X connect 110 0 11 0;
-#X connect 110 0 12 0;
-#X connect 111 0 82 0;
-#X connect 112 0 61 0;
-#X connect 113 0 119 0;
-#X connect 114 0 93 0;
-#X connect 115 0 190 0;
-#X connect 116 0 121 0;
-#X connect 116 0 123 0;
-#X connect 117 0 60 0;
-#X connect 117 0 80 0;
-#X connect 118 0 204 0;
-#X connect 118 0 188 0;
-#X connect 119 0 50 0;
-#X connect 121 0 11 0;
-#X connect 122 0 49 0;
-#X connect 123 0 12 0;
-#X connect 124 0 50 0;
-#X connect 125 0 85 0;
-#X connect 126 0 131 0;
-#X connect 128 0 50 0;
-#X connect 129 0 132 0;
-#X connect 131 0 127 0;
-#X connect 132 0 130 0;
+#X connect 77 0 144 0;
+#X connect 80 0 34 0;
+#X connect 80 0 36 0;
+#X connect 81 0 49 0;
+#X connect 84 0 85 0;
+#X connect 84 0 87 0;
+#X connect 86 0 84 0;
+#X connect 86 0 181 0;
+#X connect 91 0 84 0;
+#X connect 92 0 84 0;
+#X connect 93 0 84 0;
+#X connect 94 0 24 0;
+#X connect 107 0 23 0;
+#X connect 107 0 148 0;
+#X connect 109 0 11 0;
+#X connect 109 0 12 0;
+#X connect 110 0 81 0;
+#X connect 111 0 61 0;
+#X connect 112 0 118 0;
+#X connect 113 0 92 0;
+#X connect 114 0 189 0;
+#X connect 115 0 120 0;
+#X connect 115 0 122 0;
+#X connect 116 0 60 0;
+#X connect 116 0 219 0;
+#X connect 117 0 203 0;
+#X connect 117 0 187 0;
+#X connect 118 0 50 0;
+#X connect 120 0 11 0;
+#X connect 121 0 49 0;
+#X connect 122 0 12 0;
+#X connect 123 0 50 0;
+#X connect 124 0 84 0;
+#X connect 125 0 130 0;
+#X connect 127 0 50 0;
+#X connect 128 0 131 0;
+#X connect 130 0 126 0;
+#X connect 131 0 129 0;
+#X connect 132 0 133 0;
 #X connect 133 0 134 0;
-#X connect 134 0 135 0;
-#X connect 136 0 187 0;
-#X connect 137 0 186 0;
+#X connect 135 0 186 0;
+#X connect 136 0 185 0;
+#X connect 137 0 183 0;
 #X connect 138 0 184 0;
-#X connect 139 0 185 0;
-#X connect 140 0 100 0;
-#X connect 140 1 106 0;
-#X connect 140 2 105 0;
-#X connect 140 3 104 0;
-#X connect 140 4 103 0;
-#X connect 140 5 102 0;
-#X connect 140 6 101 0;
-#X connect 140 7 99 0;
-#X connect 140 8 98 0;
-#X connect 140 9 97 0;
-#X connect 140 10 96 0;
-#X connect 140 11 107 0;
-#X connect 140 12 109 0;
+#X connect 139 0 99 0;
+#X connect 139 1 105 0;
+#X connect 139 2 104 0;
+#X connect 139 3 103 0;
+#X connect 139 4 102 0;
+#X connect 139 5 101 0;
+#X connect 139 6 100 0;
+#X connect 139 7 98 0;
+#X connect 139 8 97 0;
+#X connect 139 9 96 0;
+#X connect 139 10 95 0;
+#X connect 139 11 106 0;
+#X connect 139 12 108 0;
+#X connect 140 0 141 0;
 #X connect 141 0 142 0;
-#X connect 142 0 143 0;
-#X connect 144 0 49 0;
-#X connect 145 0 76 0;
-#X connect 145 0 174 0;
-#X connect 148 0 18 0;
-#X connect 149 0 23 0;
-#X connect 150 0 36 0;
-#X connect 150 0 172 0;
-#X connect 151 0 34 0;
-#X connect 151 0 171 0;
-#X connect 152 0 32 0;
-#X connect 152 0 170 0;
-#X connect 153 0 9 0;
-#X connect 153 0 169 0;
-#X connect 154 0 48 0;
+#X connect 143 0 49 0;
+#X connect 144 0 76 0;
+#X connect 144 0 173 0;
+#X connect 147 0 18 0;
+#X connect 148 0 23 0;
+#X connect 149 0 36 0;
+#X connect 149 0 171 0;
+#X connect 150 0 34 0;
+#X connect 150 0 170 0;
+#X connect 151 0 32 0;
+#X connect 151 0 169 0;
+#X connect 152 0 9 0;
+#X connect 152 0 168 0;
+#X connect 153 0 48 0;
+#X connect 153 0 163 0;
+#X connect 154 0 49 0;
 #X connect 154 0 164 0;
-#X connect 155 0 49 0;
+#X connect 155 0 50 0;
 #X connect 155 0 165 0;
-#X connect 156 0 50 0;
-#X connect 156 0 166 0;
-#X connect 157 0 4 0;
-#X connect 157 0 173 0;
-#X connect 158 0 11 0;
+#X connect 156 0 4 0;
+#X connect 156 0 172 0;
+#X connect 157 0 11 0;
+#X connect 157 0 166 0;
+#X connect 158 0 12 0;
 #X connect 158 0 167 0;
-#X connect 159 0 12 0;
-#X connect 159 0 168 0;
-#X connect 160 0 126 0;
-#X connect 161 0 129 0;
-#X connect 162 0 133 0;
-#X connect 163 0 141 0;
-#X connect 182 0 85 0;
-#X connect 182 0 183 0;
-#X connect 184 0 140 0;
-#X connect 185 0 140 0;
-#X connect 186 0 140 0;
-#X connect 187 0 140 0;
-#X connect 188 0 36 0;
-#X connect 189 0 2 0;
-#X connect 190 0 4 0;
+#X connect 159 0 125 0;
+#X connect 160 0 128 0;
+#X connect 161 0 132 0;
+#X connect 162 0 140 0;
+#X connect 181 0 84 0;
+#X connect 181 0 182 0;
+#X connect 183 0 139 0;
+#X connect 184 0 139 0;
+#X connect 185 0 139 0;
+#X connect 186 0 139 0;
+#X connect 187 0 36 0;
+#X connect 188 0 2 0;
+#X connect 189 0 4 0;
+#X connect 190 0 192 0;
+#X connect 190 0 199 0;
 #X connect 191 0 193 0;
 #X connect 191 0 200 0;
-#X connect 192 0 194 0;
-#X connect 192 0 201 0;
-#X connect 195 0 192 0;
-#X connect 196 0 191 0;
-#X connect 196 0 192 0;
-#X connect 197 0 202 0;
-#X connect 197 0 203 0;
+#X connect 194 0 191 0;
+#X connect 195 0 190 0;
+#X connect 195 0 191 0;
+#X connect 196 0 201 0;
+#X connect 196 0 202 0;
+#X connect 201 0 190 0;
 #X connect 202 0 191 0;
-#X connect 203 0 192 0;
-#X connect 204 0 34 0;
-#X connect 205 0 9 0;
-#X connect 206 0 34 0;
-#X connect 207 0 36 0;
+#X connect 203 0 34 0;
+#X connect 204 0 9 0;
+#X connect 205 0 34 0;
+#X connect 206 0 36 0;
+#X connect 207 0 9 0;
 #X connect 208 0 9 0;
-#X connect 209 0 9 0;
-#X connect 211 0 219 0;
-#X connect 212 0 214 0;
-#X connect 212 0 213 0;
-#X connect 215 0 76 0;
-#X connect 216 0 49 0;
-#X connect 217 0 9 0;
-#X connect 218 0 212 0;
-#X connect 219 0 212 0;
+#X connect 209 0 217 0;
+#X connect 210 0 212 0;
+#X connect 210 0 211 0;
+#X connect 213 0 76 0;
+#X connect 214 0 49 0;
+#X connect 215 0 9 0;
+#X connect 216 0 210 0;
+#X connect 217 0 210 0;
+#X connect 219 0 32 0;
 #X coords 0 -1 1 1 580 410 2 400 430;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Katana/centreAngles.pd	Sat Jun 24 09:58:00 2017 +0100
@@ -0,0 +1,125 @@
+#N canvas 55 100 1358 384 10;
+#X obj 58 160 f;
+#X obj 58 117 r GO;
+#X obj 73 138 r preswingTime;
+#X obj 220 117 r setUp;
+#X text 203 98 Start at 0 speed;
+#X obj 235 138 r presweepAzim;
+#X obj 220 161 f;
+#X msg 220 184 \$1;
+#X obj 344 62 t f b;
+#X obj 345 90 delay;
+#X obj 359 17 r preswingTime;
+#X obj 366 139 r postswingTime;
+#X obj 344 -3 r GO;
+#X obj 344 39 f;
+#X obj 345 117 f;
+#X obj 345 162 pack;
+#X obj 387 91 r postsweepAzim;
+#X msg 345 188 \$1 \$2;
+#X obj 168 117 r myEnd;
+#X obj 847 129 f;
+#X obj 847 86 r GO;
+#X obj 868 152 r preswingTime;
+#X obj 1018 151 r setUp;
+#X text 1001 132 Start at 0 speed;
+#X obj 1018 195 f;
+#X msg 1018 218 \$1;
+#X obj 1130 95 t f b;
+#X obj 1131 123 delay;
+#X obj 1145 50 r preswingTime;
+#X obj 1152 172 r postswingTime;
+#X obj 1130 30 r GO;
+#X obj 1130 72 f;
+#X obj 1131 150 f;
+#X obj 1131 195 pack;
+#X msg 1131 221 \$1 \$2;
+#X obj 1033 172 r presweepElev;
+#X obj 1173 98 r postsweepElev;
+#X obj 847 176 pack;
+#X obj 862 108 r midElev;
+#X msg 847 210 \$1 \$2;
+#X obj 647 94 +;
+#X obj 632 121 /;
+#X obj 605 73 t f f;
+#X obj 647 144 r presweepElev;
+#X obj 662 166 r postsweepElev;
+#X obj 647 50 r postswingTime;
+#X obj 662 72 r preswingTime;
+#X obj 632 219 *;
+#X obj 632 287 s midElev;
+#X text 523 -7 Calculate the angles with respect to the centre of the
+swing circle;
+#X obj 969 150 r myEnd;
+#X obj 647 195 -;
+#X obj 632 262 +;
+#X obj 647 239 r postsweepElev;
+#X msg 58 183 180 \$1;
+#X obj 220 242 outlet~;
+#X obj 1018 278 outlet~;
+#X obj 220 218 line~;
+#X obj 1018 252 line~;
+#X text 283 237 Current Sword Azimuth angle;
+#X text 1081 271 Current Sword Elevation angle;
+#X obj 1196 149 s strike;
+#X obj 126 242 s~ currentAzim2;
+#X obj 923 279 s~ currentElev2;
+#X connect 0 0 54 0;
+#X connect 1 0 0 0;
+#X connect 2 0 0 1;
+#X connect 3 0 6 0;
+#X connect 5 0 6 1;
+#X connect 6 0 7 0;
+#X connect 7 0 57 0;
+#X connect 8 0 9 1;
+#X connect 8 1 9 0;
+#X connect 9 0 14 0;
+#X connect 10 0 13 1;
+#X connect 11 0 15 1;
+#X connect 12 0 13 0;
+#X connect 13 0 8 0;
+#X connect 14 0 15 0;
+#X connect 15 0 17 0;
+#X connect 16 0 14 1;
+#X connect 17 0 57 0;
+#X connect 18 0 6 0;
+#X connect 19 0 37 0;
+#X connect 20 0 19 0;
+#X connect 21 0 37 1;
+#X connect 22 0 24 0;
+#X connect 24 0 25 0;
+#X connect 25 0 58 0;
+#X connect 26 0 27 1;
+#X connect 26 1 27 0;
+#X connect 27 0 32 0;
+#X connect 27 0 61 0;
+#X connect 28 0 31 1;
+#X connect 29 0 33 1;
+#X connect 30 0 31 0;
+#X connect 31 0 26 0;
+#X connect 32 0 33 0;
+#X connect 33 0 34 0;
+#X connect 34 0 58 0;
+#X connect 35 0 24 1;
+#X connect 36 0 32 1;
+#X connect 37 0 39 0;
+#X connect 38 0 19 1;
+#X connect 39 0 58 0;
+#X connect 40 0 41 1;
+#X connect 41 0 47 0;
+#X connect 42 0 40 0;
+#X connect 42 1 41 0;
+#X connect 43 0 51 0;
+#X connect 44 0 51 1;
+#X connect 45 0 42 0;
+#X connect 46 0 40 1;
+#X connect 47 0 52 0;
+#X connect 50 0 24 0;
+#X connect 51 0 47 1;
+#X connect 52 0 48 0;
+#X connect 53 0 52 1;
+#X connect 54 0 57 0;
+#X connect 57 0 55 0;
+#X connect 57 0 62 0;
+#X connect 58 0 56 0;
+#X connect 58 0 63 0;