crow bar

Programação Delphi e Pascal

Moderadores: 51, guest2003

crow bar

Mensagempor fabim » 20 Jul 2008 19:29

é froid, to levando uma surra de novo com lógica matematica. Tenho que parar de fumar urgente.aff

Programinha da bateria eletronica parte funcional esta pronto.

Na parte de cima tem um player de. WMA,MP3,WAVE.
Este player tem.
Voice suprime
Voice expand
E equalizador grafico com 24 bandas com passos de
25hz e 2.2DB subindo a escala até 19khz. "só funfa para placas de som de 96khz"
com placa de som de 48khz 32,5..........16khz igualim o media player.

Aí esta a questão.
O componente trabalha com coeficiente passivo.
0.0 = zero do controle
0.99 = fator original do som com atenuação de 0.01
1.0 = fator original sem influencia do soft.
1.01 = fator original + ganho de 0.01
e vai indo até 65535..
Por dezenas de testes com ganho de 10, fica muito grande.

Fiz algus testes e ele segue o seguinte

Ganho/atenuação trabalha com log10...

Ganho = 10* LOG(valor de saida/valor de entrada).
Este teste eu fiz com o proprio componente com 1khz e ciclos de 0 a 15000.

Aí vem a bomba.
imaginem uma barra, quando creat form, e creat comp´s.
Esta barra deve ser iniciada ao centro de forma que valor passado como coeficiente seja 1.
Se elevada ao topo, o valor deve ser 10.25 Ganho de 12DB
Se elevada ao inicio, o valor deve ser ??? que seja uma atenuação de 12DB ou 10.25VZ´s menor.

Por enquanto eu fiz assim.
Barra trabalha apenas com integer, e o componente com real.

barra. max := 21;
Barra. min := 1
barra.position := "inicia com 11";

Equi.chanel[x].coeficiente := (barra.position - 1)*0.1;
Mais num fica linear, e quando fica abaixo de 5 a atenuação é extremamente alta.

Se alguem entendeu matematicamente,

"HELP"

[]'s fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor proex » 20 Jul 2008 20:29

Eu não entendi, dá pra explicar de novo?
proex
Dword
 
Mensagens: 2101
Registrado em: 11 Out 2006 14:05
Localização: São Paulo

Mensagempor fabim » 21 Jul 2008 08:23

imagine varios componentes de audio sendo todos para funções diferentes, equalizador, voice expand/suprime, passa banda, passa alta, passa faixa, rejeita faixa, amplificador, atenuador, etc.

Estes componentes que o cara criou, trabalham com coeficiente logaritmo....

ou seja.

16.0 = ganho em 12 db
1.0 = sem ganho nem atenuação "joga pra placa de som, o som original"
0.0 = valor absoluto de atenuação
0.1
0.2
0.3
0.4
0.5
0.6
......... como se fosse fator negativo, para calculos
1.0 << não influencia no ganho nem atenuação
1.1 << aqui ja começa o ganho
..
..
16.0 << ganho de 12DB
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor RobL » 21 Jul 2008 19:50

Faça o gráfico do que você quer em função de "barraposition".
Pelo aspecto talvez já lhe dê uma sugestão. Se não, procure uma aproximação por série de potência e daí sai o que quer.

Veja que não é imediata, por exemplo (20*Log(barraposition)-10) atende para valores acima de 11 até 21 mas não lhe atende abaixo de 11, verifique. Pode até ser uma função imediata mas não consigo enxergar algo imediato.
RobL
Dword
 
Mensagens: 1546
Registrado em: 20 Fev 2007 17:56

Mensagempor fabim » 24 Jul 2008 20:47

aff. fiz alguns testes.

Seguinte o componente não funca como eu pensava.

Ele funca assim.
0.0 atenuação
0.1
0.2
....
....
0.99
1.0 Som ogirinal
1.1
1.2
1.3
100.0 <<< ganho máximo.

óia que doideira, ele aceita 99 passos de atenuação
E 1000 passos de ganho.

hehe. e agóra ?
Som original + 17X de ganho em determinada frequencia = 12DB de ganho
Som original - 17X de ganho em determinada frequencia = -12DB de ganho

Cûma que ficanha ?

Fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?


Voltar para Delphi e Pascal

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x