#N canvas 427 25 675 705 10;
#X declare -lib windowing;
#X obj 425 120 cnv 15 100 50 empty empty empty 20 12 0 14 -203175 -66577
0;
#X obj 478 190 hsl 128 15 0 1 0 0 nothing nothin-as-well ganho 50 6
0 12 -128992 -228856 -199988 0 0;
#N canvas 0 22 237 305 gain 0;
#X obj 79 176 *~;
#X obj 67 208 dac~;
#X obj 108 146 line~;
#X msg 108 120 \$1 10;
#X obj 108 94 pow 4;
#X obj 108 67 inlet;
#X obj 79 36 inlet~;
#X connect 0 0 1 0;
#X connect 0 0 1 1;
#X connect 2 0 0 1;
#X connect 3 0 2 0;
#X connect 4 0 3 0;
#X connect 5 0 4 0;
#X connect 6 0 0 0;
#X restore 436 216 pd gain;
#X floatatom 436 34 5 0 0 0 - - -;
#X obj 436 61 phasor~ 500;
#N canvas 605 28 539 448 Window 0;
#X obj 90 363 osc~;
#X obj 71 408 tabwrite~ \$0-hann;
#X msg 111 339 0.5;
#X obj 30 67 cnv 15 198 118 empty empty empty 20 12 0 14 -262130 -66577
0;
#N canvas 0 22 450 300 (subpatch) 0;
#X array \$0-hann 2048 float 0;
#X coords 0 1 2047 0 200 120 1;
#X restore 29 67 graph;
#X obj 90 306 expr sr_\$0 / w_size_\$0;
#X obj 71 280 t b b b;
#X obj 259 363 s \$0-set-block;
#X obj 259 307 pack float float;
#X msg 259 336 set \$1 \$2;
#X obj 259 195 t b f;
#X msg 289 222 resize \$1;
#X obj 289 244 s \$0-hann;
#X obj 259 281 v w_size_\$0;
#X obj 375 279 v overlap_\$0;
#X obj 356 250 t b b f;
#X obj 386 177 samplerate~;
#X obj 386 202 v sr_\$0;
#X obj 386 73 loadbang;
#X obj 386 94 \$0;
#X msg 386 115 bang \; pd dsp 1 \; \$1-w_size-set 2048 \; \$1-overlap-set
4;
#X obj 259 21 inlet;
#X obj 356 22 inlet;
#X obj 90 385 expr~ ($v1 * 0.5) + 0.5;
#X connect 0 0 23 0;
#X connect 2 0 0 1;
#X connect 5 0 0 0;
#X connect 6 0 1 0;
#X connect 6 1 5 0;
#X connect 6 2 2 0;
#X connect 8 0 9 0;
#X connect 9 0 7 0;
#X connect 10 0 13 0;
#X connect 10 0 6 0;
#X connect 10 1 11 0;
#X connect 10 1 13 0;
#X connect 11 0 12 0;
#X connect 13 0 8 0;
#X connect 14 0 8 1;
#X connect 15 0 13 0;
#X connect 15 1 14 0;
#X connect 15 2 14 0;
#X connect 16 0 17 0;
#X connect 18 0 19 0;
#X connect 19 0 20 0;
#X connect 20 0 16 0;
#X connect 21 0 10 0;
#X connect 22 0 15 0;
#X connect 23 0 1 0;
#X coords 0 0 1 1 120 60 0;
#X restore 124 145 pd Window;
#X obj 436 85 triangle~ 0.2;
#X obj 124 102 nbx 5 14 64 1e+37 0 0 empty \$0-w_size-set empty 0 -8
0 10 -261682 -1 -1 2048 256;
#X obj 175 122 nbx 2 14 1 1e+37 0 0 empty \$0-overlap-set empty 0 -8
0 10 -204786 -1 -1 4 256;
#X text 206 121 overlaps;
#X text 182 101 window-size;
#X text 37 44 Este patch permite a mudança do tamanho da janela e um
ajuste de overlaps. O controle é feito no subpatch abaixo:;
#N canvas 154 53 960 441 FFT 0;
#X obj 30 125 cnv 15 220 80 empty empty empty 20 12 0 14 -162285 -66577
0;
#X obj 57 137 rfft~;
#X obj 57 5 inlet~;
#X obj 56 403 outlet~;
#X text 110 4 <= Input: Domínio do Tempo;
#X text 113 402 <= Output: Domínio do Tempo;
#X obj 30 64 cnv 15 220 60 empty empty empty 20 12 0 14 -223969 -66577
0;
#X obj 72 75 tabreceive~ \$0-hann;
#X obj 57 174 rifft~;
#X obj 30 206 cnv 15 220 60 empty empty empty 20 12 0 14 -223969 -66577
0;
#X obj 72 217 tabreceive~ \$0-hann;
#X obj 25 279 cnv 15 350 100 empty empty empty 20 12 0 14 -203822 -66577
0;
#X obj 57 97 *~;
#X obj 57 240 *~;
#X text 96 96 janela hann;
#X text 92 240 janela hann;
#X text 104 136 FFT;
#X obj 690 90 tabreceive~ \$0-hann;
#X obj 690 186 avg~;
#X floatatom 690 208 8 0 0 0 - - -;
#X obj 647 163 bang~;
#X obj 690 116 *~ 1;
#X obj 705 139 tabreceive~ \$0-hann;
#X obj 690 163 *~;
#X obj 717 293 tabreceive~ \$0-hann;
#X obj 705 343 avg~;
#X floatatom 705 365 8 0 0 0 - - -;
#X obj 705 267 bang~;
#X text 108 175 Transf. inversa;
#X obj 274 64 cnv 15 100 57 empty empty empty 20 12 0 14 -203822 -66577
0;
#X obj 281 95 block~;
#X obj 281 73 r \$0-set-block;
#X text 639 235 ou simplesmente a média do quadrado:;
#X text 384 83 bloco/overlaps;
#X text 564 64 O número 0.375 é o valor da média de duas multiplicações
da janela Hann;
#X obj 56 322 expr~ $v1 / (w_size_\$0 * overlap_\$0 * 0.375);
#X obj 717 317 expr~ pow($v1 \, 2);
#X text 271 140 Multiplicar duas vezes pela janela-Hann requer uma
normalização por 3/8 ou 0.375 \, que é o valor de uma média da janela-Hann.
Veja o cálculo à direita ====>;
#X text 271 198 Dividimos assim pelo tamanho da janela vezes o número
de overlaps e o fator da média. No caso de 4 overlaps \, como no exemplo
anterior: 3/8 * 4 = 3/2.;
#X connect 1 0 8 0;
#X connect 1 1 8 1;
#X connect 2 0 12 0;
#X connect 7 0 12 1;
#X connect 8 0 13 0;
#X connect 10 0 13 1;
#X connect 12 0 1 0;
#X connect 13 0 35 0;
#X connect 17 0 21 0;
#X connect 18 0 19 0;
#X connect 20 0 18 0;
#X connect 21 0 23 0;
#X connect 22 0 23 1;
#X connect 23 0 18 0;
#X connect 24 0 36 0;
#X connect 25 0 26 0;
#X connect 27 0 25 0;
#X connect 31 0 30 0;
#X connect 35 0 3 0;
#X connect 36 0 25 0;
#X restore 436 130 pd FFT \; normalização;
#X text 46 187 O subpatch à direita explica melhor sobre o fator de
normalização da FFT.;
#X text 355 138 clique ==>;
#X obj 199 375 import windowing;
#X obj 157 419 hanning~;
#X obj 270 419 bartlett~;
#X obj 157 440 hamming~;
#X obj 334 419 blackman~;
#X obj 218 440 connes~;
#X obj 270 440 cosine~;
#X obj 400 419 kaiser~;
#X obj 334 440 lanczos~;
#X obj 218 419 welch~;
#X obj 400 440 gaussian~;
#X text 19 252 ============================================================
;
#N canvas 110 22 592 597 Hamming 0;
#X text 143 51 1;
#X text 142 166 0;
#X obj 155 429 osc~;
#X obj 155 351 samplerate~;
#X msg 222 398 0.5;
#X obj 155 400 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
-262130 -1 -1 21.5332 256;
#X obj 147 316 trigger bang bang bang;
#X obj 147 295 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262130 -1
-1;
#X obj 158 59 cnv 15 198 118 empty empty empty 20 12 0 14 -262130 -66577
0;
#N canvas 0 22 450 300 (subpatch) 0;
#X array \$0-hamming 2048 float 0;
#X coords 0 1 2047 0 200 120 1;
#X restore 157 59 graph;
#X obj 147 269 loadbang;
#X obj 155 375 / 2048;
#X obj 155 470 *~ 0.46;
#X obj 155 493 +~ 0.54;
#X text 354 301 formula:;
#X obj 147 532 tabwrite~ \$0-hamming;
#X text 225 257 Parecida com a janela hann \, possui apenas um ajuste
um pouco diferente de DC-Offset;
#X text 32 374 tamanho da janela;
#X text 354 320 (cos(x) * 0.46) + 0.54;
#X connect 2 0 12 0;
#X connect 3 0 11 0;
#X connect 4 0 2 1;
#X connect 5 0 2 0;
#X connect 6 0 15 0;
#X connect 6 1 3 0;
#X connect 6 2 4 0;
#X connect 7 0 6 0;
#X connect 10 0 7 0;
#X connect 11 0 5 0;
#X connect 12 0 13 0;
#X connect 13 0 15 0;
#X restore 158 582 pd Hamming;
#N canvas 131 45 447 581 Cosine 0;
#X text 84 31 1;
#X text 83 146 0;
#X obj 154 342 samplerate~;
#X obj 154 391 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
-262130 -1 -1 21.5332 256;
#X obj 146 307 trigger bang bang bang;
#X obj 146 286 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262130 -1
-1;
#X obj 99 39 cnv 15 198 118 empty empty empty 20 12 0 14 -262130 -66577
0;
#N canvas 0 22 450 300 (subpatch) 0;
#X array \$0-cosine 2048 float 0;
#X coords 0 1 2047 0 200 120 1;
#X restore 98 39 graph;
#X obj 146 260 loadbang;
#X obj 154 366 / 2048;
#X obj 154 420 phasor~;
#X obj 146 500 tabwrite~ \$0-cosine;
#X msg 221 386 0;
#X text 37 363 tamanho da janela;
#X obj 154 444 /~ 2;
#X obj 154 471 sin~;
#X text 25 202 A janela Cosseno é a metade do ciclo de uma onda senoidal.
;
#X connect 2 0 9 0;
#X connect 3 0 10 0;
#X connect 4 0 11 0;
#X connect 4 1 2 0;
#X connect 4 2 12 0;
#X connect 5 0 4 0;
#X connect 8 0 5 0;
#X connect 9 0 3 0;
#X connect 10 0 14 0;
#X connect 12 0 10 1;
#X connect 14 0 15 0;
#X connect 15 0 11 0;
#X restore 312 582 pd Cosine;
#N canvas 195 35 612 504 Welch 0;
#X text 34 27 1;
#X text 33 142 0;
#X text 50 158 0;
#X obj 49 35 cnv 15 198 118 empty empty empty 20 12 0 14 -262130 -66577
0;
#N canvas 0 22 450 300 (subpatch) 0;
#X array \$0-welch 2048 float 0;
#X coords 0 1 2047 0 200 120 1;
#X restore 48 35 graph;
#X text 239 159 2048;
#X text 179 252 i - N/2;
#X text 190 277 N/2;
#X text 178 259 _______;
#X text 229 238 2;
#X text 79 263 welch (i) = 1 -;
#X obj 310 400 expr 1 - $f1;
#X obj 310 370 expr pow($f1 \, 2);
#X obj 310 433 tabwrite \$0-welch;
#X obj 403 292 / 2;
#X msg 376 187 2048;
#X obj 376 164 loadbang;
#X obj 295 255 Uzi;
#X obj 310 298 t f f;
#X obj 310 277 - 1;
#X text 113 302 onde 0 <= i < N;
#X text 416 187 tamanho da janela (N);
#X text 148 373 1 - (X/A);
#X text 203 367 2;
#X text 108 350 simplificando:;
#X obj 310 321 expr ($f1 - $f2);
#X obj 310 346 /;
#X text 60 326 -----------------------------------;
#X text 34 216 Fórmula para uma janela de tamanho N:;
#X text 218 237 _;
#X text 221 245 |;
#X text 221 253 |;
#X text 221 260 |;
#X text 221 268 |;
#X text 221 275 |;
#X text 213 237 _;
#X text 221 283 |;
#X text 218 282 _;
#X text 213 282 _;
#X text 172 245 |;
#X text 172 253 |;
#X text 172 260 |;
#X text 172 268 |;
#X text 172 275 |;
#X text 174 237 _;
#X text 172 283 |;
#X text 174 282 _;
#X text 179 237 _;
#X text 179 282 _;
#X text 156 397 X = i - N/2;
#X text 165 418 A = N/2;
#X text 119 410 onde:;
#X text 417 322 X;
#X text 447 364 2;
#X text 388 401 1 - (X/A);
#X text 443 395 2;
#X text 416 370 (X/A);
#X text 431 290 A;
#X text 335 346 X/A;
#X obj 376 212 t f f;
#X connect 11 0 13 0;
#X connect 12 0 11 0;
#X connect 14 0 25 1;
#X connect 14 0 26 1;
#X connect 15 0 59 0;
#X connect 16 0 15 0;
#X connect 17 2 19 0;
#X connect 18 0 25 0;
#X connect 18 1 13 1;
#X connect 19 0 18 0;
#X connect 25 0 26 0;
#X connect 26 0 12 0;
#X connect 59 0 17 0;
#X connect 59 1 14 0;
#X restore 158 604 pd Welch;
#N canvas 121 22 722 599 Barlett 0;
#X text 43 43 1;
#X text 42 158 0;
#X obj 58 51 cnv 15 198 118 empty empty empty 20 12 0 14 -262130 -66577
0;
#N canvas 0 22 450 300 (subpatch) 0;
#X array \$0-barlett 2048 float 0;
#X coords 0 1 2047 0 200 120 1;
#X restore 57 51 graph;
#X obj 97 481 expr 1 - $f1;
#X obj 97 373 t f f;
#X obj 82 280 bng 15 250 50 0 empty empty empty 17 7 0 10 -262130 -1
-1;
#X obj 208 370 / 2;
#X msg 208 292 2048;
#X obj 97 445 /;
#X obj 97 412 expr abs($f1 - $f2);
#X obj 97 520 tabwrite \$0-barlett;
#X obj 208 264 loadbang;
#X obj 82 321 Uzi;
#X obj 97 345 - 1;
#X obj 438 226 phasor~;
#X obj 427 294 tabwrite~ \$0-barlett;
#X obj 438 151 samplerate~;
#X obj 438 200 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
-262130 -1 -1 21.5332 256;
#X obj 438 175 / 2048;
#X msg 499 199 0;
#X obj 438 249 expr~ min($v1 \, ($v1 * -1) + 1) * 2;
#X obj 419 123 t b b b;
#X text 327 406 1 - (X/A);
#X text 274 383 Outra maneira é adotar uma fórmula parecida com a da
janela welch:;
#X obj 419 97 loadbang;
#X text 246 293 tamanho da janela;
#X text 492 173 tamanho da janela;
#X text 318 50 Essa é uma janela triangular \, que pode ser gerada
com o [triangle~] ou \, como já demonstrado anteriormente \, no patch
abaixo.;
#X connect 4 0 11 0;
#X connect 5 0 10 0;
#X connect 5 1 11 1;
#X connect 6 0 13 0;
#X connect 7 0 9 1;
#X connect 7 0 10 1;
#X connect 8 0 7 0;
#X connect 8 0 13 1;
#X connect 9 0 4 0;
#X connect 10 0 9 0;
#X connect 12 0 8 0;
#X connect 13 2 14 0;
#X connect 14 0 5 0;
#X connect 15 0 21 0;
#X connect 17 0 19 0;
#X connect 18 0 15 0;
#X connect 19 0 18 0;
#X connect 20 0 15 1;
#X connect 21 0 16 0;
#X connect 22 0 16 0;
#X connect 22 1 17 0;
#X connect 22 2 20 0;
#X connect 25 0 22 0;
#X restore 233 604 pd Barlett;
#N canvas 126 22 595 529 Connes 0;
#X text 36 31 1;
#X text 35 146 0;
#X obj 51 39 cnv 15 198 118 empty empty empty 20 12 0 14 -262130 -66577
0;
#N canvas 0 22 450 300 (subpatch) 0;
#X array \$0-connes 2048 float 0;
#X coords 0 1 2047 0 200 120 1;
#X restore 50 39 graph;
#X obj 80 431 expr 1 - $f1;
#X obj 80 401 expr pow($f1 \, 2);
#X obj 65 261 bng 15 250 50 0 empty empty empty 17 7 0 10 -262130 -1
-1;
#X obj 173 323 / 2;
#X msg 173 262 2048;
#X obj 146 209 loadbang;
#X obj 65 286 Uzi;
#X obj 80 329 t f f;
#X obj 80 308 - 1;
#X text 213 262 tamanho da janela (N);
#X obj 80 352 expr ($f1 - $f2);
#X obj 80 377 /;
#X text 105 377 X/A;
#X obj 80 474 tabwrite \$0-connes;
#X obj 80 453 expr pow($f1 \, 2);
#X text 212 374 A janela de Connes é uma janela Welch elevada ao quadrado
;
#X obj 146 236 t b b;
#X connect 4 0 18 0;
#X connect 5 0 4 0;
#X connect 6 0 10 0;
#X connect 7 0 14 1;
#X connect 7 0 15 1;
#X connect 8 0 7 0;
#X connect 8 0 10 1;
#X connect 9 0 20 0;
#X connect 10 2 12 0;
#X connect 11 0 14 0;
#X connect 11 1 17 1;
#X connect 12 0 11 0;
#X connect 14 0 15 0;
#X connect 15 0 5 0;
#X connect 18 0 17 0;
#X connect 20 0 6 0;
#X connect 20 1 8 0;
#X restore 233 582 pd Connes;
#N canvas 102 33 566 407 Blackman 0;
#X text 44 50 1;
#X text 43 165 0;
#X obj 370 103 samplerate~;
#X obj 370 152 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
-262130 -1 -1 21.5332 256;
#X obj 306 68 trigger bang bang bang;
#X obj 306 47 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262130 -1
-1;
#X obj 59 58 cnv 15 198 118 empty empty empty 20 12 0 14 -262130 -66577
0;
#N canvas 0 22 450 300 (subpatch) 0;
#X array \$0-blackman 2048 float 0;
#X coords 0 1 2047 0 200 120 1;
#X restore 58 58 graph;
#X obj 306 21 loadbang;
#X obj 352 352 tabwrite~ \$0-blackman;
#X obj 370 181 phasor~;
#X msg 454 133 0;
#X obj 370 216 cos~;
#X obj 370 240 *~ 0.5;
#X obj 484 239 *~ 2;
#X obj 484 263 cos~;
#X obj 484 286 *~ 0.08;
#X obj 429 307 +~;
#X text 66 252 Fórmula da Janela Blackman:;
#X obj 370 263 expr~ 0.42 - $v1;
#X obj 370 127 / 2048;
#X text 29 285 (0.42 - (cos(x) * 0.5)) + (cos(2x) * 0.08);
#X connect 2 0 20 0;
#X connect 3 0 10 0;
#X connect 4 0 9 0;
#X connect 4 1 2 0;
#X connect 4 2 11 0;
#X connect 5 0 4 0;
#X connect 8 0 5 0;
#X connect 10 0 12 0;
#X connect 10 0 14 0;
#X connect 11 0 10 1;
#X connect 12 0 13 0;
#X connect 13 0 19 0;
#X connect 14 0 15 0;
#X connect 15 0 16 0;
#X connect 16 0 17 1;
#X connect 17 0 9 0;
#X connect 19 0 17 0;
#X connect 20 0 3 0;
#X restore 307 604 pd Blackman;
#N canvas 216 22 611 558 Lanczos 0;
#X text 43 36 1;
#X text 42 151 0;
#X obj 67 307 samplerate~;
#X obj 67 356 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
-262130 -1 -1 21.5332 256;
#X obj 56 272 trigger bang bang bang;
#X obj 56 251 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262130 -1
-1;
#X obj 58 44 cnv 15 198 118 empty empty empty 20 12 0 14 -262130 -66577
0;
#N canvas 0 22 450 300 (subpatch) 0;
#X array \$0-lanczos 2048 float 0;
#X coords 0 1 2047 0 200 120 1;
#X restore 57 43 graph;
#X obj 56 225 loadbang;
#X obj 67 331 / 2048;
#X obj 67 385 phasor~;
#X obj 56 516 tabwrite~ \$0-lanczos;
#X msg 134 351 0;
#X text 201 225 Essa janela é uma função chamada sync \, ou melhor
\, uma função sync normalizada.;
#X obj 67 416 expr~ ($v1 - 0.5) * 2;
#X text 202 415 -1 a 1;
#X text 290 262 A fórmula é: sin(x)/(x);
#X text 99 485 sin(x)/(x);
#X text 283 283 onde x vai de -pi até pi;
#X text 264 303 lembrando que: 4 atan (1) = pi;
#X obj 67 437 expr~ $v1 * pi;
#X obj 316 363 expr 4 * atan (1);
#X obj 316 386 v pi;
#X obj 316 339 loadbang;
#X obj 67 484 /~;
#X text 161 436 -pi a pi;
#X obj 67 462 expr~ sin($v1);
#X connect 2 0 9 0;
#X connect 3 0 10 0;
#X connect 4 0 11 0;
#X connect 4 1 2 0;
#X connect 4 2 12 0;
#X connect 5 0 4 0;
#X connect 8 0 5 0;
#X connect 9 0 3 0;
#X connect 10 0 14 0;
#X connect 12 0 10 1;
#X connect 14 0 20 0;
#X connect 20 0 24 1;
#X connect 20 0 26 0;
#X connect 21 0 22 0;
#X connect 23 0 21 0;
#X connect 24 0 11 0;
#X connect 26 0 24 0;
#X restore 393 582 pd Lanczos;
#N canvas 199 89 588 597 Gaussian 0;
#X text 71 29 1;
#X text 70 144 0;
#X obj 75 307 samplerate~;
#X obj 75 356 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
-262130 -1 -1 21.5332 256;
#X obj 67 272 trigger bang bang bang;
#X obj 67 251 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262130 -1
-1;
#X obj 86 37 cnv 15 198 118 empty empty empty 20 12 0 14 -262130 -66577
0;
#N canvas 0 22 450 300 (subpatch) 0;
#X array \$0-gauss 2048 float 0;
#X coords 0 1 2047 0 200 120 1;
#X restore 85 36 graph;
#X obj 67 225 loadbang;
#X obj 75 331 / 2048;
#X obj 75 385 phasor~;
#X msg 137 353 0;
#X obj 75 468 expr~ exp(pow ($v1 \, 2) * -0.5);
#X obj 75 409 -~ 0.5;
#X obj 53 517 tabwrite~ \$0-gauss;
#X obj 208 222 hsl 128 15 1 20 0 0 empty empty empty -2 -8 0 10 -262130
-1 -1 0 1;
#X obj 205 248 trigger bang float;
#X text 113 438 -x/2 a x/2;
#X text 345 221 X;
#X text 133 408 -1/2 a 1/2;
#X text 265 376 A Gaussiana depende de um parâmetro X;
#X text 269 397 que define a espessura da curva de;
#X text 278 419 acordo com a fórmula do [expr];
#X obj 75 440 *~ 6;
#X floatatom 310 275 5 0 0 0 - - -;
#X connect 2 0 9 0;
#X connect 3 0 10 0;
#X connect 4 0 14 0;
#X connect 4 1 2 0;
#X connect 4 2 11 0;
#X connect 5 0 4 0;
#X connect 8 0 5 0;
#X connect 9 0 3 0;
#X connect 10 0 13 0;
#X connect 11 0 10 1;
#X connect 12 0 14 0;
#X connect 13 0 23 0;
#X connect 15 0 16 0;
#X connect 16 0 4 0;
#X connect 16 1 23 1;
#X connect 16 1 24 0;
#X connect 23 0 12 0;
#X restore 390 604 pd Gaussian;
#X text 136 317 O Pd-Extended traz alguns objetos que já geram diferentes
tipos de janela \, são eles:;
#X text 308 367 é preciso importar;
#X text 311 381 essa biblioteca;
#X text 134 534 Já vimos como gerar uma Hanning em um subpatch. Abaixo
temos a implementação dessas outras janelas \, menos a Kaiser.;
#X text 48 281 OUTROS TIPOS DE JANELAS:;
#X text 379 252 ==========================================;
#X text 126 516 ============================================================
;
#X text 148 477 Para calcular o fator de normalização de cada tipo
de janela \, basta extrair a média do seu quadrado.;
#X text 143 648 E agora pense que essas opções todas também podem ser
aplicadas em envelopes quaisquer.;
#X connect 1 0 2 1;
#X connect 3 0 4 0;
#X connect 4 0 6 0;
#X connect 6 0 12 0;
#X connect 7 0 5 0;
#X connect 8 0 5 1;
#X connect 12 0 2 0;
