#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 - - -; #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 obj 165 125 loadbang; #X msg 165 152 format iii; #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 connect 11 0 12 0; #X connect 12 0 6 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 - - -; #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 - - -; #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 - - -; #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 - - -; #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;