From 9544b3c4cb5e805d21b823cabd12204c377261a3 Mon Sep 17 00:00:00 2001 From: Luke Iannini Date: Fri, 25 Jul 2008 09:22:20 +0000 Subject: greatly improved dealing with scaled input while still accepting arbitrary OSC messages svn path=/trunk/abstractions/senderfruit/; revision=10219 --- memento-p/commun-c-constrain.pd | 96 ++++++++++++++++++++-------------------- memento-p/commun-c-scale-help.pd | 44 +++++++++--------- memento-p/commun-c-scale.pd | 57 ++++++++++++------------ 3 files changed, 97 insertions(+), 100 deletions(-) diff --git a/memento-p/commun-c-constrain.pd b/memento-p/commun-c-constrain.pd index 27a1329..77064eb 100644 --- a/memento-p/commun-c-constrain.pd +++ b/memento-p/commun-c-constrain.pd @@ -1,7 +1,6 @@ #N canvas 286 32 505 662 10; #X obj 12 11 inlet; #X obj 108 585 outlet; -#X text 5 93 RRADICAL_MEMENTO is also in originator; #X obj 108 538 list; #X obj 132 318 expr_scale 0 1 \$3 \$4; #X obj 289 318 expr_scale 0 1 \$3 \$4; @@ -24,17 +23,12 @@ be when scaled fully; #X obj 162 279 t b a; #X obj 108 415 r \$0round?; #X obj 45 459 t a; -#X text 186 548 Read \$1-OSC (== \$0-OSC) \, filter by argument \$2 -; -#X obj 45 188 deeprouteOSC \$2-normalized; -#X obj 187 521 deeprouteOSC \$2; -#X obj 187 497 r \$1-RRADICAL-OSC; -#X obj 45 165 r \$1-RRADICAL-OSC; +#X text 6 128 Read \$1-OSC (== \$0-OSC) \, filter by argument \$2; +#X obj 45 145 r \$1-RRADICAL-OSC; #X obj 12 42 prepent \$2; #X obj 12 69 s \$1-RRADICAL-MEMENTO; #X obj 108 513 route \$2; #X obj 108 489 r \$1-in; -#X text 191 538 ^; #N canvas 0 22 221 199 handleArgs 0; #X obj 26 26 loadbang; #X msg 26 127 1; @@ -49,22 +43,22 @@ be when scaled fully; #X connect 2 1 5 0; #X connect 4 0 2 0; #X connect 6 0 4 0; -#X restore 297 108 pd handleArgs; +#X restore 317 108 pd handleArgs; #N canvas 0 22 390 211 listParams 0; #X obj 31 79 spigot 1; #X msg 161 62 0; #X obj 161 39 r \$0hide?; #X obj 31 49 r \$1/listParams; #X obj 31 136 s \$1/returnParams; -#X obj 31 106 list append \$2-normalized; #X text 16 161 listParams is used by Controctopus \, so we return a special address for 0-1 data input only; -#X connect 0 0 5 0; +#X obj 31 106 list append \$2; +#X connect 0 0 6 0; #X connect 1 0 0 1; #X connect 2 0 1 0; #X connect 3 0 0 0; -#X connect 5 0 4 0; -#X restore 297 133 pd listParams; +#X connect 6 0 4 0; +#X restore 317 133 pd listParams; #N canvas 0 22 352 303 receiveConstraints 0; #X obj 80 156 unpack f f; #X obj 80 200 s \$0constrainLow; @@ -97,7 +91,7 @@ special address for 0-1 data input only; #X connect 11 0 7 0; #X connect 12 0 10 0; #X connect 14 0 6 0; -#X restore 297 157 pd receiveConstraints; +#X restore 317 157 pd receiveConstraints; #N canvas 323 119 442 277 constraintsFeedback 0; #X obj 19 35 inlet; #X obj 19 63 t a a b; @@ -150,42 +144,48 @@ selector \, you can return the names); #X connect 8 1 4 1; #X connect 9 0 10 0; #X connect 10 0 7 0; -#X restore 297 181 pd receiveMultiplier; +#X restore 317 181 pd receiveMultiplier; #X obj 81 391 r \$0multiplier; #X obj 45 408 *; #X obj 108 562 route bang; -#X connect 0 0 28 0; -#X connect 3 0 40 0; -#X connect 4 0 6 0; -#X connect 4 0 9 3; -#X connect 5 0 6 1; -#X connect 5 0 9 4; -#X connect 6 0 36 0; -#X connect 7 0 22 0; -#X connect 7 1 8 0; -#X connect 8 0 22 0; -#X connect 9 0 39 0; +#X obj 45 168 deeprouteOSC \$2; +#X obj 45 190 route float; +#X obj 118 190 s \$0bypass; +#X obj 166 516 r \$0bypass; +#X text 43 85 RRADICAL-MEMENTO is also in originator; +#X connect 0 0 24 0; +#X connect 2 0 35 0; +#X connect 3 0 5 0; +#X connect 3 0 8 3; +#X connect 4 0 5 1; +#X connect 4 0 8 4; +#X connect 5 0 31 0; +#X connect 6 0 21 0; +#X connect 6 1 7 0; +#X connect 7 0 21 0; +#X connect 8 0 34 0; +#X connect 9 0 12 0; #X connect 10 0 13 0; -#X connect 11 0 14 0; -#X connect 15 0 20 0; -#X connect 16 0 19 0; +#X connect 14 0 19 0; +#X connect 15 0 18 0; +#X connect 16 0 3 0; #X connect 17 0 4 0; -#X connect 18 0 5 0; -#X connect 19 0 5 0; -#X connect 19 1 5 4; -#X connect 19 1 4 4; -#X connect 20 0 4 0; -#X connect 20 1 5 3; -#X connect 20 1 4 3; -#X connect 21 0 7 1; -#X connect 22 0 3 0; -#X connect 24 0 9 0; -#X connect 25 0 3 0; -#X connect 26 0 25 0; -#X connect 27 0 24 0; -#X connect 28 0 29 0; -#X connect 30 0 3 0; -#X connect 31 0 30 0; -#X connect 38 0 39 1; -#X connect 39 0 7 0; -#X connect 40 1 1 0; +#X connect 18 0 4 0; +#X connect 18 1 4 4; +#X connect 18 1 3 4; +#X connect 19 0 3 0; +#X connect 19 1 4 3; +#X connect 19 1 3 3; +#X connect 20 0 6 1; +#X connect 21 0 2 0; +#X connect 23 0 36 0; +#X connect 24 0 25 0; +#X connect 26 0 2 0; +#X connect 27 0 26 0; +#X connect 33 0 34 1; +#X connect 34 0 6 0; +#X connect 35 1 1 0; +#X connect 36 0 37 0; +#X connect 37 0 8 0; +#X connect 37 1 38 0; +#X connect 39 0 2 0; diff --git a/memento-p/commun-c-scale-help.pd b/memento-p/commun-c-scale-help.pd index f181f47..5d6d666 100644 --- a/memento-p/commun-c-scale-help.pd +++ b/memento-p/commun-c-scale-help.pd @@ -1,36 +1,34 @@ #N canvas 731 31 478 597 10; -#X text 130 258 Inlet 2 changes the lower scaling bound; -#X text 228 288 Inlet 3 changes the upper scaling bound; -#X floatatom 131 273 5 0 0 0 - - -; -#X floatatom 232 304 5 0 0 0 - - -; +#X text 127 258 Inlet 2 changes the lower scaling bound; +#X text 222 288 Inlet 3 changes the upper scaling bound; +#X floatatom 128 273 5 0 0 0 - - -; +#X floatatom 226 304 5 0 0 0 - - -; #X floatatom 31 253 5 0 0 0 - - -; #X floatatom 31 363 5 0 0 0 - - -; #X text 29 236 Inlet 1 is the standard commun input; #X text 340 552 2008 Luke Iannini; #X text 2 573 Originally based on [commun-scale] by Frank Barknecht ; -#X text 13 26 Use commun-c-scale(ale) so that 0-1 values coming out -of OSC stuff (like Controctopus) can be rescaled appropriately.; -#X text 14 145 commun-c-scale's first and second args are swapped from +#X text 13 145 commun-c-scale's first and second args are swapped from commun-c (i.e. \$0 and /parametername); -#X text 15 182 Optionally prepend a unique ID to the parameter when -using with an abstraction that will have multiple copies; -#X obj 31 327 commun-c-scale \$0 \$3/parameter 5 37; -#X text 13 109 Don't use this for communs that are meant to store symbolic -or list data (use regular commun-c for that).; -#X text 34 404 * Argument 5 and 6 can be "round" and/or "hide" (the -order doesn't matter).; -#X text 34 434 * "hide" hides the parameter from Controctopus sniffing +#X text 44 434 * "hide" hides the parameter from Controctopus sniffing (useful to pare down the options to just the most interesting inputs). ; -#X text 34 476 * "round" rounds up from 0.5 increments so that an integer +#X text 44 476 * "round" rounds up from 0.5 increments so that an integer is always output (useful for communs connected to v/hdials and toggles). ; -#X text 14 62 0-1 data should be directed to /paramatername-normalized. -The address /parametername still exists and will output arbitrary data. -; #X text 328 537 made more confusing by; -#X connect 2 0 12 1; -#X connect 3 0 12 2; -#X connect 4 0 12 0; -#X connect 12 0 5 0; +#X obj 31 327 commun-c-scale \$0 /parameter 5 37; +#X text 13 76 commun-c-scale distinguishes between floats and other +messages \, so you can send other messages to its OSC address and they'll +be delivered without the scaling getting in the way.; +#X text 13 16 commun-c-scale will scale OSC inputs from 0-1 to a range +you specify. This way \, all of your parameters have a standardized +interface \, where 0-1 can mean 20-20000hz for a filter or 0-100 for +a volume control.; +#X text 34 404 * Argument 5 and 6 can be "round" and/or "hide" (the +order doesn't matter):; +#X connect 2 0 13 1; +#X connect 3 0 13 2; +#X connect 4 0 13 0; +#X connect 13 0 5 0; diff --git a/memento-p/commun-c-scale.pd b/memento-p/commun-c-scale.pd index f3ed13d..071f9a5 100644 --- a/memento-p/commun-c-scale.pd +++ b/memento-p/commun-c-scale.pd @@ -1,7 +1,6 @@ #N canvas 286 32 505 662 10; #X obj 12 11 inlet; #X obj 108 585 outlet; -#X text 5 93 RRADICAL_MEMENTO is also in originator; #X obj 108 538 list; #X obj 45 437 demultiplex; #X obj 108 459 round; @@ -14,17 +13,13 @@ #X obj 162 282 r \$0boundHighFull; #X obj 108 415 r \$0round?; #X obj 45 459 t a; -#X text 186 548 Read \$1-OSC (== \$0-OSC) \, filter by argument \$2 +#X text 10 147 Read \$1-OSC (== \$0-OSC) \, filter by argument \$2 ; -#X obj 45 188 deeprouteOSC \$2-normalized; -#X obj 187 521 deeprouteOSC \$2; -#X obj 187 497 r \$1-RRADICAL-OSC; #X obj 45 165 r \$1-RRADICAL-OSC; #X obj 12 42 prepent \$2; #X obj 12 69 s \$1-RRADICAL-MEMENTO; #X obj 108 513 route \$2; #X obj 108 489 r \$1-in; -#X text 191 538 ^; #N canvas 0 22 221 199 handleArgs 0; #X obj 26 26 loadbang; #X msg 26 127 1; @@ -40,15 +35,13 @@ #X connect 4 0 2 0; #X connect 6 0 4 0; #X restore 348 118 pd handleArgs; -#N canvas 0 22 390 211 listParams 0; +#N canvas 0 22 339 177 listParams 0; #X obj 31 79 spigot 1; #X msg 161 62 0; #X obj 161 39 r \$0hide?; #X obj 31 49 r \$1/listParams; #X obj 31 136 s \$1/returnParams; -#X obj 31 106 list append \$2-normalized; -#X text 16 161 listParams is used by Controctopus \, so we return a -special address for 0-1 data input only; +#X obj 31 106 list append \$2; #X connect 0 0 5 0; #X connect 1 0 0 1; #X connect 2 0 1 0; @@ -58,23 +51,29 @@ special address for 0-1 data input only; #X text 63 610 Use to constrain input to a smaller subset of the full range. Input as relative to 0-1.; #X obj 108 562 route bang; -#X connect 0 0 20 0; -#X connect 3 0 28 0; -#X connect 4 0 14 0; -#X connect 4 1 5 0; -#X connect 5 0 14 0; -#X connect 6 0 4 0; +#X obj 45 220 route float; +#X obj 118 220 s \$0bypass; +#X obj 45 188 deeprouteOSC \$2; +#X obj 167 516 r \$0bypass; +#X text 42 85 RRADICAL-MEMENTO is also in originator; +#X connect 0 0 16 0; +#X connect 2 0 23 0; +#X connect 3 0 13 0; +#X connect 3 1 4 0; +#X connect 4 0 13 0; +#X connect 5 0 3 0; +#X connect 6 0 8 0; #X connect 7 0 9 0; -#X connect 8 0 10 0; -#X connect 11 0 6 3; -#X connect 12 0 6 4; -#X connect 13 0 4 1; -#X connect 14 0 3 0; -#X connect 16 0 6 0; -#X connect 17 0 3 0; -#X connect 18 0 17 0; -#X connect 19 0 16 0; -#X connect 20 0 21 0; -#X connect 22 0 3 0; -#X connect 23 0 22 0; -#X connect 28 1 1 0; +#X connect 10 0 5 3; +#X connect 11 0 5 4; +#X connect 12 0 3 1; +#X connect 13 0 2 0; +#X connect 15 0 26 0; +#X connect 16 0 17 0; +#X connect 18 0 2 0; +#X connect 19 0 18 0; +#X connect 23 1 1 0; +#X connect 24 0 5 0; +#X connect 24 1 25 0; +#X connect 26 0 24 0; +#X connect 27 0 2 0; -- cgit v1.2.1