r@216
|
1 #N struct IR-blobs float x float y symbol s;
|
r@216
|
2 #N struct NC-stick float x float y;
|
r@216
|
3 #N struct cc-left-stick float x float y;
|
r@216
|
4 #N struct cc-right-stick float x float y;
|
r@216
|
5 #N canvas 432 145 830 538 10;
|
r@216
|
6 #X text 8 9 IN ORDER TO CONNECT: First put the wiimote into discover
|
r@216
|
7 mode (press buttons 1 and 2 simultaneously).;
|
r@216
|
8 #X text 16 364 You can also specify the address as a creation argument:
|
r@216
|
9 ;
|
r@216
|
10 #X text 15 380 (make sure to enable discover mode before creation)
|
r@216
|
11 ;
|
r@216
|
12 #X obj 435 5 cnv 15 375 460 empty empty Wiimote: 10 15 0 14 -261689
|
r@216
|
13 -143491 0;
|
r@216
|
14 #X floatatom 577 159 7 0 0 1 _X #0-wii-accX-set #0-wii-accX;
|
r@216
|
15 #X floatatom 577 173 7 0 0 1 _Y #0-wii-accY-set #0-wii-accY;
|
r@216
|
16 #X floatatom 577 187 7 0 0 1 _Z #0-wii-accZ-set #0-wii-accZ;
|
r@216
|
17 #X obj 447 159 hsl 128 14 -1 1 0 0 \$0-wii-accX \$0-wii-accX-set empty
|
r@216
|
18 -2 -8 0 10 -204786 -1 -1 0 1;
|
r@216
|
19 #X obj 447 173 hsl 128 14 -1 1 0 0 \$0-wii-accY \$0-wii-accY-set empty
|
r@216
|
20 -2 -8 0 10 -204786 -1 -1 0 1;
|
r@216
|
21 #X obj 447 187 hsl 128 14 -1 1 0 0 \$0-wii-accZ \$0-wii-accZ-set empty
|
r@216
|
22 -2 -8 0 10 -204786 -1 -1 0 1;
|
r@216
|
23 #N canvas 525 243 481 416 IR-data 0;
|
r@216
|
24 #X scalar IR-blobs 128 384 blob1 \;;
|
r@216
|
25 #X scalar IR-blobs 384 384 blob2 \;;
|
r@216
|
26 #X scalar IR-blobs 640 384 blob3 \;;
|
r@216
|
27 #X scalar IR-blobs 896 384 blob4 \;;
|
r@216
|
28 #X coords 0 0 1024 768 256 196 1;
|
r@216
|
29 #X restore 443 260 pd IR-data;
|
r@216
|
30 #X text 444 242 IR Blobs (1024x768):;
|
r@216
|
31 #X floatatom 577 207 7 0 0 1 _PITCH #0-wii-pitch-set #0-wii-pitch;
|
r@216
|
32 #X obj 447 207 hsl 128 14 -3.14156 3.14159 0 0 \$0-wii-pitch \$0-wii-pitch-set
|
r@216
|
33 empty -2 -8 0 10 -204786 -1 -1 0 1;
|
r@216
|
34 #X floatatom 577 221 7 0 0 1 _ROLL #0-wii-roll-set #0-wii-roll;
|
r@216
|
35 #X obj 447 221 hsl 128 14 -3.14156 3.14159 0 0 \$0-wii-roll \$0-wii-roll-set
|
r@216
|
36 empty -2 -8 0 10 -204786 -1 -1 0 1;
|
r@216
|
37 #X text 447 142 Acceleration (-1 to 1):;
|
r@216
|
38 #X text 722 150 Buttons:;
|
r@216
|
39 #X obj 15 427 print;
|
r@216
|
40 #X obj 13 193 s \$0.to.wiimote;
|
r@216
|
41 #X msg 28 121 discover;
|
r@216
|
42 #X msg 13 74 connect 00:1F:C5:0B:1F:86;
|
r@216
|
43 #X msg 39 164 disconnect;
|
r@216
|
44 #X obj 500 36 tgl 25 0 empty empty IR 6 12 0 10 -4160 -1 -1 0 1;
|
r@216
|
45 #X msg 500 90 report ir \$1;
|
r@216
|
46 #X msg 441 69 report acceleration \$1;
|
r@216
|
47 #X obj 441 35 tgl 25 0 empty empty Acc 4 12 0 10 -204786 -1 -1 0 1
|
r@216
|
48 ;
|
r@216
|
49 #X obj 709 40 tgl 25 0 empty empty empty 17 7 0 10 -232576 -1 -1 0
|
r@216
|
50 1;
|
r@216
|
51 #X msg 611 92 setLED \$1;
|
r@216
|
52 #X obj 611 39 tgl 15 0 empty empty empty 17 7 0 10 -4032 -1 -1 0 1
|
r@216
|
53 ;
|
r@216
|
54 #X obj 635 39 tgl 15 0 empty empty empty 17 7 0 10 -4032 -1 -1 0 1
|
r@216
|
55 ;
|
r@216
|
56 #X obj 660 39 tgl 15 0 empty empty empty 17 7 0 10 -4032 -1 -1 0 1
|
r@216
|
57 ;
|
r@216
|
58 #X obj 685 40 tgl 15 0 empty empty empty 17 7 0 10 -4032 -1 -1 0 1
|
r@216
|
59 ;
|
r@216
|
60 #X text 606 15 LEDs:;
|
r@216
|
61 #N canvas 0 0 409 401 bytemask 0;
|
r@216
|
62 #X obj 269 332 outlet;
|
r@216
|
63 #X obj 269 279 float;
|
r@216
|
64 #X obj 318 183 |;
|
r@216
|
65 #X obj 110 239 -;
|
r@216
|
66 #X obj 110 204 float;
|
r@216
|
67 #X obj 110 184 trigger bang float;
|
r@216
|
68 #X obj 231 204 &;
|
r@216
|
69 #X obj 183 142 route 0 1;
|
r@216
|
70 #X msg 36 56 \$1 1;
|
r@216
|
71 #X msg 106 56 \$1 2;
|
r@216
|
72 #X msg 176 56 \$1 4;
|
r@216
|
73 #X msg 246 56 \$1 8;
|
r@216
|
74 #X obj 36 15 inlet;
|
r@216
|
75 #X obj 106 15 inlet;
|
r@216
|
76 #X obj 176 15 inlet;
|
r@216
|
77 #X obj 246 15 inlet;
|
r@216
|
78 #X obj 36 35 change;
|
r@216
|
79 #X obj 106 35 change;
|
r@216
|
80 #X obj 176 35 change;
|
r@216
|
81 #X obj 246 35 change;
|
r@216
|
82 #X connect 1 0 2 1;
|
r@216
|
83 #X connect 1 0 4 1;
|
r@216
|
84 #X connect 1 0 6 1;
|
r@216
|
85 #X connect 1 0 0 0;
|
r@216
|
86 #X connect 2 0 1 0;
|
r@216
|
87 #X connect 3 0 1 0;
|
r@216
|
88 #X connect 4 0 3 0;
|
r@216
|
89 #X connect 5 0 4 0;
|
r@216
|
90 #X connect 5 1 6 0;
|
r@216
|
91 #X connect 6 0 3 1;
|
r@216
|
92 #X connect 7 0 5 0;
|
r@216
|
93 #X connect 7 1 2 0;
|
r@216
|
94 #X connect 8 0 7 0;
|
r@216
|
95 #X connect 9 0 7 0;
|
r@216
|
96 #X connect 10 0 7 0;
|
r@216
|
97 #X connect 11 0 7 0;
|
r@216
|
98 #X connect 12 0 16 0;
|
r@216
|
99 #X connect 13 0 17 0;
|
r@216
|
100 #X connect 14 0 18 0;
|
r@216
|
101 #X connect 15 0 19 0;
|
r@216
|
102 #X connect 16 0 8 0;
|
r@216
|
103 #X connect 17 0 9 0;
|
r@216
|
104 #X connect 18 0 10 0;
|
r@216
|
105 #X connect 19 0 11 0;
|
r@216
|
106 #X restore 611 69 pd bytemask;
|
r@216
|
107 #X msg 709 91 setRumble \$1;
|
r@216
|
108 #X obj 441 113 s \$0.to.wiimote;
|
r@216
|
109 #X text 708 17 Rumble;
|
r@216
|
110 #X obj 611 116 s \$0.to.wiimote;
|
r@216
|
111 #N canvas 26 157 554 440 buttons 0;
|
r@216
|
112 #X obj 11 11 r \$0.from.wiimote;
|
r@216
|
113 #X obj 11 33 route button;
|
r@216
|
114 #X obj 33 387 s \$0.button.up;
|
r@216
|
115 #X obj 66 363 s \$0.button.down;
|
r@216
|
116 #X obj 103 338 s \$0.button.left;
|
r@216
|
117 #X obj 138 313 s \$0.button.right;
|
r@216
|
118 #X obj 177 286 s \$0.button.a;
|
r@216
|
119 #X obj 212 261 s \$0.button.b;
|
r@216
|
120 #X obj 243 235 s \$0.button.minus;
|
r@216
|
121 #X obj 280 208 s \$0.button.home;
|
r@216
|
122 #X obj 325 180 s \$0.button.plus;
|
r@216
|
123 #X obj 372 151 s \$0.button.1;
|
r@216
|
124 #X obj 404 122 s \$0.button.2;
|
r@216
|
125 #X obj 11 79 unpack f f;
|
r@216
|
126 #X obj 11 56 list;
|
r@216
|
127 #X obj 33 359 & 8;
|
r@216
|
128 #X obj 66 335 & 4;
|
r@216
|
129 #X obj 103 310 & 1;
|
r@216
|
130 #X obj 138 285 & 2;
|
r@216
|
131 #X obj 177 258 & 8;
|
r@216
|
132 #X obj 212 233 & 4;
|
r@216
|
133 #X obj 243 207 & 16;
|
r@216
|
134 #X obj 280 180 & 128;
|
r@216
|
135 #X obj 325 152 & 16;
|
r@216
|
136 #X obj 372 123 & 2;
|
r@216
|
137 #X obj 404 94 & 1;
|
r@216
|
138 #X connect 0 0 1 0;
|
r@216
|
139 #X connect 1 0 14 0;
|
r@216
|
140 #X connect 13 0 15 0;
|
r@216
|
141 #X connect 13 0 16 0;
|
r@216
|
142 #X connect 13 0 17 0;
|
r@216
|
143 #X connect 13 0 18 0;
|
r@216
|
144 #X connect 13 0 23 0;
|
r@216
|
145 #X connect 13 1 19 0;
|
r@216
|
146 #X connect 13 1 20 0;
|
r@216
|
147 #X connect 13 1 21 0;
|
r@216
|
148 #X connect 13 1 22 0;
|
r@216
|
149 #X connect 13 1 24 0;
|
r@216
|
150 #X connect 13 1 25 0;
|
r@216
|
151 #X connect 14 0 13 0;
|
r@216
|
152 #X connect 15 0 2 0;
|
r@216
|
153 #X connect 16 0 3 0;
|
r@216
|
154 #X connect 17 0 4 0;
|
r@216
|
155 #X connect 18 0 5 0;
|
r@216
|
156 #X connect 19 0 6 0;
|
r@216
|
157 #X connect 20 0 7 0;
|
r@216
|
158 #X connect 21 0 8 0;
|
r@216
|
159 #X connect 22 0 9 0;
|
r@216
|
160 #X connect 23 0 10 0;
|
r@216
|
161 #X connect 24 0 11 0;
|
r@216
|
162 #X connect 25 0 12 0;
|
r@216
|
163 #X restore 711 385 pd buttons;
|
r@216
|
164 #N canvas 12 0 677 674 accel 0;
|
r@216
|
165 #X obj 359 239 unpack 0 0 0;
|
r@216
|
166 #X obj 92 612 expr sqrt(pow($f1 \, 2) + pow($f2 \, 2) + pow($f3 \,
|
r@216
|
167 2));
|
r@216
|
168 #X obj 350 298 atan;
|
r@216
|
169 #X obj 350 277 expr $f1 / $f2;
|
r@216
|
170 #X obj 383 322 expr if ($f1 > 0 \, 3.14159 \, -3.14159);
|
r@216
|
171 #X obj 350 349 pack 0 0 0;
|
r@216
|
172 #X obj 350 371 expr if ($f3 <= 0 \, $f1 + $f2 \, $f1);
|
r@216
|
173 #X obj 350 393 * -1;
|
r@216
|
174 #X obj 299 128 unpack 0 0 0;
|
r@216
|
175 #X obj 35 461 s \$0-wii-pitch-set;
|
r@216
|
176 #X obj 350 463 s \$0-wii-roll-set;
|
r@216
|
177 #X obj 378 148 s \$0-wii-accZ-set;
|
r@216
|
178 #X obj 338 167 s \$0-wii-accY-set;
|
r@216
|
179 #X obj 299 186 s \$0-wii-accX-set;
|
r@216
|
180 #X text 75 514 The pitch and roll are only accurate if there are no
|
r@216
|
181 extra accelerations due to hand movement. We can check if the total
|
r@216
|
182 acceleration is close to gravity and only use pitch and roll in that
|
r@216
|
183 case. The total acceleration is given by:;
|
r@216
|
184 #X text 311 106 raw accerlation:;
|
r@216
|
185 #X obj 24 239 unpack 0 0 0;
|
r@216
|
186 #X obj 35 298 atan;
|
r@216
|
187 #X obj 35 277 expr $f1 / $f2;
|
r@216
|
188 #X obj 67 322 expr if ($f1 > 0 \, 3.14159 \, -3.14159);
|
r@216
|
189 #X obj 35 349 pack 0 0 0;
|
r@216
|
190 #X obj 35 371 expr if ($f3 <= 0 \, $f1 + $f2 \, $f1);
|
r@216
|
191 #X obj 35 393 * -1;
|
r@216
|
192 #X obj 225 578 unpack 0 0 0;
|
r@216
|
193 #X obj 126 71 t a;
|
r@216
|
194 #X obj 126 20 r \$0.from.wiimote;
|
r@216
|
195 #X obj 126 44 route acceleration;
|
r@216
|
196 #X connect 0 0 3 0;
|
r@216
|
197 #X connect 0 0 4 0;
|
r@216
|
198 #X connect 0 2 3 1;
|
r@216
|
199 #X connect 0 2 5 2;
|
r@216
|
200 #X connect 2 0 5 0;
|
r@216
|
201 #X connect 3 0 2 0;
|
r@216
|
202 #X connect 4 0 5 1;
|
r@216
|
203 #X connect 5 0 6 0;
|
r@216
|
204 #X connect 6 0 7 0;
|
r@216
|
205 #X connect 7 0 10 0;
|
r@216
|
206 #X connect 8 0 13 0;
|
r@216
|
207 #X connect 8 1 12 0;
|
r@216
|
208 #X connect 8 2 11 0;
|
r@216
|
209 #X connect 16 1 18 0;
|
r@216
|
210 #X connect 16 1 19 0;
|
r@216
|
211 #X connect 16 2 18 1;
|
r@216
|
212 #X connect 16 2 20 2;
|
r@216
|
213 #X connect 17 0 20 0;
|
r@216
|
214 #X connect 18 0 17 0;
|
r@216
|
215 #X connect 19 0 20 1;
|
r@216
|
216 #X connect 20 0 21 0;
|
r@216
|
217 #X connect 21 0 22 0;
|
r@216
|
218 #X connect 22 0 9 0;
|
r@216
|
219 #X connect 23 0 1 0;
|
r@216
|
220 #X connect 23 1 1 1;
|
r@216
|
221 #X connect 23 2 1 2;
|
r@216
|
222 #X connect 24 0 8 0;
|
r@216
|
223 #X connect 24 0 16 0;
|
r@216
|
224 #X connect 24 0 0 0;
|
r@216
|
225 #X connect 25 0 26 0;
|
r@216
|
226 #X connect 26 0 24 0;
|
r@216
|
227 #X restore 711 410 pd accel;
|
r@216
|
228 #N canvas 195 75 568 473 ir 0;
|
r@216
|
229 #N canvas 631 449 342 204 IR-blobs 0;
|
r@216
|
230 #X obj 39 34 struct IR-blobs float x float y symbol s;
|
r@216
|
231 #X obj 39 71 filledcurve 9 30 0 0 -30 -30 0 0 30 30 0;
|
r@216
|
232 #X obj 48 112 drawsymbol s -60 -75 0 1 blob;
|
r@216
|
233 #X restore 8 19 pd IR-blobs;
|
r@216
|
234 #X obj 227 420 pointer;
|
r@216
|
235 #X msg 227 398 traverse pd-IR-data \, next;
|
r@216
|
236 #X obj 134 63 route 0 1 2 3;
|
r@216
|
237 #X obj 134 422 unpack 0 0 0;
|
r@216
|
238 #X obj 134 443 set IR-blobs x y;
|
r@216
|
239 #X obj 245 350 pointer;
|
r@216
|
240 #X obj 152 352 unpack 0 0 0;
|
r@216
|
241 #X obj 152 373 set IR-blobs x y;
|
r@216
|
242 #X msg 245 328 traverse pd-IR-data \, next \, next;
|
r@216
|
243 #X obj 264 272 pointer;
|
r@216
|
244 #X obj 171 266 unpack 0 0 0;
|
r@216
|
245 #X obj 171 292 set IR-blobs x y;
|
r@216
|
246 #X msg 264 250 traverse pd-IR-data \, next \, next \, next;
|
r@216
|
247 #X obj 283 197 pointer;
|
r@216
|
248 #X obj 190 199 unpack 0 0 0;
|
r@216
|
249 #X obj 190 220 set IR-blobs x y;
|
r@216
|
250 #X msg 283 175 traverse pd-IR-data \, next \, next \, next \, next
|
r@216
|
251 ;
|
r@216
|
252 #X obj 134 18 r \$0.from.wiimote;
|
r@216
|
253 #X obj 134 40 route ir;
|
r@216
|
254 #X msg 249 99 \$1 \$2 384 0;
|
r@216
|
255 #X obj 249 40 t f f;
|
r@216
|
256 #X obj 249 80 pack;
|
r@216
|
257 #X msg 249 20 0 \, 1 \, 2 \, 3;
|
r@216
|
258 #X obj 279 60 * 256;
|
r@216
|
259 #X obj 279 80 + 128;
|
r@216
|
260 #X obj 431 32 loadbang;
|
r@216
|
261 #X obj 431 54 t b b;
|
r@216
|
262 #X obj 228 147 t b b b b;
|
r@216
|
263 #X connect 1 0 5 2;
|
r@216
|
264 #X connect 2 0 1 0;
|
r@216
|
265 #X connect 3 0 4 0;
|
r@216
|
266 #X connect 3 1 7 0;
|
r@216
|
267 #X connect 3 2 11 0;
|
r@216
|
268 #X connect 3 3 15 0;
|
r@216
|
269 #X connect 4 0 5 0;
|
r@216
|
270 #X connect 4 1 5 1;
|
r@216
|
271 #X connect 6 0 8 2;
|
r@216
|
272 #X connect 7 0 8 0;
|
r@216
|
273 #X connect 7 1 8 1;
|
r@216
|
274 #X connect 9 0 6 0;
|
r@216
|
275 #X connect 10 0 12 2;
|
r@216
|
276 #X connect 11 0 12 0;
|
r@216
|
277 #X connect 11 1 12 1;
|
r@216
|
278 #X connect 13 0 10 0;
|
r@216
|
279 #X connect 14 0 16 2;
|
r@216
|
280 #X connect 15 0 16 0;
|
r@216
|
281 #X connect 15 1 16 1;
|
r@216
|
282 #X connect 17 0 14 0;
|
r@216
|
283 #X connect 18 0 19 0;
|
r@216
|
284 #X connect 19 0 3 0;
|
r@216
|
285 #X connect 20 0 3 0;
|
r@216
|
286 #X connect 21 0 22 0;
|
r@216
|
287 #X connect 21 1 24 0;
|
r@216
|
288 #X connect 22 0 20 0;
|
r@216
|
289 #X connect 23 0 21 0;
|
r@216
|
290 #X connect 24 0 25 0;
|
r@216
|
291 #X connect 25 0 22 1;
|
r@216
|
292 #X connect 26 0 27 0;
|
r@216
|
293 #X connect 27 0 23 0;
|
r@216
|
294 #X connect 27 1 28 0;
|
r@216
|
295 #X connect 28 0 2 0;
|
r@216
|
296 #X connect 28 1 9 0;
|
r@216
|
297 #X connect 28 2 13 0;
|
r@216
|
298 #X connect 28 3 17 0;
|
r@216
|
299 #X restore 710 436 pd ir;
|
r@216
|
300 #X obj 735 189 tgl 13 0 \$0.bli \$0.button.left empty 17 7 0 10 -191407
|
r@216
|
301 -1 -1 0 1;
|
r@216
|
302 #X obj 763 189 tgl 13 0 \$0.bli \$0.button.right empty 17 7 0 10 -191407
|
r@216
|
303 -1 -1 0 2;
|
r@216
|
304 #X obj 749 203 tgl 13 0 \$0.bli \$0.button.down empty 17 7 0 10 -191407
|
r@216
|
305 -1 -1 0 4;
|
r@216
|
306 #X obj 749 175 tgl 13 0 \$0.bli \$0.button.up empty 17 7 0 10 -191407
|
r@216
|
307 -1 -1 0 8;
|
r@216
|
308 #X obj 726 288 tgl 13 0 \$0.bli \$0.button.minus - 5 8 0 10 -191407
|
r@216
|
309 -1 -1 0 16;
|
r@216
|
310 #X obj 750 288 tgl 13 0 \$0.bli \$0.button.home empty 17 7 0 10 -191407
|
r@216
|
311 -1 -1 0 128;
|
r@216
|
312 #X obj 774 288 tgl 13 0 \$0.bli \$0.button.plus + 5 8 0 10 -191407
|
r@216
|
313 -1 -1 0 16;
|
r@216
|
314 #X obj 747 228 tgl 18 0 \$0.bli \$0.button.b B 5 9 1 13 -191407 -1
|
r@216
|
315 -1 0 4;
|
r@216
|
316 #X obj 747 240 tgl 18 0 \$0.bli \$0.button.a A 5 9 1 13 -191407 -1
|
r@216
|
317 -1 0 8;
|
r@216
|
318 #X obj 749 322 tgl 16 0 \$0.bli \$0.button.1 1 5 9 1 11 -191407 -1
|
r@216
|
319 -1 0 2;
|
r@216
|
320 #X obj 749 349 tgl 16 0 \$0.bli \$0.button.2 2 5 9 1 11 -191407 -1
|
r@216
|
321 -1 0 1;
|
r@216
|
322 #X obj 215 317 spigot;
|
r@216
|
323 #X obj 215 339 print WIIMOTE;
|
r@216
|
324 #X obj 215 280 r \$0.from.wiimote;
|
r@216
|
325 #X obj 254 299 tgl 15 0 empty empty print_data 19 7 0 13 -261234 -1
|
r@216
|
326 -1 0 1;
|
r@216
|
327 #X obj 15 401 wiimote 00:1F:C5:0B:1F:86;
|
r@216
|
328 #X text 10 221 By default \, the wiimote does not report acceleration
|
r@216
|
329 data \, IR data \, or any data from an attached extension (eg \, nunchuck).
|
r@216
|
330 You must specifically enable each reporting mode.;
|
r@216
|
331 #X obj 16 279 cnv 15 140 70 empty empty empty 20 12 0 14 -228856 -66577
|
r@216
|
332 0;
|
r@216
|
333 #X obj 21 305 wiimote;
|
r@216
|
334 #X obj 21 283 r \$0.to.wiimote;
|
r@216
|
335 #X obj 21 327 s \$0.from.wiimote;
|
r@216
|
336 #X text 10 55 Then you can connect to a specific address:;
|
r@216
|
337 #X text 27 103 Or you can try to automatically detect a wiimote:;
|
r@216
|
338 #X obj 435 469 cnv 15 375 60 empty empty Extensions: 20 12 0 14 -204786
|
r@216
|
339 -66577 0;
|
r@216
|
340 #N canvas 3 45 418 236 Nunchuck 0;
|
r@216
|
341 #X obj 16 11 cnv 15 375 180 empty empty Nunchuk: 10 15 0 14 -228992
|
r@216
|
342 -355 0;
|
r@216
|
343 #X floatatom 163 133 7 0 0 1 _X #0-nc-accX-set #0-nc-accX;
|
r@216
|
344 #X floatatom 163 147 7 0 0 1 _Y #0-nc-accY-set #0-nc-accY;
|
r@216
|
345 #X floatatom 163 161 7 0 0 1 _Z #0-nc-accZ-set #0-nc-accZ;
|
r@216
|
346 #X obj 33 133 hsl 128 14 -1 1 0 0 \$0-nc-accX \$0-nc-accX-set empty
|
r@216
|
347 -2 -8 0 10 -261681 -1 -1 0 1;
|
r@216
|
348 #X obj 33 147 hsl 128 14 -1 1 0 0 \$0-nc-accY \$0-nc-accY-set empty
|
r@216
|
349 -2 -8 0 10 -261681 -1 -1 0 1;
|
r@216
|
350 #X obj 33 161 hsl 128 14 -1 1 0 0 \$0-nc-accZ \$0-nc-accZ-set empty
|
r@216
|
351 -2 -8 0 10 -261681 -1 -1 0 1;
|
r@216
|
352 #X obj 298 51 nbx 3 16 -1e+37 1e+37 0 0 empty \$0-nc-btn-set empty
|
r@216
|
353 -80 8 0 10 -261681 -1 -1 0 256;
|
r@216
|
354 #X text 29 117 Acceleration:;
|
r@216
|
355 #X text 231 48 Buttons:;
|
r@216
|
356 #X text 297 84 Stick:;
|
r@216
|
357 #N canvas 185 133 481 416 NC-data 0;
|
r@216
|
358 #X scalar NC-stick 130 133 \;;
|
r@216
|
359 #X coords 0 0 256 256 80 80 1;
|
r@216
|
360 #X restore 296 101 pd NC-data;
|
r@216
|
361 #X obj 32 38 tgl 25 0 empty empty empty 17 7 0 10 -261682 -1 -1 0 1
|
r@216
|
362 ;
|
r@216
|
363 #X msg 32 68 report nunchuk \$1;
|
r@216
|
364 #X obj 32 89 s \$0.to.wiimote;
|
r@216
|
365 #N canvas 3 217 743 313 nunchuk 0;
|
r@216
|
366 #X obj 15 55 route button acceleration stick;
|
r@216
|
367 #X obj 494 184 pointer;
|
r@216
|
368 #X obj 494 141 loadbang;
|
r@216
|
369 #X obj 387 153 unpack 0 0;
|
r@216
|
370 #X obj 387 229 set NC-stick x y;
|
r@216
|
371 #X obj 160 148 unpack 0 0 0;
|
r@216
|
372 #X obj 240 169 s \$0-nc-accZ-set;
|
r@216
|
373 #X obj 200 188 s \$0-nc-accY-set;
|
r@216
|
374 #X obj 160 211 s \$0-nc-accX-set;
|
r@216
|
375 #X obj 15 169 s \$0-nc-btn-set;
|
r@216
|
376 #X msg 494 162 traverse pd-NC-data \, next;
|
r@216
|
377 #X obj 15 11 r \$0.from.wiimote;
|
r@216
|
378 #X obj 15 33 route nunchuk;
|
r@216
|
379 #N canvas 154 209 610 221 NC-stick 0;
|
r@216
|
380 #X obj 39 34 struct NC-stick float x float y;
|
r@216
|
381 #X obj 44 71 filledpolygon 900 20 0 5 -5 0 -20 -5 -5 -20 0 -5 5 0 20
|
r@216
|
382 5 5 20 0;
|
r@216
|
383 #X restore 386 262 pd NC-stick;
|
r@216
|
384 #X connect 0 0 9 0;
|
r@216
|
385 #X connect 0 1 5 0;
|
r@216
|
386 #X connect 0 2 3 0;
|
r@216
|
387 #X connect 1 0 4 2;
|
r@216
|
388 #X connect 2 0 10 0;
|
r@216
|
389 #X connect 3 0 4 0;
|
r@216
|
390 #X connect 3 1 4 1;
|
r@216
|
391 #X connect 5 0 8 0;
|
r@216
|
392 #X connect 5 1 7 0;
|
r@216
|
393 #X connect 5 2 6 0;
|
r@216
|
394 #X connect 10 0 1 0;
|
r@216
|
395 #X connect 11 0 12 0;
|
r@216
|
396 #X connect 12 0 0 0;
|
r@216
|
397 #X restore 180 89 pd nunchuk;
|
r@216
|
398 #X connect 12 0 13 0;
|
r@216
|
399 #X connect 13 0 14 0;
|
r@216
|
400 #X restore 570 482 pd Nunchuck;
|
r@216
|
401 #N canvas 161 144 450 300 MotionPlus 0;
|
r@216
|
402 #X obj 56 55 cnv 15 375 160 empty empty MotionPlus: 10 15 0 14 -262130
|
r@216
|
403 -83269 0;
|
r@216
|
404 #X obj 67 86 tgl 25 0 empty empty empty 17 7 0 10 -203904 -1 -1 0 1
|
r@216
|
405 ;
|
r@216
|
406 #X msg 67 116 report motionplus \$1;
|
r@216
|
407 #X obj 67 137 s \$0.to.wiimote;
|
r@216
|
408 #X floatatom 198 165 7 0 0 1 _pitch #0-wii-mp-pitch-set #0-wii-mp-pitch
|
r@216
|
409 ;
|
r@216
|
410 #X floatatom 198 179 7 0 0 1 _roll #0-wii-mp-roll-set #0-wii-mp-roll
|
r@216
|
411 ;
|
r@216
|
412 #X obj 68 165 hsl 128 14 0 16000 0 0 \$0-wii-mp-pitch \$0-wii-mp-pitch-set
|
r@216
|
413 empty -2 -8 0 10 -203904 -1 -1 0 1;
|
r@216
|
414 #X obj 68 179 hsl 128 14 0 16000 0 0 \$0-wii-mp-roll \$0-wii-mp-roll-set
|
r@216
|
415 empty -2 -8 0 10 -203904 -1 -1 0 1;
|
r@216
|
416 #N canvas 0 0 308 266 motionplus 0;
|
r@216
|
417 #X obj 8 51 route motionplus;
|
r@216
|
418 #X obj 8 73 route angle_rate low_speed;
|
r@216
|
419 #X obj 97 98 unpack f f f;
|
r@216
|
420 #X obj 8 134 unpack f f f;
|
r@216
|
421 #X obj 8 20 r \$0.from.wiimote;
|
r@216
|
422 #X obj 8 209 s \$0-wii-mp-pitch-set;
|
r@216
|
423 #X obj 48 187 s \$0-wii-mp-roll-set;
|
r@216
|
424 #X obj 89 162 s \$0-wii-mp-yaw-set;
|
r@216
|
425 #X connect 0 0 1 0;
|
r@216
|
426 #X connect 1 0 3 0;
|
r@216
|
427 #X connect 1 1 2 0;
|
r@216
|
428 #X connect 3 0 5 0;
|
r@216
|
429 #X connect 3 1 6 0;
|
r@216
|
430 #X connect 3 2 7 0;
|
r@216
|
431 #X connect 4 0 0 0;
|
r@216
|
432 #X restore 279 116 pd motionplus;
|
r@216
|
433 #X floatatom 198 193 7 0 0 1 _yaw #0-wii-mp-yaw-set #0-wii-mp-yaw;
|
r@216
|
434 #X obj 68 193 hsl 128 14 0 16000 0 0 \$0-wii-mp-yaw \$0-wii-mp-yaw-set
|
r@216
|
435 empty -2 -8 0 10 -203904 -1 -1 0 1;
|
r@216
|
436 #X connect 1 0 2 0;
|
r@216
|
437 #X connect 2 0 3 0;
|
r@216
|
438 #X restore 570 502 pd MotionPlus;
|
r@216
|
439 #N canvas 3 45 450 300 ClassicController 0;
|
r@216
|
440 #X obj 17 21 cnv 15 375 260 empty empty ClassicController: 10 15 0
|
r@216
|
441 14 -204786 -13381 0;
|
r@216
|
442 #X obj 38 140 tgl 14 0 \$0.bli \$0.cc.button.L empty 17 7 0 10 -228856
|
r@216
|
443 -1 -1 0 32;
|
r@216
|
444 #X obj 52 140 nbx 2 14 -1e+37 1e+37 0 0 \$0.bli \$0.cc.analog.L empty
|
r@216
|
445 0 -8 0 10 -228856 -1 -1 0 256;
|
r@216
|
446 #X obj 121 130 tgl 14 0 \$0.bli \$0.cc.button.zl empty 17 7 0 10 -228856
|
r@216
|
447 -1 -1 0 128;
|
r@216
|
448 #X obj 291 140 tgl 14 0 \$0.bli \$0.cc.button.R empty 17 7 0 10 -228856
|
r@216
|
449 -1 -1 0 2;
|
r@216
|
450 #X obj 305 140 nbx 2 14 -1e+37 1e+37 0 0 \$0.bli \$0.cc.analog.R empty
|
r@216
|
451 0 -8 0 10 -228856 -1 -1 0 256;
|
r@216
|
452 #X obj 236 130 tgl 14 0 \$0.bli \$0.cc.button.zr empty 17 7 0 10 -228856
|
r@216
|
453 -1 -1 0 4;
|
r@216
|
454 #X obj 61 184 tgl 14 0 \$0.bli \$0.cc.button.up empty 17 7 0 10 -228856
|
r@216
|
455 -1 -1 0 1;
|
r@216
|
456 #X obj 80 203 tgl 14 0 \$0.bli \$0.cc.button.right empty 17 7 0 10
|
r@216
|
457 -228856 -1 -1 0 128;
|
r@216
|
458 #X obj 42 203 tgl 14 0 \$0.bli \$0.cc.button.left empty 17 7 0 10 -228856
|
r@216
|
459 -1 -1 0 2;
|
r@216
|
460 #X obj 61 222 tgl 14 0 \$0.bli \$0.cc.button.down empty 17 7 0 10 -228856
|
r@216
|
461 -1 -1 0 64;
|
r@216
|
462 #X obj 153 182 tgl 13 0 \$0.bli \$0.cc.button.minus - 5 8 0 10 -228856
|
r@216
|
463 -1 -1 0 16;
|
r@216
|
464 #X obj 177 182 tgl 13 0 \$0.bli \$0.cc.button.home empty 17 7 0 10
|
r@216
|
465 -228856 -1 -1 0 8;
|
r@216
|
466 #X obj 201 182 tgl 13 0 \$0.bli \$0.cc.button.plus + 5 8 0 10 -228856
|
r@216
|
467 -1 -1 0 4;
|
r@216
|
468 #X obj 300 181 tgl 16 0 \$0.bli \$0.cc.button.x x 5 8 0 10 -228856
|
r@216
|
469 -1 -1 0 8;
|
r@216
|
470 #X obj 321 202 tgl 16 0 \$0.bli \$0.cc.button.a a 5 8 0 10 -228856
|
r@216
|
471 -1 -1 0 16;
|
r@216
|
472 #X obj 279 202 tgl 16 0 \$0.bli \$0.cc.button.y y 5 8 0 10 -228856
|
r@216
|
473 -1 -1 0 32;
|
r@216
|
474 #X obj 300 223 tgl 16 0 \$0.bli \$0.cc.button.b b 5 8 0 10 -228856
|
r@216
|
475 -1 -1 0 64;
|
r@216
|
476 #X msg 28 80 report classic \$1;
|
r@216
|
477 #X obj 28 50 tgl 25 0 empty empty empty 17 7 0 10 -228856 -1 -1 0 1
|
r@216
|
478 ;
|
r@216
|
479 #X obj 28 103 s \$0.to.wiimote;
|
r@216
|
480 #N canvas 99 0 677 676 classic 0;
|
r@216
|
481 #X obj 9 11 r \$0.from.wiimote;
|
r@216
|
482 #X obj 9 33 route classic;
|
r@216
|
483 #X obj 9 55 route button right_stick left_stick left right;
|
r@216
|
484 #X obj 9 215 unpack f f;
|
r@216
|
485 #X obj 7 642 s \$0.cc.button.left;
|
r@216
|
486 #X obj 38 621 s \$0.cc.button.right;
|
r@216
|
487 #X obj 83 599 s \$0.cc.button.down;
|
r@216
|
488 #X obj 120 577 s \$0.cc.button.up;
|
r@216
|
489 #X obj 152 554 s \$0.cc.button.x;
|
r@216
|
490 #X obj 183 533 s \$0.cc.button.y;
|
r@216
|
491 #X obj 293 467 s \$0.cc.button.L;
|
r@216
|
492 #X obj 331 445 s \$0.cc.button.zl;
|
r@216
|
493 #X obj 378 423 s \$0.cc.button.zr;
|
r@216
|
494 #X obj 409 402 s \$0.cc.button.R;
|
r@216
|
495 #X obj 440 379 s \$0.cc.button.minus;
|
r@216
|
496 #X obj 476 357 s \$0.cc.button.home;
|
r@216
|
497 #X obj 507 336 s \$0.cc.button.plus;
|
r@216
|
498 #X obj 7 620 & 2;
|
r@216
|
499 #X obj 38 599 & 128;
|
r@216
|
500 #X obj 120 555 & 1;
|
r@216
|
501 #X obj 83 577 & 64;
|
r@216
|
502 #X obj 152 532 & 8;
|
r@216
|
503 #X obj 183 511 & 32;
|
r@216
|
504 #X obj 219 489 & 64;
|
r@216
|
505 #X obj 219 511 s \$0.cc.button.b;
|
r@216
|
506 #X obj 256 489 s \$0.cc.button.a;
|
r@216
|
507 #X obj 256 467 & 16;
|
r@216
|
508 #X obj 293 445 & 32;
|
r@216
|
509 #X obj 331 423 & 128;
|
r@216
|
510 #X obj 378 401 & 4;
|
r@216
|
511 #X obj 409 380 & 2;
|
r@216
|
512 #X obj 440 357 & 16;
|
r@216
|
513 #X obj 476 335 & 8;
|
r@216
|
514 #X obj 507 314 & 4;
|
r@216
|
515 #X obj 200 99 s \$0.cc.analog.L;
|
r@216
|
516 #X obj 264 77 s \$0.cc.analog.R;
|
r@216
|
517 #N canvas 0 0 456 304 left_stick 0;
|
r@216
|
518 #X obj 132 150 pointer;
|
r@216
|
519 #X obj 132 107 loadbang;
|
r@216
|
520 #X obj 25 80 unpack 0 0;
|
r@216
|
521 #X msg 132 128 traverse pd-cc.l \, next;
|
r@216
|
522 #X obj 25 195 set cc-left-stick x y;
|
r@216
|
523 #N canvas 302 445 610 221 cc-left-stick 0;
|
r@216
|
524 #X obj 39 68 filledpolygon 900 20 0 5 -5 0 -20 -5 -5 -20 0 -5 5 0 20
|
r@216
|
525 5 5 20 0;
|
r@216
|
526 #X obj 39 34 struct cc-left-stick float x float y;
|
r@216
|
527 #X restore 24 228 pd cc-left-stick;
|
r@216
|
528 #X obj 25 31 inlet;
|
r@216
|
529 #X obj 92 105 * -1;
|
r@216
|
530 #X obj 92 127 + 64;
|
r@216
|
531 #X obj 25 153 * 2;
|
r@216
|
532 #X obj 92 159 * 2;
|
r@216
|
533 #X connect 0 0 4 2;
|
r@216
|
534 #X connect 1 0 3 0;
|
r@216
|
535 #X connect 2 0 9 0;
|
r@216
|
536 #X connect 2 1 7 0;
|
r@216
|
537 #X connect 3 0 0 0;
|
r@216
|
538 #X connect 6 0 2 0;
|
r@216
|
539 #X connect 7 0 8 0;
|
r@216
|
540 #X connect 8 0 10 0;
|
r@216
|
541 #X connect 9 0 4 0;
|
r@216
|
542 #X connect 10 0 4 1;
|
r@216
|
543 #X restore 136 131 pd left_stick;
|
r@216
|
544 #N canvas 0 0 456 304 right_stick 0;
|
r@216
|
545 #X obj 176 144 pointer;
|
r@216
|
546 #X obj 177 101 loadbang;
|
r@216
|
547 #X obj 25 79 unpack 0 0;
|
r@216
|
548 #X obj 25 31 inlet;
|
r@216
|
549 #X obj 92 104 * -1;
|
r@216
|
550 #X msg 177 122 traverse pd-cc.r \, next;
|
r@216
|
551 #X obj 25 192 set cc-right-stick x y;
|
r@216
|
552 #N canvas 302 445 610 221 cc-right-stick 0;
|
r@216
|
553 #X obj 39 68 filledpolygon 900 20 0 5 -5 0 -20 -5 -5 -20 0 -5 5 0 20
|
r@216
|
554 5 5 20 0;
|
r@216
|
555 #X obj 39 34 struct cc-right-stick float x float y;
|
r@216
|
556 #X restore 24 228 pd cc-right-stick;
|
r@216
|
557 #X obj 92 126 + 32;
|
r@216
|
558 #X obj 25 159 * 4;
|
r@216
|
559 #X obj 92 157 * 4;
|
r@216
|
560 #X connect 0 0 6 2;
|
r@216
|
561 #X connect 1 0 5 0;
|
r@216
|
562 #X connect 2 0 9 0;
|
r@216
|
563 #X connect 2 1 4 0;
|
r@216
|
564 #X connect 3 0 2 0;
|
r@216
|
565 #X connect 4 0 8 0;
|
r@216
|
566 #X connect 5 0 0 0;
|
r@216
|
567 #X connect 8 0 10 0;
|
r@216
|
568 #X connect 9 0 6 0;
|
r@216
|
569 #X connect 10 0 6 1;
|
r@216
|
570 #X restore 72 156 pd right_stick;
|
r@216
|
571 #X connect 0 0 1 0;
|
r@216
|
572 #X connect 1 0 2 0;
|
r@216
|
573 #X connect 2 0 3 0;
|
r@216
|
574 #X connect 2 1 37 0;
|
r@216
|
575 #X connect 2 2 36 0;
|
r@216
|
576 #X connect 2 3 34 0;
|
r@216
|
577 #X connect 2 4 35 0;
|
r@216
|
578 #X connect 3 0 20 0;
|
r@216
|
579 #X connect 3 0 18 0;
|
r@216
|
580 #X connect 3 0 27 0;
|
r@216
|
581 #X connect 3 0 30 0;
|
r@216
|
582 #X connect 3 0 31 0;
|
r@216
|
583 #X connect 3 0 32 0;
|
r@216
|
584 #X connect 3 0 33 0;
|
r@216
|
585 #X connect 3 1 17 0;
|
r@216
|
586 #X connect 3 1 19 0;
|
r@216
|
587 #X connect 3 1 21 0;
|
r@216
|
588 #X connect 3 1 22 0;
|
r@216
|
589 #X connect 3 1 23 0;
|
r@216
|
590 #X connect 3 1 26 0;
|
r@216
|
591 #X connect 3 1 28 0;
|
r@216
|
592 #X connect 3 1 29 0;
|
r@216
|
593 #X connect 17 0 4 0;
|
r@216
|
594 #X connect 18 0 5 0;
|
r@216
|
595 #X connect 19 0 7 0;
|
r@216
|
596 #X connect 20 0 6 0;
|
r@216
|
597 #X connect 21 0 8 0;
|
r@216
|
598 #X connect 22 0 9 0;
|
r@216
|
599 #X connect 23 0 24 0;
|
r@216
|
600 #X connect 26 0 25 0;
|
r@216
|
601 #X connect 27 0 10 0;
|
r@216
|
602 #X connect 28 0 11 0;
|
r@216
|
603 #X connect 29 0 12 0;
|
r@216
|
604 #X connect 30 0 13 0;
|
r@216
|
605 #X connect 31 0 14 0;
|
r@216
|
606 #X connect 32 0 15 0;
|
r@216
|
607 #X connect 33 0 16 0;
|
r@216
|
608 #X restore 238 69 pd classic;
|
r@216
|
609 #N canvas 325 377 481 416 cc.l 0;
|
r@216
|
610 #X scalar cc-left-stick 62 66 \;;
|
r@216
|
611 #X coords 0 0 128 128 50 50 1;
|
r@216
|
612 #X restore 121 215 pd cc.l;
|
r@216
|
613 #N canvas 185 133 481 416 cc.r 0;
|
r@216
|
614 #X scalar cc-right-stick 64 64 \;;
|
r@216
|
615 #X coords 0 0 128 128 50 50 1;
|
r@216
|
616 #X restore 203 214 pd cc.r;
|
r@216
|
617 #X connect 18 0 20 0;
|
r@216
|
618 #X connect 19 0 18 0;
|
r@216
|
619 #X restore 667 482 pd ClassicController;
|
r@216
|
620 #N canvas 203 133 450 300 Balance 0;
|
r@216
|
621 #X obj 37 56 cnv 15 375 215 empty empty Balance: 10 15 0 14 -232576
|
r@216
|
622 -13381 0;
|
r@216
|
623 #X obj 46 85 tgl 25 0 empty empty empty 17 7 0 10 -261234 -1 -1 0 1
|
r@216
|
624 ;
|
r@216
|
625 #X obj 46 138 s \$0.to.wiimote;
|
r@216
|
626 #X msg 46 115 report balance \$1;
|
r@216
|
627 #N canvas 475 229 445 263 balance 0;
|
r@216
|
628 #X obj 8 20 r \$0.from.wiimote;
|
r@216
|
629 #X obj 8 51 route balance;
|
r@216
|
630 #X obj 8 73 unpack;
|
r@216
|
631 #X obj 8 95 s \$0-bal-X-set;
|
r@216
|
632 #X obj 41 115 s \$0-bal-Y-set;
|
r@216
|
633 #X connect 0 0 1 0;
|
r@216
|
634 #X connect 1 0 2 0;
|
r@216
|
635 #X connect 2 0 3 0;
|
r@216
|
636 #X connect 2 1 4 0;
|
r@216
|
637 #X restore 249 98 pd balance;
|
r@216
|
638 #X text 228 144 ! Untested !;
|
r@216
|
639 #X text 232 164 (but might work);
|
r@216
|
640 #X floatatom 97 211 7 0 0 1 _X #0-bal-X-set #0-bal-X;
|
r@216
|
641 #X floatatom 227 211 7 0 0 1 _Y #0-bal-Y-set #0-bal-Y;
|
r@216
|
642 #X connect 1 0 3 0;
|
r@216
|
643 #X connect 3 0 2 0;
|
r@216
|
644 #X restore 667 502 pd Balance;
|
r@216
|
645 #X text 18 472 (c) 2007-2010 Mike Wozniewski \, IOhannes m zmoelnig
|
r@216
|
646 & Roman Haefeli;
|
r@216
|
647 #X connect 20 0 19 0;
|
r@216
|
648 #X connect 21 0 19 0;
|
r@216
|
649 #X connect 22 0 19 0;
|
r@216
|
650 #X connect 23 0 24 0;
|
r@216
|
651 #X connect 24 0 36 0;
|
r@216
|
652 #X connect 25 0 36 0;
|
r@216
|
653 #X connect 26 0 25 0;
|
r@216
|
654 #X connect 27 0 35 0;
|
r@216
|
655 #X connect 28 0 38 0;
|
r@216
|
656 #X connect 29 0 34 0;
|
r@216
|
657 #X connect 30 0 34 1;
|
r@216
|
658 #X connect 31 0 34 2;
|
r@216
|
659 #X connect 32 0 34 3;
|
r@216
|
660 #X connect 34 0 28 0;
|
r@216
|
661 #X connect 35 0 38 0;
|
r@216
|
662 #X connect 53 0 54 0;
|
r@216
|
663 #X connect 55 0 53 0;
|
r@216
|
664 #X connect 56 0 53 1;
|
r@216
|
665 #X connect 57 0 18 0;
|
r@216
|
666 #X connect 60 0 62 0;
|
r@216
|
667 #X connect 61 0 60 0;
|
r@216
|
668 #X coords 0 0 1 1 50 50 0;
|