#N canvas 347 99 654 324 10; #X obj -1 -1 *~; #N canvas 479 92 524 467 wiimote_stuff 0; #X msg 35 257 disconnect; #X obj 296 244 tgl 25 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X obj 138 331 wiimote; #X msg 296 274 setRumble \$1; #X obj 232 121 tgl 25 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 1; #X obj 138 121 tgl 25 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X msg 232 151 reportAcceleration \$1; #X msg 138 151 reportIR \$1; #N canvas 54 59 952 482 \$0-accelerometer-stuff 0; #X obj 218 12 inlet; #X obj 366 221 unpack 0 0 0; #X obj 602 434 expr sqrt(pow($f1 \, 2) + pow($f2 \, 2) + pow($f3 \, 2)); #X obj 357 280 atan; #X obj 357 259 expr $f1 / $f2; #X obj 389 304 expr if ($f1 > 0 \, 3.14159 \, -3.14159); #X obj 357 331 pack 0 0 0; #X obj 357 353 expr if ($f3 <= 0 \, $f1 + $f2 \, $f1); #X obj 357 375 * -1; #X obj 658 34 unpack 0 0 0; #X obj 42 443 s \$0-wii-pitch-set; #X obj 357 445 s \$0-wii-roll-set; #X text 585 336 The pitch and roll are only accurate if there are no extra accelerations due to hand movement. We can check if the total acceleration is close to gravity and only use pitch and roll in that case. The total acceleration is given by:; #X obj 31 221 unpack 0 0 0; #X obj 42 280 atan; #X obj 42 259 expr $f1 / $f2; #X obj 74 304 expr if ($f1 > 0 \, 3.14159 \, -3.14159); #X obj 42 331 pack 0 0 0; #X obj 42 353 expr if ($f3 <= 0 \, $f1 + $f2 \, $f1); #X obj 42 375 * -1; #X obj 735 400 unpack 0 0 0; #X obj 702 122 -; #X obj 701 147 abs; #X obj 689 93 t f f; #X obj 701 168 nbx 5 14 0 1 0 0 empty empty empty 0 -8 0 10 -262144 -1 -1 0 256; #X obj 701 186 s wiimote_accel; #X obj 659 63 expr abs($f1)+abs($f2)+abs($f3); #X obj 184 209 nbx 5 14 0 1 0 0 empty empty empty 0 -8 0 10 -262144 -1 -1 0.16 256; #X obj 184 248 s squelch; #X floatatom 154 99 5 0 0 0 - - -; #X obj 154 77 r nunchuk-btn-set; #X obj 154 120 change; #X obj 229 166 r nc-accY-set; #X obj 184 188 gate 1 1; #X msg 154 166 1; #X msg 184 166 0; #X obj 154 142 sel 3 0; #X obj 631 96 nbx 5 14 0 1 0 0 empty empty empty 0 -8 0 10 -262144 -1 -1 1 256; #X obj 574 96 nbx 5 14 -1 1 0 0 empty empty empty 0 -8 0 10 -262144 -1 -1 0.16 256; #X obj 574 137 + 1; #X obj 574 159 gate 2 1; #X obj 488 229 expr 1-$f1; #X msg 574 230 0; #X obj 631 115 change; #X obj 488 250 s lsnd; #X obj 574 250 s rsnd; #X obj 531 250 s csnd; #X obj 617 229 expr 1-$f1; #X msg 703 230 0; #X obj 660 250 s csnd; #X obj 574 115 >= 0; #X obj 617 250 s rsnd; #X obj 703 250 s lsnd; #X connect 0 0 9 0; #X connect 0 0 13 0; #X connect 0 0 1 0; #X connect 1 0 4 0; #X connect 1 0 5 0; #X connect 1 2 4 1; #X connect 1 2 6 2; #X connect 3 0 6 0; #X connect 4 0 3 0; #X connect 5 0 6 1; #X connect 6 0 7 0; #X connect 7 0 8 0; #X connect 8 0 11 0; #X connect 9 0 26 0; #X connect 9 0 38 0; #X connect 9 1 26 1; #X connect 9 2 26 2; #X connect 9 2 37 0; #X connect 13 1 15 0; #X connect 13 1 16 0; #X connect 13 2 15 1; #X connect 13 2 17 2; #X connect 14 0 17 0; #X connect 15 0 14 0; #X connect 16 0 17 1; #X connect 17 0 18 0; #X connect 18 0 19 0; #X connect 19 0 10 0; #X connect 20 0 2 0; #X connect 20 1 2 1; #X connect 20 2 2 2; #X connect 21 0 22 0; #X connect 22 0 24 0; #X connect 23 0 21 1; #X connect 23 1 21 0; #X connect 24 0 25 0; #X connect 26 0 23 0; #X connect 27 0 28 0; #X connect 29 0 31 0; #X connect 30 0 29 0; #X connect 31 0 36 0; #X connect 32 0 33 1; #X connect 33 0 27 0; #X connect 34 0 33 0; #X connect 35 0 33 0; #X connect 36 0 34 0; #X connect 36 1 35 0; #X connect 37 0 43 0; #X connect 38 0 50 0; #X connect 39 0 40 0; #X connect 40 0 41 0; #X connect 40 0 42 0; #X connect 40 0 46 0; #X connect 40 1 49 0; #X connect 40 1 47 0; #X connect 40 1 48 0; #X connect 41 0 44 0; #X connect 42 0 45 0; #X connect 43 0 40 1; #X connect 47 0 51 0; #X connect 48 0 52 0; #X connect 50 0 39 0; #X restore 145 410 pd \$0-accelerometer-stuff; #X obj 391 121 tgl 25 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 1; #X text 131 73 By default \, the wiimote does not report acceleration data \, IR data \, or any data from an attached extension (eg \, nunchuck). You must specifically enable each reporting mode:; #X msg 391 151 reportNunchuck \$1; #N canvas 60 289 920 244 \$0-nunchuck-stuff 0; #X obj 559 61 inlet; #X obj 559 96 unpack 0 0; #X obj 49 71 inlet; #X text 42 32 inlet #1: BUTTONS; #X text 294 35 inlet #2: ACCELERATION; #X obj 304 72 inlet; #X obj 304 105 unpack 0 0 0; #X text 567 32 inlet #3: STICK; #X obj 49 117 s nunchuk-btn-set; #X floatatom 559 141 5 0 0 0 - - -; #X floatatom 616 142 5 0 0 0 - - -; #X obj 558 168 split 140 240; #X obj 644 168 split 140 240; #X text 567 123 l r; #X text 627 123 u d; #X obj 558 221 s nunlr; #X msg 611 195 140; #X msg 697 196 140; #X obj 644 222 s nunud; #X obj 442 197 s nunlrc; #X obj 500 197 s nunudc; #X obj 343 144 s nc-accY-set; #X obj 304 163 s nc-accX-set; #X obj 383 125 s nc-accZ-set; #X connect 0 0 1 0; #X connect 1 0 9 0; #X connect 1 1 10 0; #X connect 2 0 8 0; #X connect 5 0 6 0; #X connect 6 0 22 0; #X connect 6 1 21 0; #X connect 6 2 23 0; #X connect 9 0 11 0; #X connect 9 0 19 0; #X connect 10 0 12 0; #X connect 10 0 20 0; #X connect 11 0 15 0; #X connect 11 1 16 0; #X connect 12 0 18 0; #X connect 12 1 17 0; #X connect 16 0 15 0; #X connect 17 0 18 0; #X restore 164 365 pd \$0-nunchuck-stuff; #N canvas 25 135 330 216 \$0-button-stuff 0; #X obj 41 33 inlet; #X obj 41 86 unpack 0 0; #X obj 41 140 s wii-btn01-set; #X obj 106 120 s wii-btn02-set; #X connect 0 0 1 0; #X connect 1 0 2 0; #X connect 1 1 3 0; #X restore 138 432 pd \$0-button-stuff; #X obj 31 138 tgl 25 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 1; #X text 53 186 Enable metro to get accelerometer uppdates; #X text 53 197 (xyz wiimote \, xyz nunchuk \, ir); #X obj 24 7 inlet; #X obj 295 18 inlet; #X obj 350 18 inlet; #X obj 24 35 l2ork_wiimote_connect; #X obj 32 168 metro 20; #X obj 153 388 speedlim 50; #X obj 332 217 r rumble; #X connect 0 0 2 0; #X connect 1 0 3 0; #X connect 2 0 13 0; #X connect 2 1 8 0; #X connect 2 3 12 0; #X connect 2 4 12 1; #X connect 2 5 12 2; #X connect 3 0 2 0; #X connect 4 0 6 0; #X connect 5 0 7 0; #X connect 6 0 2 0; #X connect 7 0 2 0; #X connect 9 0 11 0; #X connect 11 0 2 0; #X connect 14 0 21 0; #X connect 17 0 20 0; #X connect 18 0 9 0; #X connect 18 0 4 0; #X connect 19 0 14 0; #X connect 20 0 2 0; #X connect 21 0 2 0; #X connect 22 0 8 0; #X connect 23 0 1 0; #X restore 265 -52 pd wiimote_stuff; #X obj 122 -2 l2ork_monitor; #X obj 311 -71 tgl 15 0 empty empty 2 17 7 0 10 -4034 -1 -1 1 1; #X obj 358 -71 tgl 15 0 empty empty 3 17 7 0 10 -4034 -1 -1 1 1; #X obj 265 -71 bng 15 250 50 0 empty empty 1 17 7 0 10 -4034 -1 -1 ; #X obj 122 -44 speedlim 100; #X obj -1 64 l2ork_output~; #N canvas 49 71 970 488 sound 0; #X obj 224 435 outlet~; #X floatatom 751 29 5 0 0 0 - - -; #X obj 794 256 nbx 5 14 -144 144 0 0 empty empty empty 0 -8 0 10 -262144 -1 -1 0 256; #X obj 737 140 loadbang; #X obj 224 346 rj/e_pitchshift; #X msg 672 381 pitch \$1; #X floatatom 672 180 5 0 0 0 - - -; #X obj 672 157 r nunudc; #X obj 672 250 nbx 5 14 -12 12 0 0 empty empty empty 0 -8 0 10 -262144 -1 -1 0 256; #X obj 672 226 * 12; #X obj 672 270 + 0; #X msg 737 162 0; #X obj 672 202 expr ($f1-130)/93; #X obj 751 7 r nunchuk-btn-set; #X obj 610 270 s monitor; #X obj 751 50 change; #X obj 717 336 int; #X obj 672 292 r ptch_rnd; #X obj 672 313 gate 2 1; #X obj 125 11 inlet; #X obj 672 361 +; #X obj 698 361 r fine_tune; #X obj 311 11 inlet; #X obj 311 139 *~; #X obj 337 118 line~; #X obj 460 273 line~; #X obj 390 228 expr 1-$f1; #X obj 390 273 line~; #X obj 247 407 *~; #X obj 510 158 loadbang; #X msg 510 178 0; #X obj 403 33 loadbang; #X obj 337 54 r mod-lvl; #X obj 337 96 pack 0 10; #X obj 460 251 pack 0 10; #X obj 390 251 pack 0 10; #X obj 467 68 r nc-accX-set; #X obj 467 90 nbx 5 14 -1 1 0 0 empty empty empty 0 -8 0 10 -262144 -1 -1 -1 256; #X obj 467 158 change; #N canvas 10 69 450 300 ___monitor 0; #X obj 126 52 inlet~; #X obj 125 92 snapshot~; #X obj 196 124 metro 100; #X obj 213 71 loadbang; #X msg 211 97 1; #X floatatom 125 120 5 0 0 0 - - -; #X connect 0 0 1 0; #X connect 1 0 5 0; #X connect 2 0 1 0; #X connect 3 0 4 0; #X connect 4 0 2 0; #X coords 0 -1 1 1 39 21 1 121 118; #X restore 482 378 pd ___monitor; #X msg 376 180 squelch \$1; #X obj 247 380 rj/e_vocoder myvocoder; #X msg 565 159 1; #X msg 622 159 0; #X obj 586 182 change; #X obj 586 202 s nunchuk-dbg; #X obj 565 139 split -1 1; #X obj 224 323 *~; #X obj 376 137 r squelch; #X obj 376 158 expr $f1*25+5; #X obj 467 135 expr ($f1+1); #X obj 794 183 nbx 8 14 -12 12 0 0 empty empty empty 0 -8 0 10 -262144 -1 -1 0 256; #X obj 839 119 r nc-accY-set; #X msg 751 96 1; #X msg 785 96 0; #X obj 751 72 sel 2 3 0; #X obj 794 202 * 12; #X obj 794 161 expr int((-$f1/1.5708)*12); #X msg 403 53 1; #X obj 123 201 *~; #X obj 139 179 line~; #X obj 150 113 loadbang; #X obj 139 157 pack 0 10; #X msg 150 133 1; #X obj 139 89 r sndc-lvl; #X obj 124 33 audio-loop c; #X obj 33 11 inlet; #X obj 40 201 *~; #X obj 56 179 line~; #X obj 67 113 loadbang; #X obj 56 157 pack 0 10; #X msg 67 133 1; #X obj 217 11 inlet; #X obj 206 201 *~; #X obj 222 179 line~; #X obj 233 113 loadbang; #X obj 222 157 pack 0 10; #X msg 233 133 1; #X msg 56 243 \$1 500; #X obj 40 284 *~; #X obj 56 264 line~; #X msg 139 243 \$1 500; #X obj 123 284 *~; #X obj 139 264 line~; #X obj 223 222 r rsnd; #X msg 223 243 \$1 500; #X obj 207 284 *~; #X obj 223 264 line~; #X obj 139 222 r csnd; #X obj 56 222 r lsnd; #X obj 56 89 r sndl-lvl; #X obj 222 89 r sndr-lvl; #X obj 794 140 gate 1 0; #X obj 311 33 audio-loop mod; #X obj 41 33 audio-loop l; #X obj 207 33 audio-loop r; #X obj 70 11 r l-tune; #X obj 162 11 r c-tune; #X obj 256 11 r r-tune; #X connect 1 0 15 0; #X connect 2 0 10 1; #X connect 3 0 11 0; #X connect 4 0 0 0; #X connect 4 0 41 0; #X connect 5 0 4 1; #X connect 6 0 12 0; #X connect 7 0 6 0; #X connect 8 0 10 0; #X connect 8 0 14 0; #X connect 9 0 8 0; #X connect 10 0 18 1; #X connect 11 0 51 0; #X connect 12 0 9 0; #X connect 13 0 1 0; #X connect 15 0 55 0; #X connect 16 0 20 0; #X connect 17 0 18 0; #X connect 18 0 20 0; #X connect 18 1 16 0; #X connect 19 0 65 0; #X connect 20 0 5 0; #X connect 21 0 20 1; #X connect 22 0 93 0; #X connect 23 0 41 1; #X connect 24 0 23 1; #X connect 25 0 28 1; #X connect 26 0 35 0; #X connect 27 0 47 1; #X connect 28 0 0 0; #X connect 29 0 30 0; #X connect 30 0 26 0; #X connect 30 0 34 0; #X connect 31 0 58 0; #X connect 32 0 33 0; #X connect 33 0 24 0; #X connect 34 0 25 0; #X connect 35 0 27 0; #X connect 36 0 37 0; #X connect 37 0 46 0; #X connect 37 0 50 0; #X connect 38 0 26 0; #X connect 38 0 34 0; #X connect 40 0 41 2; #X connect 41 0 28 0; #X connect 42 0 44 0; #X connect 43 0 44 0; #X connect 44 0 45 0; #X connect 46 0 42 0; #X connect 46 1 43 0; #X connect 47 0 4 0; #X connect 48 0 49 0; #X connect 49 0 40 0; #X connect 50 0 38 0; #X connect 51 0 56 0; #X connect 52 0 92 1; #X connect 53 0 92 0; #X connect 54 0 92 0; #X connect 55 0 53 0; #X connect 55 1 54 0; #X connect 55 2 54 0; #X connect 56 0 2 0; #X connect 57 0 51 0; #X connect 58 0 33 0; #X connect 59 0 82 0; #X connect 60 0 59 1; #X connect 61 0 63 0; #X connect 62 0 60 0; #X connect 63 0 62 0; #X connect 64 0 62 0; #X connect 65 0 59 0; #X connect 66 0 94 0; #X connect 67 0 79 0; #X connect 68 0 67 1; #X connect 69 0 71 0; #X connect 70 0 68 0; #X connect 71 0 70 0; #X connect 72 0 95 0; #X connect 73 0 86 0; #X connect 74 0 73 1; #X connect 75 0 77 0; #X connect 76 0 74 0; #X connect 77 0 76 0; #X connect 78 0 80 0; #X connect 79 0 47 0; #X connect 80 0 79 1; #X connect 81 0 83 0; #X connect 82 0 47 0; #X connect 83 0 82 1; #X connect 84 0 85 0; #X connect 85 0 87 0; #X connect 86 0 47 0; #X connect 87 0 86 1; #X connect 88 0 81 0; #X connect 89 0 78 0; #X connect 90 0 70 0; #X connect 91 0 76 0; #X connect 92 0 57 0; #X connect 93 0 23 0; #X connect 94 0 67 0; #X connect 95 0 73 0; #X connect 96 0 94 1; #X connect 97 0 65 1; #X connect 98 0 95 1; #X restore -2 -48 pd sound; #X obj -2 -128 bng 15 250 50 0 empty empty load_left_snd 20 7 0 8 -4034 -1 -1; #X obj 265 -113 key; #N canvas 293 177 642 376 delays 0; #X text 437 209 <-- delay time; #X text 313 258 add the original and the delayed signal; #X obj 109 279 +~; #X text 357 235 feedback gain; #X text 313 258 add the original and the delayed signal; #X obj 282 262 +~; #X text 357 235 feedback gain; #X obj 148 303 delwrite~ l-del 2000; #X obj 318 284 delwrite~ r-del 2000; #X obj 299 235 *~ 0.6; #X obj 123 257 *~ 0.7; #X obj 272 143 pack 0 100; #X obj 114 171 pack 0 100; #X obj 114 192 line~; #X obj 260 191 *~; #X obj 272 167 line~; #X obj 80 225 *~; #X obj 113 48 inlet~; #X obj 202 352 outlet~; #X obj 272 51 expr $f1/1.5708; #X obj 272 73 nbx 8 14 0 1 0 0 empty empty empty 0 -8 0 10 -262144 -1 -1 0.101859 256; #X obj 272 8 r nc-accY-set; #X obj 383 149 expr 250-($f1*200); #X obj 123 120 expr 400-($f1*360); #X obj 123 234 vd~ l-del 400; #X msg 123 142 \$1 1000; #X obj 300 213 vd~ r-del 250; #X obj 296 191 line~; #X msg 383 170 \$1 1000; #X obj 123 213 line~; #X obj 332 191 expr 0.6-$f1*0.3; #X obj 160 213 expr 0.7-$f1*0.3; #X floatatom 373 30 5 0 0 0 - - -; #X obj 373 8 r nunchuk-btn-set; #X obj 373 51 change; #X obj 272 30 gate 1 1; #X obj 373 118 expr abs(1-$i1); #X obj 373 73 select 1 3 0; #X msg 373 96 1; #X msg 402 96 0; #X connect 2 0 7 0; #X connect 2 0 18 0; #X connect 5 0 8 0; #X connect 5 0 18 0; #X connect 9 0 5 1; #X connect 10 0 2 1; #X connect 11 0 15 0; #X connect 12 0 13 0; #X connect 13 0 16 1; #X connect 14 0 5 0; #X connect 15 0 14 1; #X connect 16 0 2 0; #X connect 17 0 14 0; #X connect 17 0 16 0; #X connect 19 0 20 0; #X connect 20 0 11 0; #X connect 20 0 12 0; #X connect 20 0 22 0; #X connect 20 0 23 0; #X connect 20 0 30 0; #X connect 20 0 31 0; #X connect 21 0 35 1; #X connect 22 0 28 0; #X connect 23 0 25 0; #X connect 24 0 10 0; #X connect 25 0 29 0; #X connect 26 0 9 0; #X connect 27 0 26 0; #X connect 28 0 27 0; #X connect 29 0 24 0; #X connect 30 0 9 1; #X connect 31 0 10 1; #X connect 32 0 34 0; #X connect 33 0 32 0; #X connect 34 0 37 0; #X connect 35 0 19 0; #X connect 36 0 35 0; #X connect 37 0 38 0; #X connect 37 2 39 0; #X connect 38 0 36 0; #X connect 39 0 36 0; #X restore 17 21 pd delays; #X text 104 146 4 (toggle db to 30); #X obj 122 -65 r monitor; #N canvas 123 310 403 249 modulators 0; #X obj 46 100 * 1; #X obj 46 41 nbx 5 14 0 1e+37 0 0 empty empty empty 0 -8 0 10 -262144 -1 -1 0 256; #X obj 46 18 r wiimote_accel; #X obj 77 189 line~; #X floatatom 158 26 5 0 0 0 - - -; #X obj 158 5 r wii-btn02-set; #X obj 77 168 pack 0 50; #X obj 46 82 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 -262144 -1 -1 0 256; #X msg 95 142 0; #X msg 222 156 30; #X obj 46 61 pow 2; #X obj 46 121 split 0.03 1; #X msg 163 176 0.03; #X msg 163 156 1000; #X msg 222 196 0.5; #X msg 222 176 0.2; #X obj 278 178 s ptch_rnd; #X msg 309 156 2; #X msg 278 156 1; #X obj 77 210 outlet~; #X msg 163 196 8; #X obj 238 76 sel 8 0 4 12; #X obj 158 76 sel 4 0 8 12; #X obj 238 52 gate 2 1; #X obj 257 5 r toggle_ctrls; #X obj 257 26 + 1; #X connect 0 0 11 0; #X connect 1 0 10 0; #X connect 2 0 1 0; #X connect 3 0 19 0; #X connect 4 0 23 1; #X connect 5 0 4 0; #X connect 6 0 3 0; #X connect 7 0 0 0; #X connect 8 0 6 0; #X connect 9 0 6 1; #X connect 10 0 7 0; #X connect 11 0 6 0; #X connect 11 1 8 0; #X connect 12 0 11 1; #X connect 13 0 6 1; #X connect 14 0 0 1; #X connect 15 0 11 1; #X connect 17 0 16 0; #X connect 18 0 16 0; #X connect 20 0 0 1; #X connect 21 0 13 0; #X connect 21 0 12 0; #X connect 21 0 20 0; #X connect 21 0 18 0; #X connect 21 1 9 0; #X connect 21 1 15 0; #X connect 21 1 14 0; #X connect 21 1 18 0; #X connect 21 2 9 0; #X connect 21 2 15 0; #X connect 21 2 14 0; #X connect 21 2 17 0; #X connect 21 3 17 0; #X connect 21 3 13 0; #X connect 21 3 12 0; #X connect 21 3 20 0; #X connect 22 0 13 0; #X connect 22 0 12 0; #X connect 22 0 20 0; #X connect 22 0 18 0; #X connect 22 1 9 0; #X connect 22 1 15 0; #X connect 22 1 14 0; #X connect 22 1 18 0; #X connect 22 2 17 0; #X connect 22 2 9 0; #X connect 22 2 15 0; #X connect 22 2 14 0; #X connect 22 3 17 0; #X connect 22 3 13 0; #X connect 22 3 12 0; #X connect 22 3 20 0; #X connect 23 0 21 0; #X connect 23 1 22 0; #X connect 24 0 25 0; #X connect 25 0 23 0; #X restore 15 -25 pd modulators; #X obj 122 -23 expr ($f1+12)*4.167; #X obj 265 -92 sel 49 50 51 45 61; #N canvas 270 150 471 317 fine-tune 0; #X obj 85 -128 nbx 5 18 -0.999 1 0 0 empty empty empty 0 -8 0 14 -260097 -1 -1 0 256; #N canvas 151 197 832 328 state-saving 0; #X obj 418 12 cnv 15 400 300 empty empty Restore 300 12 0 14 -233017 -123526 0; #X obj 13 12 cnv 15 400 300 empty empty Save 300 12 0 14 -233017 -123526 0; #X obj 239 237 textfile; #X msg 128 138 clear; #X msg 313 220 print; #X obj 239 161 list prepend add; #X obj 239 187 list trim; #X obj 491 217 textfile; #X obj 491 247 s SSSAD; #X obj 491 159 until; #X msg 491 138 100; #X msg 435 200 print; #X text 486 269 also received inside sssad; #X obj 106 238 s SSSAD_ADMIN; #X obj 239 93 r SSSAD_ADMIN; #X obj 239 137 route persist; #X obj 239 115 list trim; #X msg 106 172 save; #X msg 120 211 set; #X obj 559 244 s SSSAD_ADMIN; #X msg 559 219 set; #X text 533 70 Avoid loops. A bang normally also works.; #X obj 84 58 inlet; #X obj 491 70 inlet; #X obj 491 115 t b f; #X obj 84 102 t f b b; #X msg 84 285 write \$1.hum.preset.txt; #X msg 538 160 read \$1.hum.preset.txt \, rewind; #X connect 3 0 2 0; #X connect 4 0 2 0; #X connect 5 0 6 0; #X connect 6 0 2 0; #X connect 7 0 8 0; #X connect 7 1 9 1; #X connect 7 1 20 0; #X connect 9 0 7 0; #X connect 10 0 9 0; #X connect 11 0 7 0; #X connect 14 0 16 0; #X connect 15 0 5 0; #X connect 16 0 15 0; #X connect 17 0 13 0; #X connect 18 0 13 0; #X connect 20 0 19 0; #X connect 22 0 25 0; #X connect 23 0 24 0; #X connect 24 0 10 0; #X connect 24 1 27 0; #X connect 25 0 26 0; #X connect 25 1 17 0; #X connect 25 2 3 0; #X connect 26 0 2 0; #X connect 27 0 7 0; #X restore 205 38 pd state-saving; #X obj 292 -4 loadbang; #X msg 292 17 1; #X msg 205 17 1; #X text 173 -69 save; #X obj 173 -96 bng 30 250 50 0 empty empty empty 17 7 0 10 -162280 -1 -1; #X obj 173 -128 nbx 3 18 0 100 0 0 mod-lvl empty empty 0 -8 0 14 -257985 -1 -1 5 256; #X obj 106 38 sssad mod-level; #X obj 33 -96 nbx 3 18 0 100 0 0 sndc-lvl empty empty 0 -8 0 14 -257985 -1 -1 3 256; #X obj 221 91 sssad sndc-level; #X obj 33 -127 nbx 3 18 0 100 0 0 sndl-lvl empty empty 0 -8 0 14 -257985 -1 -1 3 256; #X text 31 -112 sndl lvl; #X text 31 -81 sndc lvl; #X obj 33 -65 nbx 3 18 0 100 0 0 sndr-lvl empty empty 0 -8 0 14 -257985 -1 -1 3 256; #X text 31 -50 sndr lvl; #X text 176 -113 mod lvl; #X obj 221 71 sssad sndl-level; #X obj 221 111 sssad sndr-level; #X text 83 -113 sndl tuning; #X obj 85 -96 nbx 5 18 -0.999 1 0 0 empty empty empty 0 -8 0 14 -260097 -1 -1 0 256; #X text 83 -81 sndc tuning; #X obj 85 -65 nbx 5 18 -0.999 1 0 0 empty empty empty 0 -8 0 14 -260097 -1 -1 0 256; #X text 83 -50 sndr tuning; #X obj 59 86 sssad l-tune; #X obj 58 106 sssad c-tune; #X obj 58 126 sssad r-tune; #X obj 33 17 s l-tune; #X obj 33 38 s c-tune; #X obj 33 59 s r-tune; #X connect 0 0 24 1; #X connect 0 0 27 0; #X connect 2 0 3 0; #X connect 3 0 1 1; #X connect 4 0 1 0; #X connect 6 0 4 0; #X connect 7 0 8 1; #X connect 8 0 7 0; #X connect 9 0 10 1; #X connect 10 0 9 0; #X connect 11 0 17 1; #X connect 14 0 18 1; #X connect 17 0 11 0; #X connect 18 0 14 0; #X connect 20 0 25 1; #X connect 20 0 28 0; #X connect 22 0 26 1; #X connect 22 0 29 0; #X connect 24 0 0 0; #X connect 25 0 20 0; #X connect 26 0 22 0; #X coords 0 -1 1 1 195 97 1 30 -130; #X restore 414 -105 pd fine-tune; #X obj -1 42 *~ 5; #X obj 417 -123 tgl 15 0 toggle_ctrls empty swap_AB_wiimote_buttons 18 8 0 8 -159808 -1 -1 0 1; #X obj -2 -109 bng 15 250 50 0 empty empty load_center_snd 20 7 0 8 -4034 -1 -1; #X obj -2 -90 bng 15 250 50 0 empty empty load_right_snd 20 7 0 8 -4034 -1 -1; #X obj -2 -71 bng 15 250 50 0 empty empty load_mod_snd 20 7 0 8 -4034 -1 -1; #X text 3 -151 5 load sounds; #X connect 0 0 18 0; #X connect 0 0 11 0; #X connect 3 0 1 1; #X connect 4 0 1 2; #X connect 5 0 1 0; #X connect 6 0 15 0; #X connect 8 0 0 0; #X connect 9 0 8 0; #X connect 10 0 16 0; #X connect 11 0 18 0; #X connect 13 0 6 0; #X connect 14 0 0 1; #X connect 15 0 2 0; #X connect 16 0 5 0; #X connect 16 1 3 0; #X connect 16 2 4 0; #X connect 18 0 7 0; #X connect 20 0 8 1; #X connect 21 0 8 2; #X connect 22 0 8 3;