Olá,
Eu queria saber o que eu faço com esse valor da amplitude do evento entre 0 e 1. É que se eu jogo ele desse jeito na função f, não sai nenhum som depois (Faz sentido, pois os valores ficam muito pequenos, e ao converter para inteiro são arrendondados para 0 ).
De qualquer forma, fiz um teste e multipliquei ele por uma constante antes de converter e tocou (não ficou 100% igual mas...), porém se o valor que vc multiplicar for muito alto, o som sai distorcido.
Além disso, meu som sai com um pouquinho de chiado. Alguma idéia do que pode ser?
Abraços,
Diogo Vernier dos Santos
Também tenho esse problema com o valor da amplitude. Devemos transformar ele no espaço de valores da variável?
Por exemplo, se temos amostras que variam de -0.5 a 0.5 e temos 8 bits para representar isso. Podemos fazer essa amostra variar entre - 2^7 e +2^7??
Por exemplo, se temos amostras que variam de -0.5 a 0.5 e temos 8 bits para representar isso. Podemos fazer essa amostra variar entre - 2^7 e +2^7??
opa, uma pista. olhando
http://en.wikipedia.org/wiki/Additive_synthesis
acho que a formula tem um erro. Nao seria
fi(t) = ampi * env * \sum.....
e sim
fi(t) = ampi * env + \sum.....
Alguem confirma?? E isso mesmo Leandro? Falow!
http://en.wikipedia.org/wiki/Additive_synthesis
acho que a formula tem um erro. Nao seria
fi(t) = ampi * env * \sum.....
e sim
fi(t) = ampi * env + \sum.....
Alguem confirma?? E isso mesmo Leandro? Falow!
Thiago, a fórmula do enunciado está correta. Basta pensar que a envoltória "envolve" o sinal formado pela soma dos parciais e, portanto, deve ser multiplicada pelo mesmo.
A propósito, a alternativa sugerida tem duração infinita, afinal o cosseno é uma função periódica.
A propósito, a alternativa sugerida tem duração infinita, afinal o cosseno é uma função periódica.
Realmente... Eu confundi lá a fórmula tá correta sim.
Sobre normalização, sugiro dividir todo mundo pelo valor máximo efetivamente atingido, para normalizar o sinal entre [-1,1], e depois multiplicar pelo valor máximo permitido pela resolução, ex: 2^15-1 para 16 bits (o -1 é por conta da assimetria em relação ao zero). Dessa forma nunca há ceifamento (clipping) ao mesmo tempo em que a faixa dinâmica utilizada é maximizada.
Por fim, vale lembrar que para 8 bits o padrão RIFF WAVE estabelece valores de 0 a 255 e não -127 a 128.
Por fim, vale lembrar que para 8 bits o padrão RIFF WAVE estabelece valores de 0 a 255 e não -127 a 128.