Para um começo simples, eu usaria uma característica não linear que comprime seu sinal de entrada:g(x)
y=g(x)
onde (conforme indicado pelo endólito nos comentários) é o envelope do sinal de áudio de entrada é o envelope de saída aplicado ao sinal de áudio real. pode ser qualquer função que atenua valores de entrada grandes mais fortes que valores de entrada pequenos. As funções A-Law e -Law foram desenvolvidas para comprimir sinais de fala para telefonia, por exemplo. Eu não sei o quão bom isso soa para a música, no entanto.xyg(x)μ
Outra função de compressão muito simples seria atenuar todas as amplitudes acima de um certo limite :
que é a atenuação. Mas isso não funcionará muito bem, pois nosso senso auditivo é logarítmico, de modo que a atenuação pode ser muito forte. É por isso que os compressores de áudio funcionam em uma escala logarítmica e levam à mesma função que acima, mas todos os valores tomados logarítmicos e com relação ao valor máximo possível. Para :
δ
g(x)={xax+(1−a)δforforx≤δx>δ
a<1x>0log(g(x))={log(x)1rlog(x)+(1−1r)log(δ)forforx≤δx>δ
Para compressores de áudio, é geralmente dado em dB e é expresso em alguma proporção, por exemplo, 3: 1 (isto é, ). Isso gera uma função exponencial, quando expressa linearmente (espero que esteja correta, verifique também ):
Essa função possui um "joelho duro", o que significa que a função não é diferenciável em . Para um "joelho mole", você precisaria de uma transição suave nesse ponto. A extensão das funções acima para negativoδrr=3x>0
g(x)={xδ1−1/rx1/rforforx≤δx>δ
logg(x)x=δxé simples, basta multiplicar pela função signum e pegar o valor absoluto de .
x
O ataque e o lançamento afetam diferentes sons, como chutes, armadilhas e vocais. Eles determinam quanto tempo antes que o limite seja alcançado, o compressor deve começar a funcionar e quanto tempo ainda deve estar funcionando após o sinal ter caído abaixo do limite. Para implementar isso, você precisará usar algum tipo de previsão.
Como todas as amplitudes abaixo de são atenuadas, a faixa dinâmica disponível não é totalmente explorada. Isso é corrigido pelo chamado "ganho de compensação", que é apenas uma multiplicação simples do sinal compactado com um fator de ganho . Reduzindo primeiro a faixa dinâmica e amplificando os compressores de sinal, a música pode parecer "mais alta".δG>1