From 0fe04680dac6387512beedde91e3209fc85ff57d Mon Sep 17 00:00:00 2001 From: Dooho Yi Date: Thu, 20 Apr 2023 09:17:47 +0900 Subject: [PATCH] mod --- arduino/rainboard/src/rainboard.ino | 18 +- ringringrain_rev2.pd | 331 ++++++++++++++++------------ 2 files changed, 203 insertions(+), 146 deletions(-) diff --git a/arduino/rainboard/src/rainboard.ino b/arduino/rainboard/src/rainboard.ino index c300328..3513e83 100644 --- a/arduino/rainboard/src/rainboard.ino +++ b/arduino/rainboard/src/rainboard.ino @@ -19,6 +19,9 @@ WiFiServerStream serverStream(NETWORK_PORT); ////pad structure +// #define FLIPPED +// --> comment/uncomment for horizontal flipping of the installation. + #define NUMKEYS 42 // columns : 14, rows : 3 // --> how many keys are available for this pad @@ -32,12 +35,20 @@ int n_keychg = 0; // --> for monitoring only 'changed' keys. #define NUMCOLS 14 +#ifdef FLIPPED +int pins_cols[NUMCOLS] = {16, 15, 17, 18, 20, 19, 33, 34, 35, 36, 37, 38, 39, 40}; //14 +// --> cols is horizontal offsets on the board +// --> to be read as input. +#else int pins_cols[NUMCOLS] = {40, 39, 38, 37, 36, 35, 34, 33, 19, 20, 18, 17, 15, 16}; //14 // --> cols is horizontal offsets on the board // --> to be read as input. +#endif -#define NUMROWS 3 -int pins_rows[NUMROWS] = {8, 7, 6}; //3 +#define NUMROWS 2 +int pins_rows[NUMROWS] = {7, 6}; //2 +// #define NUMROWS 3 +// int pins_rows[NUMROWS] = {8, 7, 6}; //3 // --> rows is vertical offsets on the board // --> to be driven as output (or high impedance) @@ -91,7 +102,8 @@ void loop() digitalWrite(pins_rows[row], LOW); // let new 'hi-z' row goes 'on'.. -> ready to scan. // 100us ~ 200us, waiting for the electricity ready... - delayMicroseconds(200); + //delayMicroseconds(200); + delay(2); // 2000us == 2ms // read all cols for (int col = 0; col < NUMCOLS; col++) { diff --git a/ringringrain_rev2.pd b/ringringrain_rev2.pd index 5b197df..456bdf5 100644 --- a/ringringrain_rev2.pd +++ b/ringringrain_rev2.pd @@ -1,111 +1,65 @@ -#N canvas 0 93 831 615 10; -#X obj 417 87 loadbang; +#N canvas 0 23 1440 800 10; +#X obj 832 173 loadbang; #N canvas 0 22 450 300 (subpatch) 0; #X array raining 2.57403e+06 float 0; #X coords 0 0.3 2.57403e+06 -0.3 100 200 1 0 0; -#X restore 690 87 graph; -#X floatatom 417 374 0 0 0 0 - - - 0; -#X obj 417 144 soundfiler; -#X floatatom 417 167 0 0 0 0 - - - 0; -#X obj 417 348 env~ 16384; -#X obj 559 399 *~; -#X obj 559 438 hip~ 5; -#X msg 432 291 bang; -#X obj 510 338 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X restore 1105 173 graph; +#X floatatom 832 460 0 0 0 0 - - - 0; +#X obj 832 230 soundfiler; +#X floatatom 832 253 0 0 0 0 - - - 0; +#X obj 832 434 env~ 16384; +#X obj 974 485 *~; +#X obj 974 524 hip~ 5; +#X msg 847 377 bang; +#X obj 925 424 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X obj 417 193 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X obj 832 279 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X floatatom 574 349 5 0 0 0 - - - 0; -#X obj 432 217 delay 2000; -#X obj 432 241 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X floatatom 989 435 5 0 0 0 - - - 0; +#X obj 847 303 delay 2000; +#X obj 847 327 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X obj 560 518 dac~; -#X obj 559 488 *~; -#X obj 592 488 *~; -#X obj 574 375 * 6; -#X obj 623 417 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#X obj 975 604 dac~; +#X obj 974 574 *~; +#X obj 1007 574 *~; +#X obj 989 461 * 6; +#X obj 1038 503 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000; -#X msg 623 437 1; -#X text 6 7 .; -#X obj 23 379 loadbang; -#X text 35 13 arduino i/f; -#X text 422 28 sound generators - sample sound; -#X obj 26 68 arduino-wifi; -#X msg 146 78 disconnect; -#X obj 95 105 tgl 15 0 empty empty connected? 17 7 0 10 #fcfcfc #000000 +#X msg 1038 523 1; +#X text 421 93 .; +#X obj 438 465 loadbang; +#X text 450 99 arduino i/f; +#X text 837 114 sound generators - sample sound; +#X obj 441 154 arduino-wifi; +#X msg 561 164 disconnect; +#X obj 510 191 tgl 15 0 empty empty connected? 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X obj 26 126 route analog; -#X obj 26 149 route 0; -#X obj 26 172 * 1023; -#X obj 26 195 t a a; -#X obj 26 218 / 10; -#X obj 26 241 int; -#X obj 71 218 mod 10; -#X obj 71 241 int; -#X obj 26 294 pack f f; -#X text 260 283 60 == C4 == 261.63hz; -#X obj 156 323 clone ringringrain_piano_node 10; -#X obj 156 294 pack f f f; -#X obj 156 271 - 1; -#X msg 156 203 stop; -#X obj 26 323 print notes; -#X obj 156 431 tabwrite hands; -#X obj 156 362 unpack f f; -#X obj 156 408 f; -#X obj 156 385 t b a; -#X obj 118 171 r keyhands; -#N canvas 502 134 450 364 coundhands 0; -#X obj 152 113 until; -#X obj 152 156 f; -#X obj 182 156 + 1; -#X floatatom 152 182 5 0 0 0 - - - 0; -#X obj 182 267 +; -#X obj 152 267 f; -#X obj 152 238 t b a; -#X obj 117 217 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc -#000000 #000000; -#X msg 199 113 0; -#X obj 152 72 t b a b; -#X msg 152 49 10; -#X obj 152 215 tabread hands; -#X obj 228 21 table hands 10; -#X obj 18 65 metro 100; -#X obj 18 45 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 -0 1; -#X obj 117 285 f; -#X obj 18 22 loadbang; -#X floatatom 117 308 5 0 0 0 - - - 0; -#X obj 117 330 outlet; -#X connect 0 0 1 0; -#X connect 1 0 2 0; -#X connect 1 0 3 0; -#X connect 2 0 1 1; -#X connect 3 0 11 0; -#X connect 4 0 5 1; -#X connect 5 0 4 0; -#X connect 5 0 15 1; -#X connect 6 0 5 0; -#X connect 6 1 4 1; -#X connect 7 0 15 0; -#X connect 8 0 1 1; -#X connect 8 0 5 1; -#X connect 9 0 7 0; -#X connect 9 1 0 0; -#X connect 9 2 8 0; -#X connect 10 0 9 0; -#X connect 11 0 6 0; -#X connect 13 0 10 0; -#X connect 14 0 13 0; -#X connect 15 0 17 0; -#X connect 16 0 14 0; -#X connect 17 0 18 0; -#X restore 574 260 pd coundhands; -#X floatatom 574 283 5 0 0 1 hands - - 0; -#X msg 417 115 read -resize Rain1.wav raining; -#X msg 417 262 set raining; -#X obj 417 316 tabplay~ raining; -#X obj 574 321 mavg 120; -#X obj 623 394 loadbang; +#X obj 441 212 route analog; +#X obj 441 235 route 0; +#X obj 441 258 * 1023; +#X obj 441 281 t a a; +#X obj 441 304 / 10; +#X obj 441 327 int; +#X obj 486 304 mod 10; +#X obj 486 327 int; +#X obj 441 380 pack f f; +#X text 675 369 60 == C4 == 261.63hz; +#X obj 571 409 clone ringringrain_piano_node 10; +#X obj 571 380 pack f f f; +#X obj 571 357 - 1; +#X msg 571 289 stop; +#X obj 441 429 print notes; +#X obj 571 517 tabwrite hands; +#X obj 571 448 unpack f f; +#X obj 571 494 f; +#X obj 571 471 t b a; +#X obj 533 257 r keyhands; +#X floatatom 989 369 5 0 0 1 hands - - 0; +#X msg 832 201 read -resize Rain1.wav raining; +#X msg 832 348 set raining; +#X obj 832 402 tabplay~ raining; +#X obj 989 407 mavg 120; +#X obj 1038 480 loadbang; #N canvas 211 248 896 448 keyhands 0; #X obj 180 18 key; #X floatatom 180 41 5 0 0 0 - - - 0; @@ -262,15 +216,15 @@ #X connect 49 0 51 0; #X connect 50 0 14 0; #X connect 51 0 50 1; -#X restore 225 169 pd keyhands simulator; -#X msg 634 344 1; -#X obj 156 248 poly 10; -#X obj 41 489 table pitches; -#X obj 30 516 loadbang; -#X obj 26 264 tabread pitches; -#X floatatom 103 294 5 0 0 0 - - - 0; -#X msg 23 427 \; pd dsp 1; -#X obj 23 400 del 5000; +#X restore 640 255 pd keyhands simulator; +#X msg 1049 430 1; +#X obj 571 334 poly 10; +#X obj 456 575 table pitches; +#X obj 445 602 loadbang; +#X obj 441 350 tabread pitches; +#X floatatom 518 380 5 0 0 0 - - - 0; +#X msg 438 513 \; pd dsp 1; +#X obj 438 486 del 5000; #N canvas 47 74 450 300 archive 0; #N canvas 0 22 450 300 pan 0; #X obj 59 82 f 1; @@ -312,23 +266,102 @@ #X connect 9 0 1 0; #X connect 9 0 10 0; #X connect 10 0 0 0; -#X restore 694 510 pd archive; -#X obj 225 149 tgl 15 0 empty empty on/off 17 7 0 10 #fcfcfc #000000 +#X restore 1109 596 pd archive; +#X obj 640 235 tgl 15 0 empty empty on/off 17 7 0 10 #fcfcfc #000000 #000000 0 1; -#X obj 130 146 print keys; -#X msg 30 537 \; pitches 0 60 62 64 65 67 69 71 72 74 76 77 79 81 83 -84 86 88 89 91 93 95 96 98 100 101 103 105 107 108; -#X msg 107 43 connect 192.168.10.112 27016; -#X connect 0 0 49 0; +#X obj 545 232 print keys; +#N canvas 502 134 450 364 counthands 0; +#X obj 152 113 until; +#X obj 152 156 f; +#X obj 182 156 + 1; +#X floatatom 152 182 5 0 0 0 - - - 0; +#X obj 182 267 +; +#X obj 152 267 f; +#X obj 152 238 t b a; +#X obj 117 217 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc +#000000 #000000; +#X msg 199 113 0; +#X obj 152 72 t b a b; +#X msg 152 49 10; +#X obj 152 215 tabread hands; +#X obj 228 21 table hands 10; +#X obj 18 65 metro 100; +#X obj 18 45 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 +0 1; +#X obj 117 285 f; +#X obj 18 22 loadbang; +#X floatatom 117 308 5 0 0 0 - - - 0; +#X obj 117 330 outlet; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 1 0 3 0; +#X connect 2 0 1 1; +#X connect 3 0 11 0; +#X connect 4 0 5 1; +#X connect 5 0 4 0; +#X connect 5 0 15 1; +#X connect 6 0 5 0; +#X connect 6 1 4 1; +#X connect 7 0 15 0; +#X connect 8 0 1 1; +#X connect 8 0 5 1; +#X connect 9 0 7 0; +#X connect 9 1 0 0; +#X connect 9 2 8 0; +#X connect 10 0 9 0; +#X connect 11 0 6 0; +#X connect 13 0 10 0; +#X connect 14 0 13 0; +#X connect 15 0 17 0; +#X connect 16 0 14 0; +#X connect 17 0 18 0; +#X restore 989 346 pd counthands; +#N canvas 68 97 450 300 test 0; +#X obj 104 61 inlet; +#X obj 104 113 unpack f f; +#X obj 105 167 pack f f; +#X obj 109 142 f; +#X obj 50 136 t b a; +#X obj 105 188 route 1; +#X obj 105 209 print noteon; +#X connect 0 0 1 0; +#X connect 1 0 4 0; +#X connect 1 1 3 1; +#X connect 2 0 5 0; +#X connect 3 0 2 0; +#X connect 4 0 3 0; +#X connect 4 1 2 1; +#X connect 5 0 6 0; +#X restore 445 405 pd test; +#X obj 60 121 arduino-wifi; +#X msg 180 131 disconnect; +#X obj 129 158 tgl 15 0 empty empty connected? 17 7 0 10 #fcfcfc #000000 +#000000 0 1; +#X msg 141 96 connect 192.168.10.112 27016; +#X obj 60 221 arduino-wifi; +#X msg 180 231 disconnect; +#X obj 129 258 tgl 15 0 empty empty connected? 17 7 0 10 #fcfcfc #000000 +#000000 0 1; +#X obj 60 321 arduino-wifi; +#X msg 180 331 disconnect; +#X obj 129 358 tgl 15 0 empty empty connected? 17 7 0 10 #fcfcfc #000000 +#000000 0 1; +#X msg 522 129 connect 192.168.10.111 27016; +#X msg 141 196 connect 192.168.10.113 27016; +#X msg 141 296 connect 192.168.10.114 27016; +#X msg 445 623 \; pitches 0 60 62 64 65 67 69 71 72 74 76 77 79 81 +83 84 86 88 89 91 93 95 96 98 100 101 103 105 107 108 60 62 64 65 67 +69 71 72 74 76 77 79 81 83; +#X connect 0 0 48 0; #X connect 3 0 4 0; #X connect 4 0 10 0; #X connect 5 0 2 0; #X connect 6 0 7 0; #X connect 7 0 15 0; #X connect 7 0 16 0; -#X connect 8 0 51 0; -#X connect 9 0 51 0; -#X connect 10 0 50 0; +#X connect 8 0 50 0; +#X connect 9 0 50 0; +#X connect 10 0 49 0; #X connect 10 0 12 0; #X connect 11 0 17 0; #X connect 12 0 13 0; @@ -339,48 +372,60 @@ #X connect 18 0 19 0; #X connect 19 0 15 1; #X connect 19 0 16 1; -#X connect 21 0 62 0; +#X connect 21 0 61 0; #X connect 24 0 27 0; #X connect 24 1 26 0; #X connect 25 0 24 1; #X connect 27 0 28 0; #X connect 28 0 29 0; #X connect 29 0 30 0; -#X connect 29 0 65 0; #X connect 30 0 31 0; #X connect 30 1 33 0; #X connect 31 0 32 0; -#X connect 32 0 59 0; +#X connect 32 0 58 0; #X connect 33 0 34 0; #X connect 34 0 35 1; -#X connect 35 0 56 0; +#X connect 35 0 55 0; +#X connect 35 0 66 0; #X connect 37 0 43 0; #X connect 38 0 37 0; #X connect 39 0 38 0; -#X connect 40 0 56 0; +#X connect 40 0 55 0; #X connect 43 0 45 0; #X connect 43 1 44 1; #X connect 44 0 42 0; #X connect 45 0 44 0; #X connect 45 1 42 1; #X connect 46 0 30 0; -#X connect 47 0 48 0; -#X connect 48 0 52 0; -#X connect 49 0 3 0; -#X connect 50 0 51 0; -#X connect 51 0 5 0; -#X connect 51 0 6 0; -#X connect 51 1 9 0; -#X connect 52 0 11 0; -#X connect 53 0 18 0; -#X connect 55 0 52 0; -#X connect 56 0 39 0; -#X connect 56 1 38 1; -#X connect 56 2 38 2; -#X connect 58 0 66 0; -#X connect 59 0 35 0; -#X connect 59 0 60 0; -#X connect 62 0 61 0; -#X connect 64 0 54 0; -#X connect 67 0 24 1; +#X connect 47 0 51 0; +#X connect 48 0 3 0; +#X connect 49 0 50 0; +#X connect 50 0 5 0; +#X connect 50 0 6 0; +#X connect 50 1 9 0; +#X connect 51 0 11 0; +#X connect 52 0 18 0; +#X connect 54 0 51 0; +#X connect 55 0 39 0; +#X connect 55 1 38 1; +#X connect 55 2 38 2; +#X connect 57 0 80 0; +#X connect 58 0 35 0; +#X connect 58 0 59 0; +#X connect 61 0 60 0; +#X connect 63 0 53 0; +#X connect 65 0 47 0; +#X connect 67 0 27 0; +#X connect 67 1 69 0; +#X connect 68 0 67 1; +#X connect 70 0 67 1; +#X connect 71 0 27 0; +#X connect 71 1 73 0; +#X connect 72 0 71 1; +#X connect 74 0 27 0; +#X connect 74 1 76 0; +#X connect 75 0 74 1; +#X connect 77 0 24 1; +#X connect 78 0 71 1; +#X connect 79 0 74 1; #X coords 0 0 1 1 85 60 0;