Compresión Dinámica

Control del rango dinámico para mantener el nivel de señal equilibrado

Este ejemplo muestra cómo aplicar compresión dinámica a una señal de audio, utilizando el nodo Compressor para controlar el rango dinámico y mantener la salida consistente. La compresión se logra configurando parámetros como la relación, el umbral, etc.

// Configurar el grafo para renderizado
let context = Assembler(rendering: .live).createAudioGraph()

// Configurar una fuente de audio (Renderer) a partir de un archivo local
let url = URL(fileURLWithPath: "/path/to/source.mp3")
let source = MediaRenderer(contentsOf: url)

// Configurar un compresor y sus parámetros de dinámica
let destination = Compressor(channels: .stereo)
destination.ratio = 10.0
destination.threshold = -60.0
destination.attack = 0.003
destination.release = 0.250
destination.knee = 0.0

// Configurar la conexión de los nodos
try context.connect(source: source, to: destination)
try context.connect(source: destination, to: context.destination)
source.play(after: 0)

El siguiente video muestra el código de ejemplo en acción y su procesamiento en tiempo real.

Para obtener una descripción completa de cada clase, método y propiedad mencionada en esta sección, consultá la documentación oficial de la API, donde encontrarás referencias detalladas, parámetros disponibles y ejemplos adicionales de uso.

Última actualización