/
PdWrapper.pd
405 lines (405 loc) · 10.7 KB
/
PdWrapper.pd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
#N canvas 592 23 774 717 10;
#X msg 46 172 listen 54300;
#X obj 47 198 netreceive -u -b;
#N canvas 62 222 699 674 oscparse-mobmuplat 0;
#X obj 58 127 oscparse;
#X obj 39 155 list tosymbol;
#X obj 75 199 list split 1;
#X obj 159 198 list;
#X obj 133 314 int;
#X obj 133 338 + 1;
#X obj 125 291 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X floatatom 125 378 5 0 0 0 - - -, f 5;
#X msg 159 290 0;
#X obj 59 398 list split 2;
#X obj 35 437 list append;
#X obj 75 224 sel 0;
#X obj 99 245 t b f;
#X obj 125 268 sel 47;
#X text 190 40 1) look at bytes \, count number of 47 (/) befoer zero
= N 2) split off first N items (the address components) from oscparse
output \, keep the rest 3) use tosymbol to get unparse address \, prepend
it to values.;
#X obj 36 63 t l l l b, f 12;
#X text 117 225 stop iterating on zero;
#X text 161 378 how many elements the address was split into;
#X text 130 156 gets address (symbol up until the null delimiter character)
;
#X obj 35 6 inlet;
#X obj 31 462 outlet;
#X connect 0 0 9 0;
#X connect 1 0 10 0;
#X connect 2 0 11 0;
#X connect 2 1 3 1;
#X connect 3 0 2 0;
#X connect 4 0 5 0;
#X connect 5 0 4 1;
#X connect 5 0 7 0;
#X connect 6 0 4 0;
#X connect 7 0 9 1;
#X connect 8 0 4 1;
#X connect 9 1 10 1;
#X connect 10 0 20 0;
#X connect 11 1 12 0;
#X connect 12 0 3 0;
#X connect 12 1 13 0;
#X connect 13 0 6 0;
#X connect 15 0 1 0;
#X connect 15 1 0 0;
#X connect 15 2 2 0;
#X connect 15 3 8 0;
#X connect 19 0 15 0;
#X restore 47 220 pd oscparse-mobmuplat;
#X obj 50 640 netsend -u -b;
#X msg 69 617 connect localhost 54310;
#N canvas 142 457 581 323 oscformat-mobmuplat 0;
#X obj 66 55 list split 1;
#X obj 107 104 list;
#X obj 65 83 list prepend set;
#X obj 64 131 list trim;
#X obj 65 104 t b l;
#X obj 65 27 inlet;
#X obj 72 183 oscformat;
#X obj 71 276 outlet;
#X text 183 82 extract the address \, set it on oscformat \, then send
values;
#X obj 72 206 list prepend send;
#X obj 72 232 list trim;
#X connect 0 0 2 0;
#X connect 0 1 1 1;
#X connect 1 0 6 0;
#X connect 2 0 4 0;
#X connect 3 0 6 0;
#X connect 4 0 1 0;
#X connect 4 1 3 0;
#X connect 5 0 0 0;
#X connect 6 0 9 0;
#X connect 9 0 10 0;
#X connect 10 0 7 0;
#X restore 49 574 pd oscformat-mobmuplat;
#N canvas 661 149 605 387 tablestuff 0;
#X obj 53 5 inlet;
#X msg 147 84 \; \$2 write \$1;
#X obj 65 84 unpack s s;
#X obj 63 252 send toSystem;
#X obj 364 8 inlet;
#X obj 472 398 tabwrite dummyTable;
#X msg 498 82 set \$1;
#X obj 390 118 -;
#X obj 389 95 swap;
#X floatatom 388 140 5 0 0 0 - - -, f 5;
#X obj 375 206 until;
#X obj 385 285 /, f 4;
#X obj 380 228 int;
#X obj 413 228 + 1;
#X obj 382 162 t f f b;
#X msg 420 206 0;
#X obj 438 121 -;
#X obj 437 98 swap;
#X obj 385 314 *;
#X text 420 287 0-1;
#X text 416 317 times delta y;
#X obj 383 344 +;
#X text 414 344 plus smaller;
#X obj 386 72 t f f;
#X obj 383 373 pack 0 0;
#X obj 460 284 +;
#X text 488 283 plus x1;
#X obj 377 255 t f f;
#X obj 388 186 max 1;
#X obj 359 183 + 1;
#X obj 364 37 unpack s 0 0 0 0;
#X obj 485 38 unpack s 0 0 0 0;
#X obj 58 55 t l l;
#X obj 61 157 array get;
#X text 128 139 test that table exists (to keep from loading table
from disk that is no longer in pd);
#X obj 63 198 symbol;
#X obj 58 126 t b s;
#X msg 60 176 bang;
#X obj 52 31 list;
#X msg 62 223 list /tableResponse \$1 done;
#X text 110 42 file path \, table name;
#X text 137 179 comment;
#X connect 0 0 38 0;
#X connect 2 1 36 0;
#X connect 4 0 30 0;
#X connect 4 0 31 0;
#X connect 6 0 5 0;
#X connect 7 0 9 0;
#X connect 8 0 7 0;
#X connect 8 1 7 1;
#X connect 9 0 14 0;
#X connect 10 0 12 0;
#X connect 11 0 18 0;
#X connect 12 0 13 0;
#X connect 12 0 27 0;
#X connect 13 0 12 1;
#X connect 14 0 29 0;
#X connect 14 1 28 0;
#X connect 14 2 15 0;
#X connect 15 0 12 1;
#X connect 16 0 18 1;
#X connect 17 0 16 0;
#X connect 17 1 16 1;
#X connect 18 0 21 0;
#X connect 21 0 24 0;
#X connect 23 0 8 0;
#X connect 23 1 25 1;
#X connect 24 0 5 0;
#X connect 25 0 24 1;
#X connect 27 0 11 0;
#X connect 27 1 25 0;
#X connect 28 0 11 1;
#X connect 29 0 10 0;
#X connect 30 1 23 0;
#X connect 30 2 17 0;
#X connect 30 2 21 1;
#X connect 30 3 8 1;
#X connect 30 4 17 1;
#X connect 31 0 6 0;
#X connect 32 0 2 0;
#X connect 32 1 1 0;
#X connect 33 0 37 0;
#X connect 35 0 39 0;
#X connect 36 0 33 0;
#X connect 36 1 33 2;
#X connect 36 1 35 1;
#X connect 37 0 35 0;
#X connect 38 0 32 0;
#X connect 39 0 3 0;
#X restore 51 333 pd tablestuff;
#X obj 48 455 receive toGUI;
#X obj 303 353 send fromGUI;
#X obj 45 149 loadbang;
#X obj 70 597 loadbang;
#X obj 48 246 list trim;
#X obj 142 332 list prepend /tilts;
#X obj 173 355 list prepend /shake;
#X floatatom 529 120 5 0 0 0 - - -, f 5;
#N canvas 0 22 450 300 oscparse-mobmuplat 0;
#X obj 58 127 oscparse;
#X obj 39 155 list tosymbol;
#X obj 75 199 list split 1;
#X obj 159 198 list;
#X obj 133 314 int;
#X obj 133 338 + 1;
#X obj 125 291 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X floatatom 125 378 5 0 0 0 - - -, f 5;
#X msg 159 290 0;
#X obj 59 398 list split 2;
#X obj 35 437 list append;
#X obj 75 224 sel 0;
#X obj 99 245 t b f;
#X obj 125 268 sel 47;
#X text 190 40 1) look at bytes \, count number of 47 (/) befoer zero
= N 2) split off first N items (the address components) from oscparse
output \, keep the rest 3) use tosymbol to get unparse address \, prepend
it to values.;
#X obj 36 63 t l l l b, f 12;
#X text 117 225 stop iterating on zero;
#X text 161 378 how many elements the address was split into;
#X text 130 156 gets address (symbol up until the null delimiter character)
;
#X obj 35 6 inlet;
#X obj 31 462 outlet;
#X connect 0 0 9 0;
#X connect 1 0 10 0;
#X connect 2 0 11 0;
#X connect 2 1 3 1;
#X connect 3 0 2 0;
#X connect 4 0 5 0;
#X connect 5 0 4 1;
#X connect 5 0 7 0;
#X connect 6 0 4 0;
#X connect 7 0 9 1;
#X connect 8 0 4 1;
#X connect 9 1 10 1;
#X connect 10 0 20 0;
#X connect 11 1 12 0;
#X connect 12 0 3 0;
#X connect 12 1 13 0;
#X connect 13 0 6 0;
#X connect 15 0 1 0;
#X connect 15 1 0 0;
#X connect 15 2 2 0;
#X connect 15 3 8 0;
#X connect 19 0 15 0;
#X restore 423 297 pd oscparse-mobmuplat;
#X obj 423 262 netreceive -u -b;
#X obj 406 98 loadbang;
#X obj 465 377 receive toNetwork;
#N canvas 142 457 581 323 oscformat-mobmuplat 0;
#X obj 66 55 list split 1;
#X obj 107 104 list;
#X obj 65 83 list prepend set;
#X obj 64 131 list trim;
#X obj 65 104 t b l;
#X obj 65 27 inlet;
#X obj 72 183 oscformat;
#X obj 71 276 outlet;
#X text 183 82 extract the address \, set it on oscformat \, then send
values;
#X obj 72 206 list prepend send;
#X obj 72 232 list trim;
#X connect 0 0 2 0;
#X connect 0 1 1 1;
#X connect 1 0 6 0;
#X connect 2 0 4 0;
#X connect 3 0 6 0;
#X connect 4 0 1 0;
#X connect 4 1 3 0;
#X connect 5 0 0 0;
#X connect 6 0 9 0;
#X connect 9 0 10 0;
#X connect 10 0 7 0;
#X restore 465 420 pd oscformat-mobmuplat;
#X obj 466 527 netsend -u -b;
#X msg 407 476 disconnect \, connect 224.0.0.1 \$1;
#X obj 407 451 change 54321;
#X msg 431 229 listen \$1;
#X obj 423 323 send fromNetwork;
#X text 35 43 Don't change this patch! Just leave it open \, it fakes
the interface-to-Pd communication that happens internally in the mobile
app. I recommend you only have one MobMuPlat docment open and interacting
with Pd at a time \, otherwise things (network port numbers \, etc)
can get confused...;
#X text 154 198 receive messages from the editor.;
#X text 45 661 send messages to the editor.;
#X text 440 280 pass network messages into patch.;
#X text 478 397 get outgoing network messages from patch;
#X obj 406 549 list trim;
#X obj 399 598 t b;
#X obj 400 644 print warning;
#X obj 403 576 route /send /sendGD /sendOGD;
#X obj 303 330 list;
#X obj 52 421 send fromSystem;
#N canvas 576 440 450 300 keyboard 0;
#X obj 179 52 keyname;
#X obj 43 67 key;
#X obj 43 94 sel 0;
#X obj 181 167 t b;
#X obj 214 168 t b;
#X obj 247 169 t b;
#X obj 280 170 t b;
#X msg 178 194 30;
#X msg 215 194 31;
#X msg 245 192 28;
#X msg 283 191 29;
#X obj 43 219 list prepend /key;
#X obj 39 245 outlet;
#X obj 181 143 route Up Down Left Right;
#X obj 179 98 symbol;
#X obj 179 76 sel 1;
#X obj 179 120 list trim;
#X text 30 5 this mimics how the app responds to physical keyboard
input. i.e. it responds to ascii like [key] \, and also responds to
arrows. Note that this key code is different on Android.;
#X connect 0 0 15 0;
#X connect 0 1 14 1;
#X connect 1 0 2 0;
#X connect 2 1 11 0;
#X connect 3 0 7 0;
#X connect 4 0 8 0;
#X connect 5 0 9 0;
#X connect 6 0 10 0;
#X connect 7 0 11 0;
#X connect 8 0 11 0;
#X connect 9 0 11 0;
#X connect 10 0 11 0;
#X connect 11 0 12 0;
#X connect 13 0 3 0;
#X connect 13 1 4 0;
#X connect 13 2 5 0;
#X connect 13 3 6 0;
#X connect 14 0 16 0;
#X connect 15 0 14 0;
#X connect 16 0 13 0;
#X restore 55 361 pd keyboard;
#X obj 408 68 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X msg 487 96 54321;
#X obj 488 63 loadbang;
#X floatatom 528 99 5 0 0 0 - - -, f 5;
#X text 568 98 output port number;
#X text 567 116 input port number;
#X msg 486 118 54322;
#X text 429 68 reset;
#X obj 431 205 change 54322;
#X obj 407 120 t b b;
#X text 32 -7 Note that this patch no longer requires a special build
of PureData vanilla! It should work with a normal build of PureData
0.46;
#X obj 181 376 list prepend /page;
#X obj 72 481 receive toSystem;
#X obj 72 504 list prepend /system;
#X obj 71 526 list trim;
#X obj 133 481;
#X obj 189 397 list prepend /textDialog;
#X obj 49 270 route /system/requestTable /system/setTable /system/tilts
/system/shake /system/page /system/textDialog /system/confirmationDialog
, f 45;
#X obj 195 420 list prepend /confirmationDialog;
#X msg 386 149 /requestTables;
#X obj 336 98 r pd;
#X obj 335 121 route open;
#X text 427 6 MobMuPlat distribution 1.74 (iOS) and 0.25 (Android)
;
#X msg 396 620 LANDINI/Ping & Connect is not implemented in this simulator
;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 2 0 11 0;
#X connect 4 0 3 0;
#X connect 5 0 3 0;
#X connect 7 0 5 0;
#X connect 9 0 0 0;
#X connect 10 0 4 0;
#X connect 11 0 54 0;
#X connect 12 0 35 0;
#X connect 13 0 35 0;
#X connect 14 0 45 0;
#X connect 15 0 24 0;
#X connect 16 0 15 0;
#X connect 17 0 46 0;
#X connect 18 0 19 0;
#X connect 18 0 30 0;
#X connect 19 0 20 0;
#X connect 21 0 20 0;
#X connect 22 0 21 0;
#X connect 23 0 16 0;
#X connect 30 0 33 0;
#X connect 31 0 60 0;
#X connect 33 0 31 0;
#X connect 34 0 8 0;
#X connect 36 0 35 0;
#X connect 37 0 46 0;
#X connect 38 0 40 0;
#X connect 39 0 38 0;
#X connect 39 0 43 0;
#X connect 40 0 22 0;
#X connect 43 0 14 0;
#X connect 45 0 23 0;
#X connect 46 0 56 0;
#X connect 46 1 22 0;
#X connect 46 1 45 0;
#X connect 48 0 35 0;
#X connect 49 0 50 0;
#X connect 50 0 51 0;
#X connect 51 0 5 0;
#X connect 53 0 35 0;
#X connect 54 0 6 0;
#X connect 54 1 6 1;
#X connect 54 2 12 0;
#X connect 54 3 13 0;
#X connect 54 4 48 0;
#X connect 54 5 53 0;
#X connect 54 6 55 0;
#X connect 54 7 34 0;
#X connect 55 0 35 0;
#X connect 56 0 50 0;
#X connect 57 0 58 0;
#X connect 58 0 56 0;
#X connect 60 0 32 0;