typedef struct _AXPBMIX { u16 vL; // volume left u16 vDeltaL; // volume ramp left u16 vR; // volume right u16 vDeltaR; // volume ramp right u16 vAuxAL; // volume AUX A left u16 vDeltaAuxAL; // volume ramp AUX A left u16 vAuxAR; // volume AUX A right u16 vDeltaAuxAR; // volume ramp AUX A right u16 vAuxBL; // volume AUX B left u16 vDeltaAuxBL; // volume ramp AUX B left u16 vAuxBR; // volume AUX B right u16 vDeltaAuxBR; // volume ramp AUX B right u16 vAuxCL; // volume AUX C left u16 vDeltaAuxCL; // volume ramp AUX C left u16 vAuxCR; // volume AUX C right u16 vDeltaAuxCR; // volume ramp AUX C right u16 vS; // volume surround u16 vDeltaS; // volume ramp surround u16 vAuxAS; // volume AUX A surround u16 vDeltaAuxAS; // volume ramp AUX A surround u16 vAuxBS; // volume AUX B surround u16 vDeltaAuxBS; // volume ramp AUX B surround u16 vAuxCS; // volume AUX C surround u16 vDeltaAuxCS; // volume ramp AUX C surround } AXPBMIX;
These values specify the mixing parameters for each of the 12 channels in a given voice. Volume is expressed as a 16-bit, fixed-point number (most significant bit for the integer, 15 bits of fraction).
Note: The axvpb.pb.mixerCtrl value must also be initialized correctly in order to apply these values.
Note: The DSP does not clamp volume-ramp computations. Your audio application is responsible for ensuring that the computation remains within bounds.
In AX_MODE_DPL2 mode, AXPBMIX is used as follows:
// Note: In DPL2, AuxC bus is not supported.
u16 vL; // volume left
u16 vDeltaL; // volume ramp left
u16 vR; // volume right
u16 vDeltaR; // volume ramp right
u16 vAuxAL; // volume AUX A left
u16 vDeltaAuxAL; // volume ramp AUX A left
u16 vAuxAR; // volume AUX A right
u16 vDeltaAuxAR; // volume ramp AUX A right
u16 vAuxBL; // volume AUX B left
u16 vDeltaAuxBL; // volume ramp AUX B left
u16 vAuxBR; // volume AUX B right
u16 vDeltaAuxBR; // volume ramp AUX B right
u16 vAuxCL; // volume right surround
u16 vDeltaAuxCL; // volume ramp right surround
u16 vAuxCR; // volume Aux A right surround
u16 vDeltaAuxCR; // volume ramp Aux A right surround
u16 vS; // volume left surround
u16 vDeltaS; // volume ramp left surround
u16 vAuxAS; // volume AUX A left surround
u16 vDeltaAuxAS; // volume ramp left AUX A surround
u16 vAuxBS; // volume AUX B left surround
u16 vDeltaAuxBS; // volume ramp AUX B left surround
u16 vAuxCS; // volume AUX B right surround
u16 vDeltaAuxCS; // volume ramp AUX B right surround
The user must assert the AX_SYNC_USER_MIX bit in the axvpb.sync member, when any of the above values have changed.
axvpb.sync
axvpb.pb.mixerCtrl
AXSetVoiceMix
03/01/2006 Initial version.