From 98ab064a48bca2b091db32de9c9f18c5bb883e31 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Tue, 3 Apr 2007 04:30:16 +0000 Subject: a complete single parameter curve (exponential_seat) and a complete double parameter curve (double_linear) svn path=/trunk/externals/mapping/; revision=7540 --- double_linear.pd | 30 ++++++++++ exponential_seat.pd | 18 ++++++ help/double_linear-help.pd | 130 ++++++++++++++++++++++++++++++++++++++++++ help/exponential_seat-help.pd | 120 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 298 insertions(+) create mode 100644 double_linear.pd create mode 100644 exponential_seat.pd create mode 100644 help/double_linear-help.pd create mode 100644 help/exponential_seat-help.pd diff --git a/double_linear.pd b/double_linear.pd new file mode 100644 index 0000000..2ddcddf --- /dev/null +++ b/double_linear.pd @@ -0,0 +1,30 @@ +#N canvas 405 334 488 450 10; +#X obj 62 10 inlet; +#X obj 327 9 inlet; +#X obj 106 405 outlet; +#X obj 240 10 loadbang; +#X obj 167 9 inlet; +#X obj 167 50 purepd/float_argument \$1; +#X obj 327 50 purepd/float_argument \$2; +#X obj 74 113 moses; +#X obj 114 220 moses 1; +#X obj 114 241 + 1e-06; +#X text 164 227 prevent divide by 0; +#X obj 232 279 expr $f3 + ((1-$f3)/(1-$f2))*($f1-$f2); +#X obj 61 280 expr ($f3/$f2) * $f1; +#X connect 0 0 7 0; +#X connect 1 0 6 0; +#X connect 3 0 5 0; +#X connect 3 0 6 0; +#X connect 4 0 5 0; +#X connect 5 0 7 1; +#X connect 5 0 8 0; +#X connect 5 0 11 1; +#X connect 6 0 11 2; +#X connect 6 0 12 2; +#X connect 7 0 12 0; +#X connect 7 1 11 0; +#X connect 8 0 9 0; +#X connect 9 0 12 1; +#X connect 11 0 2 0; +#X connect 12 0 2 0; diff --git a/exponential_seat.pd b/exponential_seat.pd new file mode 100644 index 0000000..c318d6e --- /dev/null +++ b/exponential_seat.pd @@ -0,0 +1,18 @@ +#N canvas 405 334 496 458 10; +#X obj 62 10 inlet; +#X obj 106 405 outlet; +#X obj 240 10 loadbang; +#X obj 167 9 inlet; +#X obj 167 50 purepd/float_argument \$1; +#X obj 62 114 moses 0.5; +#X obj 246 205 expr 1 - pow(2*(1-$f1) \, 1-$f2) / 2; +#X obj 38 205 expr pow(2 * $f1 \, 1 - $f2) / 2; +#X connect 0 0 5 0; +#X connect 2 0 4 0; +#X connect 3 0 4 0; +#X connect 4 0 6 1; +#X connect 4 0 7 1; +#X connect 5 0 7 0; +#X connect 5 1 6 0; +#X connect 6 0 1 0; +#X connect 7 0 1 0; diff --git a/help/double_linear-help.pd b/help/double_linear-help.pd new file mode 100644 index 0000000..95d4771 --- /dev/null +++ b/help/double_linear-help.pd @@ -0,0 +1,130 @@ +#N canvas 568 30 498 429 10; +#X obj 5 2 cnv 15 450 20 empty empty double_linear 2 11 1 18 -233017 +-66577 0; +#X msg 422 3 pddp; +#X text 283 392 released under the GNU GPL; +#X text 158 361 For more info:; +#X floatatom 25 127 8 0 0 0 - - -; +#X floatatom 25 288 8 0 0 0 - - -; +#X obj 28 305 hsl 200 20 0 1 0 0 empty empty curved_output 22 11 1 +12 -262144 -1 -1 0 1; +#X obj 28 101 hsl 200 20 0 1 0 0 empty empty raw_input 22 11 1 12 -261681 +-1 -1 0 1; +#N canvas 273 69 466 399 draw_array 0; +#X msg 54 82 bang; +#X obj 54 133 until; +#X text 85 82 start; +#X obj 54 155 f; +#X obj 83 155 + 1; +#X obj 54 43 loadbang; +#X obj 54 210 trigger float float; +#X obj 127 157 select 0; +#X obj 53 343 tabwrite \$0-curve; +#X obj 139 53 trigger bang float; +#X obj 83 177 mod 200; +#X obj 54 287 / 200; +#X text 96 287 mapping output range: 0 to 1; +#N canvas 0 22 461 369 receive 0; +#X obj 253 33 receive \$0-y; +#X obj 253 57 moses; +#X obj 280 78 moses 201; +#X obj 331 99 bang; +#X msg 331 120 200; +#X obj 238 98 bang; +#X msg 238 119 0; +#X obj 91 56 moses; +#X obj 118 77 moses 201; +#X obj 169 98 bang; +#X msg 169 119 200; +#X obj 76 97 bang; +#X msg 76 118 0; +#X obj 91 32 receive \$0-x; +#X obj 117 289 receive \$0-x-slider; +#X floatatom 118 312 5 0 0 0 - - -; +#X floatatom 279 313 5 0 0 0 - - -; +#X obj 280 290 receive \$0-y-slider; +#X obj 118 169 / 200; +#X obj 280 170 / 200; +#X obj 118 249 send \$0-x-slider-receive; +#X obj 280 250 send \$0-y-slider-receive; +#X msg 281 193 1 \$1; +#X obj 280 221 -; +#X connect 0 0 1 0; +#X connect 1 0 5 0; +#X connect 1 1 2 0; +#X connect 2 0 19 0; +#X connect 2 1 3 0; +#X connect 3 0 4 0; +#X connect 4 0 19 0; +#X connect 5 0 6 0; +#X connect 6 0 19 0; +#X connect 7 0 11 0; +#X connect 7 1 8 0; +#X connect 8 0 18 0; +#X connect 8 1 9 0; +#X connect 9 0 10 0; +#X connect 10 0 18 0; +#X connect 11 0 12 0; +#X connect 12 0 18 0; +#X connect 13 0 7 0; +#X connect 14 0 15 0; +#X connect 17 0 16 0; +#X connect 18 0 20 0; +#X connect 19 0 22 0; +#X connect 22 0 23 0; +#X connect 23 0 21 0; +#X restore 265 348 pd receive from gcanvas; +#X obj 138 9 receive \$0-x-slider; +#X obj 293 12 receive \$0-y-slider; +#X obj 53 313 double_linear; +#X obj 294 50 trigger bang float; +#X obj 54 108 speedlim 100; +#X connect 0 0 18 0; +#X connect 1 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 4 0 10 0; +#X connect 5 0 0 0; +#X connect 6 0 11 0; +#X connect 6 1 8 1; +#X connect 7 0 1 1; +#X connect 9 0 0 0; +#X connect 9 1 16 1; +#X connect 10 0 3 1; +#X connect 10 0 7 0; +#X connect 11 0 16 0; +#X connect 14 0 9 0; +#X connect 15 0 17 0; +#X connect 16 0 8 0; +#X connect 17 0 0 0; +#X connect 17 1 16 2; +#X connect 18 0 1 0; +#X restore 377 71 pd draw_array; +#X obj 158 167 hsl 50 15 0 1 0 0 \$0-y-slider \$0-y-slider-receive +y 5 9 0 11 -204800 -1 -1 0 0; +#X floatatom 165 186 7 0 0 0 - - -; +#X obj 262 359 pddp/open mapping-about; +#X text 16 391 (C) Copyright 2007 Free Software Foundation; +#X obj 25 217 double_linear; +#X obj 272 103 gcanvas 200 200; +#N canvas 0 22 450 300 graph1 0; +#X array \$0-curve 200 float 0; +#X coords 0 1 199 0 200 200 1; +#X restore 272 103 graph; +#X obj 272 308 send \$0-x; +#X obj 414 307 send \$0-y; +#X obj 74 167 hsl 50 15 0 1 0 0 \$0-x-slider \$0-x-slider-receive x +5 9 0 11 -232576 -1 -1 0 0; +#X floatatom 80 187 7 0 0 0 - - -; +#X text 17 39 This object curves the input range using a double-linear +interpolator with two control parameters.; +#X connect 4 0 13 0; +#X connect 5 0 6 0; +#X connect 7 0 4 0; +#X connect 9 0 13 2; +#X connect 9 0 10 0; +#X connect 13 0 5 0; +#X connect 14 0 16 0; +#X connect 14 1 17 0; +#X connect 18 0 13 1; +#X connect 18 0 19 0; diff --git a/help/exponential_seat-help.pd b/help/exponential_seat-help.pd new file mode 100644 index 0000000..7c853c0 --- /dev/null +++ b/help/exponential_seat-help.pd @@ -0,0 +1,120 @@ +#N canvas 709 123 502 433 10; +#X obj 5 2 cnv 15 450 20 empty empty exponential_seat 2 11 1 18 -233017 +-66577 0; +#X msg 422 3 pddp; +#X text 283 392 released under the GNU GPL; +#X text 158 361 For more info:; +#X floatatom 25 127 8 0 0 0 - - -; +#X floatatom 25 288 8 0 0 0 - - -; +#X obj 28 305 hsl 200 20 0 1 0 0 empty empty curved_output 22 11 1 +12 -262144 -1 -1 0 1; +#X obj 28 101 hsl 200 20 0 1 0 0 empty empty raw_input 22 11 1 12 -261681 +-1 -1 0 1; +#N canvas 273 69 470 403 draw_array 0; +#X msg 54 82 bang; +#X obj 54 133 until; +#X text 85 82 start; +#X obj 54 155 f; +#X obj 83 155 + 1; +#X obj 54 43 loadbang; +#X obj 54 210 trigger float float; +#X obj 127 157 select 0; +#X obj 53 343 tabwrite \$0-curve; +#X obj 139 53 trigger bang float; +#X obj 83 177 mod 200; +#X obj 54 287 / 200; +#X text 96 287 mapping output range: 0 to 1; +#N canvas 0 22 461 369 receive 0; +#X obj 253 33 receive \$0-y; +#X obj 253 57 moses; +#X obj 280 78 moses 201; +#X obj 331 99 bang; +#X msg 331 120 200; +#X obj 238 98 bang; +#X msg 238 119 0; +#X obj 91 56 moses; +#X obj 118 77 moses 201; +#X obj 169 98 bang; +#X msg 169 119 200; +#X obj 76 97 bang; +#X msg 76 118 0; +#X obj 91 32 receive \$0-x; +#X obj 117 289 receive \$0-x-slider; +#X floatatom 118 312 5 0 0 0 - - -; +#X floatatom 279 313 5 0 0 0 - - -; +#X obj 280 290 receive \$0-y-slider; +#X obj 118 169 / 200; +#X obj 280 170 / 200; +#X obj 118 249 send \$0-x-slider-receive; +#X obj 280 250 send \$0-y-slider-receive; +#X msg 281 193 1 \$1; +#X obj 280 221 -; +#X connect 0 0 1 0; +#X connect 1 0 5 0; +#X connect 1 1 2 0; +#X connect 2 0 19 0; +#X connect 2 1 3 0; +#X connect 3 0 4 0; +#X connect 4 0 19 0; +#X connect 5 0 6 0; +#X connect 6 0 19 0; +#X connect 7 0 11 0; +#X connect 7 1 8 0; +#X connect 8 0 18 0; +#X connect 8 1 9 0; +#X connect 9 0 10 0; +#X connect 10 0 18 0; +#X connect 11 0 12 0; +#X connect 12 0 18 0; +#X connect 13 0 7 0; +#X connect 14 0 15 0; +#X connect 17 0 16 0; +#X connect 18 0 20 0; +#X connect 19 0 22 0; +#X connect 22 0 23 0; +#X connect 23 0 21 0; +#X restore 265 348 pd receive from gcanvas; +#X obj 138 9 receive \$0-x-slider; +#X obj 54 108 speedlim 100; +#X obj 53 313 exponential_seat; +#X connect 0 0 15 0; +#X connect 1 0 3 0; +#X connect 3 0 4 0; +#X connect 3 0 6 0; +#X connect 4 0 10 0; +#X connect 5 0 0 0; +#X connect 6 0 11 0; +#X connect 6 1 8 1; +#X connect 7 0 1 1; +#X connect 9 0 0 0; +#X connect 9 1 16 1; +#X connect 10 0 3 1; +#X connect 10 0 7 0; +#X connect 11 0 16 0; +#X connect 14 0 9 0; +#X connect 15 0 1 0; +#X connect 16 0 8 0; +#X restore 377 71 pd draw_array; +#X obj 262 359 pddp/open mapping-about; +#X text 16 391 (C) Copyright 2007 Free Software Foundation; +#X obj 25 217 exponential_seat; +#X obj 272 103 gcanvas 200 200; +#N canvas 0 22 450 300 graph1 0; +#X array \$0-curve 200 float 0; +#X coords 0 1 199 0 200 200 1; +#X restore 272 103 graph; +#X obj 272 308 send \$0-x; +#X obj 414 307 send \$0-y; +#X obj 121 167 hsl 50 15 0 1 0 0 \$0-x-slider \$0-x-slider-receive +x 5 9 0 11 -232576 -1 -1 0 0; +#X floatatom 127 187 7 0 0 0 - - -; +#X text 17 39 This object curves the input range using a double-exponential +seat controlled by one parameter.; +#X connect 4 0 11 0; +#X connect 5 0 6 0; +#X connect 7 0 4 0; +#X connect 11 0 5 0; +#X connect 12 0 14 0; +#X connect 12 1 15 0; +#X connect 16 0 11 1; +#X connect 16 0 17 0; -- cgit v1.2.1