Windows Sonic audio support allows you to add Dolby Atmos for Home Theater, Dolby Atmos for Headphones, and Windows HRTF support to your streaming media application or game.
Windows Sonic audio includes both rendering of elevation cues to speaker systems that support these (e.g. Dolby Atmos receivers) and psychoacoustic processing for spatialization on headphones (e.g. Microsoft HRTF technologies, originally developed by HoloLens). On the Xbox One family of consoles, these technologies are hardware accelerated; on Windows they scale based on the capabilities of individual formats and PC capabilities. Rendering engines and audio middleware will typically leverage the ISpatialAudioClient (ISAC) API directly, while many titles will leverage spatial capabilities via DSP plug-ins to the audio engines that they already use today.
ISpatialAudioClient is a spatial audio sink, abstracting spatial audio formats (such as height speakers or psychoacoustic headphone encoding) from the concept of positioned sound objects (managed by game). ISAC supports dynamic end-user specified switching between output/encode formats, a Virtual Surround Sound (VSS) down-mix fallback when spatial output is not available, and simultaneous playback of multiple spatial and non-spatial (such as WASAPI) clients. ISAC will typically be accessed by titles as a wrapped audio middleware plug-in, though titles that implement their own audio rendering engines may use it directly.
Windows Sonic is enabled on the Xbox by calling the EnableSpatialAudio API.
Note EnableSpatialAudio must be called before enumerating any audio endpoint. If this function is called after any device enumeration happens (e.g. CDeviceEnumerator::EnumAudioEndpoints() or CDeviceEnumerator::GetDefaultAudioEndpoint()), the call will fail with E_UNEXPECTED.
The following table outlines the Windows Sonic audio capabilities and support specifications.
| Feature | Capability / Support |
|---|---|
| Operating systems | Xbox One family (Xbox One, Xbox One S, Xbox One X), Windows 10 (Win32 desktop, Universal Windows Platform [UWP]) |
| Audio output formats | Dolby Atmos (speakers, headphones), Microsoft HRTF (headphones) |
| Audio input formats | Mono channels/objects, fixed at 48 KHz float (audio engines may sample rate convert from other formats at input) |
| Sound object formats | Flexible channel bed (up to 7.1.4), plus multiple dynamic spatial audio objects |
| Spatial audio object capacity | Dolby Atmos: 32 (includes 7.1.4 bed plus 20 dynamic objects) Microsoft HRTF: >=32 (includes optional 7.1.4 bed plus >=20 dynamic objects up to system’s resource capacity) |
| Downmix behavior | When spatial audio isn’t available (e.g. stereo TV), channel bed is VSS downmixed and 0 available dynamic objects reported to title |
| CPU cost | Windows 10: TBD; Xbox One family: Hardware-accelerated encode for Dolby Atmos and MS HRTF Depending on audio processing/custom DSP effect use, other CPU use may increase (e.g. transition from a stereo to 7.1.4 reverb) |
| Storage/file I/O cost | For pre-rendered cutscenes, 7.1.4 assets likely to be larger than prior 5.1/7.1 assets |
The following table outlines the studio hardware recommendations.
| Device | Capability / Support |
|---|---|
| Audio Receiver | Dolby Atmos-capable receiver (or soundbar) supporting at least 5.1.2, but preferably 7.1.4 channel output |
| Speakers | 5.1.2 or 7.1.4 speakers (or integrated with receiver in sound bar) |
| Headphones | Any stereo headphones (spatialization occurs in software) |
| Digital Audio Workstation | Elevation channels and height panners (for authoring linear/pre-rendered audio content) |
ISpatialAudioObjectForHrtf interface
ISpatialAudioObjectRenderStream interface