#N canvas 57 23 873 628 10;
#X obj 395 493 table \$0-buffer;
#X obj 101 415 soundfiler;
#X obj 101 357 list append \$0-buffer;
#X floatatom 101 440 0 0 0 0 - - -;
#X obj 465 300 loadbang;
#X obj 257 451 expr $f1 / sr;
#X obj 257 360 soundfile_info;
#X msg 257 389 \$1;
#X obj 181 279 symbol ../samples/sax.wav;
#X msg 257 335 read \$1;
#X obj 257 417 nbx 5 18 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 14
-261234 -1 -1 88200 256;
#X obj 181 252 loadbang;
#X msg 101 386 read -resize \$1 \$2;
#X text 337 418 Taxa de Amostragem do arquivo;
#X obj 359 347 samplerate~;
#X obj 359 396 v sr;
#X obj 181 307 trigger symbol symbol bang;
#X obj 257 480 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
-228856 -1 -1 2 256;
#X obj 257 508 v ratio_\$0;
#X floatatom 101 491 0 0 0 0 - - -;
#X obj 101 465 expr sr * ratio_\$0 / $f1;
#X obj 101 517 s hz;
#X obj 592 302 r hz;
#X obj 592 372 phasor~;
#X obj 592 436 tabread4~ \$0-buffer;
#X obj 592 405 *~;
#X obj 624 406 r \$0-size;
#X obj 592 472 output~;
#X obj 642 290 nbx 5 18 -1e+37 1e+37 0 0 empty cents empty 0 -8 0 13
-261682 -1 -1 -1200 256;
#X obj 642 317 expr pow(2 \, $f1/1200);
#X obj 592 347 *~;
#X msg 465 322 \; pd dsp 1 \; cents 0;
#X text 718 288 Cents;
#X text 58 -18 Com o [tabread4~] \, já que temos recursos para tocar
o arquivo em diferentes velocidades \, é possível também que toquemos
arquivos de qualquer taxa de amostragem sem a necessidade de mudar
a taxa do Pd ou fazer um resampleamento com o [block~]!;
#X text 58 61 Basta saber a taxa de amostragem do arquivo e a taxa
que o Pd está rodando. Se a taxa do arquivo é o dobro da do Pd \, o
arquivo roda na metade da velocidade. Precisamos então multiplicar
a frequência de leitura por 2! Ou seja \, basta multiplicar a frequência
pela razão entre a taxa do arquivo com a taxa do Pd!;
#X floatatom 359 372 0 0 0 0 - - -;
#X text 60 157 O objto [soundfile_info] é um external capaz de descobrir
a taxa de amostragem de um arquivo qualquer \, caso você não saiba.
Estamos aqui abrindo um arquivo com a taxa de 88.2 Khz \, veja como
fica em uma adaptação do exemplo anterior.;
#X obj 452 5 cnv 15 390 190 empty empty empty 20 12 0 14 -233017 -66577
0;
#X text 468 15 Erro de interpolação:;
#X text 470 142 No caso de tocar arquivos que foram gravados a 44.1
KHz \, um bom programa para ressamplear e dobrar a taxa de amostragem
pode ser bemvindo \, e só isso já reduz bastante o erro.;
#X text 468 35 A interpolação sempre altera um pouco o sinal original
\, e pode introduzir alguns artefatos como aliasing. Para reduzir com
eficiência o erro \, os preciosistas podem trabalhar com taxas de amostragem
maiores \, como 88.2 KHz e/ou algum filtro passa baixa. Ou seja \,
de uma forma parecida com o que fizemos em síntese \, nos exemplos
de Anti-Aliasing.;
#X connect 1 0 3 0;
#X connect 2 0 12 0;
#X connect 3 0 20 0;
#X connect 4 0 31 0;
#X connect 5 0 17 0;
#X connect 6 0 7 0;
#X connect 7 0 10 0;
#X connect 8 0 16 0;
#X connect 9 0 6 0;
#X connect 10 0 5 0;
#X connect 11 0 8 0;
#X connect 12 0 1 0;
#X connect 14 0 35 0;
#X connect 16 0 2 0;
#X connect 16 1 9 0;
#X connect 16 2 14 0;
#X connect 17 0 18 0;
#X connect 19 0 21 0;
#X connect 20 0 19 0;
#X connect 22 0 30 0;
#X connect 23 0 25 0;
#X connect 24 0 27 0;
#X connect 24 0 27 1;
#X connect 25 0 24 0;
#X connect 26 0 25 1;
#X connect 28 0 29 0;
#X connect 29 0 30 1;
#X connect 30 0 23 0;
#X connect 35 0 15 0;
