Buscando biblioteca de procesamiento de audio

Escribo un programa para el desarrollo de habilidades musicales. Se basa en el procesamiento de sonido en tiempo real (baja latencia). Debe ser multiplataforma y estar listo para portar a un microcontrolador.

Utilizo la biblioteca PortAudio para E/S de audio, las funciones de Iowa Hills para el filtrado de paso de banda, LAME MP3 Encoder para la codificación de mp3. También necesito tener funciones para el efecto Vibrato ( https://en.wikipedia.org/wiki/Vibrato ) y compresión de rango dinámico Soft-Knee ( https://en.wikipedia.org/wiki/Dynamic_range_compression#Soft_and_hard_knees ). Y he encontrado las funciones necesarias en las fuentes de Chaotic-DAW .

Ese es un ejemplo de cómo lo uso:

#include "daw/effects/rosic_Vibrato.h"
using namespace rosic;
Vibrato Vbr;

Vbr.setAverageDelayTime(1.0); // for the lowest delay

Vbr.setDepth(vibrato_depth);
Vbr.setCycleLength(vibrato_period);
Vbr.setDryWetRatio(vibrato_drywet);
//...

int MyClass::process( const void *input, void *output, 
                  unsigned long, 
                  const PaStreamCallbackTimeInfo *, 
                  PaStreamCallbackFlags, 
                  void * )
{
    //...

    for(int i=0; i<BufferSize; i++)
        Vbr.getSampleFrame(&output[i]); // process a sample

    //...
}

Las funciones Chaotic-DAW funcionan bien.
El problema es que Chaotic-DAW tiene una jerarquía de clases muy grande y extensa. Por lo tanto, no puedo portar mi programa al microcontrolador , y después de agregar un efecto Vibrato, ni siquiera puedo portarlo a Mac OS X.

Por lo tanto, estoy buscando una solución ligera e independiente de la plataforma para agregar un efecto Vibarto y compresión de rango dinámico Soft-Knee (y tal vez algo similar) al programa.

Respuestas (1)

Después de mucho buscar y hacer preguntas, he escrito mi propia realización para el efecto de vibrato: https://github.com/Bershov/Vibrato-effect . El código no es difícil de entender y funciona bien. De hecho, el vibrato es una especie de modulación de frecuencia. Sus conceptos clave: retardo variable, oscilación de baja frecuencia e intelpolación.