xaudio2: audio building blocks for the future brian schmidt program manager xna professional game...

29

Upload: colt-born

Post on 31-Mar-2015

224 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: XAudio2: Audio Building Blocks for the Future Brian Schmidt Program Manager XNA Professional Game Platform Microsoft
Page 2: XAudio2: Audio Building Blocks for the Future Brian Schmidt Program Manager XNA Professional Game Platform Microsoft

XAudio2: Audio Building Blocks for the FutureBrian SchmidtProgram ManagerXNA Professional Game PlatformMicrosoft

Author
See if you can get a bit of dsound vs xaudio 2 code sample
Page 3: XAudio2: Audio Building Blocks for the Future Brian Schmidt Program Manager XNA Professional Game Platform Microsoft

Game Audio Pipelines

DirectSound

Core AudioXMA Hardware andXbox 360 System

XAudio

Windows(Vista, XP)

Xbox 360

WaveData

WaveData

Page 4: XAudio2: Audio Building Blocks for the Future Brian Schmidt Program Manager XNA Professional Game Platform Microsoft

Game Audio Pipelines

DirectSound

Core AudioXMA Hardware andXbox 360 System

XAudio

XACT Runtime

XACT Runtime

XACT Content

XACT Content

Windows(Vista, XP)

Xbox 360

WaveData

WaveData

Page 5: XAudio2: Audio Building Blocks for the Future Brian Schmidt Program Manager XNA Professional Game Platform Microsoft

Game Audio Pipelines

XAudio 2

Core AudioXMA Hardware andXbox 360 System

XAudio 2

XACT Runtime

XACT Runtime

XACT Content

XACT Content

Windows(Vista, XP)

Xbox 360

WaveData

WaveData

Author
Add "Game" to this diagram (if you decide not to go with the updated look)
Page 6: XAudio2: Audio Building Blocks for the Future Brian Schmidt Program Manager XNA Professional Game Platform Microsoft

XAudio2

XAudio 2

Core AudioXMA Hardware andXbox 360 System

XAudio 2

XACT Runtime

XACT Runtime

XACT Content

XACT Content

Windows(Vista, XP)

Xbox 360

WaveData

WaveData

Page 7: XAudio2: Audio Building Blocks for the Future Brian Schmidt Program Manager XNA Professional Game Platform Microsoft

(XACT 3)(XACT 3)

Xbox 360 GameXbox 360 Game

XAudio2XAudio2

Xbox 360 Audio Output HardwareXbox 360 Audio Output Hardware

(XACT 3)(XACT 3)

Windows GameWindows Game

XAudio2XAudio2

WASAPI (Vista)/DirectSound (XP)WASAPI (Vista)/DirectSound (XP)XMA DecoderXMA Decoder

Drivers/Audio Output HardwareDrivers/Audio Output Hardware

Page 8: XAudio2: Audio Building Blocks for the Future Brian Schmidt Program Manager XNA Professional Game Platform Microsoft

Bit of History…

1995: DirectSound released“Bleeding Edge” CPU:

Pentium, 133 MHz (no MMX)

DirectSound3D API introduced (1997)ISA sound cards w/ on-board memory“wave file is a sound”

Page 9: XAudio2: Audio Building Blocks for the Future Brian Schmidt Program Manager XNA Professional Game Platform Microsoft

Fast Forward to 2008

Multicore, 3+ GHz CPUsHD motherboard audio

Surround SoundHigh fidelity

SIMD floating-point architecturesHigh-level audio toolsComplex sounds and processing

Page 10: XAudio2: Audio Building Blocks for the Future Brian Schmidt Program Manager XNA Professional Game Platform Microsoft

XAudio2 is…A new API for code-driven, low-level audio processing for games

Replacement for DirectSound for gaming applications for Windows XP and Windows VistaReplacement for XAudio for Xbox 360 games

Based on Xbox 360 XAudio architectureXAudio2 API will be familiar to XAudio developer, but not just a recompileIncorporates feedback on XAudio API

Page 11: XAudio2: Audio Building Blocks for the Future Brian Schmidt Program Manager XNA Professional Game Platform Microsoft

XAudio2 Design GoalsFocus exclusively on game scenariosSimple – Just a few methods cover basic scenarios

Greater emphasis on digital signal processing (DSP FX)

Write and integrate your own DSP FX easilySubmixing

Allow more flexibility for 3DSupport Microsoft gaming platforms

Page 12: XAudio2: Audio Building Blocks for the Future Brian Schmidt Program Manager XNA Professional Game Platform Microsoft

XAudio2 FeaturesSeparation of sound data from “voice”

Point XAudio2 at some sound data and Play()

SubmixingMultirate processingArbitrary loop pointPer-voice filteringProgrammable voices

Effects processing, SRCSoftware DSPEnhanced Surround Sound supportNative Compressed Data Support

XMA on Xbox 360xWMA on Windows and Xbox 360ADPCM on WindowsExtensible

Page 13: XAudio2: Audio Building Blocks for the Future Brian Schmidt Program Manager XNA Professional Game Platform Microsoft

XAudio2 ComponentsSource Voice

Reads data from XMA decoder /ADPCM or PCM xWMASample Rate Conversion, Volume, loop, N-way PanCan insert arbitrary FXMultichannel support

Submix Voice(s)Input from one or more voices & submixes them togetherN-way PanCan insert arbitrary FXCan send to additional submix voices

Mastering VoiceTakes final N channel mix as inputCan insert arbitrary FX (compression, etc.)Outputs data to system

Author
split me into slides..
Page 14: XAudio2: Audio Building Blocks for the Future Brian Schmidt Program Manager XNA Professional Game Platform Microsoft

XAudio2 Overall Architecture

Source Voice

N channel

MIXBuffers

Mastering Voice Output DeviceSubmixVoice

Source Voice

Source Voice

Source Voice

Memory

Page 15: XAudio2: Audio Building Blocks for the Future Brian Schmidt Program Manager XNA Professional Game Platform Microsoft

XAudio2 Source VoiceSource Voice

SRC FX1 PannerFXN

XMA/ADPCMPCM

MemoryTo MIX buffers

Or submix voice

FX PannerFX

From Source or Submix

VoiceTo MIX Buffers

(or submix voice)

+ (SRC)

XAudio2 Submix Voice

Page 16: XAudio2: Audio Building Blocks for the Future Brian Schmidt Program Manager XNA Professional Game Platform Microsoft

Submix Voices

Useful for summing sounds and applying single DSP and/or 3D panning on the aggregate mixAlso used for shared “send to” effects

Reverb, etc.

Can be used to reduce CPU usage by creating a “low rate submix”

Page 17: XAudio2: Audio Building Blocks for the Future Brian Schmidt Program Manager XNA Professional Game Platform Microsoft

Source Voice

N channel

MIXBuffers

Mastering VoiceN Channel Mix to

EncoderSubmixVoice

Source Voice

Source Voice

Source Voice

Memory

Example: Submixing Voices

Page 18: XAudio2: Audio Building Blocks for the Future Brian Schmidt Program Manager XNA Professional Game Platform Microsoft

Mastering VoiceMastering Voice

Submix Voice withGlobal Reverb

Submix Voice withGlobal Reverb

Submix VoiceSubmix Voice

Source VoiceSource Voice

Source VoiceSource Voice

Source VoiceSource Voice

Example: Reverb Sends

Page 19: XAudio2: Audio Building Blocks for the Future Brian Schmidt Program Manager XNA Professional Game Platform Microsoft

Example: Low Rate Submix

Music48kHz

Mastering Voice48kHz

SFX Submix22kHz

Music48kHz

SFXMemory

SFX

SFX

SFX

Dialog

Page 20: XAudio2: Audio Building Blocks for the Future Brian Schmidt Program Manager XNA Professional Game Platform Microsoft

3D/Surround Sound3D Audio handled differently from DirectSound3DXAudio2 provides enhanced Surround support

Explicit multichannel panning/mapping

3D handled as a separate, replaceable library

XAudio2 takes multichannel speaker volumesX3DAudio library transforms source/listener coordinates into speaker volumes and other synthesis parameters

Author
Add a slide and a diagram about X3DAudio details
Page 21: XAudio2: Audio Building Blocks for the Future Brian Schmidt Program Manager XNA Professional Game Platform Microsoft

-5.1 Speaker Volumes-DSP Data-Intermediate calculations

-5.1 Speaker Volumes-DSP Data

Game Object Geometry Data

Game EngineGame Engine

XAudio2XAudio2

X3DAudioX3DAudio

Page 22: XAudio2: Audio Building Blocks for the Future Brian Schmidt Program Manager XNA Professional Game Platform Microsoft

DSP Audio Effects

XAudio2 uses new cross-platform DSP model, xAPO (Audio Processing Object)Simplification of APO model used for Windows Vista system effectsCan use supplied xAPOs or write your own

Page 23: XAudio2: Audio Building Blocks for the Future Brian Schmidt Program Manager XNA Professional Game Platform Microsoft

XAudio 2 DemoXAudio 2 Demo

Page 24: XAudio2: Audio Building Blocks for the Future Brian Schmidt Program Manager XNA Professional Game Platform Microsoft

Additional Enhancements Beyond Xbox 360 XAudio APIBuilt-in filter per voice

Can set overall sampling rateSubmixes can have their own sampling rate

Reduce CPU usage

Non-blocking APIDeferred commandsNot limited to 6-channel source dataImproved DSP architecture

Page 25: XAudio2: Audio Building Blocks for the Future Brian Schmidt Program Manager XNA Professional Game Platform Microsoft

Libraries Built on XAudio2Several libraries are built on top of XAudio2These are updated as well

Follow same Beta/RTM schedule

XACT 3XACT running on XAudio2Windows and Xbox

XMedia2 (XMV)Xbox 360 movie player running on XAudio2

XHV2Xbox 360 voice library running on XAudio2

Author
Make it more clear that Xmedia and xhv are Xbox 360 only.
Page 26: XAudio2: Audio Building Blocks for the Future Brian Schmidt Program Manager XNA Professional Game Platform Microsoft

Release Schedule

XAudio2 is available nowBeta/Unapproved in November SDK/XDK

RTM/Approved in March 2008Update in June 2008 SDK/XDK

Page 27: XAudio2: Audio Building Blocks for the Future Brian Schmidt Program Manager XNA Professional Game Platform Microsoft

SummaryXAudio2 provides all-software audio pipeline for Windows and Xbox 360

Provides consistent experience across hardware configurations

Based on Xbox 360 XAudio API, with enhancementsAddresses long-standing issues with DirectSound

Buffer/Data/AllocationsFlexible DSP, submixing, signal processing

Cross-pollination of Xbox 360 and Windows Technologies

Page 28: XAudio2: Audio Building Blocks for the Future Brian Schmidt Program Manager XNA Professional Game Platform Microsoft

Call to action

Windows GamesMove your DirectSound game to XAudio2

Xbox 360 GamesMove your XAudio game to XAudio2

Everybody!Please give us feedbackUse connect.microsoft.com for status, newsgroups, etc.

Page 29: XAudio2: Audio Building Blocks for the Future Brian Schmidt Program Manager XNA Professional Game Platform Microsoft

© 2008 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

http://www.xna.com