From 3da716c5e2ea346fed70084bd483125cfc742891 Mon Sep 17 00:00:00 2001 From: Cyrille Henry Date: Sun, 29 Mar 2009 16:03:42 +0000 Subject: same algo, but faster (i.e. without expr~ object). this version was made by Frank Barknecht svn path=/trunk/externals/nusmuk/; revision=10927 --- oscillators/pwm~.pd | 231 ++++++++++++++++++++++++++++++++++++++-------------- oscillators/saw~.pd | 89 +++++++++++++++----- 2 files changed, 237 insertions(+), 83 deletions(-) diff --git a/oscillators/pwm~.pd b/oscillators/pwm~.pd index 32e1690..a593e5f 100644 --- a/oscillators/pwm~.pd +++ b/oscillators/pwm~.pd @@ -1,67 +1,176 @@ -#N canvas 1008 79 639 655 10; -#X obj -300 58 phasor~; -#X obj -299 151 -~ 0.5; -#X obj -299 176 *~ 2; -#X obj -208 229 wrap~; -#X obj -207 255 *~ 2; -#X obj -207 280 -~ 1; -#X obj -113 277 >~ 0; -#X obj -4 219 /~; -#X obj -5 194 sig~ 22050; -#X obj -22 242 *~; -#X obj -21 264 abs~; -#X obj -22 286 +~ 1.8955; -#X obj -298 307 expr~ -0.5+($v1/-2)+$v3+$v2*sin($v4)/$v4; -#X obj -299 31 inlet~; -#X obj -192 353 +~; -#X obj 165 27 inlet~; -#X obj -193 379 wrap~; -#X obj -193 404 -~ 0.5; -#X obj -193 429 *~ 2; -#X obj -102 482 wrap~; -#X obj -101 508 *~ 2; -#X obj -101 533 -~ 1; -#X obj -7 530 >~ 0; -#X obj 84 495 *~; -#X obj 85 517 abs~; -#X obj 84 539 +~ 1.8955; -#X obj -192 560 expr~ -0.5+($v1/-2)+$v3+$v2*sin($v4)/$v4; -#X obj -297 625 outlet~; -#X obj -297 594 -~; +#N canvas 268 49 728 663 10; +#X obj 65 122 phasor~; +#X obj 66 59 inlet~; +#X obj 238 172 +~; +#X obj 255 64 inlet~; +#X obj 237 198 wrap~; +#X obj 334 327 sig~ 22050; +#X obj 334 284 samplerate~; +#X obj 334 232 loadbang; +#X obj 334 307 * 0.5; +#X obj 67 475 -~; +#X obj 67 503 outlet~; +#X obj 475 432 loadbang; +#X obj 475 495 table \$0-lookup 2; +#X obj 475 474 s \$0-lookup; +#X msg 475 453 0 0 1; +#X msg 344 257 bang; +#N canvas 315 401 852 607 sinc-phasor 0; +#X obj 173 131 -~ 0.5; +#X obj 421 192 *~ 2; +#X obj 459 191 /~; +#X obj 421 219 *~; +#X obj 422 241 abs~; +#X obj 421 263 +~ 1.8955; +#X obj 174 427 +~; +#N canvas 104 42 701 480 sin(x)/x 0; +#X obj 220 229 cos~; +#X obj 221 204 -~ 0.25; +#X msg 288 90 1; +#X floatatom 288 162 5 0 0 0 - - -; +#X obj 288 116 atan; +#X obj 288 137 * 8; +#X obj 220 181 /~ 6.238; +#X obj 288 67 loadbang; +#X obj 221 148 inlet~; +#X obj 219 291 outlet~; +#X obj 220 255 /~; +#X connect 0 0 10 0; +#X connect 1 0 0 0; +#X connect 2 0 4 0; +#X connect 3 0 6 1; +#X connect 4 0 5 0; +#X connect 5 0 3 0; +#X connect 6 0 1 0; +#X connect 7 0 2 0; +#X connect 8 0 6 0; +#X connect 8 0 10 1; +#X connect 10 0 9 0; +#X restore 421 293 pd sin(x)/x; +#X text 208 426 + v3; +#X obj 175 333 tabread~ \$0-lookup; +#X obj 174 311 +~ 1; +#X obj 127 78 inlet~; +#X text 123 53 phasor~; +#X obj 433 71 inlet~; +#X obj 510 72 inlet~; +#X text 506 47 SR; +#X text 429 46 freq; +#X obj 109 486 outlet~; +#X obj 328 217 wrap~; +#X obj 329 243 *~ 2; +#X obj 329 268 -~ 1; +#X obj 330 392 *~; +#X text 357 387 v2*sin(v4)/v4; +#X obj 110 460 -~; #X connect 0 0 1 0; -#X connect 0 0 14 0; -#X connect 1 0 2 0; +#X connect 0 0 10 0; +#X connect 0 0 18 0; #X connect 1 0 3 0; -#X connect 1 0 6 0; -#X connect 2 0 9 0; -#X connect 2 0 12 0; +#X connect 2 0 3 1; #X connect 3 0 4 0; #X connect 4 0 5 0; -#X connect 5 0 12 1; -#X connect 6 0 12 2; -#X connect 7 0 9 1; -#X connect 7 0 23 1; -#X connect 8 0 7 0; -#X connect 9 0 10 0; -#X connect 10 0 11 0; -#X connect 11 0 12 3; -#X connect 12 0 28 0; -#X connect 13 0 0 0; -#X connect 13 0 7 1; -#X connect 14 0 16 0; -#X connect 15 0 14 1; -#X connect 16 0 17 0; -#X connect 17 0 18 0; -#X connect 17 0 19 0; -#X connect 17 0 22 0; -#X connect 18 0 23 0; -#X connect 18 0 26 0; +#X connect 5 0 7 0; +#X connect 6 0 23 0; +#X connect 7 0 21 1; +#X connect 9 0 6 0; +#X connect 10 0 9 0; +#X connect 11 0 0 0; +#X connect 11 0 23 1; +#X connect 13 0 2 1; +#X connect 14 0 2 0; +#X connect 18 0 19 0; +#X connect 19 0 20 0; +#X connect 20 0 21 0; +#X connect 21 0 6 1; +#X connect 23 0 17 0; +#X restore 238 442 pd sinc-phasor; +#N canvas 315 401 852 607 sinc-phasor 0; +#X obj 173 131 -~ 0.5; +#X obj 421 192 *~ 2; +#X obj 459 191 /~; +#X obj 421 219 *~; +#X obj 422 241 abs~; +#X obj 421 263 +~ 1.8955; +#X obj 174 427 +~; +#N canvas 104 42 701 480 sin(x)/x 0; +#X obj 220 229 cos~; +#X obj 221 204 -~ 0.25; +#X msg 288 90 1; +#X floatatom 288 162 5 0 0 0 - - -; +#X obj 288 116 atan; +#X obj 288 137 * 8; +#X obj 220 181 /~ 6.238; +#X obj 288 67 loadbang; +#X obj 221 148 inlet~; +#X obj 219 291 outlet~; +#X obj 220 255 /~; +#X connect 0 0 10 0; +#X connect 1 0 0 0; +#X connect 2 0 4 0; +#X connect 3 0 6 1; +#X connect 4 0 5 0; +#X connect 5 0 3 0; +#X connect 6 0 1 0; +#X connect 7 0 2 0; +#X connect 8 0 6 0; +#X connect 8 0 10 1; +#X connect 10 0 9 0; +#X restore 421 293 pd sin(x)/x; +#X text 208 426 + v3; +#X obj 175 333 tabread~ \$0-lookup; +#X obj 174 311 +~ 1; +#X obj 127 78 inlet~; +#X text 123 53 phasor~; +#X obj 433 71 inlet~; +#X obj 510 72 inlet~; +#X text 506 47 SR; +#X text 429 46 freq; +#X obj 109 486 outlet~; +#X obj 328 217 wrap~; +#X obj 329 243 *~ 2; +#X obj 329 268 -~ 1; +#X obj 330 392 *~; +#X text 357 387 v2*sin(v4)/v4; +#X obj 110 460 -~; +#X connect 0 0 1 0; +#X connect 0 0 10 0; +#X connect 0 0 18 0; +#X connect 1 0 3 0; +#X connect 2 0 3 1; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 7 0; +#X connect 6 0 23 0; +#X connect 7 0 21 1; +#X connect 9 0 6 0; +#X connect 10 0 9 0; +#X connect 11 0 0 0; +#X connect 11 0 23 1; +#X connect 13 0 2 1; +#X connect 14 0 2 0; +#X connect 18 0 19 0; #X connect 19 0 20 0; #X connect 20 0 21 0; -#X connect 21 0 26 1; -#X connect 22 0 26 2; -#X connect 23 0 24 0; -#X connect 24 0 25 0; -#X connect 25 0 26 3; -#X connect 26 0 28 1; -#X connect 28 0 27 0; +#X connect 21 0 6 1; +#X connect 23 0 17 0; +#X restore 66 443 pd sinc-phasor; +#X connect 0 0 2 0; +#X connect 0 0 17 0; +#X connect 1 0 0 0; +#X connect 1 0 16 1; +#X connect 1 0 17 1; +#X connect 2 0 4 0; +#X connect 3 0 2 1; +#X connect 4 0 16 0; +#X connect 5 0 16 2; +#X connect 5 0 17 2; +#X connect 6 0 8 0; +#X connect 7 0 6 0; +#X connect 8 0 5 0; +#X connect 9 0 10 0; +#X connect 11 0 14 0; +#X connect 14 0 13 0; +#X connect 15 0 6 0; +#X connect 16 0 9 1; +#X connect 17 0 9 0; diff --git a/oscillators/saw~.pd b/oscillators/saw~.pd index 087b8cb..f06316e 100644 --- a/oscillators/saw~.pd +++ b/oscillators/saw~.pd @@ -1,34 +1,79 @@ -#N canvas 1492 355 660 293 10; -#X obj 21 -73 phasor~; -#X obj 92 -38 -~ 0.5; -#X obj 235 9 *~ 2; -#X obj 91 31 wrap~; -#X obj 92 57 *~ 2; -#X obj 92 82 -~ 1; -#X obj 273 8 /~; -#X obj 272 -17 sig~ 22050; -#X obj 235 36 *~; -#X obj 236 58 abs~; -#X obj 235 80 +~ 1.8955; -#X obj 22 -100 inlet~; -#X obj 21 132 outlet~; -#X obj 22 106 expr~ -$v1+$v3+$v2*sin($v4)/$v4; -#X obj 163 82 expr~ $v1 > 0; +#N canvas 232 120 725 608 10; +#X obj 105 96 phasor~; +#X obj 173 131 -~ 0.5; +#X obj 421 192 *~ 2; +#X obj 328 217 wrap~; +#X obj 329 243 *~ 2; +#X obj 329 268 -~ 1; +#X obj 459 191 /~; +#X obj 458 146 sig~ 22050; +#X obj 421 219 *~; +#X obj 422 241 abs~; +#X obj 421 263 +~ 1.8955; +#X obj 106 49 inlet~; +#X obj 87 542 outlet~; +#X obj 458 97 samplerate~; +#X obj 458 74 loadbang; +#X obj 458 120 * 0.5; +#X obj 174 427 +~; +#N canvas 104 42 701 480 sin(x)/x 0; +#X obj 220 229 cos~; +#X obj 221 204 -~ 0.25; +#X msg 288 90 1; +#X floatatom 288 162 5 0 0 0 - - -; +#X obj 288 116 atan; +#X obj 288 137 * 8; +#X obj 220 181 /~ 6.238; +#X obj 288 67 loadbang; +#X obj 221 148 inlet~; +#X obj 219 291 outlet~; +#X obj 220 255 /~; +#X connect 0 0 10 0; +#X connect 1 0 0 0; +#X connect 2 0 4 0; +#X connect 3 0 6 1; +#X connect 4 0 5 0; +#X connect 5 0 3 0; +#X connect 6 0 1 0; +#X connect 7 0 2 0; +#X connect 8 0 6 0; +#X connect 8 0 10 1; +#X connect 10 0 9 0; +#X restore 421 293 pd sin(x)/x; +#X obj 330 392 *~; +#X text 357 387 v2*sin(v4)/v4; +#X text 208 426 + v3; +#X obj 87 482 -~; +#X obj 557 476 loadbang; +#X obj 557 539 table \$0-lookup 2; +#X obj 175 333 tabread~ \$0-lookup; +#X obj 174 311 +~ 1; +#X obj 557 518 s \$0-lookup; +#X msg 557 497 0 0 1; #X connect 0 0 1 0; -#X connect 0 0 13 0; +#X connect 0 0 21 1; #X connect 1 0 2 0; #X connect 1 0 3 0; -#X connect 1 0 14 0; +#X connect 1 0 25 0; #X connect 2 0 8 0; #X connect 3 0 4 0; #X connect 4 0 5 0; -#X connect 5 0 13 1; +#X connect 5 0 18 0; #X connect 6 0 8 1; #X connect 7 0 6 0; #X connect 8 0 9 0; #X connect 9 0 10 0; -#X connect 10 0 13 3; +#X connect 10 0 17 0; #X connect 11 0 0 0; #X connect 11 0 6 1; -#X connect 13 0 12 0; -#X connect 14 0 13 2; +#X connect 13 0 15 0; +#X connect 14 0 13 0; +#X connect 15 0 7 0; +#X connect 16 0 21 0; +#X connect 17 0 18 1; +#X connect 18 0 16 1; +#X connect 21 0 12 0; +#X connect 22 0 27 0; +#X connect 24 0 16 0; +#X connect 25 0 24 0; +#X connect 27 0 26 0; -- cgit v1.2.1