Compare commits

...

4 Commits

Author SHA1 Message Date
Nico 778edb26af add irc bot, everything is in haiku, even this commit 2021-09-29 19:16:53 +01:00
Nico 0f786890dd scale thing is about to go CRAZY 2021-09-21 21:39:49 +01:00
Nico 1a3fdd47eb update readme 2021-09-20 11:37:00 +01:00
Nico 53cc98d30e make metronome not open subpatch on start 2021-09-20 11:36:49 +01:00
5 changed files with 346 additions and 6 deletions

View File

@ -1,3 +1,4 @@
# pd experiments
my experiments and jams with pd. probably not good. Requires https://tildegit.org/nihilazo/pd in pd path.
Pushes to this repo act as soft-releases for patches that you might want to play with, but arn't ready for a real release yet.

209
irc.pd Normal file
View File

@ -0,0 +1,209 @@
#N canvas 628 59 1084 779 12;
#X obj 261 205 netsend -b;
#X obj 328 238 sel 10;
#X msg 181 148 disconnect;
#X obj 367 329 list store;
#X msg 403 258 append \$1;
#X obj 399 397 list tosymbol;
#X msg 328 289 bang;
#X obj 328 263 t b b, f 6;
#X obj 399 422 print incoming;
#X msg 261 148 connect localhost 6669;
#X text 119 103 connect to irc;
#X obj 367 354 t a a;
#X text 502 398 log;
#X obj 229 95 t b b;
#X obj 243 515 list tosymbol;
#X obj 342 515 list tosymbol;
#X obj 243 565 symbol;
#X obj 243 652 s server;
#X obj 658 341 r server;
#X obj 34 311 s server;
#X obj 656 303 s server;
#X obj 656 279 ircmsg;
#X obj 243 625 ircmsg;
#X obj 229 35 bng 50 250 50 0 empty empty join! 50 7 0 20 -258113 -1
-1;
#X obj 34 287 ircmsg;
#X obj 698 391 list tosymbol;
#X obj 306 178 r server;
#X obj 698 416 print;
#X obj 658 366 list split 1;
#X text 24 510 server sends a PING \,;
#X text 24 532 send a matching PONG to it.;
#X text 20 14 Doing IRC;
#X text 20 33 using music patch language \,;
#X text 20 52 cursed? I do not know.;
#X text 101 286 first send register \,;
#X text 101 306 server knows that we're a friend;
#X text 101 326 tell it where to chat;
#X text 753 316 this is to debug;
#X text 753 340 log outgoing messages;
#X text 753 364 to see if they break;
#X msg 656 254 symbol PRIVMSG\ #bots\ :beep\ boop;
#X text 24 554 This only just works.;
#X msg 243 590 symbol PONG\\\ \$1;
#X obj 243 485 list split 5;
#X obj 243 540 sel PING\ ;
#X obj 243 460 t a a, f 33;
#X text 563 525 loop through the message;
#X text 563 544 see if PRIVMSG is found;
#X text 563 563 if so \, do respond!;
#X obj 471 521 list length;
#X obj 471 577 until;
#X obj 471 546 t f b;
#X obj 471 603 f;
#X obj 498 603 + 1;
#X msg 512 577 0;
#X obj 471 658 list store;
#X obj 471 683 list tosymbol;
#X text 585 671 very bad way to do this;
#X text 585 652 this parsing is shit \,;
#X msg 471 628 get \$1 8;
#X obj 471 708 sel PRIVMSG\ ;
#X obj 471 733 f;
#X text 532 446 need to clean this up;
#X text 532 465 it is an unholy mess;
#X text 532 484 [s] and [r] should help;
#X obj 404 764 list split;
#X obj 471 485 t l l l;
#X text 585 690 does not work that well;
#X text 508 760 we got PRIVMSG;
#X text 508 779 time to seperate the text;
#X text 508 798 from the protocol;
#X msg 506 730 bang;
#X obj 437 826 list length;
#X obj 437 882 until;
#X obj 437 851 t f b;
#X obj 437 908 f;
#X obj 464 908 + 1;
#X msg 478 882 0;
#X obj 437 963 list store;
#X obj 437 988 list tosymbol;
#X obj 407 1013 f;
#X obj 437 790 t l l l;
#X msg 477 1013 bang;
#X msg 437 933 get \$1 1;
#X obj 437 1013 sel :;
#X text 525 878 same way as before;
#X text 525 898 loop through for delimiter;
#X text 525 918 this time \, for the text!;
#X obj 340 1076 list split;
#X obj 407 1038 + 2;
#X obj 373 1098 s message_text;
#X obj 551 26 r message_text;
#X text 678 28 when there's PRIVMSG;
#X text 678 49 this thing gets the text of it;
#X text 678 70 do stuff with it here!;
#X obj 517 166 list store;
#X obj 551 50 t b b l;
#X obj 517 108 f;
#X obj 555 109 + 1;
#X msg 574 83 0, f 2;
#X msg 517 139 get \$1 1;
#X text 661 124 serialise list;
#X text 661 145 for each letter play a beep;
#X text 661 166 annoying? maybe;
#X msg 584 195 0;
#X obj 517 276 testsynth;
#X obj 517 301 dac~;
#X obj 517 251 makenote 127 50;
#X obj 500 78 metro 100;
#X obj 517 193 mod 60;
#X obj 517 218 + 20;
#X msg 34 231 symbol USER\ pdbot\ 0\ *\ :puredatabot \, symbol NICK\ pdbot
\, symbol JOIN\ #tildetown \,, f 33;
#X connect 0 1 1 0;
#X connect 1 0 7 0;
#X connect 1 1 4 0;
#X connect 2 0 0 0;
#X connect 3 0 11 0;
#X connect 4 0 3 0;
#X connect 5 0 8 0;
#X connect 6 0 3 1;
#X connect 7 0 6 0;
#X connect 7 1 3 0;
#X connect 9 0 0 0;
#X connect 11 0 45 0;
#X connect 11 1 5 0;
#X connect 13 0 111 0;
#X connect 13 1 9 0;
#X connect 14 0 44 0;
#X connect 15 0 16 1;
#X connect 16 0 42 0;
#X connect 18 0 28 0;
#X connect 21 0 20 0;
#X connect 22 0 17 0;
#X connect 23 0 13 0;
#X connect 24 0 19 0;
#X connect 25 0 27 0;
#X connect 26 0 0 0;
#X connect 28 1 25 0;
#X connect 40 0 21 0;
#X connect 42 0 22 0;
#X connect 43 0 14 0;
#X connect 43 1 15 0;
#X connect 44 0 16 0;
#X connect 45 0 43 0;
#X connect 45 1 66 0;
#X connect 49 0 51 0;
#X connect 50 0 52 0;
#X connect 51 0 50 0;
#X connect 51 1 54 0;
#X connect 52 0 53 0;
#X connect 52 0 59 0;
#X connect 52 0 61 1;
#X connect 53 0 52 1;
#X connect 54 0 52 0;
#X connect 55 0 56 0;
#X connect 56 0 60 0;
#X connect 59 0 55 0;
#X connect 60 0 61 0;
#X connect 60 0 71 0;
#X connect 61 0 65 1;
#X connect 65 1 81 0;
#X connect 66 0 65 0;
#X connect 66 1 49 0;
#X connect 66 2 55 1;
#X connect 71 0 50 1;
#X connect 72 0 74 0;
#X connect 73 0 75 0;
#X connect 74 0 73 0;
#X connect 74 1 77 0;
#X connect 75 0 76 0;
#X connect 75 0 83 0;
#X connect 75 0 80 1;
#X connect 76 0 75 1;
#X connect 77 0 75 0;
#X connect 78 0 79 0;
#X connect 79 0 84 0;
#X connect 80 0 89 0;
#X connect 81 0 88 0;
#X connect 81 1 72 0;
#X connect 81 2 78 1;
#X connect 82 0 73 1;
#X connect 83 0 78 0;
#X connect 84 0 80 0;
#X connect 84 0 82 0;
#X connect 88 1 90 0;
#X connect 89 0 88 1;
#X connect 91 0 96 0;
#X connect 95 0 109 0;
#X connect 95 1 104 0;
#X connect 96 0 108 0;
#X connect 96 1 99 0;
#X connect 96 2 95 1;
#X connect 97 0 98 0;
#X connect 97 0 100 0;
#X connect 98 0 97 1;
#X connect 99 0 97 1;
#X connect 100 0 95 0;
#X connect 104 0 108 0;
#X connect 105 0 106 0;
#X connect 105 0 106 1;
#X connect 107 0 105 0;
#X connect 107 1 105 1;
#X connect 108 0 97 0;
#X connect 109 0 110 0;
#X connect 110 0 107 0;
#X connect 111 0 24 0;

15
ircmsg.pd Normal file
View File

@ -0,0 +1,15 @@
#N canvas 169 570 353 206 12;
#X obj 19 23 inlet;
#X obj 19 57 list fromsymbol;
#X obj 19 82 list prepend send;
#X obj 19 107 list append 10;
#X obj 19 132 list trim;
#X obj 19 157 outlet;
#X text 135 22 symbol conversion;
#X text 135 39 into network messages \,;
#X text 135 56 this is a bad way.;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 4 0 5 0;

View File

@ -1,5 +1,5 @@
#N canvas 526 264 876 687 12;
#N canvas 391 191 1238 803 metronome 1;
#N canvas 391 191 1238 803 metronome 0;
#X obj 513 271 line~;
#X obj 493 403 dac~;
#X obj 494 368 *~;
@ -24,7 +24,7 @@
#X msg 396 289 220;
#X msg 364 289 440;
#X obj 503 98 r run;
#X obj 279 102 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
#X obj 279 102 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 318 115 s run;
#X obj 312 290 s beat;
@ -37,7 +37,6 @@
#X msg 146 69 120;
#X obj 146 35 t b b;
#X msg 178 69 4;
#X msg 299 40 \; pd dsp 1;
#X msg 401 138 0;
#X connect 0 0 2 1;
#X connect 2 0 1 0;
@ -66,17 +65,19 @@
#X connect 21 0 3 0;
#X connect 22 0 3 0;
#X connect 23 0 4 0;
#X connect 23 0 36 0;
#X connect 23 0 35 0;
#X connect 24 0 25 0;
#X connect 27 0 28 0;
#X connect 29 0 30 0;
#X connect 30 0 28 0;
#X connect 31 0 33 0;
#X connect 31 0 35 0;
#X connect 32 0 5 0;
#X connect 33 0 32 0;
#X connect 33 1 34 0;
#X connect 34 0 13 0;
#X connect 36 0 16 0;
#X connect 35 0 16 0;
#X coords 0 -1 1 1 200 60 2 100 100;
#X restore 14 24 pd metronome;
#X msg 218 48 \; pd dsp 1;
#X obj 218 24 loadbang;
#X connect 2 0 1 0;

114
scale-thing.pd Normal file
View File

@ -0,0 +1,114 @@
#N canvas 635 134 972 740 12;
#N canvas 1287 785 450 250 (subpatch) 0;
#X array scale 8 float 3;
#A 0 0 2 4 5 7 9 11 12;
#X coords 0 0 8 12 200 140 1 0 0;
#X restore 594 89 graph;
#X obj 201 393 tabread scale;
#X obj 201 564 noteout;
#X floatatom 273 555 5 0 0 0 - - -;
#X floatatom 217 247 5 0 0 0 - - -;
#X obj 255 299 + 2;
#X obj 217 271 t f f f;
#X obj 466 291 + 4;
#X obj 150 388 * 12;
#X obj 150 414 +;
#X obj 169 322 t f f;
#X obj 352 390 tabread scale;
#X obj 301 385 * 12;
#X obj 301 411 +;
#X obj 320 319 t f f;
#X obj 498 390 tabread scale;
#X obj 466 319 t f f;
#X obj 456 416 +;
#X obj 201 509 makenote 127 200;
#X obj 452 389 * 12;
#X obj 201 367 mod 7;
#X obj 150 363 div 7;
#X obj 301 360 div 7;
#X obj 352 364 mod 7;
#X obj 452 364 div 7;
#X obj 498 364 mod 7;
#X obj 609 635 array set scale;
#X msg 608 423 0 2 4 5 7 9 11 12;
#X text 738 420 major;
#X text 759 543 minor;
#X msg 630 543 0 2 3 5 7 8 10 12;
#X obj 83 36 grid;
#X obj 115 94 route 1;
#X obj 115 119 unpack f f;
#X obj 217 202 spigot;
#X msg 149 9 connect;
#X obj 201 459 + 60;
#X obj 256 174 < 7;
#X obj 27 13 r grid;
#X msg 9 97 set \$2 \$3 \$1;
#X obj 9 122 s grid;
#X text 745 495 lydian;
#X msg 619 495 0 2 4 6 7 9 11 12;
#X text 235 485 root;
#X obj 182 154 t f f;
#X obj 83 61 t a a;
#X text 374 10 thingy for playing chords. TODO more scales \, chord
types \, inversions \, extensions \, chromatic notes \, the fun chord
stuff. Also better interface.;
#X msg 612 449 0 2 3 5 7 9 10 12;
#X text 740 446 dorian;
#X msg 617 472 0 1 3 5 7 8 10 12;
#X text 741 469 phrygian;
#X msg 624 519 0 2 4 5 7 9 10 12;
#X text 749 519 mixolydian;
#X msg 635 567 0 1 3 5 6 8 10 12;
#X text 765 568 locrian;
#X obj 201 484 + 0;
#X connect 1 0 9 1;
#X connect 3 0 2 2;
#X connect 4 0 6 0;
#X connect 5 0 14 0;
#X connect 6 0 10 0;
#X connect 6 1 5 0;
#X connect 6 2 7 0;
#X connect 7 0 16 0;
#X connect 8 0 9 0;
#X connect 9 0 36 0;
#X connect 10 0 21 0;
#X connect 10 1 20 0;
#X connect 11 0 13 1;
#X connect 12 0 13 0;
#X connect 13 0 36 0;
#X connect 14 0 22 0;
#X connect 14 1 23 0;
#X connect 15 0 17 1;
#X connect 16 0 24 0;
#X connect 16 1 25 0;
#X connect 17 0 36 0;
#X connect 18 0 2 0;
#X connect 18 1 2 1;
#X connect 19 0 17 0;
#X connect 20 0 1 0;
#X connect 21 0 8 0;
#X connect 22 0 12 0;
#X connect 23 0 11 0;
#X connect 24 0 19 0;
#X connect 25 0 15 0;
#X connect 27 0 26 0;
#X connect 30 0 26 0;
#X connect 31 0 45 0;
#X connect 32 0 33 0;
#X connect 33 0 44 0;
#X connect 34 0 4 0;
#X connect 35 0 31 0;
#X connect 36 0 55 0;
#X connect 37 0 34 1;
#X connect 38 0 31 0;
#X connect 39 0 40 0;
#X connect 42 0 26 0;
#X connect 44 0 34 0;
#X connect 44 1 37 0;
#X connect 45 0 39 0;
#X connect 45 1 32 0;
#X connect 47 0 26 0;
#X connect 49 0 26 0;
#X connect 51 0 26 0;
#X connect 53 0 26 0;
#X connect 55 0 18 0;