Spatial Sound voor app-ontwikkelaars voor Windows, Xbox en Hololens 2

Notitie

Deze documentatie is bedoeld voor een doelgroep voor ontwikkelaars. Zie Het inschakelen van ruimtelijk geluid in Windows 10 voor ondersteuning van eindgebruikers voor het inschakelen van ruimtelijk geluid op uw apparaat.

Microsoft Spatial Sound is Microsoft oplossing op platformniveau voor ruimtelijke geluidsondersteuning op Xbox, Windows en HoloLens 2, waardoor zowel surround- als uitbreidingssignalen (boven of onder de listener) mogelijk zijn. Ruimtelijk geluid kan worden gebruikt door Windows desktop-apps (Win32) en Universal Windows Platform (UWP) apps op ondersteunde platforms. Met de API's voor ruimtelijk geluid kunnen ontwikkelaars audioobjecten maken die audio uit posities in 3D-ruimte verzenden. Met dynamische audioobjecten kunt u audio verzenden vanaf een willekeurige positie in de ruimte, die na verloop van tijd kan veranderen. U kunt ook opgeven dat audioobjecten geluid verzenden van een van de 17 vooraf gedefinieerde statische kanalen (8.1.4.4) die echte of gevirtualiseerde luidsprekers kunnen vertegenwoordigen. De werkelijke uitvoerindeling wordt door de gebruiker geselecteerd en kan worden geabstraheerd van Microsoft Spatial Sound-implementaties; audio wordt gepresenteerd aan bestaande luidsprekers, hoofdtelefoons en ontvangers van het thuistheater zonder dat er code- of inhoudswijzigingen nodig zijn. Het platform biedt volledige ondersteuning voor realtime Dolby Atmos-codering voor zowel HDMI- als stereohoofdtelefoonuitgang, DTS:X voor Hoofdtelefoons en Windows Sonic for Headphones-codering voor stereo hoofdtelefoons. Ten slotte zullen Microsoft Spatial Sound-apps zich houden aan het systeemmixbeleid, en hun audio wordt ook gecombineerd met niet-ruimtelijk bewuste apps. Microsoft Spatial Sound-ondersteuning is ook geïntegreerd in Media Foundation; apps die mediabasis gebruiken, kunnen Dolby Atmos-inhoud zonder extra implementatie afspelen.

Ruimtelijk geluid met Microsoft Spatial Sound ondersteunt tv's, thuistheaters en geluidsbalken die Dolby Atmos ondersteunen. Ruimtelijk geluid kan ook worden gebruikt met elk paar hoofdtelefoons waarvan de consument eigenaar kan zijn, met audio die door het platform wordt gerenderd met behulp van Windows Sonic for Headphones, Dolby Atmos for Headphones of DTS Headphone:X.

Microsoft Ruimtelijk Geluid inschakelen

Ongeacht of een ontwikkelaar of consument een gebruiker is, moet een gebruiker Microsoft Spatial Sound op zijn apparaat inschakelen om ruimtelijk geluid te kunnen horen.

Windows

Op Windows pc's wordt dit gedaan via de eigenschappenpagina voor een bepaald geluidsuitvoerapparaat. Selecteer een uitvoerapparaat in het configuratiescherm van Sound en klik op Apparaateigenschappen. In het gedeelte Ruimtelijk geluid van de pagina, als het apparaat ruimtelijk geluid ondersteunt, kunt u een van de beschikbare indelingen selecteren in de ruimtelijke geluidsindeling vervolgkeuzelijst.

ruimtelijk geluid inschakelen in het configuratiescherm van het geluid

U kunt Microsoft Spatial Sound ook inschakelen door met de rechtermuisknop op het pictogram Volume op de taakbalk te klikken.

ruimtelijk geluid vanaf de taakbalk inschakelen

Xbox

Op Xbox zijn Microsoft Spatial Sound-mogelijkheden altijd beschikbaar voor de consument en zijn deze ingeschakeld via Windows-instellingen onder Algemeen - Volume & audio-uitvoer.

De HDMI-audioknop is gevuld met alle indelingen die worden ondersteund door de Audio Video Receiver (AVR) of Soundbar of de tv die rechtstreeks is aangesloten op uw Xbox console. De optie Optische audio is alleen beschikbaar op oudere Xbox-consoles en niet op Xbox Series X|S en hoger.

Schermopname van de pagina General Volume & Output met de vervolgkeuzelijst HDMI-audio.

Houd er rekening mee dat het selecteren van de opties "Dolby Atmos voor thuistheater (alleen HDMI)" of "DTS:X voor thuistheater (alleen HDMI)" in HDMI-audio de gebruiker vraagt om Dolby Access- of DTS Sound Unbound-apps te downloaden en installeren als deze nog niet zijn geïnstalleerd

Schermopname van de pagina General Volume & Output settings met de selectie van DTS Digital Surround.

Selecteer Dolby Atmos voor koptelefoons, DTS Headphone:X of Windows Sonic voor koptelefoons in het headsetformaat onder headsetaudio

Schermopname van de pagina General Volume & Output met het inschakelen van ruimtelijk geluid voor hoofdtelefoons.

Wanneer Microsoft Spatial Sound niet beschikbaar is (bijvoorbeeld bij het afspelen op ingesloten stereoluidsprekers van een laptop of als de gebruiker Microsoft Spatial Sound per hierboven niet expliciet heeft ingeschakeld), wordt het aantal beschikbare dynamische objecten geretourneerd door ISpatialAudioClient::GetMaxDynamicObjectCount voor een toepassing 0.

HoloLens 2

Op HoloLens 2 is Microsoft Spatial Sound standaard ingeschakeld en wordt hardware-DSP-offload gebruikt die speciaal is ontworpen voor Windows Sonic for Headphones.

Microsoft Spatial Sound and Audio Middleware

Veel app- en gameontwikkelaars gebruiken oplossingen voor audiorenderingsengines van derden, waaronder vaak geavanceerde ontwerp- en controlehulpprogramma's. Microsoft heeft samengewerkt met verschillende van deze oplossingsproviders om Microsoft Spatial Sound te implementeren in hun bestaande ontwerpomgevingen. Dit betekent vaak dat de API's die hier worden besproken, worden geabstraheerd vanuit de weergave van de app; ze worden verpakt als DSP-invoegtoepassingen (Digital Signal Processing) die de app kan instantiëren en die de audio-implementer van de app kan gebruiken om te mixen naar een Microsoft Spatial Sound-kanaalbed, submix of afzonderlijke stemmen verzenden naar dynamische invoegtoepassingen voor objectexemplaren naar wens. Neem contact op met de provider van uw audio-middlewareoplossing voor hun ondersteuningsniveau voor Microsoft Spatial Sound.

Microsoft Spatial Sound voor Audioweergaveapparaten

Veel audio-renderers richten zich op een Windows WASAPI-eindpunt (Audio Session API) IAudioClient eindpunt, waarbij de toepassing buffers van gemengde en format-conforme audiogegevens naar een WASAPI-audiosink invoert; de geleverde buffers worden vervolgens gebruikt voor het combineren met andere clients, uiteindelijke verwerking op systeemniveau en rendering.

Microsoft Ruimtelijke geluidseindpunten worden geïmplementeerd als ISpatialAudioClient, die veel overeenkomsten heeft met IAudioClient. Het ondersteunt statische geluidsobjecten die een kanaalbed vormen, met ondersteuning voor maximaal 8.1.4.4 kanalen (8 kanalen rond de luisteraar – Links, Rechts, Center, Zijlinks, Zijrechts, Achter Links, Achter Rechts en Achter Center; 1 kanaal voor lagefrequentie-effecten; 4 kanalen boven de luisteraar; 4 kanalen onder de luisteraar). En het ondersteunt dynamische geluidsobjecten, die willekeurig in 3D-ruimte kunnen worden gerangschikt.

Het algemene implementatiecoderingspatroon voor ISpatialAudioClient is:

  • Statische en/of dynamische audioobjecten maken.
  • Voer de audiobuffer van elk object in bij elk frame, zodat het systeem het kan renderen.
  • Werk de 3D-posities van dynamische objecten op aanvraag bij, zo vaak (of zelden) als de app wenst.

Houd er rekening mee dat de huidige uitvoerindeling (luidsprekers of hoofdtelefoons; Windows Sonic for Headphones, Dolby Atmos of DTS Headphone:X) is geabstraheerd vanuit de bovenstaande implementatie: de app-ontwikkelaar kan zich richten op ruimtelijk geluid zonder dat deze hoeft te draaien op basis van de indeling. Apps die wel willen dat hun gedrag afwijkt op basis van de uitvoerindeling, kunnen een query uitvoeren op de indeling die wordt gebruikt, maar de abstractie betekent dat een app niet is vereist om deze indelingen te verwerken.

Integratie van Microsoft Spatial Sound met Audio Renderers

Omdat ISpatialAudioClient een audio-sink is die gegevens verbruikt, heeft een audio-renderer verschillende opties voor het werken met en leveren van audiogegevens. Er zijn drie veelgebruikte integratietechnieken (en voor titels met audio-middleware ziet u mogelijk equivalente plug-ins die beschikbaar worden gesteld op basis van deze opties):

  • 7.1.4 panners en mastering voice: Renderers die al ondersteuning bieden voor 7.1-eindpunten, kunnen ervoor kiezen om gewoon ondersteuning toe te voegen voor de vier extra hoogtekanalen die de ISpatialAudioClient statisch kanaalbed ondersteunt. Elke kanaalpanning die ze eerder hebben gedaan (waarschijnlijk al gebruik maken van x,y, z-coördinaten) kan worden bijgewerkt om deze hoogtekanalen te omvatten. Dit biedt vaak de minste onderbreking van renderer- en app-audiowerkstromen, signaal, stroom en mixbesturing. Houd er rekening mee dat de volledige app-mix in een ruimtelijke omgeving wordt weergegeven, dus zelfs stereogeluid kan klinken alsof het van buitenaf komt voor de luisteraar.
  • Bestaand eindpunt onderhouden, plus voeg een 7.1.4-bus (en panners) toe: Sommige titels kunnen ervoor kiezen om twee eindpunten te onderhouden: hun bestaande stereo WASAPI-eindpunt (voor 'direct naar oren' inhoud die niet bedoeld is om ruimtelijk te worden gemaakt) naast een ISpatialAudioClient statisch kanaalbed dat 7.1.4 ondersteunt (of zelfs tot 8.1.4.4). Natuurlijk biedt het beheren van interacties tussen twee combinaties extra uitdagingen voor makers van inhoud, hoewel synchronisatie wordt gehandhaafd, omdat zowel WASAPI- als ISAC-exemplaren op een bepaald moment dezelfde buffergrootte en klok gebruiken voor verwerking.
  • Dynamische geluidsobjecten gebruiken voor bepaalde stemmen of submixen: Het aanbieden van misschien de meest gedetailleerde/nauwkeurige positionering, maar mogelijk het creëren van mixdoorzichtigheid, deze techniek omvat het gebruik van ISpatialAudioClient dynamische geluidsobjecten. Houd er rekening mee dat de metagegevens plus audiobuffer aan de renderer worden geleverd, zodat deze geluiden ondoorzichtig zijn voor de rest van de app-mix. Aangezien er bovendien een beperkt aantal beschikbare dynamische geluidsobjecten zijn, moet de renderer overwegen prioriteitstechnieken te implementeren: co-locatie van geluid, samenvoegen met het statische kanaalbed, enzovoort. Games hebben deze techniek vaak gebruikt voor individuele "held" geluiden, zoals een helikopter die zich boven de listener beweegt.

Renderers kunnen ook combineren en matchen tussen deze benaderingen.

Microsoft implicaties voor Spatial Sound Runtime Resource

Op Windows en Xbox varieert het aantal beschikbare stemmen op basis van de indeling die wordt gebruikt. Dolby Atmos-indelingen ondersteunen 32 totale actieve objecten (dus als een 7.1.4-kanaalsbed in gebruik is, kunnen 20 extra dynamische geluidsobjecten actief zijn). Windows Sonic for Headphones ondersteunt 128 totale actieve objecten, waarbij het LFE-kanaal (Low Frequency Effects) niet daadwerkelijk wordt geteld als een object- dus wanneer een 8.1.4.4-kanaalsbed wordt gebruikt, kunnen 112 dynamische geluidsobjecten actief zijn.

Voor Universeel Windows-platform-apps die draaien op Xbox One-consoles, wordt realtime encoding uitgevoerd in hardware zonder CPU-kosten voor Dolby Atmos voor Home Theater, Dolby Atmos voor Headphones, DTS:X voor Home Theater, DTS Headphone:X en Windows Sonic for Headphones.

Vanaf de 2303 Xbox OS-update en Game Development Kit (GDK) worden de resourcelimieten voor Xbox bijgewerkt naar de volgende waarden:

Formatteren Max. aantal statische objecten (kanaalbed) Maximum aantal dynamische objecten
Xbox Series X|S, UWP-apps en >=2303 GDK
Maximum aantal dynamische objecten
Xbox Series X|S, XDK & 2303 GDK
Maximum aantal dynamische objecten
Xbox One
Dolby Atmos voor Home Theater (HDMI) 12 (7.1.4) 20 20 20
DTS:X voor Home Theater (HDMI) 17 (8.1.4.4) 20 20 16
Dolby Atmos (Koptelefoon) 17 (8.1.4.4) 128 20 16
DTS Headphone:X (Hoofdtelefoon) 17 (8.1.4.4) 200 20 16
Windows Sonic (Hoofdtelefoon) 17 (8.1.4.4) 220 20 15

Vanaf de release van mei voor onderhoud naar Windows build 22621 worden de resourcelimieten voor Windows bijgewerkt naar de volgende waarden:

Formaat Max. statische objecten (kanaalbed) Maximum aantal dynamische objecten
Windows
Maximum aantal dynamische objecten
HoloLens 2
Dolby Atmos home theater (HDMI) 12 (7.1.4) 20 N.V.T
DTS:X voor thuisbioscoop (HDMI) 17 (8.1.4.4) 32 N.V.T
Dolby Atmos (Koptelefoon) 17 (8.1.4.4) 128 N.V.T
Dolby Atmos (ingebouwde luidsprekers) 17 (8.1.4.4) 128 N.V.T
DTS Headphone:X (Hoofdtelefoon) 17 (8.1.4.4) 128 N.V.T
DTS:X Ultra (ingebouwde luidsprekers) 17 (8.1.4.4) 128 N.V.T
Windows Sonic (Hoofdtelefoon) 17 (8.1.4.4) 128 31

Voor eerdere Windows, Xbox en HoloLens releases zijn de volgende resourcelimieten van toepassing.

Formaat Maximale statische objecten (kanaalbed) Maximum aantal dynamische objecten
Xbox One
Maximaal aantal dynamische objecten
Windows
Maximum aantal dynamische objecten
HoloLens 2
Dolby Atmos voor thuisbioscoop (HDMI) 12 (7.1.4) 20 20 N.V.T
DTS:X voor thuisbioscoop (HDMI) 17 (8.1.4.4) 16 32 N.V.T
Dolby Atmos (Koptelefoon) 17 (8.1.4.4) 16 16 N.V.T
Dolby Atmos (ingebouwde luidsprekers) 17 (8.1.4.4) N.V.T 16 N.V.T
DTS Headphone:X (Hoofdtelefoon) 17 (8.1.4.4) 16 32 N.V.T
DTS Ultra (ingebouwde luidsprekers) 17 (8.1.4.4) N.V.T 32 N.V.T
Windows Sonic voor koptelefoons 17 (8.1.4.4) 15 112 31

Apps moeten ook rekening houden met de volgende gevolgen voor resources:

  • bandbreedte voor opslag/schijf: lineaire inhoud die vooraf is geschreven tot 7.1.4, is doorgaans groter dan 7.1 lineaire inhoud (hoewel perceptuele codecs al vaak gebruikmaken van kanaalcorrelatie om dit veel minder te maken dan de 50% meer werkelijke kanalen van audiogegevens)
  • Andere kosten voor digitale signaalverwerking: Sommige eerder globale effecten kunnen nu per dynamisch geluidsobject worden uitgevoerd. Daarnaast willen sommige makers van inhoud bepaalde DSP-effecten bijwerken om extra kanalen te ondersteunen of ze uniek te gebruiken.

Microsoft ruimtelijk geluid en geluidsspatialiseringsaanwijzingen

Microsoft Spatial Sound is gericht op geluidspositioneringssimulatie op een ge idealiseerde bol rond de listener. Windows Sonic for Headphones, DTS Headphone:X en Dolby Atmos implementeren sprekertoewijzing en -virtualisatie voor hoofdtelefoons, maar houd er rekening mee dat veel andere aspecten van ruimtelijke geluidssimulatie, die doorgaans al op inhoudsmakers gebaseerde manieren zijn geïmplementeerd, worden overgelaten aan bestaande engines. Makers van inhoud blijven de bestaande gamehulpprogramma's en -processen gebruiken die ze eerder hebben gehad voor dergelijke ruimtelijke aanwijzingen als Doppler, op afstand gebaseerde attenuatie en filtering, occlusie en obstructie en omgevingsreverberatie.

Aanvullende informatiebronnen

Ruimtelijke geluidsinterfaces

Interface Beschrijving
ISpatialAudioClient Hiermee kan een client audiostreams maken die audio verzenden vanaf een positie in 3D-ruimte.
ISpatialAudioObject Vertegenwoordigt een object dat audiogegevens levert die moeten worden weergegeven vanaf een positie in 3D-ruimte ten opzichte van de gebruiker.
ISpatialAudioObjectRenderStream Biedt methoden voor het beheren van een stream voor ruimtelijke audioobjectweergave, waaronder het starten, stoppen en opnieuw instellen van de stream.
ISpatialAudioObjectRenderStreamNotify Biedt meldingen voor ruimtelijke audioclients om te reageren op wijzigingen in de status van een ISpatialAudioObjectRenderStream.

 

Notitie

Wanneer u de ISpatialAudioClient interfaces op een titel van een Xbox One Development Kit (XDK) gebruikt, u moet eerst EnableSpatialAudio aanroepen voordat u IMMDeviceEnumerator aanroept::EnumAudioEndpoints of IMMDeviceEnumerator:: GetDefaultAudioEndpoint. Als u dit niet doet, wordt er een E_NOINTERFACE-fout geretourneerd bij de aanroep van Activate. EnableSpatialAudio is alleen beschikbaar voor XDK-titels en hoeft niet te worden aangeroepen voor Universeel Windows-platform apps die worden uitgevoerd op Xbox One, noch voor apparaten die niet Xbox One zijn.

 

Ruimtelijke geluidsstructuren

Structuur Beschrijving
SpatialAudioObjectRenderStreamActivationParams Vertegenwoordigt activeringsparameters voor een ruimtelijke audio-renderstream.
SpatialAudioClientActivationParams Vertegenwoordigt optionele activeringsparameters voor een ruimtelijke audio-renderstream.

 

Ruimtelijke geluidsumeraties

Opsomming Beschrijving
AudioObjectType Hiermee geeft u het type van een ISpatialAudioObject.