From 2e1d3efb83a49020a189ee27f518e92a2ee965c1 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Mon, 22 May 2006 17:13:53 +0000 Subject: expanded [arduino] object and cleaned up the help patch; commented Arduino code and enabled digitalInput, tho it doesn't seem to work yet; it seems that there are bugs in [comport] since I can make it crash with the stress test with the new OVERLAPPED mode, and the older synchronous mode svn path=/trunk/externals/hardware/arduino/; revision=5108 --- Pd_firmware/Pd_firmware.pde | 49 +++--- arduino-help.pd | 400 ++++++++++++++++++++++++++------------------ arduino.pd | 183 ++++++++++---------- 3 files changed, 348 insertions(+), 284 deletions(-) diff --git a/Pd_firmware/Pd_firmware.pde b/Pd_firmware/Pd_firmware.pde index 367a6e8..acf96dc 100644 --- a/Pd_firmware/Pd_firmware.pde +++ b/Pd_firmware/Pd_firmware.pde @@ -1,14 +1,15 @@ -/* Pd_firmware +/* Pd_firmware aka Pduino * ------------------ + * + * It was designed to work with the Pd object [arduino] + * which is included in Pd-extended. This firmware could + * easily be used with other programs like Max/MSP, Processing, + * or whatever can do serial communications. * - * - * It was designed to work with the Pd patch of the same - * name in: Help -> Browser -> examples -> hardware - * - * (cleft) 2006 Hans-Christoph Steiner + * (copyleft) 2006 Hans-Christoph Steiner * @author: Hans-Christoph Steiner - * @date: 2006-03-10 - * @location: Polytechnic University, Brooklyn, New York, USA + * @date: 2006-05-19 + * @location: STEIM, Amsterdam, Netherlands */ /* @@ -57,11 +58,6 @@ * 12 analogIn5 byte0 * 13 analogIn5 byte1 * 14 cycle marker (255/11111111) - * - * - * TX RX - * ----------------------- - * */ /* @@ -118,8 +114,7 @@ void transmitDigitalInput(byte startPin) { } else { // TODO: get digital in working - // digitalData = digitalRead(digitalPin); - digitalData = pwmStatus; + digitalData = digitalRead(digitalPin); } transmitByte = transmitByte + (2^(i+1-startPin)*digitalData); } @@ -149,6 +144,9 @@ void setPinMode(int pin, int mode) { } // ------------------------------------------------------------------------- +/* this function checks to see if there is data waiting on the serial port + * then processes all of the stored data + */ void checkForInput() { if(serialAvailable()) { while(serialAvailable()) { @@ -243,22 +241,22 @@ void processInput(byte inputData) { waitForPWMData = inputData - 221; // set waitForPWMData to the PWM pin number setPinMode(waitForPWMData, PWM); break; - case 238: + case 238: // all digital inputs off digitalInputsEnabled = false; break; - case 239: + case 239: // all digital inputs on digitalInputsEnabled = true; break; - case 240: - case 241: - case 242: - case 243: - case 244: - case 245: - case 246: + case 240: // analog input off + case 241: // analog 0 on + case 242: // analog 0,1 on + case 243: // analog 0-2 on + case 244: // analog 0-3 on + case 245: // analog 0-4 on + case 246: // analog 0-5 on analogInputsEnabled = inputData - 240; break; - case 255: + case 255: // incoming digital output bytes firstInputByte = true; break; } @@ -292,6 +290,7 @@ void loop() { // filler bytes, since the first thing sent is always the digitalInputs printByte(0); printByte(0); + checkForInput(); } /* get analog in, for the number enabled diff --git a/arduino-help.pd b/arduino-help.pd index bbf0526..c339284 100644 --- a/arduino-help.pd +++ b/arduino-help.pd @@ -1,8 +1,7 @@ -#N canvas 374 0 654 608 10; -#X obj 478 -14 import cyclone zexy; -#X msg 200 183 open \$1; -#N canvas 162 133 530 380 serin 0; -#X obj 120 61 cnv 15 15 15 empty \$0-number-canvas 2 4 7 0 14 -233017 +#N canvas 302 28 640 574 10; +#X msg 156 146 open \$1; +#N canvas 162 133 534 384 serin 0; +#X obj 120 61 cnv 15 15 15 empty \$0-number-canvas 3 4 8 0 14 -233017 -1 0; #X obj 200 225 s \$0-number-canvas; #X obj 60 61 hradio 15 1 0 4 empty empty empty 0 -6 0 8 -225271 -1 @@ -11,7 +10,7 @@ #X obj 60 13 inlet; #X msg 200 202 label \$1; #X obj 200 180 makefilename %d; -#X obj 59 108 float; +#X obj 59 108 int; #X connect 2 0 7 0; #X connect 4 0 2 0; #X connect 5 0 1 0; @@ -19,49 +18,37 @@ #X connect 7 0 3 0; #X connect 7 0 6 0; #X coords 0 -1 1 1 76 17 1 60 60; -#X restore 200 160 pd serin; -#X text 197 142 serial port #; -#X text 259 552 released under the GNU GPL; -#X text 45 537 (C) Copyright 2006 Hans-Christoph Steiner +#X restore 156 123 pd serin; +#X text 153 105 serial port #; +#X text 400 510 released under the GNU GPL; +#X text 45 510 (C) Copyright 2006 Hans-Christoph Steiner ; -#X obj 21 394 nbx 4 16 -1e+037 1e+037 0 0 empty empty empty 0 -6 0 -14 -3754 -1 -1 0 256; -#X msg 260 183 close; -#X obj 83 513 print --------------------; -#X obj 519 330 spigot; -#X obj 550 312 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 -1; -#X obj 516 355 select 255; -#X obj 395 29 hradio 15 1 0 14 empty empty empty 0 -6 0 8 -262144 -1 +#X msg 216 146 close; +#X obj 63 478 print --------------------; +#X obj 408 289 tgl 15 0 empty empty changes 0 -6 0 8 -262144 -1 -1 +0 1; +#X obj 293 29 hradio 15 1 0 14 empty empty empty 0 -6 0 8 -262131 -1 -1 0; -#X obj 372 30 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +#X obj 270 30 tgl 15 0 empty empty empty 0 -6 0 8 -262131 -1 -1 0 1 ; -#X obj 391 102 +; -#X obj 372 76 * 14; -#X obj 391 123 + 200; -#X floatatom 397 146 5 0 0 0 - - -; -#X obj 395 48 t b f; -#X obj 538 387 tolist; -#X obj 541 495 print; -#X obj 541 476 list; -#X obj 565 409 list-len; -#X obj 565 429 change; -#X obj 456 360 spigot; -#X obj 489 342 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 -1; -#X obj 567 450 bang; -#N canvas 295 269 594 315 decode 0; +#X obj 289 102 +; +#X obj 270 76 * 14; +#X obj 289 123 + 200; +#X floatatom 295 146 5 0 0 0 - - -; +#X obj 293 48 t b f; +#X obj 355 292 tgl 15 0 empty empty all 0 -6 0 8 -262144 -1 -1 0 1 +; +#N canvas 100 289 614 333 decode 0; #X obj 241 26 inlet; #X obj 46 189 & 1; #X obj 72 189 & 2; #X obj 98 189 & 4; -#X obj 46 213 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +#X obj 46 213 tgl 15 0 empty empty 0 4 25 1 12 -262144 -1 -1 0 1; +#X obj 72 213 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 2 ; -#X obj 72 213 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 2 2 +#X obj 98 213 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 4 ; -#X obj 98 213 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 4 4 -; -#X obj 124 213 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 8 +#X obj 124 213 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 8; #X obj 150 213 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 16; @@ -71,16 +58,16 @@ 64; #X obj 248 213 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 128; -#X obj 287 213 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 256 +#X obj 287 213 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 256; -#X obj 326 213 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 512 +#X obj 326 213 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 512; -#X obj 365 213 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1024 -1024; +#X obj 365 213 tgl 15 0 empty empty 10 -1 25 1 12 -262144 -1 -1 0 1024 +; #X obj 409 213 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 2048; #X obj 453 213 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 -2; +4096; #X obj 499 213 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 4; #X obj 124 189 & 8; @@ -123,130 +110,213 @@ #X connect 26 0 15 0; #X connect 27 0 16 0; #X connect 28 0 17 0; -#X restore 344 479 pd decode buttons; -#X obj 57 10 hsl 128 15 0 1 0 0 empty empty PWM_control_(0-1) -2 -6 +#X restore 473 488 pd decode buttons; +#X obj 57 23 hsl 128 15 0 1 0 0 empty empty PWM_control_(0-1) -2 -6 1 10 -225271 -1 -1 0 0; -#X msg 82 473 bang; -#X obj 255 261 arduino 3; -#X floatatom 434 50 5 0 0 0 - - -; -#X text 504 2 7; -#X text 399 12 0; -#X text 547 3 10; -#X msg 54 94 \$2 \$1; -#X obj 54 72 pack float symbol; -#X obj 151 53 symbol; -#X msg 165 31 PWM2; -#X msg 129 31 PWM1; -#X msg 94 31 PWM0; -#X text 357 1 turn on output mode; -#X obj 259 -11 bng 80 250 50 0 empty empty empty 0 -6 0 8 -258699 -1 --1; -#X msg 14 122 255 \, 127 \, 127; -#X obj 203 31 bng 35 250 50 0 empty empty empty 0 -6 0 8 -24198 -1 --1; -#X obj 195 76 t b b; -#X text 504 12 0; -#X text 547 13 3; -#X msg 13 249 231 \, 1 \, 223 \, 255 \, 0 \, 12; -#X msg 18 217 255 \, \$1; -#X obj 17 200 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 64 +#X msg 64 453 bang; +#X obj 255 274 arduino 3; +#X floatatom 332 50 5 0 0 0 - - -; +#X text 402 15 7; +#X text 297 15 0; +#X text 443 15 10; +#X msg 54 107 \$2 \$1; +#X obj 54 85 pack float symbol; +#X msg 165 44 PWM2; +#X msg 129 44 PWM1; +#X msg 94 44 PWM0; +#X obj 67 215 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 16383 ; -#X obj 20 179 metro 500; -#X obj 14 155 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +#X obj 67 196 metro 500; +#X obj 67 178 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 ; -#X msg 114 116 230 \, 1 \, 231 \, 1 \, 220; -#X obj 456 381 print; -#X obj 217 314 spigot 0; -#X obj 260 295 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 -1; -#X obj 48 365 route analog0 analog1 analog2 analog3 analog4 analog5 +#X obj 21 336 spigot 0; +#X obj 64 307 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 ; -#X obj 340 435 route digital; -#X obj 413 455 print GARBAGE; -#X obj 84 394 nbx 4 16 -1e+037 1e+037 0 0 empty empty empty 0 -6 0 -14 -3754 -1 -1 0 256; -#X obj 336 394 nbx 4 16 -1e+037 1e+037 0 0 empty empty empty 0 -6 0 -14 -3754 -1 -1 0 256; -#X obj 273 394 nbx 4 16 -1e+037 1e+037 0 0 empty empty empty 0 -6 0 -14 -3754 -1 -1 0 256; -#X obj 210 394 nbx 4 16 -1e+037 1e+037 0 0 empty empty empty 0 -6 0 -14 -3754 -1 -1 0 256; -#X obj 147 394 nbx 4 16 -1e+037 1e+037 0 0 empty empty empty 0 -6 0 -14 -3754 -1 -1 0 256; -#X floatatom 287 491 6 0 0 0 - - -; -#X msg 219 95 3; -#X obj 373 184 hradio 15 1 1 7 empty empty empty 0 -6 0 8 -262144 -1 +#X obj 21 358 route analog0 analog1 analog2 analog3 analog4 analog5 +; +#X obj 414 408 route digital; +#X obj 487 428 print GARBAGE; +#X floatatom 430 488 6 0 0 0 - - -; +#X text 393 56 how many analogIns to enable:; +#X obj 405 117 tgl 15 1 empty empty empty 0 -6 0 8 -257472 -1 -1 1 +1; +#X text 428 116 enable/disable digitalIns; +#X msg 405 135 digitalIns \$1; +#X msg 394 90 analogIns \$1; +#N canvas 162 133 542 392 serin 0; +#X obj 165 61 cnv 15 15 15 empty \$0-analog-number-canvas 6 4 8 0 14 +-233017 -1 0; +#X obj 60 61 hradio 15 1 0 7 empty empty empty 0 -6 0 8 -225280 -1 -1 0; -#X text 371 168 how many analogIns to enable:; -#X obj 372 203 + 240; -#X obj 419 205 tgl 15 1 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +#X obj 59 147 outlet; +#X obj 60 13 inlet; +#X msg 200 202 label \$1; +#X obj 200 180 makefilename %d; +#X obj 59 108 int; +#X obj 200 225 send \$0-analog-number-canvas; +#X connect 1 0 6 0; +#X connect 3 0 1 0; +#X connect 4 0 7 0; +#X connect 5 0 4 0; +#X connect 6 0 2 0; +#X connect 6 0 5 0; +#X coords 0 -1 1 1 121 17 1 60 60; +#X restore 394 70 pd serin; +#X text 488 15 13; +#X text 245 1 turn on output mode for each pin (off = input); +#X obj 367 462 spigot; +#X obj 400 444 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1; -#X obj 419 223 + 238; -#X text 442 204 enable/disable digitalIns; -#X floatatom 359 184 1 0 0 0 - - -; -#X obj 218 337 speedlim 5; -#X connect 1 0 30 0; -#X connect 2 0 1 0; -#X connect 7 0 30 0; -#X connect 9 0 11 0; -#X connect 10 0 9 1; -#X connect 11 0 19 1; -#X connect 11 1 19 0; -#X connect 12 0 18 0; -#X connect 12 0 31 0; -#X connect 13 0 15 0; -#X connect 14 0 16 0; -#X connect 15 0 14 0; +#X obj 367 483 print; +#X msg 381 225 231 \, 20 \, 226 \, 213; +#X text 5 229 this will flash any pin set to output; +#N canvas 0 0 261 248 speed 0; +#X obj 21 41 inlet; +#X obj 21 62 maxlib/speedlim 100; +#X obj 21 84 outlet; +#X obj 82 125 inlet; +#X obj 82 146 maxlib/speedlim 100; +#X obj 82 168 outlet; +#X obj 92 135 inlet; +#X obj 92 156 maxlib/speedlim 100; +#X obj 92 178 outlet; +#X obj 102 145 inlet; +#X obj 102 166 maxlib/speedlim 100; +#X obj 102 188 outlet; +#X obj 112 155 inlet; +#X obj 112 176 maxlib/speedlim 100; +#X obj 112 198 outlet; +#X obj 122 165 inlet; +#X obj 122 186 maxlib/speedlim 100; +#X obj 122 208 outlet; +#X obj 132 175 inlet; +#X obj 132 196 maxlib/speedlim 100; +#X obj 132 218 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 7 0; +#X connect 7 0 8 0; +#X connect 9 0 10 0; +#X connect 10 0 11 0; +#X connect 12 0 13 0; +#X connect 13 0 14 0; +#X connect 15 0 16 0; #X connect 16 0 17 0; -#X connect 16 0 30 0; -#X connect 18 0 15 0; -#X connect 18 1 14 1; -#X connect 19 0 21 1; -#X connect 19 0 22 0; -#X connect 21 0 20 0; -#X connect 22 0 23 0; -#X connect 23 0 26 0; -#X connect 24 0 54 0; -#X connect 25 0 24 1; -#X connect 26 0 21 0; -#X connect 28 0 36 0; -#X connect 29 0 8 0; -#X connect 30 0 55 0; -#X connect 30 1 9 0; -#X connect 30 1 24 0; -#X connect 35 0 30 0; -#X connect 36 0 35 0; -#X connect 37 0 36 1; -#X connect 38 0 37 0; -#X connect 39 0 37 0; -#X connect 40 0 37 0; -#X connect 42 0 7 0; -#X connect 43 0 30 0; -#X connect 44 0 45 0; -#X connect 45 0 53 0; -#X connect 45 1 66 0; -#X connect 48 0 30 0; -#X connect 49 0 30 0; -#X connect 50 0 49 0; -#X connect 51 0 50 0; -#X connect 52 0 51 0; -#X connect 53 0 30 0; -#X connect 55 0 74 0; -#X connect 56 0 55 1; -#X connect 57 0 6 0; -#X connect 57 1 60 0; -#X connect 57 2 64 0; -#X connect 57 3 63 0; -#X connect 57 4 62 0; -#X connect 57 5 61 0; -#X connect 57 6 58 0; -#X connect 58 0 27 0; -#X connect 58 0 65 0; -#X connect 58 1 59 0; -#X connect 66 0 2 0; -#X connect 67 0 69 0; -#X connect 67 0 73 0; -#X connect 69 0 30 0; -#X connect 70 0 71 0; -#X connect 71 0 30 0; -#X connect 74 0 57 0; +#X connect 18 0 19 0; +#X connect 19 0 20 0; +#X restore 21 380 pd speed limiting for displaying values with pegging +the CPU; +#N canvas 77 268 454 304 debugging 0; +#X obj 136 31 inlet; +#X obj 324 29 inlet; +#X obj 27 31 inlet; +#X obj 162 81 spigot; +#X obj 159 106 select 255; +#X obj 184 246 print; +#X obj 184 227 list; +#X obj 96 80 spigot; +#X obj 210 201 bang; +#X obj 96 101 print; +#X obj 181 138 mapping/tolist; +#X obj 208 181 change; +#X obj 208 159 list-abs/list-len; +#X connect 0 0 7 1; +#X connect 1 0 3 1; +#X connect 2 0 7 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 4 0 10 1; +#X connect 4 1 10 0; +#X connect 6 0 5 0; +#X connect 7 0 9 0; +#X connect 8 0 6 0; +#X connect 10 0 6 1; +#X connect 10 0 12 0; +#X connect 11 0 8 0; +#X connect 12 0 11 0; +#X restore 304 311 pd debugging stuff; +#X text 334 209 use raw data to save settings more compactly; +#X floatatom 21 405 5 0 0 0 - - -; +#X floatatom 80 405 5 0 0 0 - - -; +#X floatatom 139 405 5 0 0 0 - - -; +#X floatatom 198 405 5 0 0 0 - - -; +#X floatatom 257 405 5 0 0 0 - - -; +#X floatatom 316 405 5 0 0 0 - - -; +#X obj 151 66 symbol; +#N canvas 0 0 478 328 stress 0; +#X obj 83 28 inlet; +#X obj 83 257 outlet; +#X obj 100 101 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X obj 74 130 spigot; +#X obj 74 154 bang; +#X obj 74 181 random 2; +#X obj 19 215 * 16383; +#X msg 111 216 PWM1 \$1; +#X connect 0 0 3 0; +#X connect 2 0 3 1; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 1 0; +#X connect 7 0 1 0; +#X coords 0 -1 1 1 85 17 1 100 100; +#X restore 154 276 pd stress test; +#X connect 0 0 19 0; +#X connect 1 0 0 0; +#X connect 5 0 19 0; +#X connect 7 0 52 2; +#X connect 8 0 14 0; +#X connect 8 0 20 0; +#X connect 9 0 11 0; +#X connect 10 0 12 0; +#X connect 11 0 10 0; +#X connect 12 0 13 0; +#X connect 12 0 19 0; +#X connect 14 0 11 0; +#X connect 14 1 10 1; +#X connect 15 0 52 1; +#X connect 17 0 25 0; +#X connect 18 0 6 0; +#X connect 19 0 32 0; +#X connect 19 0 61 0; +#X connect 19 1 52 0; +#X connect 24 0 19 0; +#X connect 25 0 24 0; +#X connect 26 0 60 0; +#X connect 27 0 60 0; +#X connect 28 0 60 0; +#X connect 29 0 19 0; +#X connect 30 0 29 0; +#X connect 31 0 30 0; +#X connect 32 0 34 0; +#X connect 33 0 32 1; +#X connect 34 0 51 0; +#X connect 34 1 51 1; +#X connect 34 2 51 2; +#X connect 34 3 51 3; +#X connect 34 4 51 4; +#X connect 34 5 51 5; +#X connect 34 6 51 6; +#X connect 35 0 16 0; +#X connect 35 0 37 0; +#X connect 35 0 46 0; +#X connect 35 1 36 0; +#X connect 39 0 41 0; +#X connect 41 0 19 0; +#X connect 42 0 19 0; +#X connect 43 0 42 0; +#X connect 46 0 48 0; +#X connect 47 0 46 1; +#X connect 49 0 19 1; +#X connect 51 0 54 0; +#X connect 51 1 55 0; +#X connect 51 2 56 0; +#X connect 51 3 57 0; +#X connect 51 4 58 0; +#X connect 51 5 59 0; +#X connect 51 6 35 0; +#X connect 60 0 25 1; +#X connect 61 0 19 0; diff --git a/arduino.pd b/arduino.pd index 62fca08..fd93628 100644 --- a/arduino.pd +++ b/arduino.pd @@ -1,9 +1,8 @@ -#N canvas 81 0 600 527 10; -#X obj 388 -14 import cyclone zexy; +#N canvas 81 0 605 522 10; #X text 390 446 released under the GNU GPL; -#X text 17 448 (C) Copyright 2006 Hans-Christoph Steiner +#X text 12 446 (C) Copyright 2006 Hans-Christoph Steiner ; -#N canvas 630 546 462 312 alternate 0; +#N canvas 562 456 466 316 alternate 0; #X obj 87 8 inlet; #X obj 151 244 outlet; #X obj 319 247 outlet; @@ -48,41 +47,21 @@ #X connect 16 0 17 0; #X connect 17 0 14 1; #X connect 18 0 13 1; -#X restore 67 131 pd alternate; -#X msg 11 100 reset; -#X obj 121 173 +; -#X obj 121 194 trigger bang float; -#X obj 127 345 pack symbol float; -#X msg 125 228 0; -#X obj 349 135 gate 4; -#X obj 340 159 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 358 159 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 377 159 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 396 159 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 387 114 metro 400; -#X obj 388 94 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 -; -#X obj 316 61 float; -#X obj 359 61 + 1; -#X obj 316 27 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X obj 402 59 bang; -#X msg 335 27 1; -#X obj 316 83 moses 5; -#X obj 11 58 select 255; -#X obj 134 152 * 128; +#X restore 66 161 pd alternate; +#X msg 11 130 reset; +#X obj 120 203 +; +#X obj 120 224 trigger bang float; +#X obj 126 375 pack symbol float; +#X msg 124 258 0; +#X obj 11 108 select 255; +#X obj 133 182 * 128; #X obj 11 -9 inlet; -#X obj 127 395 outlet; -#X obj 492 396 outlet; -#X obj 11 36 comport \$1 9600; -#N canvas 0 0 466 316 command 0; +#X obj 126 425 outlet; +#X obj 494 241 outlet; +#X obj 11 66 comport \$1 9600; +#N canvas 240 282 603 439 command 0; #X obj 79 8 inlet; -#X obj 313 267 outlet; -#X obj 79 53 route PWM0 PWM1 PWM2; +#X obj 55 378 outlet; #X obj 155 114 * 255; #X obj 100 114 * 255; #X obj 45 114 * 255; @@ -92,67 +71,83 @@ #X msg 155 135 232 \, \$1; #X msg 100 135 231 \, \$1; #X msg 45 135 230 \, \$1; -#X connect 0 0 2 0; +#X obj 210 94 clip 0 6; +#X obj 210 135 + 240; +#X obj 263 94 clip 0 1; +#X obj 263 115 int; +#X obj 263 137 + 238; +#X obj 79 53 route PWM0 PWM1 PWM2 analogIns digitalIns; +#X obj 322 93 route float; +#X obj 439 152 & 127; +#X obj 370 173 & 127; +#X obj 370 129 trigger float float bang; +#X msg 494 154 255; +#X text 337 56 break up digital-out bitmask; +#X floatatom 321 194 5 0 0 0 - - -; +#X connect 0 0 16 0; #X connect 2 0 8 0; -#X connect 2 1 7 0; -#X connect 2 2 6 0; -#X connect 2 3 1 0; #X connect 3 0 9 0; #X connect 4 0 10 0; -#X connect 5 0 11 0; +#X connect 5 0 2 0; #X connect 6 0 3 0; #X connect 7 0 4 0; -#X connect 8 0 5 0; +#X connect 8 0 1 0; #X connect 9 0 1 0; #X connect 10 0 1 0; -#X connect 11 0 1 0; -#X restore 11 12 pd command processing; -#X obj 67 94 moses 128; -#X msg 48 316 symbol digital; -#X obj 143 315 makefilename analog%c; -#X obj 100 249 float; -#X obj 139 249 + 1; -#X obj 127 370 list trim; -#X obj 100 271 select 0; -#X text 373 418 DEBUG/RAW data (this will change); -#X obj 143 293 + 47; -#X connect 3 0 5 0; -#X connect 3 1 23 0; -#X connect 4 0 3 0; -#X connect 4 0 8 0; -#X connect 5 0 6 0; -#X connect 6 0 32 0; -#X connect 6 1 7 1; -#X connect 7 0 34 0; -#X connect 8 0 32 1; -#X connect 9 0 10 0; -#X connect 9 1 11 0; -#X connect 9 2 12 0; -#X connect 9 3 13 0; -#X connect 14 0 9 1; -#X connect 15 0 14 0; -#X connect 16 0 21 0; -#X connect 17 0 16 1; -#X connect 18 0 16 0; -#X connect 19 0 20 0; -#X connect 20 0 16 0; -#X connect 21 0 17 0; -#X connect 21 0 9 0; -#X connect 21 1 19 0; -#X connect 22 0 4 0; -#X connect 22 1 29 0; -#X connect 23 0 5 1; -#X connect 24 0 28 0; -#X connect 27 0 22 0; -#X connect 27 0 26 0; -#X connect 28 0 27 0; -#X connect 29 0 3 0; -#X connect 30 0 7 0; -#X connect 31 0 7 0; -#X connect 32 0 33 0; -#X connect 32 0 35 0; -#X connect 33 0 32 1; -#X connect 34 0 25 0; -#X connect 35 0 30 0; -#X connect 35 1 37 0; -#X connect 37 0 31 0; +#X connect 11 0 12 0; +#X connect 12 0 1 0; +#X connect 13 0 14 0; +#X connect 14 0 15 0; +#X connect 15 0 1 0; +#X connect 16 0 7 0; +#X connect 16 1 6 0; +#X connect 16 2 5 0; +#X connect 16 3 11 0; +#X connect 16 4 13 0; +#X connect 16 5 17 0; +#X connect 17 0 20 0; +#X connect 17 1 1 0; +#X connect 18 0 1 0; +#X connect 19 0 1 0; +#X connect 20 2 21 0; +#X connect 21 0 1 0; +#X restore 11 22 pd command processing; +#X obj 66 132 moses 128; +#X msg 47 346 symbol digital; +#X obj 142 345 makefilename analog%c; +#X obj 99 279 float; +#X obj 138 279 + 1; +#X obj 126 400 list trim; +#X obj 99 301 select 0; +#X text 291 241 DEBUG/RAW data (this will change); +#X obj 142 323 + 47; +#X obj 443 -5 inlet; +#X text 382 -10 raw input; +#X text 48 -11 processed input; +#X connect 2 0 4 0; +#X connect 2 1 9 0; +#X connect 3 0 2 0; +#X connect 3 0 7 0; +#X connect 4 0 5 0; +#X connect 5 0 18 0; +#X connect 5 1 6 1; +#X connect 6 0 20 0; +#X connect 7 0 18 1; +#X connect 8 0 3 0; +#X connect 8 1 15 0; +#X connect 9 0 4 1; +#X connect 10 0 14 0; +#X connect 13 0 8 0; +#X connect 13 0 12 0; +#X connect 14 0 13 0; +#X connect 15 0 2 0; +#X connect 16 0 6 0; +#X connect 17 0 6 0; +#X connect 18 0 19 0; +#X connect 18 0 21 0; +#X connect 19 0 18 1; +#X connect 20 0 11 0; +#X connect 21 0 16 0; +#X connect 21 1 23 0; +#X connect 23 0 17 0; +#X connect 24 0 13 0; -- cgit v1.2.1