aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCyrille Henry <nusmuk@users.sourceforge.net>2009-03-29 16:03:42 +0000
committerCyrille Henry <nusmuk@users.sourceforge.net>2009-03-29 16:03:42 +0000
commit3da716c5e2ea346fed70084bd483125cfc742891 (patch)
tree305bc16b64f484fab5570f0b6c396f52bd43d29d
parent56f80e8391a49d743bed44563eab901ad64eb13f (diff)
same algo, but faster (i.e. without expr~ object).
this version was made by Frank Barknecht svn path=/trunk/externals/nusmuk/; revision=10927
-rw-r--r--oscillators/pwm~.pd231
-rw-r--r--oscillators/saw~.pd89
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;