Espacialización (Azimuth)

Cómo distribuir la señal entre canales con cálculo de azimuth

Este ejemplo muestra cómo posicionar una fuente de audio estéreo en un entorno tridimensional utilizando un espacializador basado en azimuth. El sistema modela la interacción con la anatomía del oyente, generando una percepción realista de dirección y profundidad.

// 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.wav")
let source = FileRenderer(contentsOf: url)

// Configurar un espacializador estéreo y parámetros
let destination = AzimuthSpatializer(distanceModel: .distanceModelInverse)
destination.position = .init(x: 0.0, y: 0.0, z: 0.0)
context.listener.up = Vector3<Float64>(x: 0, y: 1.0, z: 0)
context.listener.position = Vector3<Float64>(x: 0.0, y: 0.0, z: 0.0)
context.listener.forward = Vector3<Float64>(x: 0, y: 0, z: -1.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