From 61d0996525d4f76135ed4d1a21aa9a1a40df01b5 Mon Sep 17 00:00:00 2001 From: Cyrille Henry Date: Sun, 12 Oct 2008 15:51:41 +0000 Subject: better algorythme for band limited saw and rectangle oscillator svn path=/trunk/externals/nusmuk/; revision=10329 --- oscillators/pwm~-help.pd | 4 +- oscillators/pwm~.pd | 110 +++++++++++++++++++++++++++-------------------- oscillators/saw~-help.pd | 4 +- oscillators/saw~.pd | 57 +++++++++++++----------- 4 files changed, 100 insertions(+), 75 deletions(-) (limited to 'oscillators') diff --git a/oscillators/pwm~-help.pd b/oscillators/pwm~-help.pd index 9163527..9401ad8 100644 --- a/oscillators/pwm~-help.pd +++ b/oscillators/pwm~-help.pd @@ -1,4 +1,4 @@ -#N canvas 228 478 660 293 10; +#N canvas 108 88 346 329 10; #X obj 41 196 *~ 0.3; #X obj 42 231 dac~; #X floatatom 42 58 5 0 0 0 - - -; @@ -9,7 +9,7 @@ #X msg 42 98 \$1 33; #X obj 146 122 line~; #X msg 146 99 \$1 33; -#X text 159 18 pwm~ is a band-limited square oscillator.; +#X text 40 17 pwm~ is a band-limited square oscillator.; #X msg 146 60 0.5; #X connect 0 0 1 0; #X connect 0 0 1 1; diff --git a/oscillators/pwm~.pd b/oscillators/pwm~.pd index f78a3df..32e1690 100644 --- a/oscillators/pwm~.pd +++ b/oscillators/pwm~.pd @@ -1,49 +1,67 @@ -#N canvas 699 168 644 573 10; -#X obj 31 156 -~ 0.5; -#X obj 76 186 *~ 2; -#X obj 32 271 -~; -#X obj 32 207 wrap~; -#X obj 76 246 *~ 0.5; -#X obj 445 178 /~; -#X obj 444 153 sig~ 22050; -#X obj 31 19 inlet~; -#X obj 76 208 expr~ sin($v1*$v2) * (1/(0.00000001 + abs($v1)*$v2) - -1/(0.00000001 + $v2)); -#X obj 32 49 phasor~ \$1; -#X obj 171 319 -~ 0.5; -#X obj 216 349 *~ 2; -#X obj 172 434 -~; -#X obj 172 370 wrap~; -#X obj 216 409 *~ 0.5; -#X obj 34 547 outlet~; -#X obj 216 371 expr~ sin($v1*$v2) * (1/(0.00000001 + abs($v1)*$v2) -- 1/(0.00000001 + $v2)); -#X obj 172 269 +~; -#X obj 191 19 inlet~; -#X obj 171 295 wrap~; -#X obj 34 516 -~; +#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 -~; #X connect 0 0 1 0; -#X connect 0 0 3 0; -#X connect 1 0 8 0; -#X connect 2 0 20 0; -#X connect 3 0 2 0; -#X connect 4 0 2 0; -#X connect 5 0 8 1; -#X connect 5 0 16 1; -#X connect 6 0 5 0; -#X connect 7 0 5 1; -#X connect 7 0 9 0; -#X connect 8 0 4 0; -#X connect 9 0 0 0; -#X connect 9 0 17 0; +#X connect 0 0 14 0; +#X connect 1 0 2 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 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 10 0 13 0; -#X connect 11 0 16 0; -#X connect 12 0 20 1; -#X connect 13 0 12 0; -#X connect 14 0 12 0; -#X connect 16 0 14 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 18 0 17 1; -#X connect 19 0 10 0; -#X connect 20 0 15 0; +#X connect 17 0 22 0; +#X connect 18 0 23 0; +#X connect 18 0 26 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; diff --git a/oscillators/saw~-help.pd b/oscillators/saw~-help.pd index ff209fe..997d3b6 100644 --- a/oscillators/saw~-help.pd +++ b/oscillators/saw~-help.pd @@ -1,11 +1,11 @@ -#N canvas 228 478 660 293 10; +#N canvas 340 204 450 293 10; #X obj 42 137 saw~; #X obj 43 110 sig~ 333; #X obj 43 162 *~ 0.3; #X obj 43 194 dac~; #X floatatom 43 63 5 0 0 0 - - -; #X obj 43 86 mtof; -#X text 159 19 saw~ is a band-limited sawtooth oscillator.; +#X text 30 17 saw~ is a band-limited sawtooth oscillator.; #X connect 0 0 2 0; #X connect 1 0 0 0; #X connect 2 0 3 0; diff --git a/oscillators/saw~.pd b/oscillators/saw~.pd index 473652a..437ba9a 100644 --- a/oscillators/saw~.pd +++ b/oscillators/saw~.pd @@ -1,27 +1,34 @@ #N canvas 228 478 660 293 10; -#X obj 31 66 -~ 0.5; -#X obj 76 96 *~ 2; -#X obj 32 181 -~; -#X obj 32 117 wrap~; -#X obj 76 156 *~ 0.5; -#X obj 33 209 -~ 0.5; -#X obj 445 88 /~; -#X obj 444 63 sig~ 22050; -#X obj 31 19 inlet~; -#X obj 33 233 outlet~; -#X obj 76 118 expr~ sin($v1*$v2) * (1/(0.00000001 + abs($v1)*$v2) - -1/(0.00000001 + $v2)); -#X obj 32 45 phasor~ \$1; +#X obj 21 -73 phasor~; +#X obj 22 -50 -~ 0.5; +#X obj 22 -25 *~ 2; +#X obj 113 28 wrap~; +#X obj 114 54 *~ 2; +#X obj 114 79 -~ 1; +#X obj 208 76 >~ 0; +#X obj 317 18 /~; +#X obj 316 -7 sig~ 22050; +#X obj 299 41 *~; +#X obj 300 63 abs~; +#X obj 299 85 +~ 1.8955; +#X obj 23 106 expr~ -0.5+($v1/-2)+$v3+$v2*sin($v4)/$v4; +#X obj 22 -100 inlet~; +#X obj 23 132 outlet~; #X connect 0 0 1 0; -#X connect 0 0 3 0; -#X connect 1 0 10 0; -#X connect 2 0 5 0; -#X connect 3 0 2 0; -#X connect 4 0 2 0; -#X connect 5 0 9 0; -#X connect 6 0 10 1; -#X connect 7 0 6 0; -#X connect 8 0 6 1; -#X connect 8 0 11 0; -#X connect 10 0 4 0; -#X connect 11 0 0 0; +#X connect 1 0 2 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 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 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 14 0; +#X connect 13 0 0 0; +#X connect 13 0 7 1; -- cgit v1.2.1