From 19846b8431801f09aa6c55207a679e802b3ddf81 Mon Sep 17 00:00:00 2001 From: Luke Iannini Date: Mon, 1 Dec 2008 02:57:16 +0000 Subject: added pdoutify, a better alternative to using OSC for internal communication. also, a simple exponential adsr~ and more work on gui-spigot svn path=/trunk/abstractions/sfruit/; revision=10409 --- sfruit/exp_adsr~.pd | 50 ++++++++++++++++++++++++++++++++++++++++++++++++ sfruit/gui-spigot.pd | 26 +++++++++++++++++++------ sfruit/gui-update.pd | 14 +++++++++++--- sfruit/guilink-help.pd | 27 +++++++++++++++----------- sfruit/guilink.pd | 24 ++++++++++++++--------- sfruit/oscinify.pd | 3 +++ sfruit/oscoutify.pd | 3 +++ sfruit/pdoutify-demux.pd | 18 +++++++++++++++++ sfruit/pdoutify.pd | 6 ++++++ sfruit/sendmany.pd | 4 +--- 10 files changed, 143 insertions(+), 32 deletions(-) create mode 100644 sfruit/exp_adsr~.pd create mode 100644 sfruit/pdoutify-demux.pd create mode 100644 sfruit/pdoutify.pd diff --git a/sfruit/exp_adsr~.pd b/sfruit/exp_adsr~.pd new file mode 100644 index 0000000..6022d12 --- /dev/null +++ b/sfruit/exp_adsr~.pd @@ -0,0 +1,50 @@ +#N canvas 0 22 567 406 10; +#N canvas 0 22 450 300 hotpack3 0; +#X obj 10 100 pack f f f; +#X obj 10 10 inlet; +#X obj 10 160 outlet; +#X obj 50 10 inlet; +#X obj 50 30 t b a; +#X obj 90 10 inlet; +#X obj 90 30 t b a; +#X connect 0 0 2 0; +#X connect 1 0 0 0; +#X connect 3 0 4 0; +#X connect 4 0 0 0; +#X connect 4 1 0 1; +#X connect 5 0 6 0; +#X connect 6 0 0 0; +#X connect 6 1 0 2; +#X restore 198 138 pd hotpack3; +#X obj 147 295 vline~; +#X obj 147 319 *~; +#X msg 147 218 1 \$1 \, \$3 \$2 \$1; +#X msg 249 248 0 \$1; +#X obj 147 189 list; +#X obj 249 219 f; +#X obj 147 138 sel 1 0; +#X obj 147 63 inlet; +#X obj 147 348 outlet~; +#X obj 198 63 inlet; +#X obj 238 63 inlet; +#X obj 278 63 inlet; +#X obj 318 63 inlet; +#X text 202 38 a; +#X text 247 39 d; +#X text 290 39 s; +#X text 328 41 r; +#X connect 0 0 5 1; +#X connect 1 0 2 1; +#X connect 1 0 2 0; +#X connect 2 0 9 0; +#X connect 3 0 1 0; +#X connect 4 0 1 0; +#X connect 5 0 3 0; +#X connect 6 0 4 0; +#X connect 7 0 5 0; +#X connect 7 1 6 0; +#X connect 8 0 7 0; +#X connect 10 0 0 0; +#X connect 11 0 0 1; +#X connect 12 0 0 2; +#X connect 13 0 6 1; diff --git a/sfruit/gui-spigot.pd b/sfruit/gui-spigot.pd index f27fa10..12ca0a6 100644 --- a/sfruit/gui-spigot.pd +++ b/sfruit/gui-spigot.pd @@ -1,8 +1,22 @@ -#N canvas 281 332 308 216 10; +#N canvas 281 332 584 300 10; #X obj 86 64 inlet; -#X obj 86 94 spigot 1; -#X obj 131 64 r GUI_UPDATE; -#X obj 86 119 outlet; +#X obj 86 124 spigot 1; +#X obj 86 249 outlet; +#X obj 144 124 spigot 0; +#X obj 189 100 == 0; +#X obj 123 203 list; +#X obj 123 178 t b; +#X obj 123 154 r GUI_UPDATE; +#X obj 131 64 r GUI_UPDATING?; +#X text 195 189 possibly add random short delay here so guis are not +all updating simultaneously. hopefully would prevent dropouts; #X connect 0 0 1 0; -#X connect 1 0 3 0; -#X connect 2 0 1 1; +#X connect 0 0 3 0; +#X connect 1 0 2 0; +#X connect 3 0 5 1; +#X connect 4 0 3 1; +#X connect 5 0 2 0; +#X connect 6 0 5 0; +#X connect 7 0 6 0; +#X connect 8 0 1 1; +#X connect 8 0 4 0; diff --git a/sfruit/gui-update.pd b/sfruit/gui-update.pd index b8ccfd6..41dab90 100644 --- a/sfruit/gui-update.pd +++ b/sfruit/gui-update.pd @@ -1,6 +1,14 @@ #N canvas 367 554 450 300 10; -#X obj 78 94 tgl 42 0 \$0.GUI?.s \$0.GUI?.r G 8 22 0 40 -260097 -159788 --1 0 1; -#X obj 105 168 s GUI_UPDATE; +#X obj 78 94 tgl 42 0 \$0.updating?.s \$0.updating?.r G 8 22 0 40 -260097 +-159788 -1 0 1; +#X obj 78 168 s GUI_UPDATING?; +#X obj 180 168 s GUI_UPDATE; +#X obj 107 123 bng 13 250 50 0 \$0.gui.update.s \$0.gui.update.r U +4 7 0 10 -261594 -1 -1; +#X obj 80 27 loadbang; +#X msg 79 50 1; #X connect 0 0 1 0; +#X connect 3 0 2 0; +#X connect 4 0 5 0; +#X connect 5 0 0 0; #X coords 0 -1 1 1 44 44 2 77 93; diff --git a/sfruit/guilink-help.pd b/sfruit/guilink-help.pd index 2d16905..4ebf815 100644 --- a/sfruit/guilink-help.pd +++ b/sfruit/guilink-help.pd @@ -1,15 +1,20 @@ -#N canvas 36 238 450 300 10; -#X obj 54 95 guilink \$0 frequency; -#X obj 241 61 vsl 15 128 1 20000 1 0 \$0frequency \$0frequencyR empty -0 -9 0 10 -203904 -1 -1 0 1; -#X obj 269 114 nbx 5 14 1 20000 1 0 \$0frequencyD \$0frequencyDR empty -0 -8 0 10 -203904 -1 -1 1 256; +#N canvas 36 238 445 366 10; +#X obj 241 61 vsl 15 128 1 20000 1 0 \$0.frequency.s \$0.frequency.r +empty 0 -9 0 10 -203904 -1 -1 8858 1; +#X obj 269 114 nbx 5 14 1 20000 1 0 \$0.frequency.display.s \$0.frequency.display.r +empty 0 -8 0 10 -203904 -1 -1 1000 256; #X text 18 9 guilink: link two gui elements so that they reflect each other's settings; -#X obj 71 146 r \$0parameter; #X floatatom 71 177 6 0 0 0 - - -; +#X obj 54 95 guilink \$0.frequency; +#X obj 71 146 r \$0.frequency.s; #X text 14 217 Uses a uniform naming scheme. The "master" control is -uses \$0parameter as its sendname and \$0parameterR as its receivename. -The "slave" control uses \$0parameterD (for Display) as its sendname -and \$0paramterDR for its receivename; -#X connect 4 0 5 0; +uses parameter.s as its sendname and parameter.r as its receivename. +The "slave" control uses parameter.display.s as its sendname and parameter.display.r +as its receivename; +#X text 13 275 guilink also intercepts "set" messages to the master's +reciever and relays them to the slave.; +#X msg 168 318 set 1000; +#X obj 168 341 s \$0.frequency.r; +#X connect 5 0 3 0; +#X connect 8 0 9 0; diff --git a/sfruit/guilink.pd b/sfruit/guilink.pd index 11e3f8d..232bcb4 100644 --- a/sfruit/guilink.pd +++ b/sfruit/guilink.pd @@ -1,9 +1,15 @@ -#N canvas 469 180 164 138 10; -#X obj 23 21 r \$1\$2; -#X obj 23 101 s \$1\$2R; -#X obj 93 21 r \$1\$2D; -#X obj 91 101 s \$1\$2DR; -#X msg 23 53 set \$1; -#X connect 0 0 4 0; -#X connect 2 0 1 0; -#X connect 4 0 3 0; +#N canvas 469 180 358 145 10; +#X obj 35 37 r \$1.s; +#X msg 35 61 set \$1; +#X obj 36 106 s \$1.r; +#X obj 126 38 r \$1.display.s; +#X obj 261 13 r \$1.r; +#X obj 261 36 route set; +#X msg 261 58 set \$1; +#X obj 127 105 s \$1.display.r; +#X connect 0 0 1 0; +#X connect 1 0 7 0; +#X connect 3 0 2 0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 7 0; diff --git a/sfruit/oscinify.pd b/sfruit/oscinify.pd index a0d6fe3..11eeb9e 100644 --- a/sfruit/oscinify.pd +++ b/sfruit/oscinify.pd @@ -3,6 +3,9 @@ #X obj 22 34 deeprouteOSC \$1; #X obj 22 65 s \$2; #X obj 22 91 outlet; +#X obj 81 11 r /pd\$1; #X connect 0 0 1 0; #X connect 1 0 2 0; #X connect 1 0 3 0; +#X connect 4 0 2 0; +#X connect 4 0 3 0; diff --git a/sfruit/oscoutify.pd b/sfruit/oscoutify.pd index 7642fc8..1c5edf8 100644 --- a/sfruit/oscoutify.pd +++ b/sfruit/oscoutify.pd @@ -4,7 +4,10 @@ #X obj 21 55 list prepend \$1; #X obj 21 0 inlet; #X obj 108 1 inlet; +#X obj 87 84 s /pd\$1; #X connect 1 0 2 0; +#X connect 1 0 5 0; #X connect 2 0 0 0; #X connect 3 0 2 0; +#X connect 3 0 5 0; #X connect 4 0 2 1; diff --git a/sfruit/pdoutify-demux.pd b/sfruit/pdoutify-demux.pd new file mode 100644 index 0000000..6812d66 --- /dev/null +++ b/sfruit/pdoutify-demux.pd @@ -0,0 +1,18 @@ +#N canvas 0 22 371 234 10; +#X obj 121 113 list-map; +#X obj 121 141 list-map; +#X obj 52 142 sendmany; +#X msg 183 164 \$1\$2; +#X msg 178 113 /pd/sfs\$1; +#X obj 183 141 list append \$1; +#X obj 121 47 inlet; +#X obj 52 46 inlet; +#X connect 0 0 1 0; +#X connect 0 1 4 0; +#X connect 1 0 2 1; +#X connect 1 1 5 0; +#X connect 3 0 1 1; +#X connect 4 0 0 1; +#X connect 5 0 3 0; +#X connect 6 0 0 0; +#X connect 7 0 2 0; diff --git a/sfruit/pdoutify.pd b/sfruit/pdoutify.pd new file mode 100644 index 0000000..5d06b39 --- /dev/null +++ b/sfruit/pdoutify.pd @@ -0,0 +1,6 @@ +#N canvas 0 22 240 136 10; +#X obj 91 51 r \$2; +#X obj 91 20 inlet; +#X obj 91 104 s /pd\$1; +#X connect 0 0 2 0; +#X connect 1 0 2 0; diff --git a/sfruit/sendmany.pd b/sfruit/sendmany.pd index e0175df..82b5c39 100644 --- a/sfruit/sendmany.pd +++ b/sfruit/sendmany.pd @@ -1,5 +1,4 @@ -#N canvas 701 45 196 403 10; - +#N canvas 701 45 182 413 10; #X obj 32 365 s; #X obj 26 48 t b a; #X obj 32 160 list; @@ -8,7 +7,6 @@ #X obj 77 209 list; #X obj 26 16 inlet; #X obj 98 161 inlet; -#X obj 76 49 import-disabled list-abs; #X connect 1 0 5 0; #X connect 1 1 2 1; #X connect 2 0 0 0; -- cgit v1.2.1