#N canvas 175 22 934 634 10;
#N canvas 0 22 450 300 (subpatch) 0;
#X array output 441 float 1;
#A 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0;
#X coords 0 1 440 -1 202 142 1;
#X restore 622 416 graph;
#X obj 623 417 cnv 15 200 140 empty empty empty 20 12 0 14 -204800
-66577 0;
#X text 608 411 1;
#X text 607 530 -1;
#X obj 548 85 nbx 5 14 -1e+37 1e+37 0 0 bkjhgk hfjhgd empty 0 -8 0
10 -204786 -1 -1 0 256;
#X obj 548 324 *~;
#X obj 573 294 line~;
#X text 610 83 Hz;
#X text 625 293 [line~] suaviza a mudança de amplitude;
#X text 576 324 Multiplicamos entre 0 e 1 para ajustar o ganho!;
#X obj 548 372 dac~;
#X obj 478 374 prvu~;
#X obj 479 416 vu 15 120 empty empty -1 -8 0 10 -66577 -1 1 0;
#X obj 573 182 nbx 5 14 0 100 0 0 empty db empty 0 -8 0 10 -262130
-1 -1 0 256;
#X obj 573 205 dbtorms;
#X obj 576 152 hsl 128 15 0 100 0 0 empty db empty -2 -8 0 10 -262130
-1 -1 0 1;
#X text 606 478 0;
#X obj 168 492 nbx 5 14 0 100 0 0 empty empty empty 0 -8 0 10 -204800
-1 -1 0 256;
#X obj 139 543 dac~;
#X text 605 109 Oscilador (já dá valores entre -1 e 1);
#X obj 147 514 vol~;
#X obj 144 584 vols~;
#X text 189 583 versão estéreo;
#X obj 548 109 osc~ 440;
#N canvas 0 22 635 401 plotar 0;
#X obj 216 117 loadbang;
#X msg 238 143 \; pd dsp 1;
#X obj 216 186 metro 100;
#X obj 109 83 inlet~;
#X obj 189 226 tabwrite~ output;
#X connect 0 0 1 0;
#X connect 0 0 2 0;
#X connect 2 0 4 0;
#X connect 3 0 4 0;
#X restore 612 361 pd plotar;
#X obj 573 235 nbx 9 16 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 11
-220661 -1 -1 0 256;
#X text 679 236 Amplitude linear;
#X msg 573 266 \$1 10;
#X text 633 182 dB;
#X text 50 268 Outro detalhe é que temos que usar o [line~] para suavizar
essa mudança de ganho. Sem isso \, uma mudança de valores brusca acaba
gerando "clicks" \, ocasionados por saltos no alto falante. Veja o
patch à direita.;
#X text 37 331 ============================================================
;
#X text 40 358 O objeto [vol~] é uma abstração do pd-extended parecida
com este exemplo. Abra-o para ver exatamente como funciona. Em suma
\, ele é um multiplicador (ou seja \, uma ajuste de ganho) já com um
[line~] para suavizar o sinal. A entrada de ganho é em dB \, que também
pode ser dada via um argumento;
#X text 50 195 Assim sendo \, ajustar o ganho ou volume consiste apenas
em uma operação simples de multiplicação. Só que \, além disso \, precisamos
ainda de outros cuidados. O primeiro é que nossa percepção de intensidade
sonora não é linear \, por isso mesmo usamos a escala de dB.;
#X text 52 137 Se multiplicamos por mais de um \, estamos aumentando
o valor original. Mas cuidado para não passar do limite e "clipar"
\, como já vimos. No caso do [osc~] \, por exemplo \, isso acontecerá.
;
#X obj 146 464 noise~;
#X text 191 463 gerador de ruído branco;
#X text 52 38 Os valores de amplitude de um sinal digital variam entre
-1 e 1 \, como já mencionado algumas vezes. Inclusive \, o objeto [osc~]
(um oscilador) já fornece valores entre 1 e -1 \, portanto \, se os
multiplicamos por valores entre 0 a 1 \, temos uma variação de ganho
que vai do silêncio (que seria multiplicar por 0) até o valor original
do sinal (multiplicar por 1).;
#X text 715 151 (0 a 100);
#X text 226 492 dB;
#X connect 4 0 23 0;
#X connect 5 0 10 0;
#X connect 5 0 10 1;
#X connect 5 0 11 0;
#X connect 5 0 24 0;
#X connect 6 0 5 1;
#X connect 11 0 12 0;
#X connect 13 0 14 0;
#X connect 14 0 25 0;
#X connect 15 0 13 0;
#X connect 17 0 20 1;
#X connect 20 0 18 0;
#X connect 20 0 18 1;
#X connect 23 0 5 0;
#X connect 25 0 27 0;
#X connect 27 0 6 0;
#X connect 34 0 20 0;
