Compare commits

...

19 commits
v2022 ... main

Author SHA1 Message Date
Bailey Stevens 053df5be81 Can send notes over net. Get sends all params. 2023-10-05 22:43:14 -04:00
Bailey Stevens e7b091507f Fixes bugs in sending sequence updates. 2023-10-05 22:31:30 -04:00
Bailey Stevens 59c7e71b19 Consolidated scaling calculations. Prints scaled params and seq on request. 2023-10-05 13:33:04 -04:00
Bailey Stevens 728d931a87 Supports pgm events and adds flutter + detune. 2023-10-05 03:09:13 -04:00
Bailey Stevens e36c08b529 Breaks up oneliner for readability. 2023-10-04 11:44:00 -04:00
Bailey Stevens 61f6778fdc Fixes bug when installed as system package. 2023-10-04 09:43:11 -04:00
Bailey Stevens 336a0943bd Adds noadc flag, since audio in isnt used. 2023-10-04 08:40:43 -04:00
Bailey Stevens 2097785400 Restructures for nix packaging. 2023-10-04 06:59:10 -04:00
Bailey Stevens f29fc5acc1 Sends param changes only as needed. 2023-10-04 00:10:22 -04:00
Bailey Stevens ef33519c24 Removes unnecessary scope scaling. 2023-10-03 13:38:03 -04:00
Bailey Stevens bea1b2397a Adjusts size of parameter chart. 2023-10-02 13:17:19 -04:00
Bailey Stevens 04855b3647 Reworked net io to output params on request. 2023-10-01 01:23:48 -04:00
Bailey Stevens c3c5fe1f9e Remvoes stderr flag and disables screensaver. 2023-09-29 16:49:23 -04:00
Bailey Stevens d44bf83f9c Receives messages over TCP, sends replies over same socket. 2023-09-27 22:32:48 -04:00
Bailey Stevens 5847e05832 Broke up into more modules. Cleaned up interface. 2023-09-25 02:40:05 -04:00
Bailey Stevens c7be9c271d Adds counter subplot. Reorganizes blocks. Adds cc control. 2023-09-24 20:36:38 -04:00
Bailey Stevens 9c9edb5114 Allows live playback of notes. 2023-09-20 19:46:27 -04:00
Bailey Stevens 27d62c2d7b Edited run script. Added decay to sounds. 2023-09-20 19:46:27 -04:00
Bailey Stevens 7321b436ef Added sequencer, network control of parameters. 2023-09-17 20:33:18 -04:00
16 changed files with 697 additions and 247 deletions

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
result

19
default.nix Normal file
View file

@ -0,0 +1,19 @@
{writeShellApplication, stdenv, puredata, xset}:
let
runsh = writeShellApplication {
name = "phyzzy";
runtimeInputs = [ puredata ];
text = (builtins.readFile ./scripts/run.sh);
};
in
stdenv.mkDerivation {
pname = "phyzzy";
version = "2023.0";
src = ./pd;
installPhase = ''
mkdir $out
cp -r . $out/pd
cp -r ${runsh}/bin $out
'';
}

61
flake.lock Normal file
View file

@ -0,0 +1,61 @@
{
"nodes": {
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1694529238,
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1696325386,
"narHash": "sha256-ogs73SJAIePd7bljq1i1vKEOPn23Xe8aumMJKZjV45c=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "e2b8feae8470705c3f331901ae057da3095cea10",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
}
},
"root": "root",
"version": 7
}

12
flake.nix Normal file
View file

@ -0,0 +1,12 @@
{
description = "A basic flake";
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
inputs.flake-utils.url = "github:numtide/flake-utils";
outputs = { self, nixpkgs, flake-utils }:
flake-utils.lib.eachDefaultSystem (system: let
pkgs = import nixpkgs {inherit system;};
in {
packages.default = (pkgs.callPackage ./default.nix {});
});
}

151
funsy.pd
View file

@ -1,151 +0,0 @@
#N canvas 416 160 1374 811 12;
#X obj 76 15 notein;
#X floatatom 58 88 5 0 0 0 - - -;
#X floatatom 103 88 5 0 0 0 - - -;
#X floatatom 155 88 5 0 0 0 - - -;
#N canvas 1 244 450 250 (subpatch) 0;
#X array \$0-output 480 float 0;
#X coords 0 -1 480 1 200 140 1 0 0;
#X restore 958 239 graph;
#X obj 18 151 t b;
#X obj 3 178 s trig;
#X obj 760 82 r trig;
#X obj 355 537 r trig;
#X obj 8 118 select 0;
#X obj 334 673 tabwrite~ \$0-output;
#X obj 772 208 send \$0-output;
#X obj 170 171 r waveform;
#X obj 230 6 loadbang;
#X obj 119 206 pack f f s;
#X obj 38 312 channel;
#X msg 434 212 symbol square;
#X obj 452 347 s waveform;
#X msg 241 35 \; pd dsp 1 \; waveform symbol square;
#X msg 459 247 symbol sine;
#X msg 486 276 symbol ramp;
#X msg 494 307 symbol noise;
#X obj 121 254 print;
#X obj 591 15 ctlin;
#X obj 565 159 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 596 62 pack f f;
#X obj 594 95 route 64;
#X obj 589 133 select 127;
#X obj 576 202 float;
#X floatatom 632 218 0 0 0 0 - - -;
#X obj 644 173 + 1;
#X obj 420 126 route 1 2 3 4 10;
#X obj 414 166 t b;
#X msg 639 355 symbol square;
#X msg 664 390 symbol sine;
#X msg 691 419 symbol ramp;
#X msg 716 449 symbol noise;
#X obj 629 298 route 0 1 2 3;
#X obj 654 517 s waveform;
#X obj 674 199 select 4;
#X msg 596 166 -1;
#X obj 763 121 delay 9600 1 samp;
#X obj 362 573 delay 4320 1 samp;
#X msg 771 162 resize 480 \, normalize 1 \, bounds 0 -1 480 1;
#X obj 530 564 delread4~ \$0-delay;
#X obj 667 694 delwrite~ \$0-delay 1000;
#X obj 474 533 line~;
#X obj 435 771 dac~;
#X obj 610 656 +~;
#X obj 552 621 *~ 0.8;
#X obj 36 596 send~ vco;
#X obj 681 594 receive~ vco;
#X obj 616 731 send~ out;
#X obj 914 525 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
-1 -1 9000 1;
#X obj 467 502 pack 0 1000;
#X obj 903 450 param 14;
#X obj 892 379 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 1004 453 param 13;
#X obj 1015 520 vsl 15 128 0 127 0 0 empty empty empty 0 -9 0 10 -262144
-1 -1 11500 1;
#X obj 909 716 send delt;
#X obj 464 467 r delt;
#X obj 1014 753 send delr;
#X obj 590 587 r delr;
#X obj 909 663 * 10;
#X floatatom 902 691 5 0 0 0 - - -;
#X floatatom 1014 722 5 0 0 0 - - -;
#X obj 283 624 r~ out;
#X obj 431 728 r~ out;
#X obj 1013 662 / 256;
#X obj 1008 694 + 0.5;
#X connect 0 0 1 0;
#X connect 0 1 2 0;
#X connect 0 1 9 0;
#X connect 0 2 3 0;
#X connect 1 0 14 0;
#X connect 2 0 14 1;
#X connect 3 0 31 0;
#X connect 5 0 6 0;
#X connect 7 0 41 0;
#X connect 8 0 42 0;
#X connect 9 1 5 0;
#X connect 12 0 14 2;
#X connect 13 0 18 0;
#X connect 14 0 15 0;
#X connect 14 0 22 0;
#X connect 15 0 50 0;
#X connect 16 0 17 0;
#X connect 19 0 17 0;
#X connect 20 0 17 0;
#X connect 21 0 17 0;
#X connect 23 0 25 1;
#X connect 23 1 25 0;
#X connect 24 0 28 0;
#X connect 25 0 26 0;
#X connect 26 0 27 0;
#X connect 27 0 24 0;
#X connect 28 0 30 0;
#X connect 29 0 37 0;
#X connect 29 0 39 0;
#X connect 30 0 28 1;
#X connect 30 0 29 0;
#X connect 31 0 32 0;
#X connect 31 1 16 0;
#X connect 31 2 19 0;
#X connect 31 3 20 0;
#X connect 31 4 21 0;
#X connect 32 0 29 0;
#X connect 33 0 38 0;
#X connect 34 0 38 0;
#X connect 35 0 38 0;
#X connect 36 0 38 0;
#X connect 37 0 33 0;
#X connect 37 1 34 0;
#X connect 37 2 35 0;
#X connect 37 3 36 0;
#X connect 39 0 40 0;
#X connect 40 0 28 0;
#X connect 41 0 43 0;
#X connect 42 0 10 0;
#X connect 43 0 11 0;
#X connect 44 0 49 0;
#X connect 46 0 44 0;
#X connect 48 0 45 0;
#X connect 48 0 52 0;
#X connect 49 0 48 0;
#X connect 51 0 48 1;
#X connect 53 0 63 0;
#X connect 54 0 46 0;
#X connect 55 0 53 0;
#X connect 56 0 55 0;
#X connect 56 0 57 0;
#X connect 57 0 58 0;
#X connect 58 0 68 0;
#X connect 60 0 54 0;
#X connect 62 0 49 1;
#X connect 63 0 64 0;
#X connect 64 0 59 0;
#X connect 65 0 61 0;
#X connect 66 0 10 0;
#X connect 67 0 47 0;
#X connect 67 0 47 1;
#X connect 68 0 69 0;
#X connect 69 0 65 0;

416
pd/0.main.pd Normal file
View file

@ -0,0 +1,416 @@
#N canvas 0 99 2048 1021 12;
#X floatatom 109 663 5 0 0 0 - - -;
#X floatatom 225 724 5 0 127 1 volume volume -;
#N canvas 158 197 450 250 (subpatch) 0;
#X array output 512 float 0;
#X coords 0 -1 511 1 400 127 1 0 0;
#X restore 56 29 graph;
#X obj 974 407 loadbang;
#X obj 657 380 dac~;
#X obj 203 953 send~ vco;
#N canvas 0 99 450 250 (subpatch) 0;
#X array sequence 1 float 2;
#X coords 0 127 1 36 200 140 1 0 0;
#X restore 265 192 graph;
#X obj 93 632 tabread sequence;
#X obj 215 833 voice;
#X obj 114 471 metro 300;
#X msg 1124 443 listen 10234;
#X floatatom 845 92 5 0 1500 2 delt delt -;
#X floatatom 745 188 5 0 0 0 delr delr -;
#X obj 988 451 bng 15 250 50 0 empty reset reset 17 7 0 10 -262144
-1 -1;
#X obj 419 385 notein;
#X obj 1275 170 pgmin;
#X obj 368 686 array set sequence;
#X obj 397 563 float;
#X obj 502 619 array size sequence;
#X floatatom 396 594 5 0 0 0 - - -;
#X obj 506 685 s size;
#X obj 412 423 poly 1 1;
#X obj 342 509 bng 15 250 50 0 empty mode_toggle mode_toggle 17 7 0
10 -262144 -1 -1;
#X obj 282 550 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X obj 335 554 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 264 506 loadbang;
#X obj 153 675 spigot;
#X obj 271 666 spigot;
#X obj 1260 344 s waveform;
#X obj 1376 260 s reset_seq;
#X obj 468 541 counter;
#X obj 464 462 select 0;
#X obj 443 633 - 1;
#X obj 504 490 bng 15 250 50 0 seqc reset_seq reset_seq 17 7 0 10 -262144
-1 -1;
#X obj 111 503 counter;
#X floatatom 62 452 5 0 0 0 size size -;
#X symbolatom 310 744 10 0 0 1 waveform waveform -;
#X msg 1281 314 symbol ramp;
#X obj 808 710 tabwrite~ output;
#X msg 504 514 0;
#X obj 49 540 mod 1;
#X obj 49 506 + 1;
#X obj 96 580 spigot;
#X obj 1508 622 ctlin;
#X obj 1264 205 route 1 2 3 4 5 6 7 8;
#X obj 1398 235 s mode_toggle;
#X obj 103 432 loadbang;
#X obj 452 507 bng 15 250 50 0 seqc empty seqc 17 7 0 10 -262144 -1
-1;
#X floatatom 699 73 6 20 2000 2 fltco fltco -;
#X obj 814 666 r~ scope;
#X obj 663 115 lop~;
#X obj 701 379 s~ scope;
#X obj 641 77 r~ vco;
#X obj 708 252 echo;
#X text 695 660 scope control;
#X obj 679 330 mix;
#X floatatom 180 404 5 0 0 0 tempo tempo -;
#X text 652 34 main patchbay;
#X text 1048 400 reset logic and net io;
#X text 485 383 sequencer input;
#X text 146 602 sequencer output;
#X text 233 476 clock control;
#X msg 1246 443 listen 0;
#X floatatom 1314 519 5 0 0 0 - - -;
#X obj 1425 327 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 1394 382 array get output;
#X obj 1197 502 netreceive;
#X obj 1442 490 list prepend send;
#X obj 1320 475 list trim;
#X obj 1475 294 r refresh;
#N canvas 0 50 450 250 (subpatch) 0;
#X array params 8 float 2;
#X coords 0 127 8 0 200 127 1 0 0;
#X restore 42 199 graph;
#X floatatom 1193 789 5 0 0 0 - - -;
#X floatatom 1349 792 5 0 127 0 - - -;
#X floatatom 1400 787 5 0 127 0 - - -;
#X floatatom 1237 813 5 0 127 0 - - -;
#X floatatom 1303 794 5 0 0 0 - - -;
#X floatatom 1175 754 5 0 127 0 volume - volume;
#X obj 1525 654 - 1;
#X msg 1173 609 0 0;
#X obj 1297 631 s refresh;
#X obj 1373 420 list prepend scope;
#X text 1184 125 MIDI Control (PGM events);
#X text 1530 721 MIDI Control (CC);
#X obj 873 448 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 802 839 r setpar;
#X obj 1222 634 s getpar;
#X obj 1464 717 s setpar;
#X obj 1470 687 pack f f;
#X obj 855 909 t b f;
#X obj 852 942 float;
#X obj 847 876 unpack 0 0;
#X obj 857 968 array set params;
#X obj 705 627 s refresh;
#X obj 739 517 metro 50;
#X obj 1152 166 r pgmevt;
#X obj 1162 538 r mute;
#X obj 1366 651 s pgmevt;
#X obj 163 705 mtof;
#X obj 853 195 +~;
#X obj 857 242 snapshot~;
#X obj 899 197 bang~;
#X obj 828 157 *~;
#X floatatom 905 39 5 0 100 2 flut flut -;
#X obj 876 133 *;
#X obj 782 101 osc~ 25;
#X floatatom 816 38 5 0 64 2 flur flur -;
#X floatatom 1468 792 5 0 127 0 - - -;
#X obj 1479 828 / 2;
#X floatatom 1530 791 5 0 127 0 - - -;
#X floatatom 70 687 5 0 100 1 det det -;
#X obj 68 745 detune;
#X obj 7 838 voice;
#X text 325 829 voices;
#X obj 111 837 voice;
#X floatatom 723 306 5 0 100 1 mix mix -;
#X obj 1274 722 route 0 1 2 3 4 5 6 7;
#X obj 1311 237 s reset;
#X obj 834 624 s setpar;
#X obj 184 761 * 0.6;
#X obj 10 746 detune;
#X obj 16 717 * 1.25;
#X msg 70 800 symbol sine;
#X obj 93 770 loadbang;
#X msg 1256 263 symbol sine;
#X msg 1267 289 symbol square;
#X msg 975 487 \; pd dsp 1 \; pgmevt 1 \; mix 50 \;, f 25;
#X msg 826 572 0 127 \, 1 24 \, 2 25 \, 3 64 \, 4 80 \, 5 24 \, 6 24
\, 7 10;
#N canvas 0 99 450 250 (subpatch) 0;
#X array scaled_params 8 float 2;
#X coords 0 250 1 249 200 140 0;
#X restore 554 977 graph;
#X obj 607 986 array set scaled_params;
#X floatatom 1016 912 3 0 0 0 bpm - bpm;
#X floatatom 1149 924 5 0 0 0 tempo - tempo;
#X obj 1169 686 s setpar;
#X obj 1276 681 r setpar;
#X obj 409 765 r volume;
#X obj 633 847 unpack 0 0;
#X obj 699 909 t b f;
#X obj 636 946 float;
#X obj 482 763 r bpm;
#X obj 539 759 r delt;
#X msg 408 805 0 \$1;
#X msg 487 799 1 \$1;
#X msg 543 796 2 \$1;
#X floatatom 1251 873 5 0 0 0 delt - delt;
#X floatatom 1305 993 5 0 0 0 delr - delr;
#X obj 683 579 spigot;
#X obj 723 557 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 676 492 loadbang;
#X obj 1306 965 expr (max($i1 \, 0) * 0.75) / 127;
#X obj 1349 906 expr 20 * pow(10 \, ($i1 / 40));
#X floatatom 1349 931 5 0 0 0 fltco - fltco;
#X obj 1237 837 * 5;
#X floatatom 1406 870 5 0 0 0 flut - flut;
#X floatatom 1489 873 5 0 0 0 flur - flur;
#X floatatom 1546 853 5 0 0 0 det - det;
#X obj 902 88 clip 0 1;
#X obj 1396 827 / 127;
#X obj 1538 821 / 42;
#X obj 741 220 clip 0 0.8;
#X msg 604 798 3 \$1;
#X obj 609 754 r delr;
#X obj 659 759 r fltco;
#X obj 732 758 r flut;
#X obj 789 754 r flur;
#X obj 859 748 r det;
#X msg 658 800 4 \$1;
#X msg 737 793 5 \$1;
#X msg 793 791 6 \$1;
#X msg 854 793 7 \$1;
#X obj 1529 421 list prepend param;
#X obj 1684 353 pack 0 0 0;
#X obj 1642 619 print;
#X obj 1700 271 tabread params;
#X obj 1810 271 tabread scaled_params;
#X obj 1631 594 list trim;
#X obj 1741 130 r getpar;
#X obj 788 988 s parset;
#X obj 1645 129 r parset;
#X obj 783 950 float;
#X floatatom 1690 203 5 0 0 0 - - -;
#X obj 30 613 s seqi;
#X obj 1723 425 r seqi;
#X obj 1811 392 r seqc;
#X obj 1642 483 list prepend seqi;
#X obj 1773 529 list prepend seq;
#X obj 1775 482 array get sequence;
#X obj 1391 600 s seqc;
#X obj 982 861 expr $i1 * 5 \; max(100 \, 60000 / max($i1 * 5 \, 1))
;
#X obj 1829 431 r size;
#X msg 1237 605 0 \, 1 \, 2 \, 3 \, 4 \, 5 \, 6 \, 7;
#X obj 368 444 r note;
#X obj 1207 561 route mute setp getp scope pgmevt seq note;
#X obj 1453 596 s note;
#X connect 0 0 26 0;
#X connect 1 0 118 0;
#X connect 1 0 8 1;
#X connect 3 0 10 0;
#X connect 3 0 13 0;
#X connect 3 0 83 0;
#X connect 7 0 0 0;
#X connect 8 0 5 0;
#X connect 9 0 34 0;
#X connect 10 0 66 0;
#X connect 11 0 98 1;
#X connect 11 0 103 1;
#X connect 12 0 157 0;
#X connect 13 0 125 0;
#X connect 13 0 126 0;
#X connect 14 0 21 0;
#X connect 14 1 21 1;
#X connect 15 0 44 0;
#X connect 17 0 19 0;
#X connect 19 0 27 0;
#X connect 19 0 16 0;
#X connect 21 1 17 1;
#X connect 21 2 31 0;
#X connect 22 0 24 0;
#X connect 22 0 23 0;
#X connect 23 0 26 1;
#X connect 24 0 27 1;
#X connect 25 0 23 0;
#X connect 26 0 97 0;
#X connect 27 0 97 0;
#X connect 30 0 32 0;
#X connect 30 0 18 0;
#X connect 30 0 20 0;
#X connect 31 0 47 0;
#X connect 32 0 16 1;
#X connect 33 0 39 0;
#X connect 34 0 41 0;
#X connect 34 0 42 0;
#X connect 35 0 40 1;
#X connect 35 0 42 1;
#X connect 36 0 8 2;
#X connect 37 0 28 0;
#X connect 39 0 30 0;
#X connect 40 0 34 1;
#X connect 41 0 40 0;
#X connect 42 0 7 0;
#X connect 42 0 179 0;
#X connect 43 0 87 1;
#X connect 43 1 77 0;
#X connect 44 0 123 0;
#X connect 44 1 124 0;
#X connect 44 2 37 0;
#X connect 44 4 116 0;
#X connect 44 5 29 0;
#X connect 44 6 45 0;
#X connect 46 0 9 0;
#X connect 47 0 30 0;
#X connect 47 0 17 0;
#X connect 48 0 50 1;
#X connect 49 0 38 0;
#X connect 50 0 53 0;
#X connect 52 0 50 0;
#X connect 52 0 55 0;
#X connect 53 0 55 1;
#X connect 55 0 4 0;
#X connect 55 0 4 1;
#X connect 55 0 51 0;
#X connect 56 0 9 1;
#X connect 62 0 66 0;
#X connect 64 0 65 0;
#X connect 65 0 80 0;
#X connect 66 0 190 0;
#X connect 66 1 63 0;
#X connect 67 0 68 0;
#X connect 68 0 66 0;
#X connect 69 0 64 0;
#X connect 71 0 186 0;
#X connect 72 0 148 0;
#X connect 73 0 155 0;
#X connect 74 0 150 0;
#X connect 75 0 147 0;
#X connect 77 0 87 0;
#X connect 78 0 131 0;
#X connect 80 0 67 0;
#X connect 83 0 93 0;
#X connect 84 0 90 0;
#X connect 87 0 86 0;
#X connect 88 0 89 0;
#X connect 88 0 177 0;
#X connect 88 1 91 1;
#X connect 89 0 91 0;
#X connect 90 0 88 0;
#X connect 90 1 89 1;
#X connect 93 0 38 0;
#X connect 93 0 144 0;
#X connect 94 0 44 0;
#X connect 95 0 78 0;
#X connect 97 0 110 0;
#X connect 97 0 8 0;
#X connect 97 0 119 0;
#X connect 98 0 99 0;
#X connect 99 0 53 1;
#X connect 100 0 99 0;
#X connect 101 0 98 0;
#X connect 102 0 154 0;
#X connect 103 0 101 1;
#X connect 104 0 101 0;
#X connect 105 0 104 0;
#X connect 106 0 107 0;
#X connect 107 0 152 0;
#X connect 108 0 156 0;
#X connect 109 0 110 1;
#X connect 109 0 120 0;
#X connect 110 0 113 0;
#X connect 111 0 5 0;
#X connect 113 0 5 0;
#X connect 114 0 55 2;
#X connect 115 0 76 0;
#X connect 115 1 71 0;
#X connect 115 2 74 0;
#X connect 115 3 75 0;
#X connect 115 4 72 0;
#X connect 115 5 73 0;
#X connect 115 6 106 0;
#X connect 115 7 108 0;
#X connect 118 0 113 1;
#X connect 118 0 111 1;
#X connect 119 0 111 0;
#X connect 120 0 119 1;
#X connect 121 0 113 2;
#X connect 121 0 111 2;
#X connect 122 0 121 0;
#X connect 123 0 28 0;
#X connect 124 0 28 0;
#X connect 126 0 117 0;
#X connect 132 0 115 0;
#X connect 133 0 139 0;
#X connect 134 0 135 0;
#X connect 134 1 136 1;
#X connect 135 0 136 0;
#X connect 135 1 128 1;
#X connect 135 1 177 1;
#X connect 136 0 128 0;
#X connect 137 0 140 0;
#X connect 138 0 141 0;
#X connect 139 0 134 0;
#X connect 140 0 134 0;
#X connect 141 0 134 0;
#X connect 144 0 92 0;
#X connect 145 0 144 1;
#X connect 146 0 145 0;
#X connect 147 0 143 0;
#X connect 148 0 149 0;
#X connect 150 0 142 0;
#X connect 154 0 103 1;
#X connect 155 0 151 0;
#X connect 156 0 153 0;
#X connect 157 0 53 2;
#X connect 158 0 134 0;
#X connect 159 0 158 0;
#X connect 160 0 164 0;
#X connect 161 0 165 0;
#X connect 162 0 166 0;
#X connect 163 0 167 0;
#X connect 164 0 134 0;
#X connect 165 0 134 0;
#X connect 166 0 134 0;
#X connect 167 0 134 0;
#X connect 168 0 67 0;
#X connect 168 0 173 0;
#X connect 169 0 168 0;
#X connect 171 0 169 1;
#X connect 172 0 169 2;
#X connect 173 0 170 0;
#X connect 174 0 178 0;
#X connect 176 0 178 0;
#X connect 177 0 175 0;
#X connect 178 0 171 0;
#X connect 178 0 172 0;
#X connect 178 0 169 0;
#X connect 180 0 182 0;
#X connect 181 0 184 0;
#X connect 182 0 67 0;
#X connect 182 0 173 0;
#X connect 183 0 67 0;
#X connect 183 0 173 0;
#X connect 184 0 183 0;
#X connect 186 0 129 0;
#X connect 186 1 130 0;
#X connect 187 0 184 1;
#X connect 188 0 85 0;
#X connect 189 0 17 1;
#X connect 189 0 47 0;
#X connect 190 0 78 0;
#X connect 190 1 131 0;
#X connect 190 2 188 0;
#X connect 190 3 79 0;
#X connect 190 4 96 0;
#X connect 190 5 185 0;
#X connect 190 6 191 0;

25
pd/counter.pd Normal file
View file

@ -0,0 +1,25 @@
#N canvas 3178 275 450 300 12;
#X obj 152 141 bng 15 250 50 0 empty empty increment 17 7 0 10 -262144
-1 -1;
#X obj 187 182 float;
#X obj 187 218 + 1;
#X floatatom 106 138 5 0 0 0 - - -;
#X obj 153 109 bng 15 250 50 0 empty empty reset 17 7 0 10 -262144
-1 -1;
#X obj 45 184 inlet;
#X obj 167 272 outlet;
#X obj 91 182 route bang;
#X obj 248 133 inlet;
#X msg 213 104 0;
#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 6 0;
#X connect 4 0 9 0;
#X connect 5 0 7 0;
#X connect 7 0 0 0;
#X connect 7 1 1 0;
#X connect 8 0 1 1;
#X connect 9 0 1 0;
#X coords 0 -1 1 1 140 60 1 100 100;

16
pd/detune.pd Normal file
View file

@ -0,0 +1,16 @@
#N canvas 1219 551 450 300 12;
#X floatatom 99 97 5 0 0 0 - - -;
#X obj 167 29 inlet;
#X obj 91 24 inlet;
#X obj 83 248 outlet;
#X obj 96 65 ftom;
#X floatatom 95 170 5 0 0 0 - - -;
#X obj 92 199 mtof;
#X obj 101 142 -;
#X connect 0 0 7 0;
#X connect 1 0 7 1;
#X connect 2 0 4 0;
#X connect 4 0 0 0;
#X connect 5 0 6 0;
#X connect 6 0 3 0;
#X connect 7 0 5 0;

21
pd/echo.pd Normal file
View file

@ -0,0 +1,21 @@
#N canvas 0 99 450 300 12;
#X obj 146 111 delread4~ \$0-delay;
#X obj 157 85 line~;
#X obj 159 57 pack 0 1000;
#X obj 168 189 delwrite~ \$0-delay 1000;
#X obj 225 152 *~ 0.7;
#X obj 105 136 +~;
#X obj 80 68 inlet~;
#X obj 102 187 outlet~;
#X obj 159 24 inlet;
#X obj 331 27 inlet;
#X connect 0 0 4 0;
#X connect 0 0 5 0;
#X connect 1 0 0 0;
#X connect 2 0 1 0;
#X connect 4 0 3 0;
#X connect 5 0 7 0;
#X connect 6 0 3 0;
#X connect 6 0 5 0;
#X connect 8 0 2 0;
#X connect 9 0 4 1;

24
pd/mix.pd Normal file
View file

@ -0,0 +1,24 @@
#N canvas 473 322 644 445 12;
#X obj 206 174 *~ 1;
#X floatatom 348 71 5 0 100 1 mix - -;
#X obj 290 65 / 100;
#X obj 209 31 inlet~;
#X obj 222 261 outlet~;
#X obj 348 36 inlet;
#X obj 156 31 inlet~;
#X obj 226 218 +~;
#X obj 286 102 * -1;
#X obj 286 137 + 1;
#X obj 161 173 *~ 1;
#X connect 0 0 7 0;
#X connect 2 0 8 0;
#X connect 2 0 0 1;
#X connect 3 0 0 0;
#X connect 5 0 1 0;
#X connect 5 0 2 0;
#X connect 6 0 10 0;
#X connect 7 0 4 0;
#X connect 8 0 9 0;
#X connect 9 0 10 1;
#X connect 10 0 7 0;
#X coords 0 445 1 444 100 60 0;

97
pd/voice.pd Normal file
View file

@ -0,0 +1,97 @@
#N canvas 851 146 1169 549 12;
#X floatatom 138 107 5 0 0 0 freq #0-note -;
#X floatatom 138 130 5 0 0 0 vel #0-vel -;
#X obj 138 16 inlet;
#X symbolatom 109 157 10 0 0 0 - #0-waveform -;
#X floatatom 251 149 5 0 0 0 - - -;
#X obj 362 406 *~;
#X obj 461 236 dbtorms;
#X obj 558 84 log 127;
#X obj 413 312 line~;
#X obj 424 92 select 0;
#X floatatom 482 192 5 0 0 0 - - -;
#X obj 362 457 outlet~;
#X obj 103 64 s \$0-note;
#X obj 224 98 s \$0-vel;
#N canvas 781 232 1113 406 (subpatch) 0;
#X array \$0-wavetable 131 float 0;
#X coords 0 406 130 405 128 64 0;
#X restore 672 188 graph;
#X obj 624 499 s \$0-wavetable;
#X obj 224 249 tabosc4~ \$0-wavetable;
#X obj 945 339 noise~;
#X obj 947 407 tabwrite~ \$0-wavetable;
#X obj 832 308 print;
#X obj 565 315 select square sine ramp noise;
#X obj 572 284 r \$0-waveform;
#X obj 434 63 s \$0-waveform;
#X obj 894 354 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 882 454 s \$0-wavetable;
#X msg 716 368 64 32 16 8 4 2 1;
#X obj 522 409 list prepend sinesum 128;
#X msg 664 467 normalize 1;
#X obj 534 442 list trim;
#X msg 475 363 128 0 32 0 8 0 1;
#X msg 821 410 resize 515;
#X obj 428 10 loadbang;
#X obj 448 272 pack 0 100;
#X obj 397 342 sqrt~;
#X obj 380 380 min~ 1;
#X obj 487 154 + 40;
#X obj 545 121 * 40;
#X msg 342 180 0 10;
#X obj 394 202 pack 0 100;
#X obj 407 142 delay 100;
#X msg 625 361 2 1;
#X obj 204 19 inlet;
#X obj 277 18 inlet;
#X obj 179 43 t b;
#X obj 243 58 float;
#X msg 407 32 symbol sine;
#X connect 2 0 12 0;
#X connect 2 0 4 0;
#X connect 2 0 43 0;
#X connect 4 0 16 0;
#X connect 5 0 11 0;
#X connect 6 0 32 0;
#X connect 7 0 36 0;
#X connect 8 0 33 0;
#X connect 9 0 37 0;
#X connect 9 1 7 0;
#X connect 9 1 39 0;
#X connect 10 0 6 0;
#X connect 16 0 5 0;
#X connect 17 0 18 0;
#X connect 20 0 29 0;
#X connect 20 1 40 0;
#X connect 20 2 25 0;
#X connect 20 3 23 0;
#X connect 20 4 19 0;
#X connect 21 0 20 0;
#X connect 23 0 18 0;
#X connect 23 0 30 0;
#X connect 25 0 26 0;
#X connect 26 0 28 0;
#X connect 27 0 15 0;
#X connect 28 0 15 0;
#X connect 28 0 27 0;
#X connect 29 0 26 0;
#X connect 30 0 24 0;
#X connect 31 0 45 0;
#X connect 32 0 8 0;
#X connect 33 0 34 0;
#X connect 34 0 5 1;
#X connect 35 0 10 0;
#X connect 36 0 35 0;
#X connect 37 0 8 0;
#X connect 38 0 8 0;
#X connect 39 0 38 0;
#X connect 40 0 26 0;
#X connect 41 0 44 1;
#X connect 42 0 22 0;
#X connect 43 0 44 0;
#X connect 44 0 13 0;
#X connect 44 0 9 0;
#X connect 45 0 22 0;
#X coords 0 -1 1 1 85 85 2 100 100;

11
run.sh
View file

@ -1,11 +0,0 @@
#!/bin/sh
HERE=$(realpath $(dirname $0))
PIDFILE=$(mktemp -p /tmp --suffix .pdrun)
pd -stderr $@ -open $HERE/funsy.pd & echo $! > $PIDFILE
trap "{ EXITCODE=$?; rm -f $PIDFILE ; exit $EXITCODE; }" EXIT
sleep 1
#aconnect 'Keyboard' 'Pure Data'
aconnect 'MPKmini2' 'Pure Data'
wait $(<$PIDFILE)

5
scripts/run.sh Executable file
View file

@ -0,0 +1,5 @@
# Launch script.
ME=$(realpath "$0")
HERE=$(dirname "$ME")
PDPATH=${PDPATH:-$(dirname "$HERE")/pd}
pd -noprefs -noadc -nomidiout -midiindev 1 "$@" -open "$PDPATH/0.main.pd"

View file

@ -1,85 +0,0 @@
#N canvas 1390 64 1169 549 12;
#X floatatom 138 107 5 0 0 0 note #0-note -;
#X floatatom 138 130 5 0 0 0 vel #0-vel -;
#X obj 247 7 inlet;
#X symbolatom 109 157 10 0 0 0 - #0-waveform -;
#X obj 253 114 mtof;
#X floatatom 251 149 5 0 0 0 - - -;
#X obj 362 406 *~;
#X obj 520 255 dbtorms;
#X obj 535 116 log 127;
#X obj 425 338 line~;
#X obj 490 293 pack 0 10;
#X obj 438 96 select 0;
#X floatatom 520 221 5 0 0 0 - - -;
#X obj 362 457 outlet~;
#X obj 261 75 s \$0-note;
#X obj 352 91 s \$0-vel;
#N canvas 3648 247 1113 406 (subpatch) 0;
#X array \$0-wavetable 131 float 0;
#X coords 0 406 1 405 128 64 0;
#X restore 672 188 graph;
#X obj 624 499 s \$0-wavetable;
#X obj 275 246 tabosc4~ \$0-wavetable;
#X obj 557 187 + 60;
#X obj 557 152 * 20;
#X obj 945 339 noise~;
#X obj 947 407 tabwrite~ \$0-wavetable;
#X obj 781 301 print;
#X obj 565 315 select square sine ramp noise;
#X obj 572 284 r \$0-waveform;
#X obj 434 63 s \$0-waveform;
#X obj 894 354 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 884 437 s \$0-wavetable;
#X msg 716 368 64 32 16 8 4 2 1;
#X msg 604 366 1;
#X obj 522 409 list prepend sinesum 128;
#X msg 664 467 normalize 1;
#X obj 534 442 list trim;
#X msg 475 363 128 0 32 0 8 0 1;
#X msg 866 407 resize 515;
#X msg 446 179 0 100;
#X obj 428 10 loadbang;
#X msg 407 32 symbol square;
#X obj 260 43 unpack f f s;
#X connect 2 0 39 0;
#X connect 4 0 5 0;
#X connect 5 0 18 0;
#X connect 6 0 13 0;
#X connect 7 0 10 0;
#X connect 8 0 20 0;
#X connect 9 0 6 1;
#X connect 10 0 9 0;
#X connect 11 0 36 0;
#X connect 11 1 8 0;
#X connect 12 0 7 0;
#X connect 18 0 6 0;
#X connect 19 0 12 0;
#X connect 20 0 19 0;
#X connect 21 0 22 0;
#X connect 24 0 34 0;
#X connect 24 1 30 0;
#X connect 24 2 29 0;
#X connect 24 3 27 0;
#X connect 24 4 23 0;
#X connect 25 0 24 0;
#X connect 27 0 22 0;
#X connect 27 0 35 0;
#X connect 29 0 31 0;
#X connect 30 0 31 0;
#X connect 31 0 33 0;
#X connect 32 0 17 0;
#X connect 33 0 17 0;
#X connect 33 0 32 0;
#X connect 34 0 31 0;
#X connect 35 0 28 0;
#X connect 36 0 9 0;
#X connect 37 0 38 0;
#X connect 38 0 26 0;
#X connect 39 0 4 0;
#X connect 39 0 14 0;
#X connect 39 1 11 0;
#X connect 39 1 15 0;
#X connect 39 2 26 0;
#X coords 0 -1 1 1 85 85 2 100 100;