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.
Última actualización