Difference between revisions of "APU"

From xboxdevwiki
Jump to: navigation, search
(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?!)

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:

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

Related