#include <revolution.h>
#include <revolution/axfx.h>
/*----------------------------------------------*
For mono, stereo, surround
*----------------------------------------------*/
typedef struct AXFX_BUS
{
s32 *left;
s32 *right;
s32 *surround;
} AXFX_BUS;
typedef struct AXFX_REVERBHI_EXP
{
// do not touch these!
f32 *earlyLine[3];
(omitted)
u32 active;
// user parameters
u32 earlyMode; // early reflection mode
f32 preDelayTimeMax; // max of pre delay time of fused reverb (sec)
f32 preDelayTime; // pre delay time of fused reverb (sec)
u32 fusedMode; // fused reverb mode
f32 fusedTime; // fused reverb time (sec)
f32 coloration; // coloration of all-pass filter (0.f - 1.f)
f32 damping; // damping of timbre (0.f - 1.f)
f32 crosstalk; // crosstalk of each channels
f32 earlyGain; // output gain of early reflection (0.f - 1.f)
f32 fusedGain; // output gain of fused reverb (0.f - 1.f)
AXFX_BUS *busIn;
AXFX_BUS *busOut;
f32 outGain;
f32 sendGain;
} AXFX_REVERBHI_EXP;
/*----------------------------------------------*
For Dolby Pro Logic II
*----------------------------------------------*/
typedef struct AXFX_BUS_DPL2
{
s32 *L;
s32 *R;
s32 *Ls;
s32 *Rs;
} AXFX_BUS_DPL2;
typedef struct AXFX_REVERBHI_EXP_DPL2
{
// do not touch these!
f32 *earlyLine[4];
(omitted)
u32 active;
// user parameters
u32 earlyMode; // early reflection mode
f32 preDelayTimeMax;// pre-delay max time of fused reverb (sec)
f32 preDelayTime; // pre-delay time of fused reverb (sec)
u32 fusedMode; // fused reverb mode
f32 fusedTime; // fused reverb time (sec)
f32 coloration; // coloration of all-pass filter (0.f-1.f)
f32 damping; // damping of timbre (0.f-1.f)
f32 crosstalk; // crosstalk of each channels
f32 earlyGain; // output gain of early reflection(0.f-1.f)
f32 fusedGain; // output gain of fused reverb (0.f-1.f)
AXFX_BUS_DPL2 *busIn;
AXFX_BUS_DPL2 *busOut;
f32 outGain;
f32 sendGain;
} AXFX_REVERBHI_EXP_DPL2;
earlyMode |
Mode of the initial reflected sound (Early Reflection). The modes that can be specified are listed below.
|
||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
preDelayTimeMax |
Maximum value of pre-delay for the end of reverberation (= maximum delay time until reflection begins). Specify a value of 0.0 or greater (units of sec). The memory to be used for pre-delay is allocated according to this value. | ||||||||||||||||
preDelayTime |
Pre-delay for the end of reverberation (= delay time until reverberation begins). Specify a value as 0.0 <= value <= preDelayTimeMax (in sec). |
||||||||||||||||
fusedMode |
Mode for the end of reverberation. The modes that can be specified are listed below.
|
||||||||||||||||
fusedTime |
The reverberation time for the end of reverberation. Specify a value of 0.0 or greater (units of sec). | ||||||||||||||||
coloration |
Tunes the coefficients of the all-pass filter. Specify a value as 0.0 <= value <= 1.0. This number is used to simulate the acoustic properties of sound-reflective walls. In general, the smaller this value becomes, the coarser the reverberation density. In the opposite way, as this value increases the reverberation becomes more dense, but waveform interference may cause the high frequencies to stand out. | ||||||||||||||||
damping |
Tunes the filter coefficient of the low-pass filter (LPF). Specify a value as 0.0 <= value <= 1.0. As this value approaches 0.0, the signal's low-frequency portion becomes its main content, and reverb begins to stand out. In the opposite way, as this value approaches 1.0, the high-frequency portion of the signal is passed with less attenuation, and reverb becomes less noticeable. | ||||||||||||||||
crosstalk |
Sets the amount of interaction between channels. Specify a value as 0.0 <= value <= 1.0. If crosstalk is set to 0.0, the reverberation does not seep into other channels at all, and any interaction among the channels is eliminated. Specifying a value larger than 0.0 will cause the reverberation to affect other channels. |
||||||||||||||||
earlyGain |
Mix gain of the initial reflected sound. Specify a value as 0.0 <= value <= 1.0. | ||||||||||||||||
fusedGain |
Mix gain for the end of reverberation. Specify a value as 0.0 <= value <= 1.0. | ||||||||||||||||
busIn |
Specifies the input buffer for effect bus sends. | ||||||||||||||||
busOut |
Specifies the output buffer for effect bus sends. | ||||||||||||||||
outGain |
Output gain. Specify a value as 0.0 <= value <= 1.0. | ||||||||||||||||
sendGain |
Send gain to the next-level effect bus. Specify a value as 0.0 <= value <= 1.0. |
When using the High-Quality Reverb Expansion, you must assign appropriate values to the various parameters of the AXFX_REVERBHI_EXP or AXFX_REVERBHI_EXP_DPL2 structure. The AXFX_REVERBHI_EXP structure is used normally, and the AXFX_REVERBHI_EXP_DPL2 structure is used with Dolby Pro Logic II.
2007/08/07 Initial version.
CONFIDENTIAL