Spatial Sound für App-Entwickler für Windows, Xbox und Hololens 2
Anmerkung
Diese Dokumentation richtet sich an eine Entwicklergruppe. Informationen zur Unterstützung von Endbenutzern zum Aktivieren von räumlichem Sound auf Ihrem Gerät finden Sie unter Aktivieren von räumlichem Sound in Windows 10.
Microsoft Spatial Sound ist die Plattformebenenlösung von Microsoft für die Unterstützung von räumlichem Sound auf Xbox, Windows und HoloLens 2 und ermöglicht sowohl Surround- als auch Höhenhinweise (oberhalb oder unterhalb des Listeners). Räumlicher Sound kann von Windows-Desktop-Apps (Win32) sowie von UWP-Apps (Universelle Windows-Plattform) auf unterstützten Plattformen genutzt werden. Mit den räumlichen Sound-APIs können Entwickler Audioobjekte erstellen, die Audio von Positionen im 3D-Raum ausgeben. Mit dynamischen Audioobjekten können Sie Audio von einer beliebigen Position im Raum ausgeben, die sich im Laufe der Zeit ändern kann. Sie können auch angeben, dass Audioobjekte Sound von einem von 17 vordefinierten statischen Kanälen (8.1.4.4) ausgeben, die echte oder virtualisierte Lautsprecher darstellen können. Das tatsächliche Ausgabeformat wird vom Benutzer ausgewählt und kann aus Microsoft Spatial Sound-Implementierungen abstrahiert werden. Audio wird vorhandenen Lautsprechern, Kopfhörern und Heimkinoempfängern angezeigt, ohne dass Code- oder Inhaltsänderungen erforderlich sind. Die Plattform unterstützt die Echtzeit-Dolby Atmos-Codierung sowohl für HDMI- als auch stereo-Kopfhörerausgabe, DTS:X für Kopfhörer und Windows Sonic for Headphones-Codierung für Stereo-Kopfhörer. Schließlich werden Microsoft Spatial Sound-Apps von der Richtlinie zum Mischen des Systems eingehalten, und ihre Audiodaten werden auch mit nicht räumlichen Apps gemischt. Die Microsoft Spatial Sound-Unterstützung ist auch in Media Foundation integriert; Apps, die Media Foundation verwenden, können Dolby Atmos-Inhalte ohne zusätzliche Implementierung erfolgreich wiedergeben.
Räumlicher Sound mit Microsoft Spatial Sound unterstützt Fernsehgeräte, Heimtheater und Soundleisten, die Dolby Atmos unterstützen. Raumsound kann auch mit jedem Kopfhörerpaar verwendet werden, das der Verbraucher besitzen kann, mit Audio, das von der Plattform mit Windows Sonic for Headphones, Dolby Atmos for Headphones oder DTS Headphone:X gerendert wird.
Aktivieren von Microsoft Spatial Sound
Unabhängig davon, ob ein Entwickler oder Verbraucher, muss ein Benutzer Microsoft Spatial Sound auf dem Gerät aktivieren, um räumlichen Sound zu hören.
Fenster
Auf Windows-PCs erfolgt dies über die Eigenschaftenseite für ein bestimmtes Soundausgabegerät. Wählen Sie im Sound Systemsteuerung ein Ausgabegerät aus, und klicken Sie auf Geräteeigenschaften. Wenn das Gerät räumlichen Sound unterstützt, können Sie im abschnitt räumlichen Sound Abschnitt der Seite eines der verfügbaren Formate aus dem räumlichen Soundformat Dropdown auswählen.
Sie können Microsoft Spatial Sound auch aktivieren, indem Sie in der Taskleiste mit der rechten Maustaste auf das Symbol Lautstärke klicken.
aktivieren
Xbox
Auf Xbox sind die Microsoft Spatial Sound-Funktionen für den Verbraucher immer verfügbar und werden über die Einstellungs-App unter Allgemein –> Lautstärke & Audioausgabeaktiviert.
Die HDMI-Audiotaste wird mit allen Formaten gefüllt, die vom Audio-Videoempfänger (AVR) oder soundbar oder dem Fernsehgerät unterstützt werden, das direkt mit Ihrer Xbox-Konsole verbunden ist. Die Option "Optisches Audio" ist nur auf älteren Xbox-Konsolen und nicht auf Xbox Series X|S und höher verfügbar.
Beachten Sie, dass die Auswahl der Optionen "Dolby Atmos für Heimkino (nur HDMI)" oder "DTS:X für Heimtheater (nur HDMI)" in HDMI-Audio den Benutzer auffordert, Dolby Access oder DTS Sound Unbound-Apps herunterzuladen und zu installieren, falls noch nicht installiert
Wählen Sie Dolby Atmos für Kopfhörer, DTS Headphone:X oder Windows Sonic for Headphones aus der Dropdownliste Headset-Format unter Headset-Audio-
Wenn Microsoft Spatial Sound nicht verfügbar ist (z. B. beim Wiedergeben an eingebetteten Laptop-Stereolautsprechern oder wenn der Benutzer Microsoft Spatial Sound pro oben nicht explizit aktiviert hat), ist die Anzahl der verfügbaren dynamischen Objekte, die von ISpatialAudioClient::GetMaxDynamicObjectCount an eine Anwendung zurückgegeben werden, 0.
HoloLens 2
Auf HoloLens 2 ist Microsoft Spatial Sound standardmäßig aktiviert und verwendet hardwarebasiertes DSP-Offload, das speziell für Windows Sonic for Headphones entwickelt wurde.
Microsoft Spatial Sound and Audio Middleware
Viele App- und Spieleentwickler verwenden Lösungen des Audiorenderingmoduls von Drittanbietern, die häufig komplexe Erstellungs- und Auditingtools enthalten. Microsoft hat sich mit mehreren dieser Lösungsanbieter zusammengetan, um Microsoft Spatial Sound in ihren vorhandenen Erstellungsumgebungen zu implementieren. Dies bedeutet häufig, dass die hier beschriebenen APIs aus der Ansicht der App abstrahiert werden. sie werden als DSP-Plug-Ins (Digital Signal Processing) umschlossen, die von der App instanziiert werden können und die der Audioimplementierer der App verwenden kann, um sie zu einem Microsoft Spatial Sound-Kanalbett, -Submix oder -Senden einzelner Stimmen nach Bedarf an Plug-Ins für dynamische Objektinstanzen zu verwenden. Wenden Sie sich an Ihren Audio-Middleware-Lösungsanbieter, um den Support für Microsoft Spatial Sound zu erhalten.
Microsoft Spatial Sound for Audio Renderers
Viele Audiorenderer zielen auf eine Windows-Audiositzungs-API (WASAPI) IAudioClient Endpunkt ab, in dem die Anwendung Puffer gemischter und formatkonformer Audiodaten in eine WASAPI-Audiosenke einspeist; die bereitgestellten Puffer werden dann zum Mischen mit anderen Clients, der endgültigen Verarbeitung auf Systemebene und zum Rendern verwendet.
Räumliche Microsoft Spatial Sound-Endpunkte werden als ISpatialAudioClient-implementiert, die viele Ähnlichkeiten mit IAudioClienthat. Es unterstützt statischen Soundobjekte, die ein Kanalbett bilden, mit Unterstützung für bis zu 8.1.4.4 Kanäle (8 Kanäle rund um den Listener – Links, Rechts, Mitte, Links, Linksbündige Seite, Nach links, Nach links und Rückcenter; 1 Kanal mit niedrigen Frequenzeffekten; 4 Kanäle über dem Listener; 4 Kanäle unterhalb des Listeners). Und es unterstützt dynamischen Soundobjekte, die beliebig im 3D-Raum positioniert werden können.
Das allgemeine Implementierungscodierungsmuster für ISpatialAudioClient- lautet:
- Erstellen Sie statische und/oder dynamische Audioobjekte.
- Feed each frame's audio buffer each frame so the system can render it.
- Aktualisieren Sie die 3D-Positionen dynamischer Objekte bei Bedarf – so häufig (oder selten) wie die App wünscht.
Beachten Sie, dass das aktuelle Ausgabeformat (Lautsprecher oder Kopfhörer; Windows Sonic for Headphones, Dolby Atmos oder DTS Headphone:X) wird von der obigen Implementierung abstrahiert – der App-Entwickler kann sich auf räumlichen Sound konzentrieren, ohne basierend auf dem Format pivotieren zu müssen. Apps, die ihr Verhalten basierend auf dem Ausgabeformat unterscheiden möchten, können das verwendete Format abfragen, die Abstraktion bedeutet jedoch, dass eine App nicht für die Verarbeitung dieser Formate erforderlich ist.
Microsoft Spatial Sound Integration in Audiorenderer
Da ISpatialAudioClient eine Audiosenke ist, die Daten verbraucht, bietet ein Audiorenderer mehrere Optionen für die Interaktion mit und zum Übermitteln von Audiodaten. Es gibt drei häufig verwendete Integrationstechniken (und für Titel mit Audio-Middleware werden möglicherweise entsprechende Plug-Ins angezeigt, die basierend auf diesen Optionen zur Verfügung gestellt werden):
- 7.1.4 Panner und Mastering Voice-: Renderer, die bereits 7.1-Endpunkte unterstützen, können einfach Unterstützung für die vier zusätzlichen Höhenkanäle hinzufügen, die der ISpatialAudioClient statische Kanalbett unterstützt. Alle zuvor durchgeführten Kanalverschiebungen (wahrscheinlich bereits x,y, z-Koordinaten) können aktualisiert werden, um diese Höhenkanäle einzuschließen. Dies bietet häufig die geringste Unterbrechung für Renderer- und App-Audioworkflows, Signal-, Fluss- und Mix-Steuerung. Beachten Sie über Kopfhörer, dass der vollständige App-Mix raumisiert wird – so dass sogar Stereomusik vom Zuhörer als "extern" wahrgenommen wird.
- Vorhandenen Endpunkt beibehalten, und fügen Sie einen 7.1.4-Bus (und Panners)hinzu: Einige Titel können zwei Endpunkte verwalten: ihre vorhandenen Stereo-WASAPI-Endpunkte (für "direkte To Ears"-Inhalte, die nicht räumlicher Inhalt sind) zusammen mit einem ISpatialAudioClient statische Kanalbett unterstützt 7.1.4 (oder sogar bis zu 8.1.4.4). Das Verwalten von Interaktionen zwischen zwei Mischungen stellt natürlich zusätzliche Herausforderungen für Inhaltsersteller dar, obwohl die Synchronisierung beibehalten wird, da sowohl WASAPI- als auch ISAC-Instanzen, die zu einem bestimmten Zeitpunkt aktiv sind, dieselbe Puffergröße und die gleiche Zeit für die Verarbeitung verwenden.
- Verwenden Sie dynamische Soundobjekte für bestimmte Stimmen oder Submixe: Bieten Sie vielleicht die detaillierteste/genaue Positionierung, aber potenziell erstellen Mixopacity, diese Technik erfordert die Verwendung ISpatialAudioClient dynamische Soundobjekte. Beachten Sie, dass die Metadaten plus Audiopuffer an den Renderer übermittelt werden, sodass diese Sounds für den Rest der App-Mischung undurchsichtig sind. Da es eine begrenzte Anzahl von verfügbaren dynamischen Soundobjekten gibt, muss der Renderer darüber hinaus die Implementierung von Priorisierungstechniken in Betracht ziehen – Culling, Sound co-location, Blending in das statische Kanalbett usw. Spiele haben diese Technik häufig für einzelne "Hero"-Sounds verwendet, z. B. einen Hubschrauber, der sich über dem Listener bewegt.
Renderer können diese Ansätze auch kombinieren und abgleichen.
Auswirkungen der Microsoft Spatial Sound Runtime-Ressource
Unter Windows und Xbox variiert die Anzahl der verfügbaren Stimmen je nach verwendeten Format. Dolby Atmos-Formate unterstützen 32 aktive Objekte insgesamt (wenn also ein 7.1.4 Kanalbett verwendet wird, können 20 zusätzliche dynamische Soundobjekte aktiv sein). Windows Sonic für Headphones unterstützt 128 aktive Objekte insgesamt, wobei der LFE-Kanal (Low Frequency Effects) nicht tatsächlich als Objekt gezählt wird . Wenn also ein 8.1.4.4 Kanalbett verwendet wird, können 112 dynamische Soundobjekte aktiv sein.
Für Universelle Windows-Plattform-Apps, die auf Xbox One-Spielkonsolen ausgeführt werden, erfolgt die Echtzeitcodierung (für Dolby Atmos für Home Theater, Dolby Atmos für Kopfhörer, DTS:X für Home Theater, DTS Headphone:X und Windows Sonic für Kopfhörer) ohne CPU-Kosten.
Ab dem 2303 Xbox OS Update und Game Development Kit (GDK) werden die Ressourcenbeschränkungen für Xbox auf die folgenden Werte aktualisiert:
Format | Max Static Objects (Kanalbett) | Max. Dynamische Objekte Xbox Series X|S, UWP-Apps & >=2303 GDK |
Max. Dynamische Objekte Xbox Series X|S, XDK & <2303 GDK |
Max. Dynamische Objekte Xbox One |
---|---|---|---|---|
Dolby Atmos für Home Theater (HDMI) | 12 (7.1.4) | 20 | 20 | 20 |
DTS:X für Home Theater (HDMI) | 17 (8.1.4.4) | 20 | 20 | 16 |
Dolby Atmos (Kopfhörer) | 17 (8.1.4.4) | 128 | 20 | 16 |
DTS Headphone:X (Kopfhörer) | 17 (8.1.4.4) | 200 | 20 | 16 |
Windows Sonic (Kopfhörer) | 17 (8.1.4.4) | 220 | 20 | 15 |
Ab der Wartungsversion vom Mai für Windows Build 22621 werden die Ressourcenbeschränkungen für Windows auf die folgenden Werte aktualisiert:
Format | Max Static Objects (Kanalbett) | Max. Dynamische Objekte Fenster |
Max. Dynamische Objekte HoloLens 2 |
---|---|---|---|
Dolby Atmos Heimtheater (HDMI) | 12 (7.1.4) | 20 | N/A |
DTS:X für Heimtheater (HDMI) | 17 (8.1.4.4) | 32 | N/A |
Dolby Atmos (Kopfhörer) | 17 (8.1.4.4) | 128 | N/A |
Dolby Atmos (integrierte Lautsprecher) | 17 (8.1.4.4) | 128 | N/A |
DTS Headphone:X (Kopfhörer) | 17 (8.1.4.4) | 128 | N/A |
DTS:X Ultra (integrierte Lautsprecher) | 17 (8.1.4.4) | 128 | N/A |
Windows Sonic (Kopfhörer) | 17 (8.1.4.4) | 128 | 31 |
Für frühere Versionen von Windows, Xbox und HoloLens gelten die folgenden Ressourcengrenzwerte.
Format | Max Static Objects (Kanalbett) | Max. Dynamische Objekte Xbox One |
Max. Dynamische Objekte Fenster |
Max. Dynamische Objekte HoloLens 2 |
---|---|---|---|---|
Dolby Atmos für Heimtheater (HDMI) | 12 (7.1.4) | 20 | 20 | N/A |
DTS:X für Heimtheater (HDMI) | 17 (8.1.4.4) | 16 | 32 | N/A |
Dolby Atmos (Kopfhörer) | 17 (8.1.4.4) | 16 | 16 | N/A |
Dolby Atmos (integrierte Lautsprecher) | 17 (8.1.4.4) | N/A | 16 | N/A |
DTS Headphone:X (Kopfhörer) | 17 (8.1.4.4) | 16 | 32 | N/A |
DTS Ultra (integrierte Lautsprecher) | 17 (8.1.4.4) | N/A | 32 | N/A |
Windows Sonic für Kopfhörer | 17 (8.1.4.4) | 15 | 112 | 31 |
Apps sollten auch die folgenden Ressourcenauswirkungen berücksichtigen:
- Speicher-/Datenträgerbandbreite: Linearer Inhalt, der auf 7.1.4 erstellt wurde, ist in der Regel größer als 7,1 linearer Inhalt (obwohl wahrnehmungsbezogene Codecs bereits häufig die Kanalkorrelation nutzen, um dies weit weniger als die 50% mehr tatsächlichen Kanäle von Audiodaten zu machen)
- Andere digitale Signalverarbeitungskosten: Einige zuvor globale Effekte können jetzt pro dynamisches Soundobjekt instanziert werden. Darüber hinaus möchten einige Inhaltsersteller möglicherweise einige DSP-Effekte aktualisieren, um zusätzliche Kanäle zu unterstützen oder sie eindeutig zu verwenden.
Microsoft Spatial Sound and Sound Spatialization Cues
Microsoft Spatial Sound konzentriert sich auf die Soundpositionierungssimulation auf einer idealisierten Kugel um den Zuhörer. Windows Sonic for Headphones, DTS Headphone:X und Dolby Atmos implementieren Lautsprecherzuordnung und Virtualisierung zu Kopfhörern. Beachten Sie jedoch, dass viele andere Aspekte der Soundraumsimulation, die in der Regel auf Inhaltsersteller-fähige Weise implementiert sind, vorhandenen Motoren überlassen sind. Inhaltsersteller verwenden weiterhin die vorhandenen Spieltools und -prozesse, die sie zuvor für solche räumlichen Hinweise wie Doppler, entfernungsbasierte Dämpfung und Filterung, Okklusion und Hindernisse und Umgebungsbesinnung hatten.
Zusätzliche Ressourcen
- GitHub-Repository für Microsoft Spatial Sound-Beispiele
- Dolby bietet eine Reihe von Supportressourcen im Zusammenhang mit Dolby Atmos und der Dolby Access-App bei https://developer.dolby.com.
Räumliche Klangschnittstellen
Schnittstelle | Beschreibung |
---|---|
ISpatialAudioClient- | Ermöglicht einem Client das Erstellen von Audiostreams, die Audiodaten von einer Position im 3D-Raum ausgeben. |
ISpatialAudioObject- | Stellt ein Objekt dar, das Audiodaten bereitstellt, die von einer Position im 3D-Raum relativ zum Benutzer gerendert werden sollen. |
ISpatialAudioObjectRenderStream- | Stellt Methoden zum Steuern eines räumlichen Audioobjektrenderdatenstroms bereit, einschließlich Start, Beenden und Zurücksetzen des Datenstroms. |
ISpatialAudioObjectRenderStreamNotify | Stellt Benachrichtigungen für räumliche Audioclients bereit, um auf Änderungen im Zustand eines ISpatialAudioObjectRenderStreams zu reagieren. |
Anmerkung
Wenn Sie die ISpatialAudioClient Schnittstellen in einem Xbox One Development Kit (XDK)-Titel verwenden, müssen Sie zuerst EnableSpatialAudio aufrufen, bevor Sie IMMDeviceEnumerator::EnumAudioEndpoints oder IMMDeviceEnumerator::GetDefaultAudioEndpointaufrufen. Andernfalls wird ein E_NOINTERFACE Fehler zurückgegeben, der vom Aufruf von Activate zurückgegeben wird. EnableSpatialAudio- ist nur für XDK-Titel verfügbar und muss nicht für Apps der universellen Windows-Plattform aufgerufen werden, die auf Xbox One oder auf Nicht-Xbox One-Geräten ausgeführt werden.
Räumliche Klangstrukturen
Struktur | Beschreibung |
---|---|
SpatialAudioObjectRenderStreamActivationParams | Stellt Aktivierungsparameter für einen räumlichen Audiorenderstream dar. |
SpatialAudioClientActivationParams | Stellt optionale Aktivierungsparameter für einen räumlichen Audiorenderstream dar. |
Spatial Sound-Enumerationen
Aufzählung | Beschreibung |
---|---|
AudioObjectType- | Gibt den Typ eines ISpatialAudioObject an. |