#N canvas 373 53 818 690 12;
#X declare -stdpath ./;
#X obj 373 374 line~;
#X obj 106 433 cos~;
#N canvas 0 0 450 300 (subpatch) 0;
#X array pulse-output 882 float 0;
#X coords 0 1 882 -1 200 130 1;
#X restore 559 449 graph;
#X obj 373 351 pack 0 50;
#X floatatom 373 305 6 0 200 0 - - - 0;
#X obj 158 332 -~ 0.5;
#X obj 106 381 *~;
#X obj 373 328 / 10;
#X obj 106 406 clip~ -0.5 0.5;
#X text 371 286 bandwidth;
#X obj 373 397 +~ 1;
#X obj 106 456 +~ 1;
#X obj 247 462 cos~;
#X obj 106 518 *~;
#X floatatom 265 303 4 0 100 0 - - - 0;
#X obj 265 327 / 10;
#X text 588 586 --- 0.02 seconds ---;
#X obj 247 436 *~;
#N canvas 462 254 698 291 graph 0;
#X obj 68 57 inlet~;
#X obj 493 57 inlet;
#X obj 68 164 tabwrite~ pulse-output;
#X obj 246 57 inlet~;
#X obj 378 57 inlet~;
#X obj 246 164 tabwrite~ window;
#X obj 378 164 tabwrite~ carrier;
#X obj 553 57 inlet;
#X obj 553 97 metro 250;
#X connect 0 0 2 0;
#X connect 1 0 2 0;
#X connect 1 0 5 0;
#X connect 1 0 6 0;
#X connect 3 0 5 0;
#X connect 4 0 6 0;
#X connect 7 0 8 0;
#X connect 8 0 6 0;
#X connect 8 0 5 0;
#X connect 8 0 2 0;
#X restore 221 564 pd graph;
#X obj 265 373 line~;
#X obj 265 350 pack 0 50;
#N canvas 0 0 450 300 (subpatch) 0;
#X array carrier 882 float 0;
#X coords 0 1 881 -1 200 140 1;
#X restore 559 271 graph;
#N canvas 0 0 450 300 (subpatch) 0;
#X array window 882 float 0;
#X coords 0 1 881 -1 200 140 1;
#X restore 560 98 graph;
#X floatatom 158 281 4 0 0 0 - \$0-fundamental - 0;
#X text 54 470 window;
#X text 282 440 magnified phase;
#X text 35 51 The simpler of two techniques for making slidable center frequencies is to synthesize enveloped sinusoidal wave packets. The packets should repeat at the fundamental frequency \, but the frequency of the packet itself controls the center frequency of the formant. The length of the packet varies inversely with bandwidth., f 68;
#X obj 106 606 output~;
#X obj 260 538 bng 19 250 50 0 empty empty empty 0 -6 0 8 #dfdfdf #000000 #000000;
#X obj 106 479 *~ 0.5;
#X text 763 224 -1;
#X text 765 94 1;
#X text 763 397 -1;
#X text 767 267 1;
#X text 764 568 -1;
#X text 767 443 1;
#X text 54 441 raised;
#X text 54 456 cosine;
#X text 65 276 fundamental frequency, f 11;
#X text 307 476 desired center frequency but its phase is reset each fundamental period., f 24;
#X text 253 253 center freq. (in tenths of fundamental), f 13;
#X text 286 463 <-- this cosine goes at the;
#X text 36 139 In the patch below \, the [clip~] followed by [cos~] and [+~ 1] is the enveloping ("windowing") function \, which appears in the top graph. The carrier \, on the other hand \, is a broken sinusoid made by amplifying the [phasor~] (the [*~] controlled by "center freq.") and taking the [cos~] of the result. The "breaks" in the sinusoid only occur when the enveloping signal is zero., f 68;
#X obj 61 10 cnv 5 5 25 empty empty Windowed\ Packets 15 13 0 16 #dfdfdf #202020 0;
#X text 282 536 <-- graph once;
#X obj 291 565 tgl 19 0 empty empty empty 0 -10 0 12 #dfdfdf #000000 #000000 0 1;
#X text 313 565 <-- graph repeatedly;
#X obj 158 307 phasor~ 220;
#N canvas 238 316 368 300 init 0;
#X obj 122 223 declare -stdpath ./;
#X obj 131 97 loadbang;
#X obj 131 166 s \$0-fundamental;
#X msg 131 134 220;
#X text 81 28 This subpatch initializes the patch and loads a value in the number box., f 29;
#X connect 1 0 3 0;
#X connect 3 0 2 0;
#X restore 256 626 pd init;
#X connect 0 0 10 0;
#X connect 1 0 11 0;
#X connect 3 0 0 0;
#X connect 4 0 7 0;
#X connect 5 0 6 0;
#X connect 5 0 17 0;
#X connect 6 0 8 0;
#X connect 7 0 3 0;
#X connect 8 0 1 0;
#X connect 10 0 6 1;
#X connect 11 0 29 0;
#X connect 12 0 13 1;
#X connect 12 0 18 2;
#X connect 13 0 18 0;
#X connect 13 0 27 0;
#X connect 14 0 15 0;
#X connect 15 0 20 0;
#X connect 17 0 12 0;
#X connect 19 0 17 1;
#X connect 20 0 19 0;
#X connect 23 0 47 0;
#X connect 28 0 18 3;
#X connect 29 0 13 0;
#X connect 29 0 18 1;
#X connect 45 0 18 4;
#X connect 47 0 5 0;
