Difference between revisions of "APU"
From xboxdevwiki
(→Voice Processor (VP)) |
(→Encode Processor (EP)) |
||
Line 11: | Line 11: | ||
== Encode Processor (EP) == | == Encode Processor (EP) == | ||
+ | |||
+ | The EP encodes the final AC3 stream for SPDIF. {{FIXME|reason=It might do more than just that; what does it do in analog mode for example?}} | ||
+ | It is not used during the [[Boot Animation]]. | ||
* EPS = EP Scratch (?) | * EPS = EP Scratch (?) |
Revision as of 10:50, 26 June 2017
The MCPX contains an APU (Audio Processing Unit).
- SSL = Stream Segment List
- SGE = Scatter Gather Entry
- PRD = Physical Resource Descriptor (Same thing as SGE?!)
Contents
Global Processor (GP)
- 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
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:
- Head-related transfer function
- Low-frequency oscillation
- Pitch
- Input type (8bit, 16bit, 24bit, ADPCM)
- Volume envelope
- 8 target bins, each with a custom volume for this voice
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