Son spatial pour les développeurs d’applications pour Windows, Xbox et Hololens 2
Notes
Cette documentation est destinée à un public de développeurs. Pour obtenir la prise en charge par les utilisateurs finaux de l’activation du son spatial sur votre appareil, consultez Comment activer le son spatial dans Windows 10.
Microsoft Spatial Sound est la solution de Microsoft au niveau de la plateforme pour la prise en charge du son spatial sur Xbox, Windows et HoloLens 2, activant les signaux audio surround et d’élévation (au-dessus ou en dessous de l’écouteur). Le son spatial peut être exploité par les applications de bureau Windows (Win32) ainsi que par les applications plateforme Windows universelle (UWP) sur les plateformes prises en charge. Les API de son spatial permettent aux développeurs de créer des objets audio qui émettent de l’audio à partir de positions dans l’espace 3D. Les objets audio dynamiques vous permettent d’émettre de l’audio à partir d’une position arbitraire dans l’espace, qui peut changer au fil du temps. Vous pouvez également spécifier que les objets audio émettent du son à partir de l’un des 17 canaux statiques prédéfinis (8.1.4.4) qui peuvent représenter des haut-parleurs réels ou virtualisés. Le format de sortie réel est sélectionné par l’utilisateur et peut être extrait des implémentations de Microsoft Spatial Sound ; L’audio sera présenté aux haut-parleurs, casques et récepteurs home cinéma existants sans avoir besoin de modifier le code ou le contenu. La plateforme prend entièrement en charge l’encodage Dolby Atmos en temps réel pour la sortie casque HDMI et stéréo, DTS:X pour headphones et l’encodage Windows Sonic pour casque pour les casques stéréo. Enfin, les applications Microsoft Spatial Sound respectent la stratégie de mixage du système, et leur audio sera également mélangé avec des applications non prenant en compte l’espace. La prise en charge de Microsoft Spatial Sound est également intégrée à Media Foundation ; les applications qui utilisent Media Foundation peuvent lire correctement du contenu Dolby Atmos sans implémentation supplémentaire.
Le son spatial avec Microsoft Spatial Sound prend en charge les téléviseurs, les cinémas maison et les barres sonores qui prennent en charge Dolby Atmos. Le son spatial peut également être utilisé avec n’importe quelle paire de casques que le consommateur peut posséder, avec l’audio rendu par la plateforme à l’aide de Windows Sonic pour casque, Dolby Atmos for Headphones ou DTS Headphone:X.
Activation de Microsoft Spatial Sound
Qu’il s’agisse d’un développeur ou d’un consommateur, un utilisateur doit activer Microsoft Spatial Sound sur son appareil pour entendre le son spatialisé.
Windows
Sur les PC Windows, cette opération s’effectue via la page des propriétés d’un périphérique de sortie audio donné. Dans le panneau de configuration Son , sélectionnez un périphérique de sortie, puis cliquez sur Propriétés de l’appareil. Dans la section Son spatial de la page, si l’appareil prend en charge le son spatial, vous pouvez sélectionner l’un des formats disponibles dans la liste déroulante Format sonore spatial .
Vous pouvez également activer Microsoft Spatial Sound en cliquant avec le bouton droit sur l’icône Volume dans la barre des tâches.
Xbox
Sur Xbox, les fonctionnalités de Microsoft Spatial Sound sont toujours disponibles pour le consommateur et sont activées via l’application Paramètres sous Général -> Sortie audio en volume&.
Le bouton audio HDMI est rempli avec tous les formats pris en charge par le récepteur audio vidéo (AVR) ou la barre de son ou le téléviseur qui est directement connecté à votre console Xbox. L’option « Audio optique » est disponible uniquement sur les anciennes consoles Xbox et non sur Xbox Series X|S et versions ultérieures.
Notez que la sélection des options « Dolby Atmos pour le cinéma maison (HDMI uniquement) » ou « DTS:X pour le cinéma maison (HDMI uniquement) » dans l’audio HDMI invite l’utilisateur à télécharger et à installer des applications Dolby Access ou DTS Sound Unbound s’il n’est pas déjà installé
Sélectionnez Dolby Atmos for Headphones, DTS Headphone:X ou Windows Sonic pour casque dans la liste déroulante Format du casque sous Audio du casque
Lorsque Microsoft Spatial Sound n’est pas disponible (pour instance, lors de la lecture sur des haut-parleurs stéréo d’ordinateur portable incorporés, ou si l’utilisateur n’a pas explicitement activé Microsoft Spatial Sound par ci-dessus), le nombre d’objets dynamiques disponibles retournés par ISpatialAudioClient::GetMaxDynamicObjectCount à une application est égal à 0.
HoloLens 2
Sur HoloLens 2, Microsoft Spatial Sound est activé par défaut et utilise le déchargement DSP matériel conçu spécifiquement pour Windows Sonic pour casque.
Intergiciels audio et audio de Microsoft
De nombreux développeurs d’applications et de jeux utilisent des solutions de moteur de rendu audio tierces, qui incluent souvent des outils de création et d’audition sophistiqués. Microsoft s’est associé à plusieurs de ces fournisseurs de solutions pour implémenter Microsoft Spatial Sound dans leurs environnements de création existants. Cela signifie souvent que les API décrites ici sont extraites de la vue de l’application ; Ils sont encapsulés sous forme de plug-ins de traitement du signal numérique (DSP) que l’application peut instancier, et que l’implémenteur audio de l’application peut utiliser pour mélanger dans un lit de canal Microsoft Spatial Sound, un sous-mixage ou envoyer des voix individuelles à des objets dynamiques instance plug-ins si vous le souhaitez. Consultez votre fournisseur de solutions d’intergiciel audio pour connaître son niveau de prise en charge de Microsoft Spatial Sound.
Microsoft Spatial Sound for Audio Renderers
De nombreux convertisseurs audio ciblent un point de terminaison IAudioClient de l’API de session audio Windows (WASAPI), où l’application alimente des mémoires tampons de données audio mixtes et conformes au format vers un récepteur audio WASAPI ; les mémoires tampons fournies sont ensuite consommées pour le mélange avec d’autres clients, le traitement final au niveau du système et le rendu.
Les points de terminaison spatiaux Microsoft Spatial Sound sont implémentés en tant que ISpatialAudioClient, qui présente de nombreuses similitudes avec IAudioClient. Il prend en charge les objets sonores statiques formant un lit de canal, avec prise en charge jusqu’à 8.1.4.4 canaux (8 canaux autour de l’écouteur : gauche, droite, centre, côté gauche, côté droit, arrière gauche, arrière droit et arrière-centre ; 1 canal d’effets basse fréquence ; 4 canaux au-dessus de l’écouteur ; 4 canaux sous l’écouteur). Il prend également en charge les objets sonores dynamiques , qui peuvent être positionnés arbitrairement dans l’espace 3D.
Le modèle de codage d’implémentation général pour ISpatialAudioClient est le suivant :
- Créez des objets audio statiques et/ou dynamiques.
- Alimentez la mémoire tampon audio de chaque objet pour chaque trame afin que le système puisse la restituer.
- Mettez à jour les positions 3D des objets dynamiques à la demande, aussi fréquemment (ou rarement) que l’application le souhaite.
Notez que le format de sortie actuel (haut-parleurs ou casques; Windows Sonic pour casque, Dolby Atmos ou DTS Headphone:X) est extrait de l’implémentation ci-dessus : le développeur d’applications peut se concentrer sur le son spatial sans avoir à pivoter en fonction du format. Les applications qui souhaitent que leur comportement diffère en fonction du format de sortie peuvent interroger le format utilisé, mais l’abstraction signifie qu’une application n’est pas nécessaire pour gérer ces formats.
Intégration de Microsoft Spatial Sound aux convertisseurs audio
Étant donné qu’ISpatialAudioClient est un récepteur audio qui consomme des données, un convertisseur audio dispose de plusieurs options pour interagir avec lui et lui fournir des données audio. Il existe trois techniques d’intégration couramment utilisées (et pour les titres utilisant un intergiciel audio, vous pouvez voir des plug-ins équivalents mis à disposition en fonction de ces options) :
- 7.1.4 panners et voix de mastering : les renderers qui prennent déjà en charge les points de terminaison 7.1 peuvent choisir d’ajouter simplement la prise en charge des quatre canaux de hauteur supplémentaires pris en charge par le lit de canal statique ISpatialAudioClient . Tout mouvement panoramique de canal effectué précédemment (probablement tirant déjà parti des coordonnées x, y, z) peut être mis à jour pour inclure désormais ces canaux de hauteur. Cela offre souvent le moins d’interruption pour les workflows audio du convertisseur et de l’application, le signal, le flux et le contrôle de mixage. Sur le casque, notez que le mélange d’applications complet sera spatialisé, de sorte que même la musique stéréo peut être perçue comme « externalisée » de l’écouteur.
- Conserver le point de terminaison existant, et ajouter un bus 7.1.4 (et panners) : certains titres peuvent choisir de conserver deux points de terminaison : leur point de terminaison WASAPI stéréo existant (pour le contenu « direct aux oreilles » non destiné à être spatialisé) ainsi qu’un lit de canal statique ISpatialAudioClient prenant en charge 7.1.4 (voire jusqu’à 8.1.4.4). Bien sûr, la gestion des interactions entre deux combinaisons présente des défis supplémentaires pour les créateurs de contenu, bien que la synchronisation soit maintenue, car les instances WASAPI et ISAC actives à un moment donné utilisent la même taille de mémoire tampon et la même horloge pour le traitement.
- Utiliser des objets sonores dynamiques pour certaines voix ou sous-mixages : Offrant peut-être le positionnement le plus détaillé/précis, mais potentiellement créer une opacité de mix, cette technique implique l’utilisation d’objets sonores dynamiques ISpatialAudioClient . Notez que les métadonnées et la mémoire tampon audio sont remises au convertisseur, de sorte que ces sons seront opaques pour le reste de la combinaison d’applications. En outre, étant donné qu’il existe un nombre limité d’objets sonores dynamiques disponibles, le convertisseur devra envisager d’implémenter des techniques de hiérarchisation : élimination, colocalisation du son, fusion au lit de canal statique, etc. Les jeux ont fréquemment utilisé cette technique pour les sons « héros » individuels, comme un hélicoptère qui se déplace au-dessus de l’écouteur.
Les renderers peuvent également combiner et mettre en correspondance ces approches.
Implications sur les ressources de Microsoft Spatial Sound Runtime
Sur Windows et Xbox, le nombre de voix disponibles varie en fonction du format utilisé. Les formats Dolby Atmos prennent en charge 32 objets actifs au total (par conséquent, si un lit de canal 7.1.4 est utilisé, 20 objets sonores dynamiques supplémentaires peuvent être actifs). Windows Sonic pour casque prend en charge 128 objets actifs au total, le canal LFE (Low Frequency Effects) n’étant pas réellement compté comme un objet. Par conséquent, lorsqu’un lit de canal 8.1.4.4 est en cours d’utilisation, 112 objets sonores dynamiques peuvent être actifs.
Pour plateforme Windows universelle applications s’exécutant sur les consoles de jeu Xbox One, encoder en temps réel (pour Dolby Atmos for Home Theater, Dolby Atmos for Headphones, DTS:X pour home cinéma, DTS Headphone:X et Windows Sonic pour casque) est effectué dans le matériel sans coût processeur.
À compter de la mise à jour du système d’exploitation Xbox 2303 et du Kit de développement de jeu (GDK), les limites de ressources sur Xbox sont mises à jour avec les valeurs suivantes :
Format | Nombre maximal d’objets statiques (lit de canal) | Nombre maximal d’objets dynamiques Xbox Series X|S, applications &> UWP =2303 GDK |
Nombre maximal d’objets dynamiques Xbox Series X|S, XDK &< 2303 GDK |
Nombre maximal d’objets dynamiques Xbox One |
---|---|---|---|---|
Dolby Atmos for Home Theater (HDMI) | 12 (7.1.4) | 20 | 20 | 20 |
DTS:X pour home cinéma (HDMI) | 17 (8.1.4.4) | 20 | 20 | 16 |
Dolby Atmos (Casque) | 17 (8.1.4.4) | 128 | 20 | 16 |
DTS Headphone:X (Headphones) | 17 (8.1.4.4) | 200 | 20 | 16 |
Windows Sonic (Casque) | 17 (8.1.4.4) | 220 | 20 | 15 |
À compter de la version de maintenance de mai sur Windows build 22621, les limites de ressources sur Windows sont mises à jour vers les valeurs suivantes :
Format | Nombre maximal d’objets statiques (lit canal) | Nombre maximal d’objets dynamiques Windows |
Nombre maximal d’objets dynamiques HoloLens 2 |
---|---|---|---|
Cinéma maison Dolby Atmos (HDMI) | 12 (7.1.4) | 20 | N/A |
DTS:X pour cinéma maison (HDMI) | 17 (8.1.4.4) | 32 | N/A |
Dolby Atmos (Casque) | 17 (8.1.4.4) | 128 | N/A |
Dolby Atmos (Haut-parleurs intégrés ) | 17 (8.1.4.4) | 128 | N/A |
DTS Headphone:X (Headphones) | 17 (8.1.4.4) | 128 | N/A |
DTS:X Ultra (haut-parleurs intégrés) | 17 (8.1.4.4) | 128 | N/A |
Windows Sonic (Casque) | 17 (8.1.4.4) | 128 | 31 |
Pour les versions précédentes de Windows, Xbox et HoloLens, les limites de ressources suivantes s’appliquent.
Format | Nombre maximal d’objets statiques (lit canal) | Nombre maximal d’objets dynamiques Xbox One |
Nombre maximal d’objets dynamiques Windows |
Nombre maximal d’objets dynamiques HoloLens 2 |
---|---|---|---|---|
Dolby Atmos pour cinéma maison (HDMI) | 12 (7.1.4) | 20 | 20 | N/A |
DTS:X pour cinéma maison (HDMI) | 17 (8.1.4.4) | 16 | 32 | N/A |
Dolby Atmos (Casque) | 17 (8.1.4.4) | 16 | 16 | N/A |
Dolby Atmos (Haut-parleurs intégrés) | 17 (8.1.4.4) | N/A | 16 | N/A |
DTS Headphone:X (Headphones) | 17 (8.1.4.4) | 16 | 32 | N/A |
DTS Ultra (haut-parleurs intégrés) | 17 (8.1.4.4) | N/A | 32 | N/A |
Windows Sonic pour casque | 17 (8.1.4.4) | 15 | 112 | 31 |
Les applications doivent également prendre en compte les implications de ressources suivantes :
- Bande passante de stockage/disque : le contenu linéaire pré-créé à la version 7.1.4 sera généralement supérieur au contenu linéaire 7.1 (bien que les codecs perceptuels tirent déjà souvent parti de la corrélation des canaux pour rendre ce nombre beaucoup moins élevé que les 50 % de canaux réels de données audio)
- Autres coûts de traitement des signaux numériques : certains effets auparavant globaux peuvent maintenant être instanceés par objet sonore dynamique. En outre, certains créateurs de contenu peuvent souhaiter mettre à jour certains effets DSP pour prendre en charge d’autres canaux ou les utiliser de manière unique.
Signaux de spatialisation et de spatialisation du son Microsoft
Microsoft Spatial Sound se concentre sur la simulation de positionnement sonore sur une sphère idéalisée autour de l’écouteur. Windows Sonic pour casque, DTS Headphone:X et Dolby Atmos implémentent le mappage et la virtualisation des haut-parleurs sur les écouteurs, mais notez que de nombreux autres aspects de la simulation spatiale sonore, déjà généralement implémentées de manière compatible avec le créateur de contenu, sont laissés aux moteurs existants. Les créateurs de contenu continuent d’utiliser les outils et processus de jeu existants qu’ils ont déjà eus pour des signaux spatiaux tels que Doppler, l’atténuation et le filtrage basés sur la distance, l’occlusion et l’obstruction, et la réverbération environnementale.
Ressources supplémentaires
- Référentiel github d’exemples Microsoft Spatial Sound
- Dolby offre un certain nombre de ressources de support relatives à Dolby Atmos et à l’application Dolby Access à l’adresse https://developer.dolby.com.
Interfaces sonores spatiales
Interface | Description |
---|---|
ISpatialAudioClient | Permet à un client de créer des flux audio qui émettent de l’audio à partir d’une position dans l’espace 3D. |
ISpatialAudioObject | Représente un objet qui fournit des données audio à afficher à partir d’une position dans l’espace 3D, par rapport à l’utilisateur. |
ISpatialAudioObjectRenderStream | Fournit des méthodes pour contrôler un flux de rendu d’objet audio spatial, y compris le démarrage, l’arrêt et la réinitialisation du flux. |
ISpatialAudioObjectRenderStreamNotify | Fournit des notifications pour que les clients audio spatiaux répondent aux modifications de l’état d’un ISpatialAudioObjectRenderStream. |
Notes
Lorsque vous utilisez les interfaces ISpatialAudioClient sur un titre XDK (Xbox One Development Kit), vous devez d’abord appeler EnableSpatialAudio avant d’appeler IMMDeviceEnumerator::EnumAudioEndpoints ou IMMDeviceEnumerator::GetDefaultAudioEndpoint. Si vous ne le faites pas, une erreur E_NOINTERFACE est retournée à partir de l’appel à Activer. EnableSpatialAudio est disponible uniquement pour les titres XDK et n’a pas besoin d’être appelé pour plateforme Windows universelle applications s’exécutant sur Xbox One, ni pour les appareils non Xbox One.
Structures sonores spatiales
Structure | Description |
---|---|
SpatialAudioObjectRenderStreamActivationParams | Représente les paramètres d’activation d’un flux de rendu audio spatial. |
SpatialAudioClientActivationParams | Représente les paramètres d’activation facultatifs pour un flux de rendu audio spatial. |
Énumérations sonores spatiales
Énumération | Description |
---|---|
AudioObjectType | Spécifie le type d’un objet ISpatialAudioObject. |