forked from alexdrymonitis/Arduino_Pd
-
Notifications
You must be signed in to change notification settings - Fork 0
/
serial_print.pd
566 lines (566 loc) · 13.3 KB
/
serial_print.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
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
#N canvas 417 91 618 555 10;
#X obj 47 120 inlet;
#X text 374 491 written by Alexandros Drymonitis;
#X obj 47 142 sel 10 13;
#X obj 205 112 inlet delimiter;
#X obj 389 369 outlet symbol;
#X obj 70 514 outlet list;
#N canvas 64 299 639 403 \$0-set_argument 0;
#X obj 24 7 loadbang;
#X obj 24 245 symbol \$1;
#X obj 24 269 sel tab space comma any;
#X obj 84 53 inlet;
#X obj 372 46 symbol \$2;
#X obj 24 29 t b b;
#X obj 298 204 list append;
#X msg 372 91 9;
#X msg 415 91 32;
#X obj 372 69 sel tab space comma;
#X msg 458 91 44;
#X msg 24 301 9;
#X msg 63 301 32;
#X msg 103 301 44;
#X msg 142 301 9 32 44;
#X msg 502 91 0;
#X obj 250 120 t b s;
#X obj 193 98 route bang;
#X obj 193 120 t b b;
#X text 189 138 if we provide one symbol only \, clear [list append]
first;
#X obj 298 273 outlet arg_list;
#X obj 379 248 outlet num_args;
#N canvas 675 248 516 378 drip_list 0;
#X obj 69 60 until;
#X obj 69 82 list;
#X obj 69 104 list split 1;
#X obj 69 14 inlet;
#X obj 69 126 sel 0;
#X obj 218 121 t b b;
#X obj 101 149 t b f;
#X obj 101 193 f;
#X obj 131 193 + 1;
#X obj 101 215 t f f;
#X obj 218 212 f;
#X obj 101 237 pack;
#X obj 69 36 t b l b;
#X msg 119 171 1;
#X text 59 299 force a zero as the second argument if only one symbol
is given via argument \, and exclude it from the list;
#X obj 101 259 outlet arg_list;
#X obj 218 234 outlet num_args;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 2 0 4 0;
#X connect 2 1 1 1;
#X connect 2 2 5 0;
#X connect 3 0 12 0;
#X connect 4 1 6 0;
#X connect 5 0 10 0;
#X connect 5 1 0 1;
#X connect 6 0 7 0;
#X connect 6 1 11 1;
#X connect 7 0 8 0;
#X connect 7 0 9 0;
#X connect 8 0 7 1;
#X connect 9 0 11 0;
#X connect 9 1 10 1;
#X connect 10 0 16 0;
#X connect 11 0 15 0;
#X connect 12 0 0 0;
#X connect 12 1 1 1;
#X connect 12 2 13 0;
#X connect 13 0 7 1;
#X restore 298 227 pd drip_list;
#N canvas 444 92 736 575 split_symbols 0;
#X obj 34 24 inlet;
#X obj 126 108 until;
#X obj 126 130 list;
#X obj 126 152 list split 1;
#X obj 126 214 sel 32;
#X obj 251 231 list prepend;
#X obj 251 253 t l l;
#X obj 126 236 t b b;
#X obj 230 276 list;
#X obj 230 298 list tosymbol;
#X obj 34 47 list fromsymbol;
#X obj 230 371 f;
#X obj 258 371 + 1;
#X msg 245 350 0;
#X obj 126 86 t b l b b;
#X obj 230 427 pack f s;
#X obj 230 326 t b s;
#X obj 230 521 outlet;
#X obj 312 505 outlet;
#X obj 230 449 route 0 1;
#X obj 230 499 symbol;
#X obj 260 472 symbol;
#X obj 207 173 t b b b;
#X obj 312 472 spigot;
#X obj 351 450 == 0;
#X obj 230 393 t f f;
#X obj 34 69 route bang;
#X msg 34 91 97 110 121;
#X text 153 46 if we receive an empty symbol \, we'll force the list
of the symbol "any";
#X text 173 211 we use space to split the two symbols;
#X text 340 232 every time we output one symbol \, clear this list
;
#X text 359 472 if we provide one symbol only \, send a bang out this
outet;
#X text 263 151 if only one symbol is received (hence \, no space)
\, bang the right outlet of this subpatch explicitly \, so the symbol
can pass;
#X connect 0 0 10 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 3 1 2 1;
#X connect 3 2 22 0;
#X connect 4 0 7 0;
#X connect 4 1 5 0;
#X connect 5 0 6 0;
#X connect 6 0 8 1;
#X connect 6 1 5 1;
#X connect 7 0 8 0;
#X connect 7 1 5 1;
#X connect 8 0 9 0;
#X connect 9 0 16 0;
#X connect 10 0 26 0;
#X connect 11 0 12 0;
#X connect 11 0 25 0;
#X connect 12 0 11 1;
#X connect 13 0 11 1;
#X connect 14 0 1 0;
#X connect 14 1 2 1;
#X connect 14 2 13 0;
#X connect 14 3 5 1;
#X connect 15 0 19 0;
#X connect 16 0 11 0;
#X connect 16 1 15 1;
#X connect 19 0 20 0;
#X connect 19 1 21 0;
#X connect 20 0 17 0;
#X connect 21 0 18 0;
#X connect 22 0 23 0;
#X connect 22 1 8 0;
#X connect 22 2 1 1;
#X connect 23 0 18 0;
#X connect 24 0 23 1;
#X connect 25 0 15 0;
#X connect 25 1 24 0;
#X connect 26 0 27 0;
#X connect 26 1 14 0;
#X connect 27 0 14 0;
#X restore 84 76 pd split_symbols;
#X connect 0 0 5 0;
#X connect 1 0 2 0;
#X connect 2 0 11 0;
#X connect 2 1 12 0;
#X connect 2 2 13 0;
#X connect 2 3 14 0;
#X connect 2 4 14 0;
#X connect 3 0 23 0;
#X connect 4 0 9 0;
#X connect 5 0 1 0;
#X connect 5 1 4 0;
#X connect 6 0 22 0;
#X connect 7 0 6 1;
#X connect 8 0 6 1;
#X connect 9 0 7 0;
#X connect 9 1 8 0;
#X connect 9 2 10 0;
#X connect 9 3 15 0;
#X connect 10 0 6 1;
#X connect 11 0 6 0;
#X connect 12 0 6 0;
#X connect 13 0 6 0;
#X connect 14 0 6 0;
#X connect 15 0 6 1;
#X connect 16 0 1 0;
#X connect 16 1 4 0;
#X connect 17 0 18 0;
#X connect 17 1 16 0;
#X connect 18 0 1 0;
#X connect 18 1 6 1;
#X connect 22 0 20 0;
#X connect 22 1 21 0;
#X connect 23 0 1 1;
#X connect 23 1 17 0;
#X restore 205 134 pd \$0-set_argument;
#X text 40 20 to be used with [comport] for utilising Arduinos' Serial.print()
and Serial.println() functions;
#X obj 102 446 list;
#N canvas 293 276 844 259 delimiter 0;
#X obj 38 176 outlet bang;
#X obj 38 32 inlet;
#X obj 38 56 sel;
#X obj 56 79 sel;
#X obj 74 101 sel;
#X obj 91 39 route 1 2 3;
#X obj 305 34 swap 3;
#X obj 305 56 -;
#X obj 305 78 t f b;
#X obj 305 100 until;
#X obj 305 144 f;
#X obj 335 144 - 1;
#X msg 323 122 3;
#X obj 305 166 pack f 256;
#X text 361 61 set 256 to [sel]s that are not used (if we provide one
or two arguments \, for example) \, cause this number will never go
through [comport] (it's 8-bits plus 1);
#X obj 129 118 outlet through;
#X obj 91 17 inlet arg_list;
#X obj 305 12 inlet num_args;
#X connect 1 0 2 0;
#X connect 2 0 0 0;
#X connect 2 1 3 0;
#X connect 3 0 0 0;
#X connect 3 1 4 0;
#X connect 4 0 0 0;
#X connect 4 1 15 0;
#X connect 5 0 2 1;
#X connect 5 1 3 1;
#X connect 5 2 4 1;
#X connect 6 0 7 0;
#X connect 6 1 7 1;
#X connect 7 0 8 0;
#X connect 8 0 9 0;
#X connect 8 1 12 0;
#X connect 9 0 10 0;
#X connect 10 0 11 0;
#X connect 10 0 13 0;
#X connect 11 0 10 1;
#X connect 12 0 10 1;
#X connect 13 0 5 0;
#X connect 16 0 5 0;
#X connect 17 0 6 0;
#X restore 165 159 pd delimiter;
#N canvas 372 82 841 654 \$0-assemble_float 0;
#X obj 103 366 t f b;
#X obj 103 457 +;
#X obj 135 393 f;
#X obj 135 440 * 10;
#X msg 153 233 0;
#X obj 103 479 t f f;
#X obj 21 496 f;
#X obj 103 343 - 48;
#X obj 21 194 inlet get;
#X obj 201 63 inlet val;
#X obj 21 584 outlet;
#N canvas 155 167 262 222 bang_once 0;
#X obj 64 91 inlet;
#X obj 64 113 spigot;
#X obj 64 135 t b b;
#X msg 117 96 0;
#X obj 64 157 outlet;
#X obj 103 45 inlet reset;
#X msg 103 67 1;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 2 0 4 0;
#X connect 2 1 3 0;
#X connect 3 0 1 1;
#X connect 5 0 6 0;
#X connect 6 0 1 1;
#X restore 300 229 pd bang_once;
#X msg 436 234 0;
#X msg 300 299 1;
#X obj 21 338 spigot;
#X obj 21 216 t b b;
#N canvas 386 453 292 235 set_decimal_place 0;
#X obj 36 26 inlet;
#X obj 66 104 + 1;
#X obj 36 126 swap 10;
#X obj 36 148 pow;
#X obj 36 193 outlet;
#X obj 36 104 f;
#X obj 36 71 spigot;
#X obj 122 32 inlet;
#X obj 122 54 t f f;
#X obj 75 46 inlet;
#X obj 36 170 pow -1;
#X connect 0 0 6 0;
#X connect 1 0 5 1;
#X connect 2 0 3 0;
#X connect 2 1 3 1;
#X connect 3 0 10 0;
#X connect 5 0 1 0;
#X connect 5 0 2 0;
#X connect 6 0 5 0;
#X connect 7 0 8 0;
#X connect 8 0 6 1;
#X connect 8 1 5 0;
#X connect 9 0 6 1;
#X connect 10 0 4 0;
#X restore 277 372 pd set_decimal_place;
#X obj 254 201 t f b b;
#X msg 201 401 1;
#X msg 160 418 10;
#X obj 201 423 t f f;
#X obj 300 321 t f f;
#X obj 201 115 moses 48;
#X obj 254 137 moses 58;
#X obj 436 256 t f f;
#X obj 291 51 r \$0-symbol;
#X msg 291 73 0;
#X obj 356 282 s \$0-digits;
#X text 426 284 if digits start coming in \, close symbol's [spigot]
;
#X text 326 74 if symbols start coming in \, close [spigot] so that
the symbol can also contain digits;
#X obj 483 251 t f f;
#X msg 483 229 1;
#X obj 396 190 r \$0-delimit;
#X obj 323 480 f;
#X obj 341 457 r \$0-hyphen;
#X obj 300 265 t b b b;
#X obj 201 162 sel 46;
#X obj 323 502 sel 45;
#X msg 323 544 -1;
#X obj 396 212 t b b b b;
#X obj 201 90 spigot 1;
#X obj 21 561 * 1;
#X obj 103 389 * 1;
#X connect 0 0 42 0;
#X connect 0 1 2 0;
#X connect 1 0 5 0;
#X connect 2 0 3 0;
#X connect 3 0 1 1;
#X connect 4 0 2 1;
#X connect 5 0 6 1;
#X connect 5 1 2 1;
#X connect 6 0 41 0;
#X connect 7 0 0 0;
#X connect 8 0 15 0;
#X connect 9 0 40 0;
#X connect 11 0 35 0;
#X connect 12 0 24 0;
#X connect 13 0 21 0;
#X connect 14 0 6 0;
#X connect 15 0 14 0;
#X connect 15 1 4 0;
#X connect 16 0 42 1;
#X connect 17 0 7 0;
#X connect 17 1 16 0;
#X connect 17 2 11 0;
#X connect 18 0 20 0;
#X connect 19 0 3 1;
#X connect 20 0 3 1;
#X connect 20 1 16 1;
#X connect 21 0 14 1;
#X connect 21 1 42 1;
#X connect 22 0 36 0;
#X connect 22 1 23 0;
#X connect 23 0 17 0;
#X connect 24 0 14 1;
#X connect 24 1 16 2;
#X connect 25 0 26 0;
#X connect 26 0 40 1;
#X connect 30 0 40 1;
#X connect 30 1 33 1;
#X connect 31 0 30 0;
#X connect 32 0 39 0;
#X connect 33 0 37 0;
#X connect 34 0 33 1;
#X connect 35 0 13 0;
#X connect 35 1 33 0;
#X connect 35 2 27 0;
#X connect 36 0 18 0;
#X connect 37 0 38 0;
#X connect 37 1 41 1;
#X connect 38 0 41 1;
#X connect 39 0 11 1;
#X connect 39 1 19 0;
#X connect 39 2 12 0;
#X connect 39 3 31 0;
#X connect 40 0 22 0;
#X connect 41 0 10 0;
#X connect 42 0 1 0;
#X restore 205 355 pd \$0-assemble_float;
#N canvas 265 108 854 599 \$0-assemble_strings 0;
#X obj 231 116 inlet;
#X obj 131 412 list tosymbol;
#X obj 231 313 t l l;
#X obj 231 291 list prepend;
#X obj 131 146 inlet bang;
#X obj 163 520 outlet;
#X text 28 13 upper and lower case letters \, plus underscore and hyphen
symbols go through. if some delimiters are ommited \, they will go
through too;
#X obj 131 330 list;
#X obj 23 323 inlet counter;
#X obj 23 429 pack f s;
#X obj 23 520 outlet;
#X obj 23 451 route 1 0;
#X obj 163 493 symbol;
#N canvas 155 167 262 222 bang_once 0;
#X obj 64 91 inlet;
#X obj 64 113 spigot;
#X obj 64 135 t b b;
#X msg 117 96 0;
#X obj 64 157 outlet;
#X obj 103 45 inlet reset;
#X msg 103 67 1;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 2 0 4 0;
#X connect 2 1 3 0;
#X connect 3 0 1 1;
#X connect 5 0 6 0;
#X connect 6 0 1 1;
#X restore 434 282 pd bang_once;
#X msg 558 309 0;
#X obj 90 520 outlet;
#X obj 231 169 moses 48;
#X obj 304 186 moses 58;
#X obj 299 77 r \$0-digits;
#X msg 299 99 0;
#X text 328 99 if numbers start coming in \, close [spigot];
#X obj 434 391 s \$0-symbol;
#X text 433 412 if symbols start coming in \, close number's [spigot]
;
#X obj 535 265 t b b b;
#X obj 299 121 t f f;
#X msg 600 282 1;
#X obj 600 364 t f f;
#X obj 535 243 r \$0-delimit;
#X obj 336 326 f;
#X obj 354 303 r \$0-hyphen;
#X obj 336 348 sel 0;
#X obj 231 265 t f b b;
#X obj 304 247 t f b;
#X obj 131 168 t b b;
#X obj 23 479 route bang;
#X obj 231 138 spigot 1;
#X obj 23 381 spigot 1;
#X connect 0 0 35 0;
#X connect 1 0 9 1;
#X connect 2 0 7 1;
#X connect 2 1 3 1;
#X connect 3 0 2 0;
#X connect 4 0 33 0;
#X connect 7 0 1 0;
#X connect 8 0 36 0;
#X connect 9 0 11 0;
#X connect 11 0 34 0;
#X connect 11 1 12 0;
#X connect 12 0 5 0;
#X connect 13 0 21 0;
#X connect 14 0 28 1;
#X connect 16 0 31 0;
#X connect 16 1 17 0;
#X connect 17 0 32 0;
#X connect 17 1 31 0;
#X connect 18 0 19 0;
#X connect 19 0 24 0;
#X connect 23 0 13 1;
#X connect 23 1 14 0;
#X connect 23 2 25 0;
#X connect 24 0 35 1;
#X connect 24 1 36 1;
#X connect 25 0 26 0;
#X connect 26 0 36 1;
#X connect 26 1 35 1;
#X connect 27 0 23 0;
#X connect 28 0 30 0;
#X connect 29 0 28 1;
#X connect 30 1 3 0;
#X connect 31 0 3 0;
#X connect 31 1 28 0;
#X connect 31 2 13 0;
#X connect 32 0 3 0;
#X connect 32 1 28 0;
#X connect 33 0 7 0;
#X connect 33 1 3 1;
#X connect 34 0 10 0;
#X connect 34 1 15 0;
#X connect 35 0 16 0;
#X connect 36 0 9 0;
#X restore 185 329 pd \$0-assemble_strings;
#N canvas 87 82 481 287 \$0-count 0;
#X obj 45 145 f;
#X obj 75 145 + 1;
#X msg 63 122 0;
#X obj 45 169 > 0;
#X obj 45 74 inlet;
#X obj 45 196 outlet;
#X obj 63 99 r \$0-done;
#X text 49 23 this is used in case a delimiter is followed by a symbol
\, so the two (or more) symbols can be diffused properly;
#X connect 0 0 1 0;
#X connect 0 0 3 0;
#X connect 1 0 0 1;
#X connect 2 0 0 1;
#X connect 3 0 5 0;
#X connect 4 0 0 0;
#X connect 6 0 2 0;
#X restore 185 302 pd \$0-count;
#X obj 165 252 t b b b b;
#X obj 165 275 s \$0-delimit;
#X obj 47 259 s \$0-done;
#X obj 297 176 sel 45;
#X msg 297 198 45;
#X obj 297 220 s \$0-hyphen;
#X obj 336 276 t f f;
#X obj 47 235 t b b b;
#X obj 357 346 t b s;
#X obj 102 468 route bang;
#X obj 205 407 list prepend;
#X obj 205 429 t l l;
#X obj 286 381 r \$0-done;
#X obj 127 422 r \$0-done;
#X obj 70 303 t b b;
#N canvas 1 82 353 268 got_bang 0;
#X obj 89 97 inlet;
#X obj 89 119 spigot;
#X obj 89 141 outlet;
#X obj 204 80 inlet;
#X msg 204 102 1;
#X obj 128 49 r \$0-done;
#X msg 128 71 0;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 3 0 4 0;
#X connect 4 0 1 1;
#X connect 5 0 6 0;
#X connect 6 0 1 1;
#X restore 70 346 pd got_bang;
#X text 38 61 space \, comma \, and tab function as delimiters by default
\, which can be set explicitly via arguments;
#X connect 0 0 2 0;
#X connect 2 0 20 0;
#X connect 2 2 9 0;
#X connect 3 0 6 0;
#X connect 6 0 9 1;
#X connect 6 1 9 2;
#X connect 8 0 22 0;
#X connect 9 0 13 0;
#X connect 9 1 16 0;
#X connect 10 0 23 0;
#X connect 11 0 28 1;
#X connect 11 1 23 0;
#X connect 11 2 21 0;
#X connect 12 0 11 0;
#X connect 13 0 14 0;
#X connect 13 1 12 0;
#X connect 13 2 10 0;
#X connect 13 3 11 1;
#X connect 16 0 17 0;
#X connect 16 1 19 0;
#X connect 17 0 18 0;
#X connect 19 0 11 2;
#X connect 19 1 10 1;
#X connect 20 0 15 0;
#X connect 20 1 27 0;
#X connect 20 2 13 0;
#X connect 21 0 23 1;
#X connect 21 1 4 0;
#X connect 22 1 5 0;
#X connect 23 0 24 0;
#X connect 24 0 8 1;
#X connect 24 1 23 1;
#X connect 25 0 23 1;
#X connect 26 0 8 1;
#X connect 27 0 28 0;
#X connect 27 1 8 0;
#X connect 28 0 5 0;