APU

From xboxdevwiki
Revision as of 10:52, 26 June 2017 by JayFoxRox (talk | contribs) (More logical order (VP -> GP -> EP))
Jump to: navigation, search

The MCPX contains an APU (Audio Processing Unit).

  • SSL = Stream Segment List
  • SGE = Scatter Gather Entry
  • PRD = Physical Resource Descriptor (Same thing as SGE?!)

Voice Processor (VP)

A powerful voice processor. There can be up to 256 voices[citation needed] and 64[citation needed] of those can be 3D.

Per-voice settings:

There are 32 bins which these voices will be mixed into.

Memory sections

  • VPV = VP Voices
  • VPHT = VP HRTF Target
  • VPHC = VP HRTF Current
  • VPSGE = VP SGEs
  • VPSSL = VP SSLs

Voice lists

The voices are kept in a single-linked list. There are 3 voice lists:

  • 2D
  • 3D
  • MP (Multipass?)

Voice structure

This is 0x80 bytes

Pitch calculation

The 16 bit signed pitch value (p) can be converted to and from a unsigned frequency in Hz (f) using the following formulas:

p = 4096 * log2(f / 48000)
f = pow2(p / 4096) * 48000

Global Processor (GP)

The GP runs all enabled sound effects on the voice bins. DirectSound allows to load custom DSP code for these effects.

  • GPS = GP Scratch (?)
  • GPF = GP FIFO

Encode Processor (EP)

The EP encodes the final AC3 stream for SPDIF. [FIXME] It is not used during the Boot Animation.

  • EPS = EP Scratch (?)
  • EPF = EP FIFO

Related