#N canvas 0 89 1280 711 16; #N canvas 0 50 450 250 (subpatch) 0; #X array sinal102 88200 float 2; #X coords 0 1 882 -1 800 560 1 0 0; #X restore 425 96 graph; #X obj 239 399 bng 30 250 50 0 empty empty Toca_sinal 32 16 0 16 -262130 -4160 -4160; #X obj 239 472 dac~; #X obj 20 10 cnv 15 1200 40 empty empty empty 0 16 0 16 -262130 -4160 0; #X msg 21 420 \; pd dsp 1 \;, f 10; #X msg 20 517 \; sinal const 0; #X msg 21 94 440; #X msg 29 122 550; #X msg 37 150 660; #X floatatom 43 181 5 0 0 0 - - -; #X text 18 392 Liga DSP; #X text 107 98 clique em cada valor para acrescentar a componente senoidal com a frequência correspondente (ou digite uma qualquer na 4a caixa) , f 25; #X text 17 491 reinicializa sinal; #X text 34 18 Exemplo 102: sintetiza um sinal acumulando componentes senoidais (440=A4 \, 550=C#5 e 660=E5 são harmônicos de 110=A2), f 116; #X obj 239 439 tabplay~ sinal102; #X obj 21 218 ofelia f \; local s = ofArray("sinal102") \; local pi = math.pi \; local f = a \; local SR = 44100 \; for i = 1 \, s:getSize() do \; s:setAt(i \, 0.5*(s:getAt(i)+math.sin(2*pi*f*i/SR))) \; end \;; #X connect 1 0 14 0; #X connect 6 0 15 0; #X connect 7 0 15 0; #X connect 8 0 15 0; #X connect 9 0 15 0; #X connect 14 0 2 0; #X connect 14 0 2 1;