Este repositorio es una colección de complementos de efectos de audio implementados a partir de las explicaciones del libro "Audio Effects: Theory, Implementation and Application" de Joshua D. Reiss y Andrew P. McPherson, y toma como ejemplo el código proporcionado con el libro que tiene contribuciones. e implementaciones de Brecht De Man y otros.
Los efectos de audio implementados son:
Template Time Domain implementa una interfaz gráfica de usuario genérica con controles deslizantes, conmutadores y cuadros combinados lineales y logarítmicos. Este proyecto presenta una clase personalizada de parámetros de audio que encapsula gran parte de la complejidad para agregar, configurar y usar parámetros de complementos automatizables tanto en el procesador de audio como en el editor genérico (GUI). Este complemento no aplica ningún procesamiento particularmente interesante a la entrada, es solo un proyecto de plantilla para efectos de procesamiento de audio en el dominio del tiempo.
Template Frequency Domain implementa una clase de transformada de Fourier de corta duración. Este complemento no aplica ningún procesamiento a la entrada, simplemente convierte el bloque de entrada al dominio de la frecuencia y nuevamente al dominio del tiempo utilizando el método de superposición y adición. Este complemento se utiliza como proyecto de plantilla para efectos de procesamiento de audio en el dominio de la frecuencia.
Delay implementa un retardo básico con controles de retroalimentación y mezcla utilizando una línea de retardo circular. Utiliza interpolación lineal simple para lograr tiempos de retardo fraccionarios.
Vibrato utiliza un oscilador de baja frecuencia (LFO) para modular el retardo de la señal de entrada y simular variaciones periódicas del tono. En este complemento se introducen varios tipos de interpolación de muestras.
Flanger simula un efecto de audio basado en retardo en el que una copia de la señal de entrada se retrasa con un tiempo de retardo variable y se mezcla con el sonido original, produciendo así el característico sonido "swooshing" de este efecto de audio clásico.
Chorus simula el fenómeno que se produce cuando varios músicos interpretan la misma pieza al mismo tiempo, es decir, crea copias de la señal de entrada con pequeñas variaciones de tono y tiempo, haciendo que una única fuente suene como si se tratara de muchas grabaciones individuales.
Ping-Pong Delay es una versión estéreo del retardo básico. En Ping-Pong Delay, la señal retardada rebota entre los canales izquierdo y derecho.
El ecualizador paramétrico implementa varios tipos de filtros paramétricos (paso bajo, paso alto, estante bajo, estante alto, paso banda, parada de banda y pico/muesca). Los filtros de primer y segundo orden se pueden seleccionar y ajustar según la frecuencia de corte, el factor de calidad (ancho de banda) y la ganancia.
Wah-Wah es un efecto de audio que inyecta un carácter parecido al habla al sonido de entrada. Se puede utilizar en modo manual, donde la frecuencia de corte de un filtro de paso bajo resonante, de paso de banda o de pico/muesca se cambia con un control deslizante, o en modo automático donde la frecuencia de corte del El filtro se controla con un LFO, con la envolvente de la señal de entrada o con una combinación de ambos.
Phaser utiliza filtros de paso total en configuración en cascada para introducir cambios de fase en la señal de entrada. Estos cambios crean muescas en el espectro de frecuencia cuando la señal filtrada se mezcla con la original. El fáser produce un efecto similar al Flanger, pero potencialmente hay más control sobre la ubicación de las muescas.
Tremolo utiliza un LFO para modular la amplitud de la señal de entrada. Esto simula pequeñas variaciones en el nivel de la señal o convierte una sola nota sostenida en una serie de repeticiones rápidas.
La modulación en anillo es el resultado de multiplicar la señal de entrada por una portadora periódica (similar al trémolo pero a frecuencias más altas). Es un efecto de audio no lineal que crea un sonido muy inarmónico.
Compressor/Expander implementa cuatro procesadores de audio en uno (compresor, limitador, expansor y puerta de ruido). La configuración Compresor/Limitador reduce el rango dinámico de la señal atenuando secciones del sonido de entrada con una ganancia mayor que el umbral. La configuración Expansor/Puerta de ruido aumenta el rango dinámico atenuando secciones del sonido de entrada con una ganancia inferior al umbral.
La distorsión aplica una transformación no lineal al sonido de entrada que aumenta su ganancia hasta límites que crean un sonido áspero, borroso o áspero. Se pueden seleccionar diferentes funciones no lineales y la ganancia de salida se puede controlar individualmente para restaurar el nivel de sonoridad original. También se puede utilizar un filtro de estante alto para controlar el tono del sonido de salida.
Robotization/Whisperization implementa dos efectos de audio basados en el algoritmo de vocoder de fase. Este complemento está diseñado para usarse con sonidos del habla. La robotización aplica un tono constante a la señal preservando los formantes; el resultado suena como una voz robótica. El susurro elimina cualquier sensación de tono y al mismo tiempo preserva los formantes; el resultado debería sonar como si alguien susurrara.
Pitch Shift cambia el tono de la señal de entrada sin cambiar la duración utilizando el algoritmo del vocoder de fase. Es una implementación en tiempo real que permite cambios continuos y suaves del parámetro de cambio de tono.
La panorámica cambia la posición aparente de una fuente de sonido entre dos canales, izquierdo y derecho. Se puede utilizar en dos modos, el primer modo utiliza el efecto de precedencia y la ley tangente para ajustar los retrasos de tiempo y las ganancias de las señales izquierda y derecha; es bueno para la reproducción a través de altavoces asumiendo un diseño estéreo estándar. El segundo modo utiliza un modelo esférico de la cabeza para estimar la diferencia de tiempo interaural (ITD) y la diferencia de nivel interaural (ILD), y es bueno para la reproducción con auriculares.
Estos complementos se implementan mediante JUCE, que proporciona un marco para crear complementos de audio para varias plataformas (Windows y macOS) y en múltiples formatos (VST, AU, RTAS, AAX, etc.), así como aplicaciones independientes. Puede ejecutar los siguientes comandos en la terminal para clonar este repositorio y verificar la última versión de JUCE que se utilizó para construir todos los proyectos:
git clone https://github.com/juandagilc/Audio-Effects.git
cd Audio-Effects/
git submodule update --init
Código de Juan Gil https://juangil.com/. Copyright © 2017-2020 Juan Gil.
Este programa es software libre: puede redistribuirlo y/o modificarlo según los términos de la Licencia Pública General GNU publicada por la Free Software Foundation, ya sea la versión 3 de la Licencia o (a su elección) cualquier versión posterior.
Este programa se distribuye con la esperanza de que sea de utilidad, pero SIN NINGUNA GARANTÍA; sin siquiera la garantía implícita de COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Consulte la Licencia pública general de GNU para obtener más detalles.
Debería haber recibido una copia de la Licencia Pública General GNU junto con este programa. De lo contrario, consulte https://www.gnu.org/licenses/.