Compare commits

...

10 commits

Author SHA1 Message Date
6b815e70d3 more smooth volume change... 2022-07-20 22:21:24 +09:00
967e3fb3fd sound volume higher.. 2022-07-20 20:31:39 +09:00
c2bf71e087 update 2022-07-19 03:09:21 +09:00
e7e2bd421a final 2022-07-16 08:43:53 +09:00
0cb954a172 update 2022-07-15 18:11:13 +09:00
31372049ca semi-final (finalized iamyou-customization)
+ we need to further work on node-radio-scanner version
2022-07-15 00:31:17 +09:00
67a6e3983a update 2022-07-14 21:08:46 +09:00
068322a17e (..) 2022-07-14 18:08:27 +09:00
0bd14d0d74 panning added 2022-07-14 18:02:04 +09:00
3dd62fb4b1 appname change 2022-07-14 11:14:08 +09:00
30 changed files with 911 additions and 483 deletions

File diff suppressed because one or more lines are too long

View file

@ -1,2 +0,0 @@
#N canvas 959 463 400 300 10;
#X obj 147 129 gps_scanner/main;

Binary file not shown.

Binary file not shown.

View file

@ -1,480 +0,0 @@
#N canvas 1 91 1246 672 10;
#X obj 14 14 receive fromSystem;
#X obj 14 60 route /location /compass;
#X obj 14 37 list trim;
#X obj 14 113 unpack f f f f f f f f f;
#X obj 63 192 pack f f f f, f 19;
#X obj 593 352 geocoord_dist;
#X obj 683 352 geocoord_bearing;
#X obj 593 292 pack f f f f;
#X obj 84 83 s \$0-compass;
#X obj 83 225 s latlon;
#X obj 28 446 wav2~;
#X msg 28 384 01.wav;
#X msg 41 417 1;
#X msg 114 376 \; pd dsp 1;
#X obj 75 320 loadbang;
#X obj 28 469 *~;
#X obj 75 343 t b b b;
#X obj 88 430 r \$0-dist;
#X obj 88 476 print vol;
#X obj 28 492 *~;
#X obj 28 515 dac~;
#N canvas 1 91 594 663 get_point 0;
#X obj 267 17 r fromGUI;
#X obj 267 86 sel 1;
#X obj 267 173 send toSystem;
#X obj 17 40 list trim;
#X obj 17 17 r fromSystem;
#X obj 17 63 route /textDialog;
#X obj 358 86 sel 1;
#X obj 267 40 list trim;
#X obj 17 158 tofloat;
#X obj 157 158 tofloat;
#X obj 267 63 route /btn.Set.Lat /btn.Set.Lon;
#X msg 267 110 list /textDialog /diagInputLat Set Latitude:;
#X msg 287 143 list /textDialog /diagInputLong Set Longitude:;
#X obj 17 316 send toGUI;
#X obj 17 86 route /diagInputLong /diagInputLat;
#X msg 17 264 list /disp.Loc.Pointing.Lon.Coarse \$1;
#X msg 44 287 list /disp.Loc.Pointing.Lon.Fine \$1;
#X obj 43 567 outlet;
#X obj 43 544 pack f f f f;
#X obj 157 427 send toGUI;
#X msg 184 398 list /disp.Loc.Pointing.Lat.Fine \$1;
#X msg 157 375 list /disp.Loc.Pointing.Lat.Coarse \$1;
#X text 40 589 (Lat.fine \, Lon.fine \, Lat.rough \, Lon.rough);
#X obj 43 521 f;
#X obj 43 492 t b a;
#X obj 157 323 expr $f1+int($f2*1000)/1000 \; rint(abs($f2*1000000))%1000
;
#X obj 17 212 expr $f1+int($f2*1000)/1000 \; rint(abs($f2*1000000))%1000
;
#X connect 0 0 7 0;
#X connect 1 0 11 0;
#X connect 3 0 5 0;
#X connect 4 0 3 0;
#X connect 5 0 14 0;
#X connect 6 0 12 0;
#X connect 7 0 10 0;
#X connect 8 0 26 0;
#X connect 8 1 26 1;
#X connect 9 0 25 0;
#X connect 9 1 25 1;
#X connect 10 0 1 0;
#X connect 10 1 6 0;
#X connect 11 0 2 0;
#X connect 12 0 2 0;
#X connect 14 0 8 0;
#X connect 14 1 9 0;
#X connect 15 0 13 0;
#X connect 16 0 13 0;
#X connect 18 0 17 0;
#X connect 20 0 19 0;
#X connect 21 0 19 0;
#X connect 23 0 18 0;
#X connect 24 0 23 0;
#X connect 24 1 18 3;
#X connect 25 0 18 2;
#X connect 25 0 21 0;
#X connect 25 1 23 1;
#X connect 25 1 20 0;
#X connect 26 0 15 0;
#X connect 26 0 24 0;
#X connect 26 1 18 1;
#X connect 26 1 16 0;
#X restore 904 20 pd get_point;
#X obj 593 43 unpack f f f f;
#X obj 593 20 r latlon;
#X obj 831 352 geocoord_dist;
#X obj 921 352 geocoord_bearing;
#X obj 831 315 t a a;
#X obj 831 292 pack f f f f;
#X obj 593 112 pack f f f f;
#X obj 593 89 f;
#X obj 593 66 t b a;
#X obj 823 135 unpack f f f f;
#X obj 593 135 unpack f f f f;
#X obj 850 184 expr copysign($f1 \, $f2)/1e+06;
#X obj 823 207 expr copysign($f1 \, $f2)/1e+06;
#X obj 620 184 expr copysign($f1 \, $f2)/1e+06;
#X obj 593 207 expr copysign($f1 \, $f2)/1e+06;
#X text 984 274 coarse;
#X text 717 281 fine;
#X obj 633 414 print dist(km)-fine;
#X obj 633 437 print brng(deg)-fine;
#X obj 871 414 print dist(km)-coarse;
#X obj 871 437 print brng(deg)-coarse;
#X obj 593 375 v distF\$0;
#X obj 683 375 v brngF\$0;
#X obj 921 375 v brngC\$0;
#X obj 831 375 v distC\$0;
#X obj 593 315 t b a a;
#X obj 505 359 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 686 479 v x\$0;
#X obj 686 499 v y\$0;
#X obj 631 525 expr sqrt(x\$0*x\$0+y\$0*y\$0) \; atan2(x\$0 \, y\$0)*360/6.28319
\; x\$0=distC\$0*sin(brngC\$0*6.28319/360)+ distF\$0*sin(brngF\$0*6.28319/360)
\; y\$0=distC\$0*cos(brngC\$0*6.28319/360)+ distF\$0*cos(brngF\$0*6.28319/360)
;
#X obj 631 619 s \$0-dist;
#X obj 704 619 s \$0-brng;
#X obj 45 258 print locations:;
#N canvas 1 91 604 394 notes 0;
#X text 18 15 when location data is enabled \, it is sent via a message
"/location" with 9 numbers. Location coordinate data in iOS is a 64-bit
floating point number (double);
#X text 18 65 PureData is only 32-bit float \, so sending that number
into a patch loses resolution. However \, a tweaky workaround (via
64-bit math in the iOS layer) is provided by the last 4 numbers in
the message.;
#X text 18 125 arg #1: latitude coordinate (as 32-bit float);
#X text 18 145 arg #2: longitude coordinate (as 32-bit float);
#X text 18 165 arg #3: altitude (meters);
#X text 18 185 arg #4: horizontal accuracy (meters radius);
#X text 18 205 arg #5: vertical (altitude) accuracy (meters radius)
;
#X text 18 235 arg #6: latitude "rough";
#X text 18 275 arg #8: latitude "fine";
#X text 18 255 arg #7: longitude "rough";
#X text 18 295 arg #9: longitude "fine";
#X text 208 235 latitude/longitude "rough" = 64-bit value multiplied
by 1000 and truncated to an integer before being sent into Pd;
#X text 208 285 latitude/longitude "fine" = 64-bit value modded by
0.001 \, multiplied by 1e+06 \, and truncated to an integer \, before
being sent into Pd So the "rough" contains the significant digits up
to the thousandths place \, and the "fine" contains the next three
significant digits. An original coordinate value of 123.457 would be
turned into rough=123456 fine=789.;
#X restore 223 113 pd notes;
#X text 202 188 arg #6: latitude "rough";
#X text 202 228 arg #8: latitude "fine";
#X text 202 208 arg #7: longitude "rough";
#X text 202 248 arg #9: longitude "fine";
#X text 170 113 <======;
#N canvas 44 91 1064 607 gui 0;
#X obj 16 196 send toGUI;
#X obj 526 72 list trim;
#X obj 526 49 receive fromGUI;
#X msg 526 118 list /enableLocation \$1;
#X obj 526 141 send toSystem;
#X obj 356 49 loadbang;
#X obj 356 95 send toGUI;
#X obj 425 554 send toGUI;
#N canvas 1 91 504 397 draw_arrow 0;
#X obj 89 257 rot2d;
#X msg 89 149 0.5 0.6;
#X obj 70 327 list store;
#X msg 106 172 0.4 0.7;
#X msg 123 195 0.5 0;
#X msg 140 218 0.6 0.7;
#X obj 89 280 list prepend append;
#X obj 89 303 list trim;
#X obj 70 103 t b b b;
#X obj 89 126 t b b b b;
#X obj 70 81 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 70 19 inlet;
#X obj 70 42 t b a;
#X obj 209 219 t a;
#X obj 242 199 t a;
#X obj 70 350 outlet;
#X connect 0 0 6 0;
#X connect 1 0 0 0;
#X connect 2 0 15 0;
#X connect 3 0 0 0;
#X connect 4 0 0 0;
#X connect 5 0 0 0;
#X connect 6 0 7 0;
#X connect 7 0 2 0;
#X connect 8 0 2 0;
#X connect 8 1 9 0;
#X connect 8 2 13 0;
#X connect 9 0 1 0;
#X connect 9 1 3 0;
#X connect 9 2 4 0;
#X connect 9 3 5 0;
#X connect 10 0 8 0;
#X connect 11 0 12 0;
#X connect 12 0 10 0;
#X connect 12 1 14 0;
#X connect 13 0 2 1;
#X connect 14 0 0 2;
#X restore 406 425 pd draw_arrow;
#X floatatom 406 403 5 0 0 1 angle_(deg) - -;
#X obj 406 485 t b a b;
#X obj 795 474 send toGUI;
#X floatatom 406 335 5 0 0 1 angle_(deg) - -;
#X obj 406 380 +;
#X obj 406 357 * -1;
#X obj 406 312 r \$0-compass;
#X obj 485 364 r \$0-brng;
#X obj 795 428 r \$0-dist;
#X obj 35 554 send toGUI;
#X obj 154 372 loadbang;
#X obj 154 395 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#N canvas 1 91 504 397 draw_arrow 0;
#X obj 89 257 rot2d;
#X msg 89 149 0.5 0.6;
#X obj 70 327 list store;
#X msg 106 172 0.4 0.7;
#X msg 123 195 0.5 0;
#X msg 140 218 0.6 0.7;
#X obj 89 280 list prepend append;
#X obj 89 303 list trim;
#X obj 70 103 t b b b;
#X obj 89 126 t b b b b;
#X obj 70 81 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 70 19 inlet;
#X obj 70 42 t b a;
#X obj 209 219 t a;
#X obj 242 199 t a;
#X obj 70 350 outlet;
#X connect 0 0 6 0;
#X connect 1 0 0 0;
#X connect 2 0 15 0;
#X connect 3 0 0 0;
#X connect 4 0 0 0;
#X connect 5 0 0 0;
#X connect 6 0 7 0;
#X connect 7 0 2 0;
#X connect 8 0 2 0;
#X connect 8 1 9 0;
#X connect 8 2 13 0;
#X connect 9 0 1 0;
#X connect 9 1 3 0;
#X connect 9 2 4 0;
#X connect 9 3 5 0;
#X connect 10 0 8 0;
#X connect 11 0 12 0;
#X connect 12 0 10 0;
#X connect 12 1 14 0;
#X connect 13 0 2 1;
#X connect 14 0 0 2;
#X restore 16 425 pd draw_arrow;
#X obj 16 485 t b a b;
#X floatatom 16 335 5 0 0 1 angle_(deg) - -;
#X obj 16 312 r \$0-compass;
#X text 404 282 draw dest. pointing arrow;
#X text 11 16 disp. lat/long in text;
#X text 354 18 toggle gps reception + automatically enable at start-up
;
#X obj 16 46 r latlon;
#X floatatom 16 403 5 0 0 1 angle_(deg) - -;
#X obj 16 357 * -1;
#X obj 16 380 + 360;
#X text 792 393 disp. distance (km) in text;
#X obj 850 281 s toGUI;
#X obj 807 284 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 757 238 f;
#X obj 807 238 + 1;
#X obj 807 261 % 2;
#X obj 757 134 t a b;
#X msg 784 202 0;
#X obj 757 202 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 850 200 del 1000;
#X msg 850 223 0;
#X obj 757 62 r latlon;
#X obj 757 85 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X text 756 24 location info arrival indicator;
#X obj 757 163 scan 400;
#X msg 757 111 10;
#X obj 16 462 list prepend /lcd.Compass paintpoly;
#X msg 55 508 list /lcd.Compass paintoval 0 0 1 1 1 1 0 1;
#X msg 16 531 list /lcd.Compass paintoval 0.45 0.45 0.55 0.55 1 1 1
1;
#X obj 526 95 route /tgl.Location.En;
#X msg 356 72 list /tgl.Location.En 1;
#X msg 850 252 list /tgl.Location.Act set \$1;
#X msg 16 98 list /disp.Loc.Current.Lat.Coarse \$1;
#X msg 43 121 list /disp.Loc.Current.Lon.Coarse \$1;
#X msg 70 144 list /disp.Loc.Current.Lat.Fine \$1;
#X msg 97 167 list /disp.Loc.Current.Lon.Fine \$1;
#X obj 16 69 unpack f f f f;
#X obj 406 462 list prepend /lcd.Pointer paintpoly;
#X msg 445 508 list /lcd.Pointer paintoval 0 0 1 1 1 1 0 1;
#X msg 406 531 list /lcd.Pointer paintoval 0.45 0.45 0.55 0.55 1 1
1 1;
#X obj 795 451 list prepend /disp.Distance;
#X text 14 281 draw north pointing compass;
#X obj 564 396 loadbang;
#X obj 564 419 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X connect 1 0 51 0;
#X connect 2 0 1 0;
#X connect 3 0 4 0;
#X connect 5 0 52 0;
#X connect 8 0 59 0;
#X connect 9 0 8 0;
#X connect 10 0 61 0;
#X connect 10 1 7 0;
#X connect 10 2 60 0;
#X connect 12 0 14 0;
#X connect 13 0 9 0;
#X connect 14 0 13 0;
#X connect 15 0 12 0;
#X connect 16 0 13 1;
#X connect 17 0 62 0;
#X connect 19 0 20 0;
#X connect 20 0 23 0;
#X connect 21 0 48 0;
#X connect 22 0 50 0;
#X connect 22 1 18 0;
#X connect 22 2 49 0;
#X connect 23 0 30 0;
#X connect 24 0 23 0;
#X connect 28 0 58 0;
#X connect 29 0 21 0;
#X connect 30 0 31 0;
#X connect 31 0 29 0;
#X connect 34 0 53 0;
#X connect 35 0 36 0;
#X connect 36 0 37 0;
#X connect 37 0 35 1;
#X connect 37 0 34 0;
#X connect 38 0 46 0;
#X connect 38 1 39 0;
#X connect 39 0 35 1;
#X connect 40 0 35 0;
#X connect 41 0 42 0;
#X connect 42 0 53 0;
#X connect 43 0 44 0;
#X connect 44 0 47 0;
#X connect 46 0 40 0;
#X connect 46 1 41 0;
#X connect 47 0 38 0;
#X connect 48 0 22 0;
#X connect 49 0 18 0;
#X connect 50 0 18 0;
#X connect 51 0 3 0;
#X connect 52 0 6 0;
#X connect 53 0 33 0;
#X connect 54 0 0 0;
#X connect 55 0 0 0;
#X connect 56 0 0 0;
#X connect 57 0 0 0;
#X connect 58 0 54 0;
#X connect 58 1 55 0;
#X connect 58 2 56 0;
#X connect 58 3 57 0;
#X connect 59 0 10 0;
#X connect 60 0 7 0;
#X connect 61 0 7 0;
#X connect 62 0 11 0;
#X connect 64 0 65 0;
#X connect 65 0 9 0;
#X restore 247 45 pd gui guts;
#X text 735 73 (Lat.fine \, Lon.fine \, Lat.rough \, Lon.rough);
#X msg 428 65 36.123 127.789 456 12;
#X msg 428 114 456 12 36.123 127.789;
#X text 453 90 re-order to be;
#X obj 688 320 print fineinput;
#X obj 928 320 print coarseinput;
#X obj 63 142 / 1000;
#X obj 100 165 / 1000;
#X obj 505 446 sel 1;
#X obj 505 423 v haveSetPoint;
#X obj 964 135 v haveSetPoint;
#X msg 964 112 1;
#X obj 1063 225 send toGUI;
#X msg 1063 202 list /tgl.Location.En \$1;
#X obj 1100 150 del 500;
#X obj 1063 107 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 1063 127 t b b;
#X msg 1063 150 0;
#X msg 1100 173 1;
#X obj 904 43 t b b a;
#X obj 88 453 map 0.005 0.05 1 0.1;
#X connect 0 0 2 0;
#X connect 1 0 3 0;
#X connect 1 1 8 0;
#X connect 2 0 1 0;
#X connect 3 5 68 0;
#X connect 3 6 69 0;
#X connect 3 7 4 2;
#X connect 3 8 4 3;
#X connect 4 0 9 0;
#X connect 4 0 54 0;
#X connect 5 0 39 0;
#X connect 5 0 43 0;
#X connect 6 0 40 0;
#X connect 6 0 44 0;
#X connect 7 0 47 0;
#X connect 10 0 15 0;
#X connect 11 0 10 0;
#X connect 12 0 10 1;
#X connect 14 0 16 0;
#X connect 15 0 19 0;
#X connect 16 0 12 0;
#X connect 16 1 11 0;
#X connect 16 2 13 0;
#X connect 17 0 82 0;
#X connect 19 0 20 0;
#X connect 21 0 81 0;
#X connect 22 0 30 0;
#X connect 22 1 28 3;
#X connect 22 2 29 1;
#X connect 22 3 28 1;
#X connect 23 0 22 0;
#X connect 24 0 41 0;
#X connect 24 0 46 0;
#X connect 25 0 42 0;
#X connect 25 0 45 0;
#X connect 26 0 24 0;
#X connect 26 0 67 0;
#X connect 26 1 25 0;
#X connect 27 0 26 0;
#X connect 28 0 32 0;
#X connect 29 0 28 0;
#X connect 30 0 29 0;
#X connect 30 1 28 2;
#X connect 31 0 34 0;
#X connect 31 1 33 0;
#X connect 31 2 27 2;
#X connect 31 2 34 1;
#X connect 31 3 27 3;
#X connect 31 3 33 1;
#X connect 32 0 36 0;
#X connect 32 1 35 0;
#X connect 32 2 27 0;
#X connect 32 2 36 1;
#X connect 32 3 27 1;
#X connect 32 3 35 1;
#X connect 33 0 7 3;
#X connect 34 0 7 2;
#X connect 35 0 7 1;
#X connect 36 0 7 0;
#X connect 47 0 48 0;
#X connect 47 1 5 0;
#X connect 47 1 66 0;
#X connect 47 2 6 0;
#X connect 48 0 71 0;
#X connect 51 0 52 0;
#X connect 51 1 53 0;
#X connect 63 0 22 0;
#X connect 64 0 31 0;
#X connect 68 0 4 0;
#X connect 69 0 4 1;
#X connect 70 0 51 0;
#X connect 71 0 70 0;
#X connect 73 0 72 0;
#X connect 75 0 74 0;
#X connect 76 0 80 0;
#X connect 77 0 78 0;
#X connect 78 0 79 0;
#X connect 78 1 76 0;
#X connect 79 0 75 0;
#X connect 80 0 75 0;
#X connect 81 0 77 0;
#X connect 81 1 73 0;
#X connect 81 2 31 0;
#X connect 82 0 18 0;
#X connect 82 0 15 1;
#X connect 82 0 19 1;

1
iamyou-en.mmp Normal file

File diff suppressed because one or more lines are too long

1
iamyou-kr.mmp Normal file

File diff suppressed because one or more lines are too long

2
iamyou.pd Normal file
View file

@ -0,0 +1,2 @@
#N canvas 959 463 400 300 10;
#X obj 147 129 iamyou/main;

BIN
iamyou.zip Normal file

Binary file not shown.

BIN
iamyou/01.wav Normal file

Binary file not shown.

59
iamyou/eqpan2~.pd Normal file
View file

@ -0,0 +1,59 @@
#N canvas 413 152 930 452 10;
#X obj 47 27 inlet~;
#X obj 113 372 *~;
#X obj 503 372 *~;
#X obj 456 68 f \$1;
#X obj 456 39 loadbang;
#X obj 456 91 t a a a a;
#X obj 341 113 inlet~;
#X obj 128 261 expr~ max(min(max(min(($v1-$f2+$f3)/max($f3 \, 1e-6)
\, 1) \, 0)+max(min(($v1-$f2-$f3)/-max($f3 \, 1e-6) \, 1) \, 0)-1 \,
1) \, 0);
#X obj 518 261 expr~ max(min(max(min(($v1-$f2+$f3)/max($f3 \, 1e-6)
\, 1) \, 0)+max(min(($v1-$f2-$f3)/-max($f3 \, 1e-6) \, 1) \, 0)-1 \,
1) \, 0);
#X text 637 79 in result \,;
#X text 657 119 -width/2 ~ width/2 -> cross fading;
#X obj 113 401 outlet~;
#X obj 503 401 outlet~;
#X obj 456 160 * -0.5;
#X obj 490 130 * 0.5;
#X obj 128 297 *~ 0.125;
#X obj 518 297 *~ 0.125;
#X text 168 343 sin~/cos~ input is NOT in radians! read help file;
#X text 168 363 equal power == using 3dB curve \, for ex. sin/cos;
#X text 657 139 +width/2 ~ width*(1.5) -> right fade-out;
#X text 607 39 -width*(1.5) ~ width/2 => left fade-in/out;
#X text 607 59 -width/2 ~ width*(1.5) => right fade-in/out;
#X text 657 99 -width*(1.5) ~ -width/2 -> left fade-in;
#X obj 128 320 -~ 0.25;
#X obj 128 343 cos~;
#X obj 518 343 cos~;
#X obj 518 320 -~ 0.25;
#X text 578 317 sin~ is NOT part of pd vanilla!;
#X text 578 337 [sin~] ==> [-~ 0.25]--[cos~];
#X text 587 19 arg #1 (inlet #3): width:;
#X obj 417 39 inlet;
#X connect 0 0 1 0;
#X connect 0 0 2 0;
#X connect 1 0 11 0;
#X connect 2 0 12 0;
#X connect 3 0 5 0;
#X connect 4 0 3 0;
#X connect 5 0 13 0;
#X connect 5 1 7 2;
#X connect 5 2 14 0;
#X connect 5 3 8 2;
#X connect 6 0 7 0;
#X connect 6 0 8 0;
#X connect 7 0 15 0;
#X connect 8 0 16 0;
#X connect 13 0 7 1;
#X connect 14 0 8 1;
#X connect 15 0 23 0;
#X connect 16 0 26 0;
#X connect 23 0 24 0;
#X connect 24 0 1 1;
#X connect 25 0 2 1;
#X connect 26 0 25 0;
#X connect 30 0 5 0;

24
iamyou/eqpan~.pd Normal file
View file

@ -0,0 +1,24 @@
#N canvas 1 91 594 362 10;
#X obj 79 196 expr~ if($v1 < -45 \, -45 \, if($v1 > 45 \, 45 \, $v1))
;
#X obj 79 173 inlet~;
#X obj 18 173 inlet~;
#X obj 18 320 outlet~;
#X obj 249 320 outlet~;
#X obj 79 219 expr~ $v1*0.0174533;
#X obj 18 278 expr~ $v1*0.707107*(cos($v2)-sin($v2)) \; $v1*0.707107*(cos($v2)+sin($v2))
\;;
#X text 212 15 vanilla version of [pan~];
#X text 212 115 https://github.com/MetaluNet/moonlib/blob/externals/moonlib/panvol~.c
;
#X text 212 35 f = f < -45 ? -45 : f \; f = f > 45 ? 45 : f \; angle
= f * RADCONST \; x->right = ROOT2DIV2 * (cos(angle) + sin(angle))
\; x->left = ROOT2DIV2 * (cos(angle) - sin(angle)) \;;
#X text 245 230 NOTE: RADCONST & ROOT2DIV2 is lower resolution than
original.;
#X connect 0 0 5 0;
#X connect 1 0 0 0;
#X connect 2 0 6 0;
#X connect 5 0 6 1;
#X connect 6 0 3 0;
#X connect 6 1 4 0;

771
iamyou/main.pd Normal file
View file

@ -0,0 +1,771 @@
#N canvas 230 91 411 305 10;
#X obj 14 14 receive fromSystem;
#X obj 14 60 route /location /compass;
#X obj 14 37 list trim;
#X obj 14 113 unpack f f f f f f f f f;
#X obj 63 192 pack f f f f, f 19;
#X obj 84 83 s \$0-compass;
#X obj 83 225 s latlon;
#X obj 45 258 print locations:;
#N canvas 1 91 604 394 notes 0;
#X text 18 15 when location data is enabled \, it is sent via a message
"/location" with 9 numbers. Location coordinate data in iOS is a 64-bit
floating point number (double);
#X text 18 65 PureData is only 32-bit float \, so sending that number
into a patch loses resolution. However \, a tweaky workaround (via
64-bit math in the iOS layer) is provided by the last 4 numbers in
the message.;
#X text 18 125 arg #1: latitude coordinate (as 32-bit float);
#X text 18 145 arg #2: longitude coordinate (as 32-bit float);
#X text 18 165 arg #3: altitude (meters);
#X text 18 185 arg #4: horizontal accuracy (meters radius);
#X text 18 205 arg #5: vertical (altitude) accuracy (meters radius)
;
#X text 18 235 arg #6: latitude "rough";
#X text 18 275 arg #8: latitude "fine";
#X text 18 255 arg #7: longitude "rough";
#X text 18 295 arg #9: longitude "fine";
#X text 208 235 latitude/longitude "rough" = 64-bit value multiplied
by 1000 and truncated to an integer before being sent into Pd;
#X text 208 285 latitude/longitude "fine" = 64-bit value modded by
0.001 \, multiplied by 1e+06 \, and truncated to an integer \, before
being sent into Pd So the "rough" contains the significant digits up
to the thousandths place \, and the "fine" contains the next three
significant digits. An original coordinate value of 123.457 would be
turned into rough=123456 fine=789.;
#X restore 223 113 pd notes;
#X text 202 188 arg #6: latitude "rough";
#X text 202 228 arg #8: latitude "fine";
#X text 202 208 arg #7: longitude "rough";
#X text 202 248 arg #9: longitude "fine";
#X text 170 113 <======;
#N canvas 1 91 1358 649 gui 0;
#X obj 16 239 send toGUI;
#X obj 526 72 list trim;
#X obj 526 49 receive fromGUI;
#X msg 526 118 list /enableLocation \$1;
#X obj 526 141 send toSystem;
#X obj 356 49 loadbang;
#X obj 356 95 send toGUI;
#N canvas 590 91 614 581 draw_arrow 0;
#X obj 89 257 rot2d;
#X msg 89 149 0.5 0.6;
#X obj 70 327 list store;
#X msg 106 172 0.4 0.7;
#X msg 140 218 0.6 0.7;
#X obj 89 280 list prepend append;
#X obj 89 303 list trim;
#X obj 70 103 t b b b;
#X obj 89 126 t b b b b;
#X obj 70 81 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 70 19 inlet;
#X obj 70 42 t b a;
#X obj 209 219 t a;
#X obj 242 199 t a;
#X msg 123 195 0.5 0;
#X obj 70 350 list prepend /lcd.Pointer paintpoly;
#X obj 70 373 t b a b;
#X msg 70 419 list /lcd.Pointer paintoval 0.45 0.45 0.55 0.55 1 1 1
1;
#X obj 89 442 send toGUI;
#X msg 244 311 list /lcd.Pointer paintoval 0 0 1 1 0.6 1 0.6 1;
#X msg 244 288 list /lcd.Pointer paintoval 0 0 1 1 0 0.8 0.6 1;
#X msg 109 396 list /lcd.Pointer paintoval 0 0 1 1 0.6 1 0.6 1;
#X connect 0 0 5 0;
#X connect 1 0 0 0;
#X connect 2 0 15 0;
#X connect 3 0 0 0;
#X connect 4 0 0 0;
#X connect 5 0 6 0;
#X connect 6 0 2 0;
#X connect 7 0 2 0;
#X connect 7 1 8 0;
#X connect 7 2 12 0;
#X connect 8 0 1 0;
#X connect 8 1 3 0;
#X connect 8 2 14 0;
#X connect 8 3 4 0;
#X connect 9 0 7 0;
#X connect 10 0 11 0;
#X connect 11 0 9 0;
#X connect 11 1 13 0;
#X connect 12 0 2 1;
#X connect 13 0 0 2;
#X connect 14 0 0 0;
#X connect 15 0 16 0;
#X connect 16 0 17 0;
#X connect 16 1 18 0;
#X connect 16 2 21 0;
#X connect 17 0 18 0;
#X connect 21 0 18 0;
#X restore 406 597 pd draw_arrow;
#X floatatom 406 403 5 0 0 1 angle_(deg) - -;
#X obj 100 580 send toGUI;
#X floatatom 406 335 5 0 0 1 angle_(deg) - -;
#X obj 406 380 +;
#X obj 406 357 * -1;
#X obj 406 312 r \$0-compass;
#X obj 586 417 r \$0-brng;
#X obj 100 534 r \$0-dist;
#X obj 154 372 loadbang;
#X obj 154 395 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#N canvas 592 91 458 517 draw_arrow 0;
#X obj 89 257 rot2d;
#X msg 89 149 0.5 0.6;
#X obj 70 327 list store;
#X msg 106 172 0.4 0.7;
#X msg 140 218 0.6 0.7;
#X obj 89 280 list prepend append;
#X obj 89 303 list trim;
#X obj 70 103 t b b b;
#X obj 89 126 t b b b b;
#X obj 70 81 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 70 19 inlet;
#X obj 70 42 t b a;
#X obj 209 219 t a;
#X obj 242 199 t a;
#X obj 87 465 send toGUI;
#X obj 70 350 list prepend /lcd.Compass paintpoly;
#X msg 70 442 list /lcd.Compass paintoval 0.45 0.45 0.55 0.55 1 1 1
1;
#X obj 70 373 t b a b b;
#X msg 123 195 0.5 0.1;
#X msg 104 418 list /lcd.Compass frameoval 0.1 0.1 0.9 0.9 0 1 1 1
;
#X msg 121 395 list /lcd.Compass paintoval 0 0 1 1 1 1 0 1;
#X connect 0 0 5 0;
#X connect 1 0 0 0;
#X connect 2 0 15 0;
#X connect 3 0 0 0;
#X connect 4 0 0 0;
#X connect 5 0 6 0;
#X connect 6 0 2 0;
#X connect 7 0 2 0;
#X connect 7 1 8 0;
#X connect 7 2 12 0;
#X connect 8 0 1 0;
#X connect 8 1 3 0;
#X connect 8 2 18 0;
#X connect 8 3 4 0;
#X connect 9 0 7 0;
#X connect 10 0 11 0;
#X connect 11 0 9 0;
#X connect 11 1 13 0;
#X connect 12 0 2 1;
#X connect 13 0 0 2;
#X connect 15 0 17 0;
#X connect 16 0 14 0;
#X connect 17 0 16 0;
#X connect 17 1 14 0;
#X connect 17 3 20 0;
#X connect 18 0 0 0;
#X connect 19 0 14 0;
#X connect 20 0 14 0;
#X restore 16 425 pd draw_arrow;
#X floatatom 16 335 5 0 0 1 angle_(deg) - -;
#X obj 16 312 r \$0-compass;
#X text 11 16 disp. lat/long in text;
#X text 354 18 toggle gps reception + automatically enable at start-up
;
#X obj 16 46 r latlon;
#X floatatom 16 403 5 0 0 1 angle_(deg) - -;
#X obj 16 357 * -1;
#X obj 16 380 + 360;
#X text 97 499 disp. distance (km) in text;
#X obj 850 281 s toGUI;
#X obj 807 284 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 757 238 f;
#X obj 807 238 + 1;
#X obj 807 261 % 2;
#X obj 757 134 t a b;
#X msg 784 202 0;
#X obj 757 202 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 850 200 del 1000;
#X msg 850 223 0;
#X obj 757 62 r latlon;
#X obj 757 85 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X text 756 24 location info arrival indicator;
#X obj 757 163 scan 400;
#X msg 757 111 10;
#X obj 526 95 route /tgl.Location.En;
#X msg 356 72 list /tgl.Location.En 1;
#X msg 850 252 list /tgl.Location.Act set \$1;
#X msg 16 98 list /disp.Loc.Current.Lat.Coarse \$1;
#X msg 43 121 list /disp.Loc.Current.Lon.Coarse \$1;
#X msg 70 167 list /disp.Loc.Current.Lat.Fine \$1;
#X msg 97 213 list /disp.Loc.Current.Lon.Fine \$1;
#X obj 16 69 unpack f f f f;
#X obj 100 557 list prepend /disp.Distance;
#X text 14 281 draw north pointing compass;
#X obj 304 367 loadbang;
#X obj 304 390 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X text 404 282 draw dest. pointing arrow = bearing arrow;
#X obj 586 332 expr fmod(($f1+360) \, 360);
#X obj 586 355 expr fmod(($f1+180) \, 360)-180;
#X obj 586 378 s \$0-brng-error;
#N canvas 24 163 465 242 tester 0;
#X obj 17 67 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1
;
#X obj 17 87 metro 100;
#X obj 87 110 vline~;
#X obj 87 133 snapshot~;
#X floatatom 87 156 5 0 0 0 - - -;
#X msg 87 74 0 0 \, 50 2000 \, 0 2000 2000 \, 360 0 4000 \, 310 2000
4000 \, 360 2000 6000;
#X obj 87 19 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1
;
#X obj 87 45 metro 8000;
#X obj 87 178 outlet;
#X connect 0 0 1 0;
#X connect 1 0 3 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 4 0 8 0;
#X connect 5 0 2 0;
#X connect 6 0 7 0;
#X connect 6 0 0 0;
#X connect 7 0 5 0;
#X restore 331 312 pd tester;
#X obj 489 487 tgl 15 0 empty \$0-veryclose r:0-veryclose 17 7 0 10
-262144 -1 -1 0 1;
#N canvas 719 91 614 663 draw_veryclose 0;
#X obj 89 257 rot2d;
#X msg 89 149 0.5 0.6;
#X obj 70 327 list store;
#X msg 106 172 0.4 0.7;
#X msg 140 218 0.6 0.7;
#X obj 89 280 list prepend append;
#X obj 89 303 list trim;
#X obj 70 103 t b b b;
#X obj 89 126 t b b b b;
#X obj 70 81 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 70 19 inlet;
#X obj 70 42 t b a;
#X obj 209 219 t a;
#X obj 242 199 t a;
#X obj 70 350 list prepend /lcd.Pointer paintpoly;
#X obj 161 577 send toGUI;
#X msg 123 195 0.5 0.3;
#X msg 113 465 list /lcd.Pointer frameoval 0.12 0.12 0.88 0.88 1 1
0 0.7;
#X msg 142 419 list /lcd.Pointer frameoval 0 0 1 1 1 1 0 1;
#X obj 70 373 t b a b b b b b;
#X msg 70 511 list /lcd.Pointer paintoval 0.45 0.45 0.55 0.55 0 1 0
1;
#X msg 99 488 list /lcd.Pointer frameoval 0.25 0.25 0.75 0.75 1 1 0
0.5;
#X msg 128 442 list /lcd.Pointer frameoval 0.05 0.05 0.95 0.95 1 1
0 0.9;
#X msg 222 325 list /lcd.Pointer paintoval 0 0 1 1 1 0.4 0.6 1;
#X msg 157 396 list /lcd.Pointer paintoval 0 0 1 1 0 0.4 0.4 1;
#X connect 0 0 5 0;
#X connect 1 0 0 0;
#X connect 2 0 14 0;
#X connect 3 0 0 0;
#X connect 4 0 0 0;
#X connect 5 0 6 0;
#X connect 6 0 2 0;
#X connect 7 0 2 0;
#X connect 7 1 8 0;
#X connect 7 2 12 0;
#X connect 8 0 1 0;
#X connect 8 1 3 0;
#X connect 8 2 16 0;
#X connect 8 3 4 0;
#X connect 9 0 7 0;
#X connect 10 0 11 0;
#X connect 11 0 9 0;
#X connect 11 1 13 0;
#X connect 12 0 2 1;
#X connect 13 0 0 2;
#X connect 14 0 19 0;
#X connect 16 0 0 0;
#X connect 17 0 15 0;
#X connect 18 0 15 0;
#X connect 19 0 20 0;
#X connect 19 1 15 0;
#X connect 19 2 21 0;
#X connect 19 3 17 0;
#X connect 19 5 18 0;
#X connect 19 6 24 0;
#X connect 20 0 15 0;
#X connect 21 0 15 0;
#X connect 24 0 15 0;
#X restore 491 597 pd draw_veryclose;
#X obj 491 574 spigot;
#X obj 445 531 == 0;
#X obj 406 574 spigot;
#X obj 445 508 f;
#X obj 406 485 t a a b;
#X obj 524 534 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 445 554 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X obj 489 440 loadbang;
#X msg 489 463 0;
#X obj 70 144 makefilename %03d;
#X obj 97 190 makefilename %03d;
#X obj 876 589 send toGUI;
#X msg 876 566 list /tgl.Location.En \$1;
#X obj 913 514 del 500;
#X obj 876 471 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 876 491 t b b;
#X msg 876 514 0;
#X msg 913 537 1;
#X obj 935 171 del;
#X text 681 423 if there is no GPS update for a long time \, let's
try to get one intentionally by performing a enable/disable cycle.
;
#X msg 935 148 20000;
#X text 947 123 20 seconds;
#X obj 1081 283 send toGUI;
#X msg 1101 195 list /disp.Loc.Pointing.Lon.Coarse \$1;
#X msg 1111 248 list /disp.Loc.Pointing.Lon.Fine \$1;
#X msg 1091 172 list /disp.Loc.Pointing.Lat.Fine \$1;
#X msg 1081 119 list /disp.Loc.Pointing.Lat.Coarse \$1;
#X obj 1081 96 unpack f f f f;
#X obj 1081 73 r PRESET;
#X text 1145 26 for preset ui;
#X obj 1091 149 makefilename %03d;
#X obj 1111 225 makefilename %03d;
#X connect 1 0 43 0;
#X connect 2 0 1 0;
#X connect 3 0 4 0;
#X connect 5 0 44 0;
#X connect 8 0 56 0;
#X connect 8 0 66 0;
#X connect 10 0 12 0;
#X connect 11 0 8 0;
#X connect 12 0 11 0;
#X connect 13 0 10 0;
#X connect 14 0 11 1;
#X connect 15 0 51 0;
#X connect 16 0 17 0;
#X connect 17 0 19 0;
#X connect 19 0 25 0;
#X connect 20 0 19 0;
#X connect 23 0 50 0;
#X connect 24 0 18 0;
#X connect 25 0 26 0;
#X connect 26 0 24 0;
#X connect 29 0 45 0;
#X connect 30 0 31 0;
#X connect 31 0 32 0;
#X connect 32 0 30 1;
#X connect 32 0 29 0;
#X connect 33 0 41 0;
#X connect 33 1 34 0;
#X connect 34 0 30 1;
#X connect 35 0 30 0;
#X connect 36 0 37 0;
#X connect 37 0 45 0;
#X connect 38 0 39 0;
#X connect 39 0 42 0;
#X connect 39 0 82 0;
#X connect 41 0 35 0;
#X connect 41 1 36 0;
#X connect 42 0 33 0;
#X connect 43 0 3 0;
#X connect 44 0 6 0;
#X connect 45 0 28 0;
#X connect 46 0 0 0;
#X connect 47 0 0 0;
#X connect 48 0 0 0;
#X connect 49 0 0 0;
#X connect 50 0 46 0;
#X connect 50 1 47 0;
#X connect 50 2 71 0;
#X connect 50 3 72 0;
#X connect 51 0 9 0;
#X connect 53 0 54 0;
#X connect 54 0 8 0;
#X connect 56 0 57 0;
#X connect 57 0 58 0;
#X connect 59 0 8 0;
#X connect 60 0 65 1;
#X connect 62 0 61 0;
#X connect 63 0 68 0;
#X connect 64 0 7 0;
#X connect 65 0 67 0;
#X connect 65 0 63 0;
#X connect 66 0 64 0;
#X connect 66 1 62 0;
#X connect 66 2 65 0;
#X connect 67 0 62 1;
#X connect 68 0 64 1;
#X connect 69 0 70 0;
#X connect 70 0 65 1;
#X connect 71 0 48 0;
#X connect 72 0 49 0;
#X connect 74 0 73 0;
#X connect 75 0 79 0;
#X connect 76 0 77 0;
#X connect 77 0 78 0;
#X connect 77 1 75 0;
#X connect 78 0 74 0;
#X connect 79 0 74 0;
#X connect 80 0 76 0;
#X connect 82 0 80 0;
#X connect 85 0 84 0;
#X connect 86 0 84 0;
#X connect 87 0 84 0;
#X connect 88 0 84 0;
#X connect 89 0 88 0;
#X connect 89 1 92 0;
#X connect 89 2 85 0;
#X connect 89 3 93 0;
#X connect 90 0 89 0;
#X connect 92 0 87 0;
#X connect 93 0 86 0;
#X restore 287 25 pd gui guts;
#X obj 63 142 / 1000;
#X obj 100 165 / 1000;
#N canvas 72 91 1062 623 location 0;
#X obj 183 351 geocoord_dist;
#X obj 273 351 geocoord_bearing;
#X obj 183 291 pack f f f f;
#N canvas 1 91 631 615 get_point 0;
#X obj 297 17 r fromGUI;
#X obj 297 86 sel 1;
#X obj 297 173 send toSystem;
#X obj 17 40 list trim;
#X obj 17 17 r fromSystem;
#X obj 17 63 route /textDialog;
#X obj 388 86 sel 1;
#X obj 297 40 list trim;
#X obj 17 236 tofloat;
#X obj 205 236 tofloat;
#X obj 297 63 route /btn.Set.Lat /btn.Set.Lon;
#X msg 297 110 list /textDialog /diagInputLat Set Latitude:;
#X msg 317 143 list /textDialog /diagInputLong Set Longitude:;
#X obj 17 576 send toGUI;
#X obj 17 86 route /diagInputLong /diagInputLat;
#X msg 17 494 list /disp.Loc.Pointing.Lon.Coarse \$1;
#X msg 44 547 list /disp.Loc.Pointing.Lon.Fine \$1;
#X obj 159 447 outlet;
#X obj 159 424 pack f f f f;
#X obj 343 400 send toGUI;
#X msg 370 371 list /disp.Loc.Pointing.Lat.Fine \$1;
#X msg 343 325 list /disp.Loc.Pointing.Lat.Coarse \$1;
#X text 156 469 (Lat.fine \, Lon.fine \, Lat.rough \, Lon.rough);
#X obj 159 401 f;
#X obj 159 372 t b a;
#X obj 205 272 expr $f1+int($f2*1000)/1000 \; rint(abs($f2*1000000))%1000
;
#X obj 17 272 expr $f1+int($f2*1000)/1000 \; rint(abs($f2*1000000))%1000
;
#X obj 44 524 makefilename %03d;
#X obj 370 348 makefilename %03d;
#X connect 0 0 7 0;
#X connect 1 0 11 0;
#X connect 3 0 5 0;
#X connect 4 0 3 0;
#X connect 5 0 14 0;
#X connect 6 0 12 0;
#X connect 7 0 10 0;
#X connect 8 0 26 0;
#X connect 8 1 26 1;
#X connect 9 0 25 0;
#X connect 9 1 25 1;
#X connect 10 0 1 0;
#X connect 10 1 6 0;
#X connect 11 0 2 0;
#X connect 12 0 2 0;
#X connect 14 0 8 0;
#X connect 14 1 9 0;
#X connect 15 0 13 0;
#X connect 16 0 13 0;
#X connect 18 0 17 0;
#X connect 20 0 19 0;
#X connect 21 0 19 0;
#X connect 23 0 18 0;
#X connect 24 0 23 0;
#X connect 24 1 18 3;
#X connect 25 0 18 2;
#X connect 25 0 21 0;
#X connect 25 1 23 1;
#X connect 25 1 28 0;
#X connect 26 0 15 0;
#X connect 26 0 24 0;
#X connect 26 1 18 1;
#X connect 26 1 27 0;
#X connect 27 0 16 0;
#X connect 28 0 20 0;
#X restore 494 19 pd get_point;
#X obj 183 42 unpack f f f f;
#X obj 183 19 r latlon;
#X obj 421 351 geocoord_dist;
#X obj 511 351 geocoord_bearing;
#X obj 421 314 t a a;
#X obj 421 291 pack f f f f;
#X obj 183 111 pack f f f f;
#X obj 183 88 f;
#X obj 183 65 t b a;
#X obj 413 134 unpack f f f f;
#X obj 183 134 unpack f f f f;
#X obj 440 183 expr copysign($f1 \, $f2)/1e+06;
#X obj 413 206 expr copysign($f1 \, $f2)/1e+06;
#X obj 210 183 expr copysign($f1 \, $f2)/1e+06;
#X obj 183 206 expr copysign($f1 \, $f2)/1e+06;
#X text 574 273 coarse;
#X text 307 280 fine;
#X obj 183 374 v distF\$0;
#X obj 273 374 v brngF\$0;
#X obj 511 374 v brngC\$0;
#X obj 421 374 v distC\$0;
#X obj 183 314 t b a a;
#X obj 55 372 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 236 428 v x\$0;
#X obj 236 448 v y\$0;
#X obj 181 568 s \$0-dist;
#X obj 266 568 s \$0-brng;
#X text 325 72 (Lat.fine \, Lon.fine \, Lat.rough \, Lon.rough);
#X msg 18 64 36.123 127.789 456 12;
#X msg 18 113 456 12 36.123 127.789;
#X text 43 89 re-order to be;
#X obj 55 415 sel 1;
#X obj 55 392 v haveSetPoint;
#X obj 554 134 v haveSetPoint;
#X msg 554 111 1;
#X obj 653 414 send toGUI;
#X msg 653 391 list /tgl.Location.En \$1;
#X obj 690 339 del 500;
#X obj 653 296 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 653 316 t b b;
#X msg 653 339 0;
#X msg 690 362 1;
#X obj 494 42 t b b a;
#X obj 518 319 print input(C);
#X obj 278 319 print input(F);
#X obj 181 474 expr sqrt(x\$0*x\$0+y\$0*y\$0) \; fmod(atan2(x\$0 \,
y\$0)*360/6.28319+360 \, 360) \; x\$0=distC\$0*sin(brngC\$0*6.28319/360)+
distF\$0*sin(brngF\$0*6.28319/360) \; y\$0=distC\$0*cos(brngC\$0*6.28319/360)+
distF\$0*cos(brngF\$0*6.28319/360);
#X obj 628 520 tgl 15 0 \$0-veryclose empty s:0-veryclose 17 7 0 10
-262144 -1 -1 0 1;
#X obj 628 474 r \$0-dist;
#X obj 780 39 r PRESET;
#X text 636 73 location input-format: (Lat.rough \, Lat.fine \, Lon.rough
\, Lon.fine), f 66;
#X text 636 195 location re-formated: (Lat.fine \, Lon.fine \, Lat.rough
\, Lon.rough), f 65;
#X obj 780 98 unpack f f f f;
#X obj 780 167 pack f f f f;
#X obj 780 144 f;
#X obj 780 121 t b a;
#X obj 398 421 pack f f;
#X obj 398 444 print dist(km)-brng(deg);
#X obj 628 497 < 0.05;
#X connect 0 0 21 0;
#X connect 1 0 22 0;
#X connect 2 0 25 0;
#X connect 3 0 46 0;
#X connect 4 0 12 0;
#X connect 4 1 10 3;
#X connect 4 2 11 1;
#X connect 4 3 10 1;
#X connect 5 0 4 0;
#X connect 6 0 24 0;
#X connect 7 0 23 0;
#X connect 8 0 6 0;
#X connect 8 1 7 0;
#X connect 9 0 8 0;
#X connect 10 0 14 0;
#X connect 11 0 10 0;
#X connect 12 0 11 0;
#X connect 12 1 10 2;
#X connect 13 0 16 0;
#X connect 13 1 15 0;
#X connect 13 2 9 2;
#X connect 13 2 16 1;
#X connect 13 3 9 3;
#X connect 13 3 15 1;
#X connect 14 0 18 0;
#X connect 14 1 17 0;
#X connect 14 2 9 0;
#X connect 14 2 18 1;
#X connect 14 3 9 1;
#X connect 14 3 17 1;
#X connect 15 0 2 3;
#X connect 16 0 2 2;
#X connect 17 0 2 1;
#X connect 18 0 2 0;
#X connect 25 0 26 0;
#X connect 25 1 0 0;
#X connect 25 2 1 0;
#X connect 26 0 36 0;
#X connect 32 0 4 0;
#X connect 33 0 13 0;
#X connect 35 0 49 0;
#X connect 36 0 35 0;
#X connect 38 0 37 0;
#X connect 40 0 39 0;
#X connect 41 0 45 0;
#X connect 42 0 43 0;
#X connect 43 0 44 0;
#X connect 43 1 41 0;
#X connect 44 0 40 0;
#X connect 45 0 40 0;
#X connect 46 0 42 0;
#X connect 46 1 38 0;
#X connect 46 2 13 0;
#X connect 49 0 29 0;
#X connect 49 0 59 0;
#X connect 49 1 30 0;
#X connect 49 1 59 1;
#X connect 51 0 61 0;
#X connect 52 0 55 0;
#X connect 55 0 58 0;
#X connect 55 1 57 1;
#X connect 55 2 56 3;
#X connect 55 3 56 1;
#X connect 56 0 46 0;
#X connect 57 0 56 0;
#X connect 58 0 57 0;
#X connect 58 1 56 2;
#X connect 59 0 60 0;
#X connect 61 0 50 0;
#X restore 287 48 pd location guts;
#N canvas 142 162 800 432 audio 1;
#X obj 18 146 wav2~;
#X msg 18 68 01.wav;
#X msg 31 117 1;
#X msg 667 227 \; pd dsp 1;
#X obj 31 16 loadbang;
#X obj 153 39 r \$0-dist;
#X obj 18 393 dac~;
#X floatatom 318 43 5 0 0 1 - - -;
#X floatatom 153 85 5 0 0 1 vol - -;
#X obj 153 146 line~;
#X obj 31 39 t b b;
#X obj 667 204 loadbang;
#X obj 318 20 r \$0-brng-error;
#X obj 318 248 line~;
#X obj 18 355 eqpan2~ 30;
#X obj 363 81 t a a;
#X obj 363 110 -;
#X obj 363 156 > 100;
#X obj 318 65 t a a;
#X obj 363 179 sel 1 0;
#X obj 318 225 pack f f;
#X msg 393 202 100;
#X msg 363 202 0;
#X obj 363 133 abs;
#X text 419 150 if abs of diff. greater than 100 \, disable fading.
(otherwise one will hear glitches.);
#X text 411 47 for a very big jumps \, like 180 <-> -180 .. this is
not regular change \, we should disable [line~] for such events.;
#X obj 222 176 print vol;
#X obj 222 153 print brng-err;
#X obj 222 130 skip 2000;
#X obj 75 226 tgl 15 0 empty \$0-veryclose r:0-veryclose 17 7 0 10
-262144 -1 -1 0 1;
#X obj 75 246 sel 1 0;
#X msg 94 269 30;
#X msg 75 292 120;
#X text 113 291 <== enabled for every direction but pan-in/out;
#X obj 18 169 expr~ $v1 * pow($v2 \, 2);
#X obj 153 62 map 0.005 0.05 1 0.3;
#X msg 153 123 \$1 100;
#X connect 0 0 34 0;
#X connect 1 0 0 0;
#X connect 2 0 0 1;
#X connect 4 0 10 0;
#X connect 5 0 35 0;
#X connect 7 0 18 0;
#X connect 7 0 28 0;
#X connect 8 0 36 0;
#X connect 8 0 26 0;
#X connect 9 0 34 1;
#X connect 10 0 2 0;
#X connect 10 1 1 0;
#X connect 11 0 3 0;
#X connect 12 0 7 0;
#X connect 13 0 14 1;
#X connect 14 0 6 0;
#X connect 14 1 6 1;
#X connect 15 0 16 1;
#X connect 15 1 16 0;
#X connect 16 0 23 0;
#X connect 17 0 19 0;
#X connect 18 0 20 0;
#X connect 18 1 15 0;
#X connect 19 0 22 0;
#X connect 19 1 21 0;
#X connect 20 0 13 0;
#X connect 21 0 20 1;
#X connect 22 0 20 1;
#X connect 23 0 17 0;
#X connect 28 0 27 0;
#X connect 29 0 30 0;
#X connect 30 0 32 0;
#X connect 30 1 31 0;
#X connect 31 0 14 2;
#X connect 32 0 14 2;
#X connect 34 0 14 0;
#X connect 35 0 8 0;
#X connect 36 0 9 0;
#X restore 287 71 pd audio guts;
#N canvas 1 91 455 449 PRESET 0;
#X obj 18 263 s PRESET;
#X obj 18 23 loadbang;
#X obj 18 92 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 18 69 del;
#X msg 18 46 500;
#X msg 18 214 37.574 749 126.926 80;
#X msg 17 359 37.573 638 126.924 850;
#X text 15 334 location input-format: (Lat.rough \, Lat.fine \, Lon.rough
\, Lon.fine), f 66;
#X text 27 148 <==== if you want to enable PRESET \, connect here.
;
#X text 168 213 <-- location numbers goes here. EDIT.;
#X text 179 359 NOTE: DO NOT type-in COMMA( \, ) between!;
#X text 15 312 ========================== README :D ==========================
, f 66;
#X text 15 394 (please insert a space after 3rd fractional digit \,
that is to say \, split 1 number to 2 why? -->);
#N canvas 1 91 445 320 more 0;
#X msg 23 143 37.5736;
#X floatatom 23 166 9 0 0 0 - - -;
#X msg 23 233 37.573 638 126.924 850;
#X msg 23 79 37.5736 126.925;
#X text 21 18 let's say our listening location is \; Lat. 37.5736 \,
Long. 126.925;
#X text 21 58 natural write-up of this location;
#X text 21 108 but this will suffer resolution problem in Pd (Pd support
only up to 6 significands), f 46;
#X text 21 198 so \, we write this slightly differently! (inserting
a space after 3rd fractional digit);
#X text 21 268 location data format in Pd here is:;
#X text 21 288 location input-format: (Lat.rough \, Lat.fine \, Lon.rough
\, Lon.fine), f 66;
#X connect 0 0 1 0;
#X restore 246 414 pd more notes;
#X connect 1 0 4 0;
#X connect 3 0 2 0;
#X connect 4 0 3 0;
#X connect 5 0 0 0;
#X restore 190 24 pd PRESET;
#X connect 0 0 2 0;
#X connect 1 0 3 0;
#X connect 1 1 5 0;
#X connect 2 0 1 0;
#X connect 3 5 15 0;
#X connect 3 6 16 0;
#X connect 3 7 4 2;
#X connect 3 8 4 3;
#X connect 4 0 6 0;
#X connect 15 0 4 0;
#X connect 16 0 4 1;

12
iamyou/skip-help.pd Normal file
View file

@ -0,0 +1,12 @@
#N canvas 620 344 450 300 12;
#X floatatom 24 125 5 0 0 0 - - -;
#X floatatom 24 188 5 0 0 0 - - -;
#X obj 24 163 skip 1000;
#X obj 24 212 print;
#X text 19 13 [skip] only output if change \, otherwise skipped;
#X text 19 27 [skip] only output up to 1 output per \$1 millisec.;
#X text 19 57 [skip] once \, used for not to overflow relatively slow
network with too many messages;
#X connect 0 0 2 0;
#X connect 1 0 3 0;
#X connect 2 0 1 0;

41
iamyou/skip.pd Normal file
View file

@ -0,0 +1,41 @@
#N canvas 240 23 254 344 12;
#X floatatom 18 49 5 0 0 0 - - -;
#X obj 18 108 change;
#X obj 18 78 spigot;
#X obj 18 138 t a b;
#X obj 50 168 t b b;
#X msg 118 278 0;
#X obj 73 63 tgl 15 0 empty \$0-gate r:0-gate 17 7 0 10 -262144 -1
-1 1 1;
#X msg 50 278 1;
#X msg 161 43 1;
#X floatatom 167 265 5 0 0 0 - - -;
#X obj 18 19 inlet;
#X obj 161 19 loadbang;
#X obj 161 73 tgl 15 0 \$0-gate empty s:0-gate 17 7 0 10 -262144 -1
-1 1 1;
#X obj 50 308 tgl 15 0 \$0-gate empty s:0-gate 17 7 0 10 -262144 -1
-1 1 1;
#X obj 50 198 del \$1;
#X obj 50 222 t b b;
#X obj 81 108 v \$0-track;
#X obj 82 246 v \$0-track;
#X obj 167 294 outlet;
#X connect 0 0 2 0;
#X connect 0 0 16 0;
#X connect 1 0 3 0;
#X connect 2 0 1 0;
#X connect 3 1 4 0;
#X connect 4 0 14 0;
#X connect 4 1 5 0;
#X connect 5 0 13 0;
#X connect 6 0 2 1;
#X connect 7 0 13 0;
#X connect 8 0 12 0;
#X connect 9 0 18 0;
#X connect 10 0 0 0;
#X connect 11 0 8 0;
#X connect 14 0 15 0;
#X connect 15 0 7 0;
#X connect 15 1 17 0;
#X connect 17 0 9 0;