#N canvas 384 121 780 602 10; #X obj 257 361 +~; #X obj 132 89 phasor~; #X obj 132 112 *~ 1024; #X obj 257 160 tabread4~ \$0-cos; #X obj 131 350 tabread4~ \$0-sin; #X obj 132 421 /~; #X obj 132 132 +~ 1; #X obj 480 250 *~ 1024; #X obj 480 278 +~ 1; #X obj 410 311 tabread4~ \$0-1+a2; #X obj 544 310 tabread4~ \$0-norm; #X obj 133 444 *~; #X obj 380 258 *~ -2; #X obj 257 311 *~; #X obj 134 473 outlet~; #X obj 379 45 inlet~; #X obj 489 66 table \$0-1+a2 1027; #X obj 489 85 table \$0-norm 1027; #X obj 132 46 inlet~; #X text 133 503 out = sqrt[(1-a^2)(1+a^2)] * [sin(x) / (1+a^2 - 2a*cos(x))] ; #X obj 489 105 table \$0-cos 1027; #X obj 489 127 table \$0-sin 1027; #N canvas 0 0 702 442 init-tables 0; #X obj 125 75 until; #X obj 125 104 f 0; #X obj 153 105 + 1; #X msg 164 75 0; #X obj 125 53 t a b; #X obj 55 204 expr 1+$f1*$f1; #X obj 125 150 / 1024; #X obj 125 127 t a a; #X obj 55 234 tabwrite \$0-1+a2; #X obj 125 12 loadbang; #X obj 547 122 s \$0-cos; #X obj 509 175 s \$0-sin; #X msg 509 148 sinesum 1024 1; #X msg 547 97 cosinesum 1024 0 1; #X obj 509 67 loadbang; #X obj 188 236 tabwrite \$0-norm; #X msg 125 33 1027; #X obj 188 206 expr sqrt((1-$f1*$f1)/(1+$f1*$f1)); #X text 79 350 writes f(a) = 1+a^2 rsp. normalization into tables; #X connect 0 0 1 0; #X connect 1 0 2 0; #X connect 1 0 7 0; #X connect 2 0 1 1; #X connect 3 0 1 1; #X connect 4 0 0 0; #X connect 4 1 3 0; #X connect 5 0 8 0; #X connect 6 0 5 0; #X connect 6 0 17 0; #X connect 7 0 6 0; #X connect 7 1 8 1; #X connect 7 1 15 1; #X connect 9 0 16 0; #X connect 12 0 11 0; #X connect 13 0 10 0; #X connect 14 0 13 0; #X connect 14 0 12 0; #X connect 16 0 4 0; #X connect 17 0 15 0; #X restore 489 45 pd init-tables; #X text 131 550 cf: James A. Moorer: "Synthesis of Complex Audio Spectra" and Dodge/Jerse: "Computer Music" page 163f; #X connect 0 0 5 1; #X connect 1 0 2 0; #X connect 2 0 6 0; #X connect 3 0 13 0; #X connect 4 0 5 0; #X connect 5 0 11 0; #X connect 6 0 3 0; #X connect 6 0 4 0; #X connect 7 0 8 0; #X connect 8 0 9 0; #X connect 8 0 10 0; #X connect 9 0 0 1; #X connect 10 0 11 1; #X connect 11 0 14 0; #X connect 12 0 13 1; #X connect 13 0 0 0; #X connect 15 0 7 0; #X connect 15 0 12 0; #X connect 18 0 1 0;