From e07724ec046fa6063faaf9ba5106f57553703627 Mon Sep 17 00:00:00 2001 From: Bob Jarvis Date: Wed, 20 Nov 2024 10:09:20 +1100 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit toggle ui for numbers bounded 0 to 1 --- bop.ui.pd | 104 ++++++++++++++++++++++++++++++-------- demos/pluckstings.pd | 10 +++- doc/ui-and-sate-saving.pd | 9 ++-- sub/gui/toggle.pd | 23 +++++++++ 4 files changed, 117 insertions(+), 29 deletions(-) create mode 100644 sub/gui/toggle.pd diff --git a/bop.ui.pd b/bop.ui.pd index 1ec9ecd..1ae9fc8 100644 --- a/bop.ui.pd +++ b/bop.ui.pd @@ -1,4 +1,4 @@ -#N canvas 126 37 1329 891 12; +#N canvas 141 37 1329 891 12; #X declare -path ./babs; #X obj 292 140 outlet; #X obj 109 31 declare -path ./babs; @@ -6,7 +6,7 @@ #X obj 109 54 namecanvas \$0-gui; #X obj 462 260 loadbang; #X obj 462 301 delay 10; -#N canvas 186 74 1221 821 make-param 0; +#N canvas 203 37 1184 875 make-param 0; #X obj 47 27 inlet; #X obj 47 523 t l l, f 35; #X msg 289 653 obj 12 \$1 sub/gui/param \$2 \$3; @@ -28,21 +28,21 @@ #X obj 47 491 list; #X obj 47 236 list prepend \$0; #X obj 47 417 route 0, f 84; -#X obj 632 467 route 1 2; -#X obj 872 727 s pd-\$0-controls; -#X text 875 659 position \, \$0 \, paramname; -#X msg 872 692 obj 12 \$1 sub/gui/number \$2 \$3; +#X obj 678 790 route 1 2; +#X obj 918 1050 s pd-\$0-controls; +#X text 921 982 position \, \$0 \, paramname; +#X msg 918 1015 obj 12 \$1 sub/gui/number \$2 \$3; #X obj 47 194 list prepend; -#X obj 632 549 list; -#X text 976 614 create number; -#X obj 632 834 s, f 12; -#X text 641 616 set parameter; +#X obj 678 872 list; +#X text 964 905 create number; +#X obj 678 1157 s, f 12; +#X text 687 939 set parameter; #X text 64 390 additionalargs \$0 ypos paramname value (min) (max); #X text 54 262 \$0 ypos paramname value; #X msg 289 587 \$2 \$1 \$3; #X msg 47 590 \$4 \$1 \$3; -#X msg 872 626 \$2 \$1 \$3; -#X text 675 487 \$0 ypos paramname value (min) (max); +#X msg 918 949 \$2 \$1 \$3; +#X text 721 810 \$0 ypos paramname value (min) (max); #X text 59 454 \$0 ypos paramname value; #X obj 629 324 s, f 14; #X msg 724 273 symbol \$1-set-\$2; @@ -50,12 +50,39 @@ #X msg 629 180 \$1 \$3; #X obj 629 229 t a a, f 14; #X text 634 203 paramname \, \$0; -#X msg 753 784 symbol \$1-set-\$3; +#X msg 799 1107 symbol \$1-set-\$3; #X obj 424 138 nbx 5 17 -1e+37 1e+37 0 0 empty empty empty 0 -10 0 12 #fcfcfc #000000 #000000 0 256; -#X obj 632 508 list append 1e+37; -#X obj 632 581 t l l l, f 35; -#X msg 632 747 label \$3 \, range \$5 \$6 \, \$4, f 12; +#X obj 678 831 list append 1e+37; +#X obj 678 904 t l l l, f 35; +#X msg 678 1070 label \$3 \, range \$5 \$6 \, \$4, f 12; #X obj 128 138 expr $f1 * 20 + 12; +#X obj 787 568 &&; +#X obj 786 522 == 0; +#X obj 833 522 == 1; +#X obj 673 451 t l l; +#X obj 785 459 t l l; +#X obj 707 599 list prepend; +#X text 723 619 istoggle \$0 ypos paramname value (min) (max); +#X msg 786 498 \$6; +#X msg 833 498 \$7; +#X text 691 699 numbox; +#X text 1201 708 toggle; +#X obj 1267 790 route 1 2; +#X obj 1507 1050 s pd-\$0-controls; +#X text 1510 982 position \, \$0 \, paramname; +#X obj 1267 872 list; +#X text 1553 905 create number; +#X obj 1267 1157 s, f 12; +#X text 1276 939 set parameter; +#X msg 1507 949 \$2 \$1 \$3; +#X text 1310 810 \$0 ypos paramname value (min) (max); +#X msg 1388 1107 symbol \$1-set-\$3; +#X obj 1267 831 list append 1e+37; +#X obj 1267 904 t l l l, f 35; +#X obj 1267 710 route 1; +#X obj 683 680 route 0, f 84; +#X msg 1507 1015 obj 12 \$1 sub/gui/toggle \$2 \$3; +#X msg 1267 1070 label \$3 \, \$4, f 12; #X connect 0 0 8 0; #X connect 1 0 33 0; #X connect 1 1 32 0; @@ -76,7 +103,7 @@ #X connect 18 0 1 0; #X connect 19 0 15 0; #X connect 20 0 18 0; -#X connect 20 1 21 0; +#X connect 20 1 52 0; #X connect 21 0 45 0; #X connect 21 1 26 0; #X connect 24 0 22 0; @@ -97,6 +124,30 @@ #X connect 46 2 34 0; #X connect 47 0 28 0; #X connect 48 0 25 1; +#X connect 49 0 54 1; +#X connect 50 0 49 0; +#X connect 51 0 49 1; +#X connect 52 0 54 0; +#X connect 52 1 53 0; +#X connect 53 0 56 0; +#X connect 53 1 57 0; +#X connect 54 0 73 0; +#X connect 56 0 50 0; +#X connect 57 0 51 0; +#X connect 60 0 70 0; +#X connect 60 1 63 0; +#X connect 63 0 71 0; +#X connect 67 0 74 0; +#X connect 69 0 65 1; +#X connect 70 0 63 0; +#X connect 71 0 75 0; +#X connect 71 1 69 0; +#X connect 71 2 67 0; +#X connect 72 0 60 0; +#X connect 73 0 21 0; +#X connect 73 1 72 0; +#X connect 74 0 61 0; +#X connect 75 0 65 0; #X restore 454 798 pd make-param; #N canvas 30 208 840 605 resize 0; #X obj 151 73 inlet; @@ -330,8 +381,8 @@ #X text 846 672 updating params ----------------------------------; #X text 845 397 sending params ------------------------------------; #X text 367 223 dynamic builder ------------------------------------; -#X text 383 87 ordering params: cut and paste back from the bottom up, f 27; -#X text 382 158 if param has min and max then gui will use number ui; +#X text 383 67 ordering params: cut and paste back from the bottom up, f 27; +#X text 382 138 if param has min and max then gui will use number ui; #X obj 368 260 r \$0-connect; #X msg 540 429 gui-connect \$1; #X obj 540 402 \$0; @@ -356,10 +407,18 @@ #X connect 3 0 1 0; #X connect 4 0 2 0; #X restore 630 677 pd make-spacer; -#X obj 101 101 cnv 19 158 78 empty \$0-label bop.ui 5 12 0 12 #c7c6ff #404040 0; +#X obj 101 101 cnv 19 158 228 empty \$0-label bop.sequence 5 12 0 12 #c7c6ff #404040 0; #X obj 245 100 bng 15 250 50 0 \$0-connect empty ! -10 9 0 14 #feffc6 #c6feff #faff00; #N canvas 184 374 701 445 \$0-controls 0; -#X coords 0 -1 1 1 150 44 1 10 10; +#X obj 12 12 sub/gui/msg 5107 open; +#X obj 12 32 sub/gui/attr 5107 read; +#X obj 12 62 sub/gui/msg 5107 go; +#X obj 12 82 sub/gui/toggle 5107 loop; +#X obj 12 112 sub/gui/param 5107 scrub; +#X obj 12 142 sub/gui/msg 5107 stop; +#X obj 12 162 sub/gui/msg 5107 reset; +#X obj 12 182 sub/gui/msg 5107 dump; +#X coords 0 -1 1 1 150 194 1 10 10; #X restore 105 130 pd \$0-controls; #X text 574 402 connect to module; #X obj 497 515 bng 19 250 50 0 empty empty empty 0 -10 0 12 #fcfcfc #000000 #000000; @@ -408,6 +467,7 @@ #X obj 411 877 t b b; #X text 1080 65 remote response from to babs.inout in target module, f 36; #X text 919 301 received remotely by babs.inout in target module; +#X text 383 167 todo: if that min and max os 0 to 1 param has min and max then gui will use toggle ui; #X connect 2 0 0 0; #X connect 4 0 5 0; #X connect 5 0 64 0; @@ -459,4 +519,4 @@ #X connect 68 0 7 0; #X connect 69 0 66 0; #X connect 69 1 68 0; -#X coords 0 -1 1 1 160 81 1 100 100; +#X coords 0 -1 1 1 160 231 1 100 100; diff --git a/demos/pluckstings.pd b/demos/pluckstings.pd index 1f43ce7..a93524d 100644 --- a/demos/pluckstings.pd +++ b/demos/pluckstings.pd @@ -1,4 +1,4 @@ -#N canvas 238 76 547 673 12; +#N canvas 762 179 451 673 12; #X declare -path ../; #X obj 244 593 declare -path ../; #X obj 108 287 bop.instrument~; @@ -14,6 +14,7 @@ #X obj 153 532 dac~, f 12; #X obj 108 148 bop.sequence; #A saved loop 1; +#A saved scrub 0; #A saved internal-sequence stop \; strum 1 0.3 1600 \; - 18000 \;; #X msg 108 49 go; #X msg 137 78 stop; @@ -25,14 +26,16 @@ #A saved dry 0; #X obj 108 179 bop.sequence; #A saved loop 1; +#A saved scrub 0; #A saved internal-sequence instrument 0 \; - 300 \; instrument 2 \; - 405 \;; #X obj 108 118 bop.sequence; #A saved loop 1; +#A saved scrub 0; #A saved internal-sequence root 40 \; - 3300 \; root 64 \; - 400 \; root 66 \; - 200 \; root 40 \; - 3300 \; root 66 \; - 100 \;; #X obj 237 287 bop.casio~, f 12; #A saved wave-1 1; #A saved wave-2 1; -#A saved filter 0.661536; +#A saved filter 0.607107; #A saved attack 0.1; #A saved decay 0.3; #A saved sustain 1; @@ -40,8 +43,10 @@ #A saved gain 0.935714; #X obj 236 201 bop.sequence; #A saved loop 0; +#A saved scrub 0; #A saved internal-sequence filter loop 0.5 2000 0.7 1000 0.45 2000 0.85 1800 0.4 2000 0.75 1000 0.45 2000 0.72 1000 \; 40 100 \; 40 100 \; 39.9999 100 \; cutoff loop 1200 4000 5000 4000 \; time loop 0.7 6000 0.699 6000 \; - 1000 \;; #X msg 206 69 open; +#X msg 341 178 open; #X connect 1 0 7 0; #X connect 1 0 3 1; #X connect 1 1 7 1; @@ -62,3 +67,4 @@ #X connect 11 0 10 0; #X connect 11 1 10 1; #X connect 12 0 9 1; +#X connect 13 0 11 1; diff --git a/doc/ui-and-sate-saving.pd b/doc/ui-and-sate-saving.pd index 9a2b1cc..e19b443 100644 --- a/doc/ui-and-sate-saving.pd +++ b/doc/ui-and-sate-saving.pd @@ -4,6 +4,7 @@ #X obj 50 852 bop.scope~; #X obj 48 722 bop.sequence; #A saved loop 1; +#A saved scrub 0; #A saved internal-sequence 28 100 \; - 500 \; 44 90 \; - 1500 \; 28 0 \; 30 127 \; 44 0 \; - 750 \; 42 100 \; - 1250 \; stop \;; #X msg 47 656 go; #X obj 49 1095 dac~; @@ -20,9 +21,9 @@ #A saved instrument 1; #X obj 357 269 bop.delay~; #A saved time 2.5; -#A saved feedback 0.45; +#A saved feedback 0.571429; #A saved cutoff 1000; -#A saved q 0.357143; +#A saved q 0.707143; #A saved wet 0.75; #A saved dry 1; #X obj 455 472 bop.ui; @@ -44,8 +45,7 @@ #X obj 555 1477 declare -path ../; #X msg 493 1148 strum 0.9 0.55 1200; #X msg 141 721 open; -#X text 129 197 connect to any bop module inlet and click ! ->, f 55; -#X msg 452 245 feedback 0.5; +#X text 144 172 connect to any bop module inlet and click ! ->, f 55; #X obj 475 100 bop.ui; #X connect 1 0 4 0; #X connect 1 0 4 1; @@ -62,4 +62,3 @@ #X connect 13 0 2 0; #X connect 18 0 6 0; #X connect 19 0 2 1; -#X connect 21 0 8 1; diff --git a/sub/gui/toggle.pd b/sub/gui/toggle.pd new file mode 100644 index 0000000..2d08e3e --- /dev/null +++ b/sub/gui/toggle.pd @@ -0,0 +1,23 @@ +#N canvas 793 167 618 714 12; +#X text 295 49 \$1: parent \$0; +#X text 294 68 \$2: label; +#X text 42 111 send: \$0-from-[label]; +#X text 42 133 recv: \$0-to-[label]; +#X text 294 29 arguments:; +#X obj 299 185 r \$1-get-\$2; +#X obj 299 215 list prepend \$2; +#X obj 299 250 s \$1-params; +#X obj 41 197 r \$1-update-\$2; +#X obj 41 280 s \$1-set-\$2; +#X msg 41 250 set \$1; +#X obj 41 223 route float; +#X obj 11 11 cnv 15 144 18 empty empty empty 3 10 0 12 #ffffff #ffffff 0; +#X obj 10 10 tgl 20 0 \$1-get-\$2 \$1-set-\$2 empty 22 10 0 10 #c6feff #000000 #000000 0 1; +#X text 293 91 \$3: min (always 0); +#X text 292 114 \$4: min (always 1); +#X connect 5 0 6 0; +#X connect 6 0 7 0; +#X connect 8 0 11 0; +#X connect 10 0 9 0; +#X connect 11 0 10 0; +#X coords 0 -1 1 1 146 20 2 10 10;