diff --git a/iamyou.pd b/iamyou.pd index 3c6b29d..7a2652f 100644 --- a/iamyou.pd +++ b/iamyou.pd @@ -1,2 +1,2 @@ -#N canvas 959 463 400 300 10; +#N canvas 959 171 400 300 10; #X obj 147 129 iamyou/main; diff --git a/iamyou.zip b/iamyou.zip index 7c2131f..0b075ea 100644 Binary files a/iamyou.zip and b/iamyou.zip differ diff --git a/iamyou/eqpan2~.pd b/iamyou/eqpan2~.pd new file mode 100644 index 0000000..04a915c --- /dev/null +++ b/iamyou/eqpan2~.pd @@ -0,0 +1,51 @@ +#N canvas 220 105 930 420 10; +#X obj 47 27 inlet~; +#X obj 113 349 *~; +#X obj 503 349 *~; +#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 587 19 arg #1: width:; +#X text 637 79 in result \,; +#X text 657 119 -width/2 ~ width/2 -> cross fading; +#X obj 113 378 outlet~; +#X obj 503 378 outlet~; +#X obj 456 160 * -0.5; +#X obj 490 130 * 0.5; +#X obj 128 297 *~ 0.125; +#X obj 128 320 sin~; +#X obj 518 297 *~ 0.125; +#X obj 518 320 sin~; +#X text 168 320 sin~/cos~ input is NOT in radians! read help file; +#X text 168 340 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 connect 0 0 1 0; +#X connect 0 0 2 0; +#X connect 1 0 12 0; +#X connect 2 0 13 0; +#X connect 3 0 5 0; +#X connect 4 0 3 0; +#X connect 5 0 14 0; +#X connect 5 1 7 2; +#X connect 5 2 15 0; +#X connect 5 3 8 2; +#X connect 6 0 7 0; +#X connect 6 0 8 0; +#X connect 7 0 16 0; +#X connect 8 0 18 0; +#X connect 14 0 7 1; +#X connect 15 0 8 1; +#X connect 16 0 17 0; +#X connect 17 0 1 1; +#X connect 18 0 19 0; +#X connect 19 0 2 1; diff --git a/iamyou/eqpan~.pd b/iamyou/eqpan~.pd new file mode 100644 index 0000000..8ecabff --- /dev/null +++ b/iamyou/eqpan~.pd @@ -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; diff --git a/iamyou/main.pd b/iamyou/main.pd index ef45a94..b4e3cb4 100644 --- a/iamyou/main.pd +++ b/iamyou/main.pd @@ -1,4 +1,4 @@ -#N canvas 96 91 1246 672 10; +#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; @@ -9,17 +9,12 @@ #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~; +#X obj 28 492 wav2~; +#X msg 28 414 01.wav; +#X msg 41 463 1; +#X msg 310 582 \; pd dsp 1; +#X obj 41 362 loadbang; +#X obj 163 385 r \$0-dist; #N canvas 1 91 594 663 get_point 0; #X obj 267 17 r fromGUI; #X obj 267 86 sel 1; @@ -110,12 +105,8 @@ -1 -1; #X obj 646 429 v x\$0; #X obj 646 449 v y\$0; -#X obj 591 475 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 591 569 s \$0-dist; -#X obj 664 569 s \$0-brng; +#X obj 676 569 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 @@ -149,7 +140,7 @@ turned into rough=123456 fine=789.; #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; +#N canvas 184 91 1064 607 gui 1; #X obj 16 196 send toGUI; #X obj 526 72 list trim; #X obj 526 49 receive fromGUI; @@ -254,7 +245,6 @@ turned into rough=123456 fine=789.; #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 ; @@ -299,72 +289,103 @@ turned into rough=123456 fine=789.; 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 +#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 connect 1 0 51 0; +#X text 404 282 draw dest. pointing arrow = bearing arrow; +#X obj 565 368 expr fmod(($f1+360) \, 360); +#X obj 565 391 expr fmod(($f1+180) \, 360)-180; +#X obj 565 414 s \$0-brng-error; +#N canvas 1 91 465 242 tester 0; +#X obj 17 67 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 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 1 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 328 309 pd tester; +#X connect 1 0 50 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 5 0 51 0; +#X connect 8 0 58 0; #X connect 9 0 8 0; -#X connect 10 0 61 0; +#X connect 9 0 66 0; +#X connect 10 0 60 0; #X connect 10 1 7 0; -#X connect 10 2 60 0; +#X connect 10 2 59 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 17 0 61 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 21 0 47 0; +#X connect 22 0 49 0; #X connect 22 1 18 0; -#X connect 22 2 49 0; -#X connect 23 0 30 0; +#X connect 22 2 48 0; +#X connect 23 0 29 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 27 0 57 0; +#X connect 28 0 21 0; +#X connect 29 0 30 0; +#X connect 30 0 28 0; +#X connect 33 0 52 0; +#X connect 34 0 35 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 36 0 34 1; +#X connect 36 0 33 0; +#X connect 37 0 45 0; +#X connect 37 1 38 0; +#X connect 38 0 34 1; +#X connect 39 0 34 0; +#X connect 40 0 41 0; +#X connect 41 0 52 0; +#X connect 42 0 43 0; +#X connect 43 0 46 0; +#X connect 45 0 39 0; +#X connect 45 1 40 0; +#X connect 46 0 37 0; +#X connect 47 0 22 0; +#X connect 48 0 18 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 50 0 3 0; +#X connect 51 0 6 0; +#X connect 52 0 32 0; +#X connect 53 0 0 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 57 0 53 0; +#X connect 57 1 54 0; +#X connect 57 2 55 0; +#X connect 57 3 56 0; +#X connect 58 0 10 0; +#X connect 59 0 7 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 connect 61 0 11 0; +#X connect 63 0 64 0; +#X connect 64 0 9 0; +#X connect 66 0 67 0; +#X connect 67 0 68 0; +#X connect 69 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; @@ -385,92 +406,114 @@ turned into rough=123456 fine=789.; #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 obj 163 408 map 0.005 0.05 1 0.1; #X obj 928 320 print input(C); #X obj 688 320 print input(F); #X obj 465 498 print dist(km); #X obj 465 475 print brng(deg); +#X obj 28 626 dac~; +#X floatatom 218 525 5 0 0 1 - - -; +#X floatatom 163 431 5 0 0 1 vol - -; +#X obj 163 492 line~; +#X msg 163 469 \$1 20; +#X obj 41 385 t b b; +#X obj 310 559 loadbang; +#X obj 28 515 expr~ $v1 * pow($v2 \, 4); +#X obj 591 475 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 218 502 r \$0-brng-error; +#X obj 218 571 line~; +#X obj 28 588 eqpan2~ 8; +#X msg 218 547 \$1 100; #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 62 0; -#X connect 3 6 63 0; +#X connect 3 5 56 0; +#X connect 3 6 57 0; #X connect 3 7 4 2; #X connect 3 8 4 3; #X connect 4 0 9 0; -#X connect 4 0 50 0; -#X connect 5 0 39 0; -#X connect 6 0 40 0; -#X connect 7 0 43 0; -#X connect 7 0 78 0; -#X connect 10 0 15 0; +#X connect 4 0 44 0; +#X connect 5 0 34 0; +#X connect 6 0 35 0; +#X connect 7 0 38 0; +#X connect 7 0 72 0; +#X connect 10 0 82 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 76 0; -#X connect 19 0 20 0; -#X connect 21 0 75 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 42 0; -#X connect 25 0 41 0; -#X connect 26 0 24 0; -#X connect 26 1 25 0; -#X connect 27 0 26 0; -#X connect 27 0 77 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 43 0 44 0; -#X connect 43 1 5 0; -#X connect 43 2 6 0; -#X connect 44 0 65 0; -#X connect 47 0 48 0; -#X connect 47 0 79 0; -#X connect 47 1 49 0; -#X connect 47 1 80 0; -#X connect 59 0 22 0; -#X connect 60 0 31 0; -#X connect 62 0 4 0; -#X connect 63 0 4 1; -#X connect 64 0 47 0; -#X connect 65 0 64 0; -#X connect 67 0 66 0; -#X connect 69 0 68 0; -#X connect 70 0 74 0; -#X connect 71 0 72 0; -#X connect 72 0 73 0; -#X connect 72 1 70 0; -#X connect 73 0 69 0; -#X connect 74 0 69 0; -#X connect 75 0 71 0; -#X connect 75 1 67 0; -#X connect 75 2 31 0; -#X connect 76 0 18 0; -#X connect 76 0 15 1; -#X connect 76 0 19 1; +#X connect 14 0 80 0; +#X connect 15 0 70 0; +#X connect 16 0 69 0; +#X connect 17 0 25 0; +#X connect 17 1 23 3; +#X connect 17 2 24 1; +#X connect 17 3 23 1; +#X connect 18 0 17 0; +#X connect 19 0 37 0; +#X connect 20 0 36 0; +#X connect 21 0 19 0; +#X connect 21 1 20 0; +#X connect 22 0 21 0; +#X connect 22 0 71 0; +#X connect 23 0 27 0; +#X connect 24 0 23 0; +#X connect 25 0 24 0; +#X connect 25 1 23 2; +#X connect 26 0 29 0; +#X connect 26 1 28 0; +#X connect 26 2 22 2; +#X connect 26 2 29 1; +#X connect 26 3 22 3; +#X connect 26 3 28 1; +#X connect 27 0 31 0; +#X connect 27 1 30 0; +#X connect 27 2 22 0; +#X connect 27 2 31 1; +#X connect 27 3 22 1; +#X connect 27 3 30 1; +#X connect 28 0 7 3; +#X connect 29 0 7 2; +#X connect 30 0 7 1; +#X connect 31 0 7 0; +#X connect 38 0 39 0; +#X connect 38 1 5 0; +#X connect 38 2 6 0; +#X connect 39 0 59 0; +#X connect 53 0 17 0; +#X connect 54 0 26 0; +#X connect 56 0 4 0; +#X connect 57 0 4 1; +#X connect 58 0 83 0; +#X connect 59 0 58 0; +#X connect 61 0 60 0; +#X connect 63 0 62 0; +#X connect 64 0 68 0; +#X connect 65 0 66 0; +#X connect 66 0 67 0; +#X connect 66 1 64 0; +#X connect 67 0 63 0; +#X connect 68 0 63 0; +#X connect 69 0 65 0; +#X connect 69 1 61 0; +#X connect 69 2 26 0; +#X connect 70 0 77 0; +#X connect 76 0 87 0; +#X connect 77 0 79 0; +#X connect 78 0 82 1; +#X connect 79 0 78 0; +#X connect 80 0 12 0; +#X connect 80 1 11 0; +#X connect 81 0 13 0; +#X connect 82 0 86 0; +#X connect 83 0 42 0; +#X connect 83 0 73 0; +#X connect 83 1 43 0; +#X connect 83 1 74 0; +#X connect 84 0 76 0; +#X connect 85 0 86 1; +#X connect 86 0 75 0; +#X connect 86 1 75 1; +#X connect 87 0 85 0;