#N canvas 0 49 958 1029 10; #X obj 40 236 hsl 128 15 20 12500 1 0 freq-s freq-r Frequência -2 -8 0 10 -262144 -1 -1 0 1; #X floatatom 37 260 8 20 12500 1 Hz freq-r freq-s; #X floatatom 416 259 8 0 1 1 /1 vol-r vol-s; #X obj 419 236 hsl 128 15 0 1 0 0 vol-s vol-r Volume -2 -8 0 10 -262144 -1 -1 0 1; #N canvas 0 49 638 749 Processa_Entrada_do_Teclado 0; #X text 474 218 Frequencia; #X obj 65 152 key; #X text 63 132 Entrada do teclado; #X obj 65 267 split 97 122; #X text 69 249 Trata letras minusculas; #X obj 65 371 - 45; #X obj 65 413 mtof; #X text 72 352 Transforma "a" em A2 etc.; #X obj 375 346 sel 48; #X msg 375 368 58; #X obj 230 284 split 49 53; #X obj 312 301 split 54 57; #X text 226 265 Trata [1...5]; #X text 308 282 Trata [6...9]; #X text 379 327 Trata 0; #X obj 230 446 expr $f2*pow(2 \, ($f1-48)/12); #X text 63 42 Este patch converte as letras minusculas do teclado em frequencias \, comecando por a=A2 \, b=A#2 e assim por diante. Os numeros de 1 a 5 sao usados para incrementar a frequencia atual em k semitons \, enquanto os numeros 6 \, 7 \, 8 \, 9 \, 0 correspondem respectivamente a -5 \, -4 \, -3 \, -2 \, -1 semitons.; #X obj 312 408 expr $f2*pow(2 \, ($f1-59)/12); #X text 550 219 Variacao de frequencia; #X text 483 344 Trata +; #X obj 486 363 sel 43; #X obj 554 380 sel 45; #X text 551 361 Trata -; #X obj 501 408 +; #X obj 569 409 -; #X obj 486 450 f; #X obj 554 450 f; #X text 73 393 Converte para Hz; #X text 236 427 Sobe k=[1...5] semitons; #X text 315 389 Desce k=[-5...-1] semitons; #X text 583 449 e guarda resultado; #X text 596 409 Soma/subtrai variacao; #X obj 65 512 f; #X obj 65 232 spigot; #X obj 65 179 sel 27; #X obj 98 206 tgl 15 0 ligateclado ligateclado empty 17 7 0 10 -262144 -1 -1 0 1; #X text 114 178 Controle de liga/desliga funcionamento do teclado com a tecla ESC; #X obj 65 546 expr max(20 \, min($f1 \, 12500)); #X obj 477 239 r freq; #X obj 552 239 r delta; #X obj 65 583 s freq; #X floatatom 90 152 5 0 0 0 - - -; #X obj 631 381 sel 61; #X text 628 363 Trata = como +; #X connect 1 0 34 0; #X connect 1 0 41 0; #X connect 3 0 5 0; #X connect 3 1 10 0; #X connect 5 0 6 0; #X connect 6 0 32 0; #X connect 8 0 9 0; #X connect 8 1 20 0; #X connect 9 0 17 0; #X connect 10 0 15 0; #X connect 10 1 11 0; #X connect 11 0 17 0; #X connect 11 1 8 0; #X connect 15 0 32 0; #X connect 17 0 32 0; #X connect 20 0 25 0; #X connect 20 1 21 0; #X connect 21 0 26 0; #X connect 21 1 42 0; #X connect 23 0 25 1; #X connect 24 0 26 1; #X connect 25 0 32 0; #X connect 26 0 32 0; #X connect 32 0 37 0; #X connect 33 0 3 0; #X connect 34 0 35 0; #X connect 34 1 33 0; #X connect 35 0 33 1; #X connect 37 0 40 0; #X connect 38 0 15 1; #X connect 38 0 17 1; #X connect 38 0 23 0; #X connect 38 0 24 0; #X connect 39 0 24 1; #X connect 39 0 23 1; #X connect 42 0 25 0; #X restore 391 318 pd Processa_Entrada_do_Teclado; #X obj 225 236 hsl 128 15 0 1000 0 0 delta-s delta-r Variação_de_Frequência -2 -8 0 10 -262144 -1 -1 0 1; #X floatatom 222 260 8 0 0 1 Hz delta-r delta-s; #N canvas 0 0 450 300 (subpatch) 0; #X array frequencias 128 float 3; #A 0 8127.53 8610.82 9122.84 9665.32 10240 10849 11494.1 12177.5 12500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 21.1893 22.4492 23.7841 25.1984 26.6968 28.2843 29.9661 31.748 33.6359 35.636 37.755 40 42.3785 44.8985 47.5683 50.3969 53.3936 56.5686 59.9323 63.4961 67.2718 71.272 75.51 80.0001 84.7571 89.7971 95.1367 100.794 106.787 113.137 119.865 126.992 134.544 142.544 151.02 160 169.514 179.594 190.273 201.588 213.575 226.275 239.73 253.985 269.087 285.088 302.04 320.001 339.029 359.189 380.547 403.176 427.15 452.549 479.459 507.97 538.175 570.177 604.081 640.002 678.058 718.378 761.095 806.352 854.3 905.099 958.919 1015.94 1076.35 1140.35 1208.16 1280 1356.12 1436.76 1522.19 1612.7 1708.6 1810.2 1917.84 2031.88 2152.7 2280.71 2416.33 2560.01 2712.24 2873.51 3044.38 3225.41 3417.2 3620.4 3835.68 4063.76 4305.41 4561.42 4832.66 5120.02 5424.47 5747.03 6088.77 6450.82 6834.41 7240.8 7671.37 ; #X coords 0 12500 128 19 280 400 1 0 0; #X restore 75 312 graph; #N canvas 0 49 638 749 plota 0; #X obj 32 50 r freq; #X obj 59 137 tabwrite frequencias; #X obj 32 78 t b f; #X text 29 14 Escreve cada frequencia selecionada na interface no grafico frequencias \, de forma circular; #X obj 176 111 counter 127; #X connect 0 0 2 0; #X connect 2 0 4 0; #X connect 2 1 1 0; #X connect 4 0 1 1; #X restore 390 375 pd plota; #X text 33 36 Exemplo para manipulacao de frequencias e escalas; #X text 33 59 ESC: liga/desliga entrada pelo teclado; #X obj 38 190 tgl 15 0 ligateclado ligateclado Liga/desliga_teclado 17 7 0 10 -262144 -1 -1 0 1; #N canvas 0 49 638 749 controlagui 0; #X obj 30 132 s freq; #X obj 30 102 r freq-s; #X obj 30 162 r freq; #X obj 30 192 list prepend set; #X obj 30 222 list trim; #X obj 30 252 s freq-r; #X obj 147 192 list prepend set; #X obj 147 222 list trim; #X obj 259 192 list prepend set; #X obj 259 222 list trim; #X obj 147 102 r delta-s; #X obj 147 132 s delta; #X obj 147 162 r delta; #X obj 147 252 s delta-r; #X obj 259 102 r vol-s; #X obj 259 132 s vol; #X obj 259 162 r vol; #X obj 259 252 s vol-r; #X text 28 49 http://lists.puredata.info/pipermail/pd-list/2010-01/075713.html ; #X text 28 16 Sincroniza as interfaces slider/numberbox no patch principal \, conforme a receita sugerida em:; #X connect 1 0 0 0; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 5 0; #X connect 6 0 7 0; #X connect 7 0 13 0; #X connect 8 0 9 0; #X connect 9 0 17 0; #X connect 10 0 11 0; #X connect 12 0 6 0; #X connect 14 0 15 0; #X connect 16 0 8 0; #X restore 390 346 pd controlagui; #N canvas 0 49 638 749 toca 0; #X obj 35 100 osc~; #X obj 34 136 *~; #X text 59 135 Corrige amplitude da senoide; #X text 35 57 Gera senoide com frequencia informada; #X obj 35 62 f; #X obj 35 35 r freq; #X obj 78 106 r vol; #X obj 35 178 outlet~; #X connect 0 0 1 0; #X connect 1 0 7 0; #X connect 4 0 0 0; #X connect 5 0 4 0; #X connect 6 0 1 1; #X restore 390 408 pd toca; #X obj 390 440 output~; #X text 35 84 +/-: incrementa/decrementa a frequencia do oscilador pelo valor da variacao de frequencia; #X text 35 142 0 \, 9 \, ... \, 6: decrementa a frequencia em k=1 \, ... \, 5 semitons; #X text 35 120 1 \, 2 \, ... \, 5: incrementa a frequencia em k=1 \, ... \, 5 semitons; #X text 46 701 20Hz; #X text 29 304 12500Hz; #X text 243 712 tempo; #X text 34 671 1000Hz; #X text 35 637 2000Hz; #X text 35 542 5000Hz; #X text 35 445 8000Hz; #X connect 13 0 14 0;