#N canvas 122 22 963 651 10;
#X obj 169 92 tgl 15 0 empty metro empty 17 7 0 10 -261682 -1 -1 1
1;
#X obj 169 116 metro 1000;
#X obj 116 62 noise~;
#X obj 116 129 *~;
#X text 165 61 Ruído Branco;
#X obj 65 545 output~;
#X obj 151 423 *~;
#X obj 169 373 hsl 128 15 0 0.99 0 0 empty feedback empty -2 -6 0 8
-204800 -1 -1 11545 1;
#X obj 136 498 delwrite~ feedback 3000;
#X obj 116 459 +~;
#X floatatom 166 397 0 0 0 0 - - -;
#X obj 151 318 vd~ feedback 3000;
#X obj 151 286 line~;
#X msg 151 259 \$1 300;
#X floatatom 151 232 5 0 0 0 - - -;
#X obj 154 207 hsl 128 15 1.45 500 0 0 empty tempo empty -2 -6 0 8
-183917 -1 -1 7605 1;
#X obj 169 166 vline~;
#X text 529 158 Ao multiplicar por 0.9 \, por exemplo \, cada repetição
terá 90% da amplitude da anterior.;
#X text 167 352 feedback (ajuste de ganho);
#X text 196 232 tempo do delay;
#X text 528 191 Perceba que um valor bem curto de delay acaba filtrando
e mudando a qualidade sonora da entrada. Veremos melhor a explicação
e teoria por trás disso depois. Aliás \, veremos como os filtros podem
ser obtidos por linhas de delay.;
#X text 530 254 No caso de um feedback \, o sinal será realimentado
com um atraso mínimo (nunca será 0 de fato). Isso porque o processamente
de áudio sempre se dá em blocos \, e o mínimo então será sempre um
bloco de processamento.;
#X text 531 322 No Pd \, o padrão é do tamanho do bloco é de 64 amostras.
O objeto [block~] muda o tamanho do bloco para a janela (ou subjanela)
em que ele se encontra \, mas o problema é que não pode haver nem entradas
nem saídas de áudio (objetos [adc~] e [dac~]) para blocos diferentes
de 64!;
#X text 531 400 Sendo assim \, precisamos mudar o tamanho do bloco
em um subpatch como abaixo. Abra e veja como ali o delay mínimo pode
ser de apenas uma amostra.;
#N canvas 128 22 751 625 feedback 0;
#X obj 473 228 block~ 1;
#X text 368 270 Neste subpatch \, o bloco é de apenas uma amostra!
;
#X obj 115 542 outlet~;
#X obj 188 66 tgl 15 0 empty metro empty 17 7 0 10 -261682 -1 -1 1
1;
#X obj 188 90 metro 1000;
#X obj 115 76 noise~;
#X obj 115 113 *~;
#X obj 160 423 *~;
#X obj 178 373 hsl 128 15 0 0.99 0 0 empty feedback empty -2 -6 0 8
-204800 -1 -1 11545 1;
#X obj 115 459 +~;
#X floatatom 175 397 0 0 0 0 - - -;
#X obj 160 286 line~;
#X msg 160 259 \$1 300;
#X floatatom 160 232 5 0 0 0 - - -;
#X obj 163 207 hsl 128 15 0.1 500 1 0 empty tempo empty -2 -6 0 8 -183917
-1 -1 11938 1;
#X obj 188 140 vline~;
#X text 213 354 feedback;
#X text 212 185 tempo;
#X obj 145 498 delwrite~ feedback2 3000;
#X obj 160 318 vd~ feedback2 3000;
#X msg 188 113 1 20 \, 0 50 50;
#X text 345 305 Logo \, o atraso mínimo do feedback é de também uma
amostra;
#X connect 3 0 4 0;
#X connect 4 0 20 0;
#X connect 5 0 6 0;
#X connect 6 0 9 0;
#X connect 7 0 9 1;
#X connect 8 0 10 0;
#X connect 9 0 2 0;
#X connect 9 0 18 0;
#X connect 10 0 7 1;
#X connect 11 0 19 0;
#X connect 12 0 11 0;
#X connect 13 0 12 0;
#X connect 14 0 13 0;
#X connect 15 0 6 1;
#X connect 19 0 7 0;
#X connect 20 0 15 0;
#X restore 666 481 pd feedback;
#X obj 653 519 output~;
#X obj 384 447 loadbang;
#X msg 384 474 \; pd dsp 1 \; tempo 300 \; feedback 0.9 \; metro 1
;
#X text 258 139 Envelope AR;
#X msg 169 139 1 20 \, 0 50 50;
#X text 529 114 É importante que haja um ajuste de ganho para que ocorra
um decaimento do feedback \, pois se for multiplicado por 1 ou mais
\, o feedback será infinito.;
#X text 530 52 Neste exemplo temos um delay em feedback. Ou seja \,
a linha de delay é somada novamente à entrada do buffer. O exemplo
anterior \, em contrapartida \, pode ser chamado de "feedforward".
;
#X connect 0 0 1 0;
#X connect 1 0 29 0;
#X connect 2 0 3 0;
#X connect 3 0 9 0;
#X connect 6 0 9 1;
#X connect 7 0 10 0;
#X connect 9 0 8 0;
#X connect 9 0 5 0;
#X connect 9 0 5 1;
#X connect 10 0 6 1;
#X connect 11 0 6 0;
#X connect 12 0 11 0;
#X connect 13 0 12 0;
#X connect 14 0 13 0;
#X connect 15 0 14 0;
#X connect 16 0 3 1;
#X connect 24 0 25 0;
#X connect 24 0 25 1;
#X connect 26 0 27 0;
#X connect 29 0 16 0;
