Este repositório é uma coleção de plugins de efeitos de áudio implementados a partir das explicações do livro "Efeitos de Áudio: Teoria, Implementação e Aplicação" de Joshua D. Reiss e Andrew P. McPherson, e toma como exemplo o código fornecido com o livro que contém contribuições e implementações de Brecht De Man e outros.
Os efeitos de áudio implementados são:
O Template Time Domain implementa uma interface gráfica de usuário genérica com controles deslizantes lineares e logarítmicos, alternâncias e caixas de combinação. Este projeto apresenta uma classe personalizada de parâmetros de áudio que encapsula grande parte da complexidade para adicionar, configurar e usar parâmetros de plug-in automatizáveis tanto no processador de áudio quanto no editor genérico (GUI). Este plugin não aplica nenhum processamento particularmente interessante à entrada, é apenas um projeto modelo para efeitos de processamento de áudio no domínio do tempo.
O Template Frequency Domain implementa uma classe de transformada de Fourier de curto prazo. Este plugin não aplica nenhum processamento à entrada, apenas converte o bloco de entrada para o domínio da frequência e de volta para o domínio do tempo usando o método de adição de sobreposição. Este plugin é usado como um projeto modelo para efeitos de processamento de áudio no domínio da frequência.
Delay implementa um delay básico com feedback e controles de mixagem usando uma linha de delay circular. Ele usa interpolação linear simples para obter tempos de atraso fracionários.
Vibrato usa um oscilador de baixa frequência (LFO) para modular o atraso do sinal de entrada e simular variações periódicas de afinação. Vários tipos de interpolação de amostra são introduzidos neste plugin.
Flanger simula um efeito de áudio baseado em atraso onde uma cópia do sinal de entrada é atrasada com um tempo de atraso variável e misturada com o som original, produzindo assim o som "swooshing" característico deste efeito de áudio clássico.
Chorus simula o fenômeno que ocorre quando vários músicos tocam a mesma peça ao mesmo tempo, ou seja, cria cópias do sinal de entrada com pequenas variações de altura e tempo, fazendo uma única fonte soar como se fosse muitas gravações individuais.
Ping-Pong Delay é uma versão estéreo do delay básico. No Ping-Pong Delay, o sinal atrasado salta entre os canais esquerdo e direito.
O EQ paramétrico implementa vários tipos de filtros paramétricos (passa-baixa, passa-alta, prateleira baixa, prateleira alta, passa-banda, parada de banda e pico/notch). Filtros de primeira e segunda ordem podem ser selecionados e ajustados de acordo com a frequência de corte, fator de qualidade (largura de banda) e ganho.
Wah-Wah é um efeito de áudio que injeta um caractere semelhante a uma fala no som de entrada. Ele pode ser usado no modo manual, onde a frequência de corte de um filtro passa-baixo ressonante, passa-faixa ou filtro de pico/notch é alterada com um controle deslizante, ou no modo automático, onde a frequência de corte do o filtro é controlado com um LFO, com o envelope do sinal de entrada ou com uma combinação de ambos.
Phaser usa filtros passa-tudo em configuração em cascata para introduzir mudanças de fase no sinal de entrada. Essas mudanças criam entalhes no espectro de frequência quando o sinal filtrado é misturado com o original. O phaser produz um efeito semelhante ao flanger, mas há potencialmente mais controle sobre a localização dos entalhes.
Tremolo usa um LFO para modular a amplitude do sinal de entrada. Isto simula pequenas variações no nível do sinal ou transforma uma única nota sustentada em uma série de repetições rápidas.
A modulação em anel é o resultado da multiplicação do sinal de entrada por uma portadora periódica (semelhante ao tremolo, mas em frequências mais altas). É um efeito de áudio não linear que cria um som muito inarmônico.
O Compressor/Expander implementa quatro processadores de áudio em um (compressor, limitador, expansor e noise gate). A configuração Compressor/Limiter reduz a faixa dinâmica do sinal atenuando seções do som de entrada com ganho maior que o limite. A configuração Expander/Noise gate aumenta a faixa dinâmica atenuando seções do som de entrada com ganho inferior ao limite.
A distorção aplica uma transformação não linear ao som de entrada que aumenta seu ganho até limites que criam um som áspero, confuso ou áspero. Diferentes funções não lineares podem ser selecionadas e o ganho de saída pode ser controlado individualmente para restaurar o nível de volume original. Um filtro high-shelf também pode ser usado para controlar o tom do som de saída.
Robotização/Sussurrização implementa dois efeitos de áudio baseados no algoritmo de fase vocoder. Este plugin deve ser usado com sons de fala. A robotização aplica um tom constante ao sinal, preservando os formantes, o resultado soa como uma voz robótica. A sussurração elimina qualquer sensação de tom enquanto preserva os formantes; o resultado deve soar como alguém sussurrando.
Pitch Shift altera a afinação do sinal de entrada sem alterar a duração usando o algoritmo de vocoder de fase. É uma implementação em tempo real que permite alterações contínuas e suaves do parâmetro de mudança de tom.
O movimento panorâmico altera a posição aparente de uma fonte sonora entre dois canais, esquerdo e direito. Pode ser usado em dois modos, o primeiro modo usa o efeito de precedência e a lei da tangente para ajustar os atrasos e ganhos dos sinais esquerdo e direito, é bom para reprodução em alto-falantes assumindo um layout estéreo padrão. O segundo modo usa um modelo esférico da cabeça para estimar a diferença de tempo interaural (ITD) e a diferença de nível interaural (ILD), é bom para reprodução em fones de ouvido.
Esses plug-ins são implementados usando JUCE, que fornece uma estrutura para construção de plug-ins de áudio para diversas plataformas (Windows e macOS) e em vários formatos (VST, AU, RTAS, AAX, etc.), bem como aplicativos autônomos. Você pode executar os seguintes comandos no terminal para clonar este repositório e fazer check-out da versão mais recente do JUCE que foi usada para construir todos os projetos:
git clone https://github.com/juandagilc/Audio-Effects.git
cd Audio-Effects/
git submodule update --init
Código de Juan Gil https://juangil.com/. Direitos autorais © 2017-2020 Juan Gil.
Este programa é software livre: você pode redistribuí-lo e/ou modificá-lo sob os termos da Licença Pública Geral GNU conforme publicada pela Free Software Foundation, seja a versão 3 da Licença ou (a seu critério) qualquer versão posterior.
Este programa é distribuído na esperança de que seja útil, mas SEM QUALQUER GARANTIA; mesmo sem a garantia implícita de COMERCIALIZAÇÃO ou ADEQUAÇÃO A UM DETERMINADO FIM. Veja a Licença Pública Geral GNU para mais detalhes.
Você deverá ter recebido uma cópia da Licença Pública Geral GNU junto com este programa. Caso contrário, consulte https://www.gnu.org/licenses/.