#N canvas 124 151 1135 536 10;
#X obj 604 411 *~;
#X obj 592 435 dac~;
#X obj 619 373 vline~;
#X msg 619 328 0 50;
#X msg 526 69 69;
#X text 477 64 pitch;
#X text 666 121 velocity;
#X obj 526 121 mtof;
#X text 479 76 MIDI;
#X text 497 136 Hz;
#X obj 526 226 osc~;
#X floatatom 526 151 5 0 0 0 - - -;
#X floatatom 572 70 5 0 0 0 - - -;
#X floatatom 625 71 5 0 0 0 - - -;
#X text 660 70 ms;
#X text 712 31 velocity;
#X text 629 52 duração;
#X msg 675 338 \$1 50 \, \$2 100 50;
#X obj 675 257 t f f;
#X obj 675 312 pack;
#X obj 702 282 * 0.5;
#X obj 675 233 / 127;
#X obj 619 123 t f f;
#X obj 675 207 f;
#X obj 619 153 == 0;
#X obj 619 178 sel 1 0;
#X obj 575 32 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -228856
-1 -1 0 1;
#X obj 526 98 makenote 127 650;
#X obj 875 406 *~;
#X obj 815 328 osc~ 440;
#X obj 863 440 dac~;
#X obj 890 368 vline~;
#X msg 890 320 1 50 \, 0.5 100 50;
#X obj 911 234 tgl 30 0 empty empty empty 17 7 0 10 -228856 -1 -1 0
1;
#X obj 911 276 select 1 0;
#X msg 1011 320 0 50;
#X text 951 239 ON / OFF;
#X obj 911 113 bng 30 250 50 0 empty empty empty 17 7 0 10 -203904
-1 -1;
#X obj 953 186 delay 650;
#X text 69 343 Mantendo o mesmo exemplo anterior \, temos aqui um attack
de 50 ms \, um decay de 100 ms \, um sustain de 500 ms e um release
de 50 ms. Para comparação \, temos o patch do exemplo passado com esses
parâmetros.;
#X text 71 407 A diferença é que o exemplo deste patch permite outros
valores para velocidade e já ajusta o valor de amplitude do decay automaticamente
para a metade disso.;
#X text 65 45 O objeto [makenote] serve para emular um Note On/Off.
Na verdade ele agenda o Note Off com um atraso em ms. Logo \, podemos
usa-lo para programar um envelope.;
#X text 64 97 Ele também recebe o valor de "velocity" \, que é um termo
para amplitude em síntese. Isso porque a velocidade com que você aciona
uma tecla no seu controlador MIDI determina a amplitude. Como em tudo
no MIDI \, os valores vão de 0 a 127 - vamos considerar neste exemplo
então um velocity de 100 \, que dividiremos por 127 para obter o valor
correto de amplitude (mas nada impediria de usarmos valores já de amplitude
linear).;
#X text 66 211 Pensando ainda no contexto do MIDI \, o valor da nota
também será de 0 a 127 e convertido para frequência em Hertz. Mas também
poderíamos já dar esse valor e Hz.;
#X text 67 264 O [makenote] cospe o valor do pitch e velocity assim
que recebe um valor de pitch no inlet esquerdo. No tempo agendado \,
ele manda o Note Off que cosiste apenas em uma velocidade de 0 e o
mesmo valor de pitch \, como se dissesse que aquela nota está sendo
desligada.;
#X obj 520 29 bng 30 250 50 0 empty empty empty 17 7 0 10 -203904 -1
-1;
#X obj 975 386 loadbang;
#X msg 975 415 \; pd dsp 1;
#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 27 0;
#X connect 7 0 11 0;
#X connect 10 0 0 0;
#X connect 11 0 10 0;
#X connect 12 0 27 1;
#X connect 13 0 27 2;
#X connect 13 0 38 1;
#X connect 17 0 2 0;
#X connect 18 0 19 0;
#X connect 18 1 20 0;
#X connect 19 0 17 0;
#X connect 20 0 19 1;
#X connect 21 0 18 0;
#X connect 22 0 24 0;
#X connect 22 1 23 1;
#X connect 23 0 21 0;
#X connect 24 0 25 0;
#X connect 25 0 3 0;
#X connect 25 1 23 0;
#X connect 26 0 12 0;
#X connect 27 0 7 0;
#X connect 27 1 22 0;
#X connect 28 0 30 0;
#X connect 28 0 30 1;
#X connect 29 0 28 0;
#X connect 31 0 28 1;
#X connect 32 0 31 0;
#X connect 33 0 34 0;
#X connect 34 0 32 0;
#X connect 34 1 35 0;
#X connect 35 0 31 0;
#X connect 37 0 33 0;
#X connect 37 0 38 0;
#X connect 38 0 33 0;
#X connect 45 0 4 0;
#X connect 46 0 47 0;
