From 271bd5960eb6d11edb21ed7070dc92cbb4aa48a6 Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Tue, 17 Apr 2007 05:25:46 +0000 Subject: went on a curve binge at the Patching Circle. I also discovered that Cyrille's breakpoint_smooth is the same as elliptic.pd svn path=/trunk/externals/mapping/; revision=7571 --- circular.pd | 6 ++ circular_seat.pd | 2 +- cubic_seat.pd | 33 +++++++++ elliptic.pd | 65 ++++++++++++++++++ help/circular-help.pd | 114 +++++++++++++++++++++++++++++++ help/circular_seat-help.pd | 18 ++--- help/cubic_seat-help.pd | 131 ++++++++++++++++++++++++++++++++++++ help/elliptic-help.pd | 131 ++++++++++++++++++++++++++++++++++++ help/quadratic-help.pd | 133 +++++++++++++++++++++++++++++++++++++ help/simplified_cubic_seat-help.pd | 131 ++++++++++++++++++++++++++++++++++++ help/simplified_quadratic-help.pd | 123 ++++++++++++++++++++++++++++++++++ quadratic.pd | 30 +++++++++ simplified_cubic_seat.pd | 36 ++++++++++ simplified_quadratic.pd | 32 +++++++++ 14 files changed, 975 insertions(+), 10 deletions(-) create mode 100644 circular.pd create mode 100644 cubic_seat.pd create mode 100644 elliptic.pd create mode 100644 help/circular-help.pd create mode 100644 help/cubic_seat-help.pd create mode 100644 help/elliptic-help.pd create mode 100644 help/quadratic-help.pd create mode 100644 help/simplified_cubic_seat-help.pd create mode 100644 help/simplified_quadratic-help.pd create mode 100644 quadratic.pd create mode 100644 simplified_cubic_seat.pd create mode 100644 simplified_quadratic.pd diff --git a/circular.pd b/circular.pd new file mode 100644 index 0000000..1cb0bfb --- /dev/null +++ b/circular.pd @@ -0,0 +1,6 @@ +#N canvas 577 316 599 452 10; +#X obj 62 10 inlet; +#X obj 195 405 outlet; +#X obj 65 172 expr 1 - sqrt(1 - pow($f1 \, 2)); +#X connect 0 0 2 0; +#X connect 2 0 1 0; diff --git a/circular_seat.pd b/circular_seat.pd index c2c5f76..c216b61 100644 --- a/circular_seat.pd +++ b/circular_seat.pd @@ -1,4 +1,4 @@ -#N canvas 508 166 591 444 10; +#N canvas 508 166 595 448 10; #X obj 62 10 inlet; #X obj 195 405 outlet; #X obj 240 10 loadbang; diff --git a/cubic_seat.pd b/cubic_seat.pd new file mode 100644 index 0000000..2f79ff1 --- /dev/null +++ b/cubic_seat.pd @@ -0,0 +1,33 @@ +#N canvas 571 181 589 471 12; +#X obj 42 10 inlet; +#X obj 349 13 inlet; +#X obj 106 405 outlet; +#X obj 220 10 loadbang; +#X obj 147 9 inlet; +#X obj 147 50 purepd/float_argument \$1; +#X obj 349 54 purepd/float_argument \$2; +#X obj 42 113 moses; +#X obj 147 97 moses 1; +#X obj 147 121 + 1e-06; +#X text 202 106 prevent divide by 0; +#X obj 7 199 expr $f3 - $f3*pow(1 - $f1/$f2 \, 3); +#X obj 152 275 expr $f3 + (1 - $f3) * pow(($f1 - $f2) / (1 - $f2) \, +3); +#X obj 349 121 float; +#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 6 0 13 0; +#X connect 7 0 11 0; +#X connect 7 1 12 0; +#X connect 8 0 9 0; +#X connect 9 0 11 1; +#X connect 9 0 12 1; +#X connect 11 0 2 0; +#X connect 12 0 2 0; +#X connect 13 0 11 2; +#X connect 13 0 12 2; diff --git a/elliptic.pd b/elliptic.pd new file mode 100644 index 0000000..3a81754 --- /dev/null +++ b/elliptic.pd @@ -0,0 +1,65 @@ +#N canvas 408 22 535 556 12; +#X obj 345 96 t b f; +#X obj 43 353 pow; +#X msg 385 286 1 \$1; +#X obj 385 311 -; +#X obj 43 246 moses; +#X obj 43 325 /; +#X obj 43 381 *; +#X obj 80 323 /; +#X msg 211 288 1 \$1; +#X obj 211 313 -; +#X obj 161 314 - 1; +#X obj 161 342 * -1; +#X obj 161 398 pow; +#X obj 161 371 /; +#X obj 161 422 *; +#X obj 211 369 /; +#X obj 161 446 * -1; +#X obj 161 470 + 1; +#X obj 43 518 outlet; +#X obj 43 10 inlet; +#X obj 160 12 inlet; +#X obj 345 12 inlet; +#X text 89 11 input; +#X text 205 11 X; +#X text 396 13 Y; +#X obj 160 152 f; +#X obj 250 30 loadbang; +#X obj 157 70 purepd/float_argument \$1; +#X obj 345 70 purepd/float_argument \$2; +#X connect 0 0 25 0; +#X connect 0 1 2 0; +#X connect 0 1 6 1; +#X connect 0 1 7 1; +#X connect 1 0 6 0; +#X connect 2 0 3 0; +#X connect 3 0 14 1; +#X connect 3 0 15 1; +#X connect 4 0 5 0; +#X connect 4 1 10 0; +#X connect 5 0 1 0; +#X connect 6 0 18 0; +#X connect 7 0 1 1; +#X connect 8 0 9 0; +#X connect 9 0 15 0; +#X connect 9 0 13 1; +#X connect 10 0 11 0; +#X connect 11 0 13 0; +#X connect 12 0 14 0; +#X connect 13 0 12 0; +#X connect 14 0 16 0; +#X connect 15 0 12 1; +#X connect 16 0 17 0; +#X connect 17 0 18 0; +#X connect 19 0 4 0; +#X connect 20 0 27 0; +#X connect 21 0 28 0; +#X connect 25 0 8 0; +#X connect 25 0 7 0; +#X connect 25 0 4 1; +#X connect 25 0 5 1; +#X connect 26 0 27 0; +#X connect 26 0 28 0; +#X connect 27 0 25 0; +#X connect 28 0 0 0; diff --git a/help/circular-help.pd b/help/circular-help.pd new file mode 100644 index 0000000..ebe0ed3 --- /dev/null +++ b/help/circular-help.pd @@ -0,0 +1,114 @@ +#N canvas 399 232 494 437 10; +#X obj 5 2 cnv 15 450 20 empty empty circular 2 11 1 18 -233017 -66577 +0; +#X msg 422 3 pddp; +#X text 273 392 released under the GNU GPL; +#X text 148 361 For more info:; +#X floatatom 15 127 8 0 0 0 - - -; +#X floatatom 15 288 8 0 0 0 - - -; +#X obj 18 305 hsl 200 20 0 1 0 0 empty empty curved_output 22 11 1 +12 -262144 -1 -1 0 1; +#X obj 18 101 hsl 200 20 0 1 0 0 empty empty raw_input 22 11 1 12 -261681 +-1 -1 0 1; +#N canvas 144 55 490 423 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 237 / 200; +#X text 96 237 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 106 cyclone/speedlim 100; +#X obj 53 293 circular; +#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 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 367 71 pd draw_array; +#X obj 252 359 pddp/open mapping-about; +#X text 6 391 (C) Copyright 2007 Free Software Foundation; +#X obj 15 207 circular; +#X obj 262 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 262 103 graph; +#X obj 262 308 send \$0-x; +#X obj 404 307 send \$0-y; +#X text 17 39 This object curves the input range using a double-circular +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; diff --git a/help/circular_seat-help.pd b/help/circular_seat-help.pd index cb785a1..885a4b0 100644 --- a/help/circular_seat-help.pd +++ b/help/circular_seat-help.pd @@ -1,4 +1,4 @@ -#N canvas 107 47 486 429 10; +#N canvas 399 232 490 433 10; #X obj 5 2 cnv 15 450 20 empty empty circular_seat 2 11 1 18 -233017 -66577 0; #X msg 422 3 pddp; @@ -10,7 +10,7 @@ 12 -262144 -1 -1 0 1; #X obj 18 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; +#N canvas 273 69 474 407 draw_array 0; #X msg 54 82 bang; #X obj 54 133 until; #X text 85 82 start; @@ -75,9 +75,9 @@ #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 circular_seat; -#X connect 0 0 15 0; +#X obj 54 106 cyclone/speedlim 100; +#X connect 0 0 16 0; #X connect 1 0 3 0; #X connect 3 0 4 0; #X connect 3 0 6 0; @@ -87,13 +87,13 @@ #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 9 1 15 1; #X connect 10 0 3 1; #X connect 10 0 7 0; -#X connect 11 0 16 0; +#X connect 11 0 15 0; #X connect 14 0 9 0; -#X connect 15 0 1 0; -#X connect 16 0 8 0; +#X connect 15 0 8 0; +#X connect 16 0 1 0; #X restore 367 71 pd draw_array; #X obj 252 359 pddp/open mapping-about; #X text 6 391 (C) Copyright 2007 Free Software Foundation; @@ -106,7 +106,7 @@ #X obj 262 308 send \$0-x; #X obj 404 307 send \$0-y; #X obj 111 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 5 9 0 11 -232576 -1 -1 2916 0; #X floatatom 117 187 7 0 0 0 - - -; #X text 17 39 This object curves the input range using a double-circular seat controlled by one parameter.; diff --git a/help/cubic_seat-help.pd b/help/cubic_seat-help.pd new file mode 100644 index 0000000..8a7f897 --- /dev/null +++ b/help/cubic_seat-help.pd @@ -0,0 +1,131 @@ +#N canvas 249 248 567 425 12; +#X obj 418 32 import mapping ggee; +#X obj 5 2 cnv 15 550 20 empty empty cubic_seat 2 11 1 18 -233017 -66577 +0; +#X msg 516 2 pddp; +#X text 313 393 released under the GNU GPL; +#X text 263 356 For more info:; +#X floatatom 35 127 8 0 0 0 - - -; +#X floatatom 35 278 8 0 0 0 - - -; +#X obj 38 305 hsl 200 20 0 1 0 0 empty empty curved_output 22 11 1 +12 -262144 -1 -1 0 1; +#X obj 38 101 hsl 200 20 0 1 0 0 empty empty raw_input 22 11 1 12 -261681 +-1 -1 0 1; +#X obj 168 167 hsl 50 15 0 1 0 1 \$0-y-slider \$0-y-slider-receive +y 5 9 0 11 -204800 -1 -1 2720 0; +#X floatatom 175 186 7 0 0 0 - - -; +#X obj 362 356 pddp/open mapping-about; +#X text 0 393 (C) Copyright 2007 Free Software Foundation; +#X obj 74 167 hsl 50 15 0 1 0 1 \$0-x-slider \$0-x-slider-receive x +5 9 0 11 -232576 -1 -1 1984 0; +#X floatatom 80 187 7 0 0 0 - - -; +#X text 6 33 This object curves the input range using cubic curves +that meet at the specified point \, forming a seat.; +#X obj 35 247 cubic_seat; +#N canvas 273 69 478 411 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 66 343 tabwrite \$0-curve; +#X obj 139 53 trigger bang float; +#X obj 83 177 mod 200; +#X obj 54 254 / 200; +#X text 96 254 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 294 50 trigger bang float; +#X obj 54 108 cyclone/speedlim 100; +#X obj 54 280 cubic_seat; +#X connect 0 0 17 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 18 1; +#X connect 10 0 3 1; +#X connect 10 0 7 0; +#X connect 11 0 18 0; +#X connect 14 0 9 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X connect 16 1 18 2; +#X connect 17 0 1 0; +#X connect 18 0 8 0; +#X restore 409 71 pd draw_array; +#X obj 304 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 304 103 graph; +#X obj 304 308 send \$0-x; +#X obj 446 307 send \$0-y; +#X connect 5 0 16 0; +#X connect 6 0 7 0; +#X connect 8 0 5 0; +#X connect 9 0 10 0; +#X connect 9 0 16 2; +#X connect 13 0 14 0; +#X connect 13 0 16 1; +#X connect 16 0 6 0; +#X connect 18 0 20 0; +#X connect 18 1 21 0; diff --git a/help/elliptic-help.pd b/help/elliptic-help.pd new file mode 100644 index 0000000..1cabc18 --- /dev/null +++ b/help/elliptic-help.pd @@ -0,0 +1,131 @@ +#N canvas 249 248 567 425 12; +#X obj 418 32 import mapping ggee; +#X obj 5 2 cnv 15 550 20 empty empty elliptic 2 11 1 18 -233017 -66577 +0; +#X msg 516 2 pddp; +#X text 313 393 released under the GNU GPL; +#X text 263 356 For more info:; +#X floatatom 35 127 8 0 0 0 - - -; +#X floatatom 35 278 8 0 0 0 - - -; +#X obj 38 305 hsl 200 20 0 1 0 0 empty empty curved_output 22 11 1 +12 -262144 -1 -1 0 1; +#X obj 38 101 hsl 200 20 0 1 0 0 empty empty raw_input 22 11 1 12 -261681 +-1 -1 0 1; +#X obj 168 167 hsl 50 15 0 1 0 1 \$0-y-slider \$0-y-slider-receive +y 5 9 0 11 -204800 -1 -1 2720 0; +#X floatatom 175 186 7 0 0 0 - - -; +#X obj 362 356 pddp/open mapping-about; +#X text 0 393 (C) Copyright 2007 Free Software Foundation; +#X obj 74 167 hsl 50 15 0 1 0 1 \$0-x-slider \$0-x-slider-receive x +5 9 0 11 -232576 -1 -1 1984 0; +#X floatatom 80 187 7 0 0 0 - - -; +#X text 6 33 This object curves the input range using two ellipses +that meet at the specified point.; +#X obj 35 247 elliptic; +#N canvas 273 69 478 411 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 66 343 tabwrite \$0-curve; +#X obj 139 53 trigger bang float; +#X obj 83 177 mod 200; +#X obj 54 254 / 200; +#X text 96 254 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 294 50 trigger bang float; +#X obj 54 108 cyclone/speedlim 100; +#X obj 54 280 elliptic; +#X connect 0 0 17 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 18 1; +#X connect 10 0 3 1; +#X connect 10 0 7 0; +#X connect 11 0 18 0; +#X connect 14 0 9 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X connect 16 1 18 2; +#X connect 17 0 1 0; +#X connect 18 0 8 0; +#X restore 409 71 pd draw_array; +#X obj 304 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 304 103 graph; +#X obj 304 308 send \$0-x; +#X obj 446 307 send \$0-y; +#X connect 5 0 16 0; +#X connect 6 0 7 0; +#X connect 8 0 5 0; +#X connect 9 0 10 0; +#X connect 9 0 16 2; +#X connect 13 0 14 0; +#X connect 13 0 16 1; +#X connect 16 0 6 0; +#X connect 18 0 20 0; +#X connect 18 1 21 0; diff --git a/help/quadratic-help.pd b/help/quadratic-help.pd new file mode 100644 index 0000000..bec9e7c --- /dev/null +++ b/help/quadratic-help.pd @@ -0,0 +1,133 @@ +#N canvas 511 22 572 442 12; +#X obj 410 58 import mapping ggee; +#X obj 5 2 cnv 15 550 20 empty empty quadratic 2 11 1 18 -233017 -66577 +0; +#X msg 516 2 pddp; +#X text 313 393 released under the GNU GPL; +#X text 111 347 For more info:; +#X floatatom 35 127 8 0 0 0 - - -; +#X floatatom 35 278 8 0 0 0 - - -; +#X obj 38 305 hsl 200 20 0 1 0 0 empty empty curved_output 22 11 1 +12 -262144 -1 -1 0 1; +#X obj 38 101 hsl 200 20 0 1 0 0 empty empty raw_input 22 11 1 12 -261681 +-1 -1 0 1; +#X obj 148 167 hsl 50 15 0 1 0 1 \$0-y-slider \$0-y-slider-receive +y 5 9 0 11 -204800 -1 -1 4778 0; +#X floatatom 155 186 7 0 0 0 - - -; +#X obj 362 366 pddp/open mapping-about; +#X text 0 393 (C) Copyright 2007 Free Software Foundation; +#X obj 54 167 hsl 50 15 0 1 0 1 \$0-x-slider \$0-x-slider-receive x +5 9 0 11 -232576 -1 -1 2597 0; +#X floatatom 64 187 7 0 0 0 - - -; +#N canvas 273 69 482 415 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 66 343 tabwrite \$0-curve; +#X obj 139 53 trigger bang float; +#X obj 83 177 mod 200; +#X obj 54 254 / 200; +#X text 96 254 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 294 50 trigger bang float; +#X obj 54 108 cyclone/speedlim 100; +#X obj 54 280 quadratic; +#X connect 0 0 17 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 18 1; +#X connect 10 0 3 1; +#X connect 10 0 7 0; +#X connect 11 0 18 0; +#X connect 14 0 9 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X connect 16 1 18 2; +#X connect 17 0 1 0; +#X connect 18 0 8 0; +#X restore 305 58 pd draw_array; +#X obj 304 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 304 103 graph; +#X obj 304 308 send \$0-x; +#X obj 446 307 send \$0-y; +#X text 3 33 This object curves the input range using a quadratic bezier +curve.; +#X obj 220 347 pddp/pddplink http://www.tinaja.com/text/bezmath.html +; +#X obj 35 218 quadratic; +#X connect 5 0 22 0; +#X connect 6 0 7 0; +#X connect 8 0 5 0; +#X connect 9 0 10 0; +#X connect 9 0 22 2; +#X connect 13 0 14 0; +#X connect 13 0 22 1; +#X connect 16 0 18 0; +#X connect 16 1 19 0; +#X connect 22 0 6 0; diff --git a/help/simplified_cubic_seat-help.pd b/help/simplified_cubic_seat-help.pd new file mode 100644 index 0000000..b5a482b --- /dev/null +++ b/help/simplified_cubic_seat-help.pd @@ -0,0 +1,131 @@ +#N canvas 249 248 571 429 12; +#X obj 418 32 import mapping ggee; +#X obj 5 2 cnv 15 550 20 empty empty simplified_cubic_seat 2 11 1 18 +-233017 -66577 0; +#X msg 516 2 pddp; +#X text 313 393 released under the GNU GPL; +#X text 263 356 For more info:; +#X floatatom 35 127 8 0 0 0 - - -; +#X floatatom 35 278 8 0 0 0 - - -; +#X obj 38 305 hsl 200 20 0 1 0 0 empty empty curved_output 22 11 1 +12 -262144 -1 -1 0 1; +#X obj 38 101 hsl 200 20 0 1 0 0 empty empty raw_input 22 11 1 12 -261681 +-1 -1 0 1; +#X obj 208 167 hsl 50 15 0 1 0 1 \$0-y-slider \$0-y-slider-receive +y 5 9 0 11 -204800 -1 -1 0 0; +#X floatatom 215 186 7 0 0 0 - - -; +#X obj 362 356 pddp/open mapping-about; +#X text 0 393 (C) Copyright 2007 Free Software Foundation; +#X obj 114 167 hsl 50 15 0 1 0 1 \$0-x-slider \$0-x-slider-receive +x 5 9 0 11 -232576 -1 -1 4900 0; +#X floatatom 120 187 7 0 0 0 - - -; +#X text 6 33 This object curves the input range using simple cubic +curves that meet at the specified point \, forming a seat.; +#X obj 35 247 simplified_cubic_seat; +#N canvas 273 69 478 411 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 66 343 tabwrite \$0-curve; +#X obj 139 53 trigger bang float; +#X obj 83 177 mod 200; +#X obj 54 254 / 200; +#X text 96 254 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 294 50 trigger bang float; +#X obj 54 108 cyclone/speedlim 100; +#X obj 54 280 simplified_cubic_seat; +#X connect 0 0 17 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 18 1; +#X connect 10 0 3 1; +#X connect 10 0 7 0; +#X connect 11 0 18 0; +#X connect 14 0 9 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X connect 16 1 18 2; +#X connect 17 0 1 0; +#X connect 18 0 8 0; +#X restore 409 71 pd draw_array; +#X obj 304 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 304 103 graph; +#X obj 304 308 send \$0-x; +#X obj 446 307 send \$0-y; +#X connect 5 0 16 0; +#X connect 6 0 7 0; +#X connect 8 0 5 0; +#X connect 9 0 10 0; +#X connect 9 0 16 2; +#X connect 13 0 14 0; +#X connect 13 0 16 1; +#X connect 16 0 6 0; +#X connect 18 0 20 0; +#X connect 18 1 21 0; diff --git a/help/simplified_quadratic-help.pd b/help/simplified_quadratic-help.pd new file mode 100644 index 0000000..211e127 --- /dev/null +++ b/help/simplified_quadratic-help.pd @@ -0,0 +1,123 @@ +#N canvas 360 135 572 442 12; +#X obj 413 35 import mapping ggee; +#X obj 5 2 cnv 15 550 20 empty empty simplified_quadratic 2 11 1 18 +-233017 -66577 0; +#X msg 516 2 pddp; +#X text 324 394 released under the GNU GPL; +#X text 243 352 For more info:; +#X floatatom 35 127 8 0 0 0 - - -; +#X floatatom 35 278 8 0 0 0 - - -; +#X obj 38 305 hsl 200 20 0 1 0 0 empty empty curved_output 22 11 1 +12 -262144 -1 -1 0 1; +#X obj 38 101 hsl 200 20 0 1 0 0 empty empty raw_input 22 11 1 12 -261681 +-1 -1 0 1; +#X obj 360 352 pddp/open mapping-about; +#X text 11 394 (C) Copyright 2007 Free Software Foundation; +#X obj 175 167 hsl 50 15 0 1 0 1 \$0-x-slider \$0-x-slider-receive +x 5 9 0 11 -232576 -1 -1 1495 0; +#X floatatom 181 187 7 0 0 0 - - -; +#X obj 35 217 simplified_quadratic; +#N canvas 273 69 482 415 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 66 343 tabwrite \$0-curve; +#X obj 139 53 trigger bang float; +#X obj 83 177 mod 200; +#X obj 54 254 / 200; +#X text 96 254 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 294 50 trigger bang float; +#X obj 54 108 cyclone/speedlim 100; +#X obj 54 280 simplified_quadratic; +#X connect 0 0 17 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 18 1; +#X connect 10 0 3 1; +#X connect 10 0 7 0; +#X connect 11 0 18 0; +#X connect 14 0 9 0; +#X connect 15 0 16 0; +#X connect 16 0 0 0; +#X connect 17 0 1 0; +#X connect 18 0 8 0; +#X restore 409 73 pd draw_array; +#X obj 304 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 304 103 graph; +#X obj 304 308 send \$0-x; +#X text 3 33 This object curves the input range using a simplified +quadratic bezier curve controlled by one parameter.; +#X connect 5 0 13 0; +#X connect 6 0 7 0; +#X connect 8 0 5 0; +#X connect 11 0 12 0; +#X connect 11 0 13 1; +#X connect 13 0 6 0; +#X connect 15 0 17 0; diff --git a/quadratic.pd b/quadratic.pd new file mode 100644 index 0000000..32d46a4 --- /dev/null +++ b/quadratic.pd @@ -0,0 +1,30 @@ +#N canvas 79 279 589 471 10; +#X obj 22 10 inlet; +#X obj 412 9 inlet; +#X obj 174 405 outlet; +#X obj 270 10 loadbang; +#X obj 167 9 inlet; +#X obj 167 50 purepd/float_argument \$1; +#X obj 412 50 purepd/float_argument \$2; +#X obj 167 97 select 0.5; +#X obj 224 149 float; +#X msg 167 121 0.50001; +#X text 225 121 prevent divide by 0; +#X obj 271 213 expr 1 - 2*$f1; +#X obj 22 250 expr (sqrt($f2*$f2 + $f3*$f1) - $f2) / $f3; +#X obj 175 309 expr (1 - 2*$f2)*($f1*$f1) + (2*$f2)*$f1; +#X connect 0 0 12 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 0; +#X connect 6 0 13 1; +#X connect 7 0 9 0; +#X connect 7 1 8 0; +#X connect 8 0 11 0; +#X connect 8 0 12 1; +#X connect 9 0 8 0; +#X connect 11 0 12 2; +#X connect 12 0 13 0; +#X connect 13 0 2 0; diff --git a/simplified_cubic_seat.pd b/simplified_cubic_seat.pd new file mode 100644 index 0000000..87bf333 --- /dev/null +++ b/simplified_cubic_seat.pd @@ -0,0 +1,36 @@ +#N canvas 515 141 585 467 12; +#X obj 42 10 inlet; +#X obj 349 13 inlet; +#X obj 106 405 outlet; +#X obj 220 10 loadbang; +#X obj 147 9 inlet; +#X obj 147 50 purepd/float_argument \$1; +#X obj 349 54 purepd/float_argument \$2; +#X obj 42 113 moses; +#X obj 349 110 -; +#X msg 349 87 1 \$1; +#X obj 7 199 expr $f3*$f1 + (1-$f3)*$f2*(1 - pow(1 - $f1/$f2 \, 3)) +; +#X obj 147 97 moses 1; +#X obj 147 121 + 1e-06; +#X text 202 106 prevent divide by 0; +#X obj 152 275 expr $f3*$f1 + (1-$f3)*($f2 + (1-$f2)*pow(($f1-$f2) +/ (1-$f2) \, 3)); +#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 11 0; +#X connect 6 0 9 0; +#X connect 7 0 10 0; +#X connect 7 1 14 0; +#X connect 8 0 10 2; +#X connect 8 0 14 2; +#X connect 9 0 8 0; +#X connect 10 0 2 0; +#X connect 11 0 12 0; +#X connect 12 0 10 1; +#X connect 12 0 14 1; +#X connect 14 0 2 0; diff --git a/simplified_quadratic.pd b/simplified_quadratic.pd new file mode 100644 index 0000000..a38e739 --- /dev/null +++ b/simplified_quadratic.pd @@ -0,0 +1,32 @@ +#N canvas 206 281 589 471 10; +#X obj 22 10 inlet; +#X obj 174 435 outlet; +#X obj 270 10 loadbang; +#X obj 167 9 inlet; +#X obj 167 50 purepd/float_argument \$1; +#X obj 167 157 select 0.5; +#X obj 224 209 float; +#X msg 167 181 0.50001; +#X text 225 181 prevent divide by 0; +#X obj 271 243 expr 1 - 2*$f1; +#X obj 22 280 expr (sqrt($f2*$f2 + $f3*$f1) - $f2) / $f3; +#X obj 175 339 expr (1 - 2*$f2)*($f1*$f1) + (2*$f2)*$f1; +#X obj 278 82 * 2; +#X obj 317 126 - 1; +#X obj 278 104 moses 1; +#X connect 0 0 10 0; +#X connect 2 0 4 0; +#X connect 3 0 4 0; +#X connect 4 0 12 0; +#X connect 5 0 7 0; +#X connect 5 1 6 0; +#X connect 6 0 9 0; +#X connect 6 0 10 1; +#X connect 7 0 6 0; +#X connect 9 0 10 2; +#X connect 10 0 11 0; +#X connect 11 0 1 0; +#X connect 12 0 14 0; +#X connect 13 0 11 1; +#X connect 14 0 5 0; +#X connect 14 1 13 0; -- cgit v1.2.1