Olá Marcelo, André e turma.
Estamos há alguns dias aventurando-nos no PD para implementarmos o EP3 e, creio que por conta de inexperiência com o software, dando algumas cabeçadas. Compartilho elas convosco.
1 - Para calcular fases, usei o atan(i/r). Só que o atan já fazia a divisão e demorei um pouco para entender o porque de ele estar dando sempre o mesmo valor. Cabeçada! Resolvido removendo a divisão. Nada como ler o help.
2 - Para tocar a tabela, estava usando o tabplay~. Este objeto pode receber o sample inicial e sample final. Achei uma boa opção para fazer o overlap. Independente disto o Pure Data lia 64 samples por loop. Cabeçada! Resolvido com o uso do block~. Nada como ler as sugestões do professor.
3 - Não consegui carregar arquivos com mais de 4000000 samples pelo soundfiler. Parece que estoura o tamanho da tabela ou coisa assim. Ele até recebe um parâmetro -maxsize <valor> mas isto não ajuda muito pois não sei o tamanho de um arquivo antes de abri-lo. Acredito que isto não é um problema para esta aplicação mas fiquei com dúvidas se há outra maneira de fazer isto. Ainda dando cabeçada.
4 - O objeto que carrega o arquivo de áudio não me informa o samplerate deste arquivo. Para esta aplicação talvez isto não seja problema. Sei que gostaria de saber se o samplerate do arquivo é igual ao do PD e talvez converter o arquivo para tal taxa. Ainda em aberto.
5 - O external fornecido (fprint~) não consegue gravar a primeira linha do jeito que o exemplo grava. Ao passarmos para ele uma mensagem write ele grava apenas um argumento e depois disto um \n. Alterei o external fprintf~ para que o write imprima vários números e também foi resolvido. Nada como ter o código-fonte em mãos.
6 - Quando entrando 1024 amostras na FFT, tenho como saída 1024 valores porém depois da metade são quase todos iguais e gigantemente tendendo a infinito. Vi na explicação do exercício que só aproveitaria mesmo metade dos valores - 1. É isto mesmo? Caso afirmativo, como faço para jogár fora a segunda metade dos valores? Há uma maneira de dividir um bloco em 2 partes? Cabeçada em aberto.
7 - Fiquei na dúvida se para calcular as amplitudes devo dividir os valores por N ou não. Se não divido, alguns valores ficam maiores que 1. Se divido eles ficam pequenos demais. Certeza que é cabeçada...
Sugestão para as cabeçadas em aberto serão muito bem vindas.
Abraços.