problemas com atan2~

problemas com atan2~

por Guilherme Feulo do Espirito Santo -
Número de respostas: 7

Estou tendo problemas para calcular o argumento (phi) para a parte do calculo da forma de onda estabilizada do ep2, se eu uso  função atan2~ para escrever a tabela meu pc trava, pensei em escrever as tabelas de a e b e calcular somente alguns (phi) para ler com o tabread4, mas eu imagino q deva ter algum jeito melhor de fazer, alguma ideia?

Em resposta à Guilherme Feulo do Espirito Santo

Re: problemas com atan2~

por Marcelo Queiroz -

Oi, Guilherme!

Só para certificar: você está falando do objeto [atan2~] e não de um [expr~] com a função atan2, né? Está lembrando também de inverter as entradas (b à esquerda, a à direita)? E que sistema operacional e versão do Pd você está usando?

Se você puder isolar o problema e reproduzí-lo num patch pequeno (que não seja o trabalho do osciloscópio) você pode postá-lo aqui no fórum para tentarmos ajudar.

Abraço,

Marcelo

Em resposta à Marcelo Queiroz

Re: problemas com atan2~

por Guilherme Feulo do Espirito Santo -

Olá Professor, acho que resolvi, eu desenverti as entradas (coloquei "a" a esquerda e "b" a direita), acho q função atan2~ ja faz a inversão dentro dela... bom pelos menos agora não esta mais travando e o vetor de fase nao fica mais nulo.... mas aproveitando, é normal que a função atan2~ continue calculando valores mesmo depois que o sinal de entrada para? pq agora depois q o sinal de entrada para minha tabela de fase continua atualizando valores durante uns 2 segundos antes de voltar ao 0.

Em resposta à Guilherme Feulo do Espirito Santo

Re: problemas com atan2~

por Marcelo Queiroz -

Oi, Guilherme!

Pois é, estou estranhando essa história de "desinverter". Em anexo envio um patch de exemplo de uso do [atan2] e [atan2~], onde fica claro que eles esperam a entrada invertida (imaginário,real), seguindo o exemplo da função correspondente no padrão da linguagem C. Talvez haja algum outro problema na implementação... dê uma lida nos comentários do patch anexo.

Quanto à função ficar produzindo valores 2 segundos depois, certamente isso não parece normal, mas se está acontecendo então é reflexo de alguma estrutura na sua programação cujo comportamente ainda não está claro. Quem é que alimenta o [atan2~], é uma leitura a alguma tabela, ou é uma entrada direta [adc~]? Você está trabalhando com algum tipo de reblocagem/sobreposição no subpatch onde está o [atan2]? Com que valores?

Outra vez, se você conseguir isolar o problema e criar um exemplo minimal que o reproduza, podemos tentar ajudar. Outra alternativa é tentar encontrar o Antonio pessoalmente em algum horário e mostrar o código no contexto original. Sem ver código, fica difícil... sorriso

Abraço,

Marcelo

 

Em resposta à Marcelo Queiroz

Re: problemas com atan2~

por Antonio Goulart -

Olá.

Tive esse problema com o atan2 também. Foi só inverter mesmo. Dei uma olhada rápida nos fóruns e todo mundo se confunde com essa função, independente da linguagem.

Sobre os 2 segundos, se o problema continuar mesmo com as dicas do Marcelo, podemos olhar isso juntos sim.

 

Abraço,

Antonio.

Em resposta à Marcelo Queiroz

Re: problemas com atan2~

por Guilherme Feulo do Espirito Santo -

Ola professor,

obrigado pelos exemplos... o problema de travar realmente parou (provavelmente eu tava ligando algo de forma errada) estou usando as entradas da forma certa agora ("b" a esquerda e "a" a direita), no meu ep estou alimentando a atan2~ direto da saida da rfft~, e estou fazendo reblocagem no mesmo subpatch com potencias de 2 (64, 256 512 e 1024).

estou enviando um patch onde o problema esta isoolado, o patch somente escreve as tabelas sinal (lido direto da entrada), espectro magnitude, e espectro fase. no proprio patch tem um subpatch que contem o sintetizador do primeiro trabalho menor.

Quando gero um sinal curto pressionando uma tecla do teclado ele continua escrevendo valores na tabela espectrofase muito depois do sinal parar.

coloquei o arquivo no 4shared pois ele tem 200k e nao pode ser postado aqui:

http://www.4shared.com/file/r2pgTnpM/atan.html

abraço,

Guilherme

Em resposta à Guilherme Feulo do Espirito Santo

Re: problemas com atan2~

por Antonio Goulart -

Oi Guilherme.

Tem alguns probleminhas no seu patch. Primeiro que dar um bang~ no tamanho do bloco trava tudo. Só precisa banguear uma vez, ao escolher o tamanho do bloco.

Quanto ao problema dos 2 segundos reminiscentes de valores de fase, a causa do problema está no subpatch do synth mono que você está utilizando para testar. Troquei a entrada por um osc~ basicão e logo que corto ele a fase já corta junto. Para verificar isso, multiplique um osc~ por um toggle. Faça a análise desse sinal. Veja que ao desligar o toggle (cortando assim o sinal) a fase cortará junto.

De qualquer maneira, se quiser testar com seu subpatch do synth, o erro do patch está na maneira como o eadsr~ está sendo controlado (veja o help [tem que tilizar start e stop]).

Abraço,

Antonio.

Em resposta à Antonio Goulart

Re: problemas com atan2~

por Guilherme Feulo do Espirito Santo -

Nossa, Obrigado Antonio!

nunca ia imagina que o problema tava no sinth.. ahuHuua e quanto ao bang~ vou consertar tb, mas pelo menos até agora não tinha dado probleama, implementei o segundo trabalho menor assim e tava indo normal...

 

obrigado pela força novamente,

abraço