Sonido espacial para desarrolladores de aplicaciones para Windows, Xbox y Hololens 2

Nota:

Esta documentación está destinada a un público para desarrolladores. Para obtener compatibilidad con el usuario final para habilitar el sonido espacial en el dispositivo, consulte Cómo activar el sonido espacial en Windows 10.

Microsoft Spatial Sound es la solución de nivel de plataforma de Microsoft para la compatibilidad con sonidos espaciales en Xbox, Windows y HoloLens 2, lo que permite las indicaciones de audio envolvente y elevación (por encima o por debajo del agente de escucha). Las aplicaciones de escritorio de Windows (Win32) pueden aprovechar el sonido espacial, así como las aplicaciones de Plataforma universal de Windows (UWP) en plataformas compatibles. Las API de sonido espacial permiten a los desarrolladores crear objetos de audio que emiten audio a partir de posiciones en el espacio 3D. Los objetos de audio dinámicos permiten emitir audio desde una posición arbitraria en el espacio, lo que puede cambiar con el tiempo. También puede especificar que los objetos de audio emitan sonido de uno de los 17 canales estáticos predefinidos (8.1.4.4) que pueden representar altavoces reales o virtualizados. El usuario selecciona el formato de salida real y se puede abstraer de las implementaciones de Sonido espacial de Microsoft; El audio se presentará a los altavoces, auriculares y receptores de cine doméstico existentes sin necesidad de cambios en el código o el contenido. La plataforma es totalmente compatible con la codificación Dolby Atmos en tiempo real para la salida de auriculares HDMI y estéreo, DTS:X para auriculares y Windows Sonic para auriculares codificación para auriculares estéreo. Por último, las aplicaciones de Microsoft Spatial Sound cumplen la directiva de mezcla del sistema y su audio también se combinará con aplicaciones no compatibles espacialmente. La compatibilidad con Microsoft Spatial Sound también está integrada en Media Foundation; Las aplicaciones que usan la base multimedia pueden reproducir correctamente el contenido de Dolby Atmos sin ninguna implementación adicional.

El sonido espacial con Microsoft Spatial Sound admite televisores, teatros domésticos y barras de sonido que admiten Dolby Atmos. El sonido espacial también se puede usar con cualquier par de auriculares que el consumidor pueda poseer, con audio representado por la plataforma mediante Windows Sonic para auriculares, Dolby Atmos for Headphones o AURICULARES DTS:X.

Habilitación del sonido espacial de Microsoft

Ya sea como desarrollador o consumidor, un usuario debe habilitar Microsoft Spatial Sound en su dispositivo para escuchar el sonido espacializado.

Windows

En equipos Windows, esto se hace a través de la página de propiedades de un dispositivo de salida de sonido determinado. En el panel Control de sonido , seleccione un dispositivo de salida y haga clic en Propiedades del dispositivo. En la sección Sonido espacial de la página, si el dispositivo admite sonido espacial, puede seleccionar uno de los formatos disponibles en la lista desplegable Formato de sonido espacial .

habilitar el sonido espacial en el panel de control de sonido

También puede habilitar Microsoft Spatial Sound si hace clic con el botón derecho en el icono Volumen de la barra de tareas.

habilitar el sonido espacial desde la barra de tareas

Xbox

En Xbox, las funcionalidades de sonido espacial de Microsoft siempre están disponibles para el consumidor y se habilitan a través de la aplicación Configuración en General:> salida de audio por volumen&.

El botón de audio HDMI se rellena con todos los formatos admitidos por el receptor de vídeo de audio (AVR) o la barra de sonido o el televisor que está conectado directamente a la consola Xbox. La opción "Audio óptico" solo está disponible en consolas Xbox anteriores y no en Xbox Series X|S y versiones posteriores.

Captura de pantalla de la página de configuración de salida del volumen & general en la que se muestra la lista desplegable de audio HDMI.

Tenga en cuenta que al seleccionar las opciones "Dolby Atmos para cine doméstico (solo HDMI)" o "DTS:X para cine doméstico (solo HDMI)" en audio HDMI se pedirá al usuario que descargue e instale las aplicaciones Dolby Access o DTS Sound Unbound si aún no está instalada.

Captura de pantalla de la página Configuración general de la salida del volumen & en la que se muestra la selección de DTS Digital Surround.

Seleccione Dolby Atmos for Headphones, DTS Headset:X o Windows Sonic para auriculares en la lista desplegable Formato de auriculares en Audio de auriculares.

Captura de pantalla de la página de configuración de salida de volumen & general en la que se muestra la habilitación del sonido espacial para auriculares.

Cuando Microsoft Spatial Sound no está disponible (por ejemplo, cuando se reproduce en altavoces estéreo portátiles incrustados o si el usuario no ha habilitado explícitamente El sonido espacial de Microsoft por encima), el número de objetos dinámicos disponibles devueltos por ISpatialAudioClient::GetMaxDynamicObjectCount en una aplicación será 0.

HoloLens 2

En HoloLens 2, Microsoft Spatial Sound está habilitado de forma predeterminada y usa la descarga de DSP de hardware diseñada específicamente para Windows Sonic para auriculares.

Middleware de audio y sonido espacial de Microsoft

Muchos desarrolladores de aplicaciones y juegos usan soluciones de motor de representación de audio de terceros, que a menudo incluyen herramientas sofisticadas de creación y audición. Microsoft se ha asociado con varios de estos proveedores de soluciones para implementar Microsoft Spatial Sound en sus entornos de creación existentes. Esto suele significar que las API que se describen aquí se abstraen de la vista de la aplicación; se encapsulan como complementos de procesamiento de señales digitales (DSP) que la aplicación puede crear instancias y que el implementador de audio de la aplicación puede usar para mezclar en un cama, submezcla o enviar voces individuales a los complementos de instancia de objeto dinámico según sea necesario. Consulte con el proveedor de soluciones de middleware de audio para obtener su nivel de compatibilidad con Microsoft Spatial Sound.

Sonido espacial de Microsoft para representadores de audio

Muchos representadores de audio tienen como destino un punto de conexión IAudioClient de la API de sesión de audio de Windows (WASAPI), donde la aplicación alimenta los búferes de datos de audio mixtos y conformes al formato a un receptor de audio WASAPI; Después, los búferes entregados se consumen para mezclar con otros clientes, el procesamiento final de nivel de sistema y la representación.

Los puntos de conexión espaciales de Microsoft Spatial Sound se implementan como ISpatialAudioClient, que tiene muchas similitudes con IAudioClient. Admite objetos de sonido estáticos que forman un lecho de canal, con soporte para hasta 8.1.4.4 canales (8 canales alrededor del agente de escucha : Izquierda, Derecha, Centro, Lado izquierdo, Lado derecho, Atrás a la derecha, Atrás hacia la derecha y Centro de atrás; 1 canal de efectos de baja frecuencia; 4 canales por encima del agente de escucha; 4 canales por debajo del agente de escucha). Y admite objetos de sonido dinámicos , que se pueden colocar arbitrariamente en el espacio 3D.

El patrón de codificación de implementación general para ISpatialAudioClient es:

  • Cree objetos de audio estáticos o dinámicos.
  • Alimenta el búfer de audio de cada objeto para que el sistema pueda representarlo.
  • Actualice las posiciones 3D de los objetos dinámicos a petición, con la frecuencia (o con poca frecuencia) que desea la aplicación.

Tenga en cuenta que el formato de salida actual (altavoces o auriculares; Windows Sonic para auriculares, Dolby Atmos o DTS Headphone:X) se abstrae de la implementación anterior: el desarrollador de la aplicación puede centrarse en el sonido espacial sin necesidad de dinamizar en función del formato. Las aplicaciones que quieren que su comportamiento diverge en función del formato de salida pueden consultar el formato en uso, pero la abstracción significa que una aplicación no es necesaria para controlar estos formatos.

Integración de sonido espacial de Microsoft con representadores de audio

Dado que ISpatialAudioClient es un receptor de audio que consume datos, un representador de audio tiene varias opciones para interactuar con él y entregar datos de audio. Hay tres técnicas de integración usadas habitualmente (y para los títulos que usan middleware de audio, es posible que vea complementos equivalentes disponibles en función de estas opciones):

  • 7.1.4 paneles y voz de maestro: los representadores que ya admiten puntos de conexión 7.1 pueden optar por simplemente agregar compatibilidad con los cuatro canales de alto adicionales que admite el cama de canal estático ISpatialAudioClient . Cualquier movimiento panorámico de canales que haya hecho anteriormente (probablemente ya aproveche las coordenadas x,y, z) se puede actualizar para incluir ahora estos canales de alto. Esto suele proporcionar la menor interrupción en los flujos de trabajo de representación y audio de la aplicación, la señal, el flujo y el control de mezcla. Sobre auriculares, ten en cuenta que la combinación completa de aplicaciones se espacializará, por lo que incluso la música estéreo se puede percibir como "externalizada" del agente de escucha.
  • Mantener el punto de conexión existente, además de agregar un bus 7.1.4 (y paneles): algunos títulos pueden optar por mantener dos puntos de conexión: su punto de conexión WASAPI estéreo existente (para el contenido "directo a los oídos" no diseñado para ser espacializado) junto con un cama de canal estático ISpatialAudioClient compatible con 7.1.4 (o incluso hasta 8.1.4.4). Por supuesto, la administración de interacciones entre dos combinaciones presenta desafíos adicionales a los creadores de contenido, aunque se mantiene la sincronización, ya que las instancias WASAPI e ISAC activas en un momento dado usan el mismo tamaño de búfer y reloj para su procesamiento.
  • Usar objetos de sonido dinámicos para ciertas voces o submezclas: ofrecer quizás el posicionamiento más detallado o preciso, pero potencialmente creando opacidad de mezcla, esta técnica implica el uso de objetos de sonido dinámico ISpatialAudioClient . Ten en cuenta que los metadatos más el búfer de audio se entregan al representador, por lo que estos sonidos serán opacos en el resto de la combinación de aplicaciones. Además, dado que hay un número limitado de objetos de sonido dinámico disponibles, el representador tendrá que considerar la posibilidad de implementar técnicas de priorización: selección, colocalización de sonido, combinación con la cama del canal estático, etc. Los juegos han usado con frecuencia esta técnica para sonidos "héroes" individuales, como un helicóptero que se moverá por encima del agente de escucha.

Los representadores también pueden mezclar y coincidir entre estos enfoques.

Implicaciones de los recursos del entorno de ejecución de sonido espacial de Microsoft

En Windows y Xbox, el número de voces disponibles varía en función del formato en uso. Los formatos Dolby Atmos admiten 32 objetos activos totales (por lo que si una cama de canal 7.1.4 está en uso, 20 objetos de sonido dinámico adicionales pueden estar activos). Windows Sonic para auriculares admite 128 objetos activos totales, con el canal Efectos de baja frecuencia (LFE) que realmente no se cuenta como un objeto , por lo que cuando se usa un cama de canal 8.1.4.4, 112 objetos de sonido dinámicos pueden estar activos.

Para Plataforma universal de Windows aplicaciones que se ejecutan en consolas de juegos de Xbox One, codificación en tiempo real (para Dolby Atmos for Home Theater, Dolby Atmos for Headphones, DTS:X para home Theater, DTS Headphone:X y Windows Sonic para auriculares) se realiza en hardware sin costo de CPU.

A partir de la actualización del sistema operativo Xbox 2303 y el Kit de desarrollo de juegos (GDK), los límites de recursos de Xbox se actualizan a los valores siguientes:

Formato Max Static Objects (Channel Bed) Objetos dinámicos máximos
Xbox Series X|S, aplicaciones &> para UWP =2303 GDK
Objetos dinámicos máximos
Xbox Series X|S, XDK &< 2303 GDK
Objetos dinámicos máximos
Xbox One
Dolby Atmos for Home Theater (HDMI) 12 (7.1.4) 20 20 20
DTS:X para Home Theater (HDMI) 17 (8.1.4.4) 20 20 16
Dolby Atmos (auriculares) 17 (8.1.4.4) 128 20 16
Auriculares DTS:X (auriculares) 17 (8.1.4.4) 200 20 16
Windows Sonic (Auriculares) 17 (8.1.4.4) 220 20 15

A partir de la versión de mantenimiento de mayo en la compilación 22621 de Windows, los límites de recursos en Windows se actualizan a los valores siguientes:

Formato Objetos estáticos máximos (cama de canal) Objetos dinámicos máximos
Windows
Objetos dinámicos máximos
HoloLens 2
Dolby Atmos home theater (HDMI) 12 (7.1.4) 20 N/A
DTS:X para cine doméstico (HDMI) 17 (8.1.4.4) 32 N/D
Dolby Atmos (Auriculares) 17 (8.1.4.4) 128 N/D
Dolby Atmos (altavoces integrados) 17 (8.1.4.4) 128 N/D
DTS Headphone:X (Auriculares) 17 (8.1.4.4) 128 N/D
DTS:X Ultra (altavoces integrados) 17 (8.1.4.4) 128 N/D
Windows Sonic (Auriculares) 17 (8.1.4.4) 128 31

Para versiones anteriores de Windows, Xbox y HoloLens, se aplican los siguientes límites de recursos.

Formato Objetos estáticos máximos (cama de canal) Objetos dinámicos máximos
Xbox One
Objetos dinámicos máximos
Windows
Objetos dinámicos máximos
HoloLens 2
Dolby Atmos para cine doméstico (HDMI) 12 (7.1.4) 20 20 N/A
DTS:X para cine doméstico (HDMI) 17 (8.1.4.4) 16 32 N/D
Dolby Atmos (Auriculares) 17 (8.1.4.4) 16 16 No aplicable
Dolby Atmos (altavoces integrados) 17 (8.1.4.4) N/D 16 No aplicable
DTS Headphone:X (Auriculares) 17 (8.1.4.4) 16 32 N/D
DTS Ultra (altavoces integrados) 17 (8.1.4.4) N/D 32 N/D
Windows Sonic para auriculares 17 (8.1.4.4) 15 112 31

Las aplicaciones también deben tener en cuenta las siguientes implicaciones de recursos:

  • Ancho de banda de almacenamiento y disco: el contenido lineal creado previamente en 7.1.4 normalmente será mayor que el contenido lineal 7,1 (aunque los códecs perceptuales ya suelen aprovechar la correlación del canal para que sea mucho menor que el 50 % más canales reales de datos de audio)
  • Otros costos de procesamiento de señales digitales: algunos efectos globales anteriores ahora pueden convertirse en instancias por objeto de sonido dinámico. Además, es posible que algunos creadores de contenido deseen actualizar algunos efectos de DSP para admitir canales adicionales o usarlos de forma única.

Indicaciones de espacialización de sonido y sonido de Microsoft

Microsoft Spatial Sound se centra en la simulación de posicionamiento de sonido en una esfera idealizada alrededor del agente de escucha. Windows Sonic para auriculares, DTS Headphone:X y Dolby Atmos implementan la asignación de altavoces y la virtualización a los auriculares, pero ten en cuenta que muchos otros aspectos de la simulación espacial de sonido, que normalmente se implementan en formas habilitadas para creadores de contenido, quedan a los motores existentes. Los creadores de contenido siguen usando las herramientas y los procesos de juego existentes que anteriormente tenían para tales indicaciones espaciales como Así, la atenuación basada en distancia y el filtrado, la oclusión y la obstrucción, y la reverberación ambiental.

Recursos adicionales

Interfaces de sonido espacial

Interfaz Descripción
ISpatialAudioClient Permite a un cliente crear secuencias de audio que emiten audio desde una posición en el espacio 3D.
ISpatialAudioObject Representa un objeto que proporciona datos de audio que se van a representar desde una posición en el espacio 3D, en relación con el usuario.
ISpatialAudioObjectRenderStream Proporciona métodos para controlar un flujo de representación de objeto de audio espacial, incluido el inicio, la detención y el restablecimiento de la secuencia.
ISpatialAudioObjectRenderStreamNotify Proporciona notificaciones para que los clientes de audio espacial respondan a los cambios en el estado de un ISpatialAudioObjectRenderStream.

 

Nota:

Al usar las interfaces ISpatialAudioClient en un título del Kit de desarrollo de Xbox One (XDK), primero debes llamar a EnableSpatialAudio antes de llamar a IMMDeviceEnumerator::EnumAudioEndpoints o IMMDeviceEnumerator::GetDefaultAudioEndpoint. Si no lo hace, se producirá un error E_NOINTERFACE que se devuelve de la llamada a Activate. EnableSpatialAudio solo está disponible para los títulos XDK y no es necesario llamar a las aplicaciones de Plataforma universal de Windows que se ejecutan en Xbox One ni para ningún dispositivo que no sea Xbox One.

 

Estructuras de sonido espacial

Estructura Descripción
SpatialAudioObjectRenderStreamActivationParams Representa los parámetros de activación de una secuencia de representación de audio espacial.
SpatialAudioClientActivationParams Representa parámetros de activación opcionales para una secuencia de representación de audio espacial.

 

Enumeraciones de sonido espacial

Enumeración Descripción
AudioObjectType Especifica el tipo de un objeto ISpatialAudioObject.