Difference between revisions of "APU"
From xboxdevwiki
(→Encode Processor (EP)) |
(→Voice Processor (VP)) |
||
Line 16: | Line 16: | ||
== Voice Processor (VP) == | == 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: | ||
+ | * [[wikipedia:Head-related transfer function|Head-related transfer function]] | ||
+ | * [[wikipedia:Low-frequency oscillation|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 | * VPV = VP Voices | ||
+ | * VPHT = VP HRTF Target | ||
+ | * VPHC = VP HRTF Current | ||
* VPSGE = VP SGEs | * VPSGE = VP SGEs | ||
* VPSSL = VP SSLs | * VPSSL = VP SSLs | ||
=== Voice lists === | === Voice lists === | ||
+ | |||
+ | The voices are kept in a single-linked list. There are 3 voice lists: | ||
* 2D | * 2D | ||
* 3D | * 3D | ||
− | * MP | + | * MP (Multipass?) |
=== Voice structure === | === Voice structure === | ||
Line 32: | Line 50: | ||
==== Pitch calculation ==== | ==== 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: | ||
<pre> | <pre> |
Revision as of 10:48, 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)
- 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