Raumklang für App-Entwickler für Windows, Xbox und Hololens 2
Hinweis
Diese Dokumentation richtet sich an eine Entwicklergruppe. Informationen zur Endbenutzerunterstützung 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 Plattform-Level-Lösung von Microsoft für die Unterstützung räumlicher Sound auf Xbox, Windows und HoloLens 2, die sowohl Surround- als auch Höhenhinweise (oberhalb oder unterhalb des Listeners) ermöglicht. Räumlicher Sound kann sowohl von Windows-Desktop-Apps (Win32) als auch von Universelle Windows-Plattform-Apps (UWP) 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 aus 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 reale 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 ohne Code- oder Inhaltsänderungen präsentiert. Die Plattform unterstützt vollständig die Echtzeit-Dolby Atmos-Codierung für HDMI- und Stereo-Kopfhörerausgang, DTS:X für Kopfhörer und Windows Sonic für Kopfhörer-Codierung für Stereokopfhörer. Schließlich halten Sich Microsoft Spatial Sound-Apps an die Systemmischrichtlinie, und ihre Audiodaten werden auch mit Nicht-Raum-orientierten 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 Fernseher, Heimkinos und Soundbars, die Dolby Atmos unterstützen. Räumlicher Klang kann auch mit jedem Kopfhörerpaar verwendet werden, das der Verbraucher besitzt, wobei Audio von der Plattform mit Windows Sonic für Kopfhörer, Dolby Atmos for Headphones oder DTS Headphone:X gerendert wird.
Aktivieren von Microsoft Spatial Sound
Ein Benutzer muss Microsoft Spatial Sound auf dem Gerät aktivieren, um räumlichen Sound hören zu können, unabhängig davon, ob er entwickler- oder consumer ist.
Windows
Auf Windows-PCs erfolgt dies über die Eigenschaftenseite für ein bestimmtes Soundausgabegerät. Wählen Sie in der 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äumlicher Sound auf der Seite eines der verfügbaren Formate aus der Dropdownliste Räumliches Soundformat auswählen.
Sie können Microsoft Spatial Sound auch aktivieren, indem Sie mit der rechten Maustaste auf das Volume-Symbol in der Taskleiste klicken.
Xbox
Auf xbox sind die Microsoft Spatial Sound-Funktionen für den Consumer immer verfügbar und werden über die Einstellungs-App unter Allgemein –> Audioausgabe mit Lautstärke &aktiviert.
Die HDMI-Audiotaste wird mit allen Formaten aufgefüllt, die vom Audio video Receiver (AVR) oder der Soundbar oder dem Fernseher unterstützt werden, der 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 Heimkino (nur HDMI)" in HDMI-Audio den Benutzer dazu auffordert, dolby Access- oder DTS Sound Unbound-Apps herunterzuladen und zu installieren, falls sie noch nicht installiert sind.
Wählen Sie Dolby Atmos for Headphones, DTS Headphone:X oder Windows Sonic für Kopfhörer aus der Dropdownliste Headset-Format unter Headset-Audio aus.
Wenn Microsoft Spatial Sound nicht verfügbar ist (für instance, bei der Wiedergabe auf eingebetteten Laptop-Stereolautsprechern oder wenn der Benutzer Microsoft Spatial Sound nicht explizit aktiviert hat, beträgt die Anzahl der verfügbaren dynamischen Objekte, die von ISpatialAudioClient::GetMaxDynamicObjectCount für eine Anwendung zurückgegeben werden, 0.
HoloLens 2
Auf HoloLens 2 ist Microsoft Spatial Sound standardmäßig aktiviert und verwendet Hardware-DSP-Auslagerung, die speziell für Windows Sonic für Kopfhörer entwickelt wurde.
Microsoft Spatial Sound and Audio Middleware
Viele App- und Spieleentwickler verwenden Audiorendering-Engine-Lösungen von Drittanbietern, die häufig anspruchsvolle Erstellungs- und Auditionstools 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 erläuterten APIs aus der Sicht der App abstrahiert werden. Sie werden als DSP-Plug-Ins (Digital Signal Processing) umschlossen, die die App instanziieren kann und die der Audioimplementierer der App verwenden kann, um sie nach Belieben in ein Microsoft Spatial Sound-Kanalbett zu mischen, zu submixen oder einzelne Stimmen an dynamische Objekte instance Plug-Ins zu senden. Wenden Sie sich an Ihren Audio-Middlewarelösungsanbieter, um dessen Support für Microsoft Spatial Sound zu erhalten.
Microsoft Spatial Sound für Audiorenderer
Viele Audiorenderer zielen auf einen IAudioClient-Endpunkt (Windows Audio Session API, WASAPI) ab, bei dem die Anwendung Puffer gemischter und formatkonformer Audiodaten an eine WASAPI-Audiosenke übergibt. Die bereitgestellten Puffer werden dann für das Mischen mit anderen Clients, die verarbeitung auf Systemebene und das Rendern verwendet.
Räumliche Endpunkte von Microsoft Spatial Sound werden als ISpatialAudioClient implementiert, der viele Ähnlichkeiten mit IAudioClient aufweist. Es unterstützt statische 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, Seite rechts, Seite rechts, Hinten links, Hinten rechts und Rückenmitte; 1 Kanal mit niedrigen Frequenzeffekten; 4 Kanäle über dem Listener; 4 Kanäle unter dem Listener). Und es unterstützt dynamische Soundobjekte, die beliebig im 3D-Raum positioniert werden können.
Das allgemeine Implementierungscodierungsmuster für ISpatialAudioClient lautet:
- Erstellen Sie statische und/oder dynamische Audioobjekte.
- Füttern Sie den Audiopuffer jedes Objekts für jeden Frame, damit das System ihn rendern kann.
- Aktualisieren Sie die 3D-Positionen dynamischer Objekte bei Bedarf – so häufig (oder selten), wie die App es wünscht.
Beachten Sie, dass das aktuelle Ausgabeformat (Lautsprecher oder Kopfhörer; Windows Sonic für Kopfhörer, Dolby Atmos oder DTS Headphone:X) wird von der obigen Implementierung abstrahiert – der App-Entwickler kann sich auf räumlichen Sound konzentrieren, ohne dass er sich auf das Format konzentrieren muss. Apps, die ihr Verhalten basierend auf dem Ausgabeformat abweichen möchten, können das verwendete Format abfragen, aber die Abstraktion bedeutet, dass eine App nicht erforderlich ist, um diese Formate zu verarbeiten.
Microsoft Spatial Sound Integration mit Audiorenderern
Da ISpatialAudioClient eine Audiosenke ist, die Daten verbraucht, bietet ein Audiorenderer mehrere Optionen für die Interaktion mit und die Übermittlung von Audiodaten an ihn. Es gibt drei häufig verwendete Integrationstechniken (und für Titel, die Audio-Middleware verwenden, werden möglicherweise entsprechende Plug-Ins basierend auf diesen Optionen verfügbar gemacht):
- 7.1.4 Panner und Mastering Voice: Renderer, die bereits 7.1-Endpunkte unterstützen, können sich dazu entscheiden, einfach unterstützung für die vier zusätzlichen Höhenkanäle hinzuzufügen, die das statische Kanalbett ISpatialAudioClient unterstützt. Alle Kanalverschiebungen, die sie zuvor durchgeführt haben (wahrscheinlich bereits x, y, z-Koordinaten nutzen), können aktualisiert werden, um jetzt diese Höhenkanäle zu enthalten. Dies bietet häufig die geringste Unterbrechung für Renderer- und App-Audioworkflows, Signal-, Flow- und Mixsteuerung. Beachten Sie über Kopfhörer, dass der vollständige App-Mix verräumt wird – selbst Stereomusik kann vom Hörer als "externalisiert" wahrgenommen werden.
- Beibehalten vorhandener Endpunkte und Hinzufügen eines 7.1.4-Busses (und -Panners): Einige Titel können zwei Endpunkte beibehalten: ihren vorhandenen Stereo-WASAPI-Endpunkt (für "Direct To Ears"-Inhalte, die nicht räumlicher Art sein sollen), sowie ein statisches ISpatialAudioClient-Kanalbett , das 7.1.4 (oder sogar bis zu 8.1.4.4) unterstützt. Natürlich stellt die Verwaltung von Interaktionen zwischen zwei Mischungen zusätzliche Herausforderungen für Die Ersteller von Inhalten dar, obwohl die Synchronisierung beibehalten wird, da sowohl WASAPI- als auch ISAC-Instanzen, die zu einem bestimmten Zeitpunkt aktiv sind, die gleiche Puffergröße und Uhrzeit für die Verarbeitung verwenden.
- Verwenden von dynamischen Soundobjekten für bestimmte Stimmen oder Submixe: Diese Technik bietet die vielleicht detaillierteste/genaue Positionierung, aber möglicherweise die Erstellung von Mix-Deckkraft und beinhaltet die Verwendung dynamischer ISpatialAudioClient-Soundobjekte . Beachten Sie, dass die Metadaten und der Audiopuffer an den Renderer übermittelt werden, sodass diese Sounds für den Rest der App-Mischung undurchsichtig sind. Da darüber hinaus eine begrenzte Anzahl von dynamischen Soundobjekten verfügbar ist, muss der Renderer 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 Hörer bewegt.
Renderer können diese Ansätze auch kombinieren und abgleichen.
Auswirkungen auf Microsoft Spatial Sound Runtime-Ressourcen
Unter Windows und Xbox variiert die Anzahl der verfügbaren Stimmen je nach verwendetem Format. Dolby Atmos-Formate unterstützen insgesamt 32 aktive Objekte (wenn also ein 7.1.4-Kanalbett verwendet wird, können 20 zusätzliche dynamische Soundobjekte aktiv sein). Windows Sonic für Kopfhörer unterstützt insgesamt 128 aktive Objekte, 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, codieren Sie in Echtzeit (für Dolby Atmos for Home Theater, Dolby Atmos for Headphones, DTS:X für Heimkino, DTS Headphone:X und Windows Sonic für Kopfhörer) wird in Hardware ohne CPU-Kosten ausgeführt.
Ab dem Xbox OS-Update 2303 und dem Game Development Kit (GDK) werden die Ressourcenlimits auf Xbox auf die folgenden Werte aktualisiert:
Format | Maximale Anzahl statischer Objekte (Kanalbett) | Maximale Anzahl dynamischer Objekte Xbox Series X|S, UWP-Apps &> =2303 GDK |
Maximale Anzahl dynamischer Objekte Xbox Series X|S, XDK &< 2303 GDK |
Maximale Anzahl dynamischer Objekte Xbox One |
---|---|---|---|---|
Dolby Atmos for Home Theater (HDMI) | 12 (7.1.4) | 20 | 20 | 20 |
DTS:X für Heimkino (HDMI) | 17 (8.1.4.4) | 20 | 20 | 16 |
Dolby Atmos (Kopfhörer) | 17 (8.1.4.4) | 128 | 20 | 16 |
DTS Headphone:X (Headphones) | 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 auf Windows Build 22621 werden die Ressourcengrenzwerte unter Windows auf die folgenden Werte aktualisiert:
Format | Maximale Anzahl statischer Objekte (Kanalbett) | Maximale Anzahl dynamischer Objekte Windows |
Maximale Anzahl dynamischer Objekte HoloLens 2 |
---|---|---|---|
Dolby Atmos Heimkino (HDMI) | 12 (7.1.4) | 20 | – |
DTS:X für Heimkino (HDMI) | 17 (8.1.4.4) | 32 | – |
Dolby Atmos (Kopfhörer) | 17 (8.1.4.4) | 128 | – |
Dolby Atmos (integrierte Lautsprecher ) | 17 (8.1.4.4) | 128 | – |
DTS Headphone:X (Headphones) | 17 (8.1.4.4) | 128 | – |
DTS:X Ultra (integrierte Lautsprecher) | 17 (8.1.4.4) | 128 | – |
Windows Sonic (Kopfhörer) | 17 (8.1.4.4) | 128 | 31 |
Für frühere Windows-, Xbox- und HoloLens-Versionen gelten die folgenden Ressourcengrenzwerte.
Format | Maximale Anzahl statischer Objekte (Kanalbett) | Maximale Anzahl dynamischer Objekte Xbox One |
Maximale Anzahl dynamischer Objekte Windows |
Maximale Anzahl dynamischer Objekte HoloLens 2 |
---|---|---|---|---|
Dolby Atmos für Heimkino (HDMI) | 12 (7.1.4) | 20 | 20 | – |
DTS:X für Heimkino (HDMI) | 17 (8.1.4.4) | 16 | 32 | – |
Dolby Atmos (Kopfhörer) | 17 (8.1.4.4) | 16 | 16 | – |
Dolby Atmos (integrierte Lautsprecher) | 17 (8.1.4.4) | – | 16 | – |
DTS Headphone:X (Headphones) | 17 (8.1.4.4) | 16 | 32 | – |
DTS Ultra (integrierte Lautsprecher) | 17 (8.1.4.4) | – | 32 | – |
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: Lineare Inhalte, die auf 7.1.4 vorab erstellt wurden, sind in der Regel größer als 7,1 lineare Inhalte (obwohl wahrnehmungsbasierte Codecs bereits häufig die Kanalkorrelation nutzen, um dies weit weniger als die 50 % mehr tatsächlichen Kanäle von Audiodaten zu machen).
- Andere Kosten für die digitale Signalverarbeitung: Einige zuvor globale Effekte können jetzt pro dynamischem 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 Hinweise
Microsoft Spatial Sound konzentriert sich auf die Simulation der Klangpositionierung auf einer idealisierten Kugel um den Hörer. Windows Sonic für Kopfhörer, DTS Headphone:X und Dolby Atmos implementieren Lautsprecherzuordnung und -virtualisierung zu Kopfhörern. Beachten Sie jedoch, dass viele andere Aspekte der raumbasierten Klangsimulation, die bereits in der Regel für Inhaltsersteller implementiert sind, vorhandenen Engines überlassen bleiben. Inhaltsersteller verwenden weiterhin die vorhandenen Spieltools und -prozesse, die sie zuvor für räumliche Hinweise wie Doppler, entfernungsbasierte Dämpfung und Filterung, Verdeckung und Obstruktion sowie Umgebungshall verwendet haben.
Zusätzliche Ressourcen
- GitHub-Repository für Microsoft Spatial Sound-Beispiele
- Dolby bietet eine Reihe von Supportressourcen in Bezug auf Dolby Atmos und die Dolby Access-App unter https://developer.dolby.com.
Räumliche Soundschnittstellen
Interface | 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 Renderdatenstroms für räumliche Audioobjekte 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 ISpatialAudioObjectRenderStream zu reagieren. |
Hinweis
Wenn Sie die ISpatialAudioClient-Schnittstellen in einem XDK-Titel (Xbox One Development Kit) verwenden, müssen Sie zuerst EnableSpatialAudio aufrufen, bevor Sie IMMDeviceEnumerator::EnumAudioEndpoints oder IMMDeviceEnumerator::GetDefaultAudioEndpoint aufrufen. Andernfalls wird ein E_NOINTERFACE Fehler vom Aufruf von Activate zurückgegeben. EnableSpatialAudio ist nur für XDK-Titel verfügbar und muss weder für Universelle Windows-Plattform Apps aufgerufen werden, die auf Xbox One ausgeführt werden, noch für Nicht-Xbox One-Geräte.
Räumliche Klangstrukturen
Struktur | BESCHREIBUNG |
---|---|
SpatialAudioObjectRenderStreamActivationParams | Stellt Aktivierungsparameter für einen räumlichen Audiorenderungsdatenstrom dar. |
SpatialAudioClientActivationParams | Stellt optionale Aktivierungsparameter für einen räumlichen Audiorenderungsstream dar. |
Räumliche Soundaufzählungen
Enumeration | Beschreibung |
---|---|
AudioObjectType | Gibt den Typ eines ISpatialAudioObject an. |