Copyright © 2001-2008 MultiMedia Soft 
Return to Table of contents  
 
GetDirectXEffectParams method 
 
Remarks 
 
Retrieves parameters related to the chosen effect. These parameters can be changed using the SetDirectXEffectParams method. 
 
DirectX effects requires the availability of DirectX version 8 or higher on the target system and can be applied only if the IsDirectX8Avail method returns TRUE. 
 
See the How to apply special effects to a playing sound section for further details. 
 
 
Syntax 
 
[Visual Basic] 
control.GetDirectXEffectParams
nPlayer as Integer
nEffect as enumDirectXEffects
pParamData as Long 
 
[C++] 
short control.GetDirectXEffectParams
short nPlayer
short nEffect
void *pParamData 
);
 
 
Parameter
Description
 
 
nPlayer
Number representing the zero-based index of the involved player
nEffect
Numeric value that determines the effect parameters to retrieve. 
Supported values are the following: 
Mnemonic constant
Value
Meaning
DX_CHORUS
0
Chorus
DX_COMPRESSOR
1
Compressor
DX_DISTORTION
2
Distortion
DX_ECHO
3
Echo
DX_FLANGER
4
Flanger
DX_GARGLE
5
Gargle
DX_I3DL2REVERB
6
I3DL2 environmental reverb
DX_PARAMEQ
7
Parametric equalizer
DX_REVERB
8
Reverb
pParamData
Address of a structure that receives the effect parameters: the passed structure must be directly related to the chosen effect as in the table below. 
 
NOTE: DirectX related data structures are usually defined inside the Platform SDK dsound.h header file. For Visual Basic users convenience, we have provided a DirectSound.bas module containing the definitions of these structures and some of the Mnemonic constant definitions that can be used inside your code: this module can be found inside the product Include directory (default C:\Program Files\Active DJ Studio\include). 
 
Effect
Related DirectX structure
DX_CHORUS
The DSFXChorus structure contains parameters for a chorus effect. 
 
typedef struct _DSFXChorus { 
 FLOAT   fWetDryMix
 FLOAT   fDepth
 FLOAT   fFeedback
 FLOAT   fFrequency
 LONG    lWaveform
 FLOAT   fDelay
 LONG    lPhase
} DSFXChorus, *LPDSFXChorus; 
 
fWetDryMix 
Ratio of wet (processed) signal to dry (unprocessed) signal. Must be in the range from DSFXCHORUS_WETDRYMIX_MIN through DSFXCHORUS_WETDRYMIX_MAX (all wet). The default value is 50. 
 
fDepth 
Percentage by which the delay time is modulated by the low-frequency oscillator, in hundredths of a percentage point. Must be in the range from DSFXCHORUS_DEPTH_MIN through DSFXCHORUS_DEPTH_MAX. The default value is 10. 
 
fFeedback 
Percentage of output signal to feed back into the effect's input, in the range from DSFXCHORUS_FEEDBACK_MIN to DSFXCHORUS_FEEDBACK_MAX. The default value is 25. 
 
fFrequency 
Frequency of the LFO, in the range from DSFXCHORUS_FREQUENCY_MIN to DSFXCHORUS_FREQUENCY_MAX. The default value is 1.1. 
 
lWaveform 
Waveform of the LFO. Defined values are DSFXCHORUS_WAVE_TRIANGLE and DSFXCHORUS_WAVE_SIN. By default, the waveform is a sine.  
 
fDelay 
Number of milliseconds the input is delayed before it is played back, in the range from DSFXCHORUS_DELAY_MIN to DSFXCHORUS_DELAY_MAX. The default value is 16 ms. 
 
lPhase 
Phase differential between left and right LFOs, in the range from DSFXCHORUS_PHASE_MIN through DSFXCHORUS_PHASE_MAX. Possible values are defined as follows. 
Value  
DSFXCHORUS_PHASE_NEG_180  
DSFXCHORUS_PHASE_NEG_90  
DSFXCHORUS_PHASE_ZERO  
DSFXCHORUS_PHASE_90  
DSFXCHORUS_PHASE_180  
DX_COMPRESSOR
The DSFXCompressor structure contains parameters for a compression effect. 
 
typedef struct _DSFXCompressor { 
 FLOAT  fGain
 FLOAT  fAttack
 FLOAT  fRelease
 FLOAT  fThreshold
 FLOAT  fRatio
 FLOAT  fPredelay
} DSFXCompressor, *LPDSFXCompressor; 
 
fGain 
Output gain of signal after compression, in the range from DSFXCOMPRESSOR_GAIN_MIN to DSFXCOMPRESSOR_GAIN_MAX. The default value is 0 dB. 
 
fAttack 
Time before compression reaches its full value, in the range from DSFXCOMPRESSOR_ATTACK_MIN to DSFXCOMPRESSOR_ATTACK_MAX. The default value is 10 ms. 
 
fRelease 
Speed at which compression is stopped after input drops below fThreshold, in the range from DSFXCOMPRESSOR_RELEASE_MIN to DSFXCOMPRESSOR_RELEASE_MAX. The default value is 200 ms. 
 
fThreshold 
Point at which compression begins, in decibels, in the range from DSFXCOMPRESSOR_THRESHOLD_MIN to DSFXCOMPRESSOR_THRESHOLD_MAX. The default value is -20 dB. 
 
fRatio 
Compression ratio, in the range from DSFXCOMPRESSOR_RATIO_MIN to DSFXCOMPRESSOR_RATIO_MAX. The default value is 3, which means 3:1 compression. 
 
fPredelay 
Time after lThreshold is reached before attack phase is started, in milliseconds, in the range from DSFXCOMPRESSOR_PREDELAY_MIN to DSFXCOMPRESSOR_PREDELAY_MAX. The default value is 4 ms. 
DX_DISTORTION
The DSFXDistortion structure contains parameters for a distortion effect. 
 
typedef struct _DSFXDistortion { 
 FLOAT  fGain
 FLOAT  fEdge
 FLOAT  fPostEQCenterFrequency
 FLOAT  fPostEQBandwidth
 FLOAT  fPreLowpassCutoff
} DSFXDistortion, *LPDSFXDistortion; 
 
fGain 
Amount of signal change after distortion, in the range from DSFXDISTORTION_GAIN_MIN through DSFXDISTORTION_GAIN_MAX. The default value is -18 dB. 
 
fEdge 
Percentage of distortion intensity, in the range  in the range from DSFXDISTORTION_EDGE_MIN through DSFXDISTORTION_EDGE_MAX. The default value is 15 percent. 
 
fPostEQCenterFrequency 
Center frequency of harmonic content addition, in the range from DSFXDISTORTION_POSTEQCENTERFREQUENCY_MIN through DSFXDISTORTION_POSTEQCENTERFREQUENCY_MAX. The default value is 2400 Hz. 
 
fPostEQBandwidth 
Width of frequency band that determines range of harmonic content addition, in the range from DSFXDISTORTION_POSTEQBANDWIDTH_MIN through DSFXDISTORTION_POSTEQBANDWIDTH_MAX. The default value is 2400 Hz. 
 
fPreLowpassCutoff 
Filter cutoff for high-frequency harmonics attenuation, in the range from DSFXDISTORTION_PRELOWPASSCUTOFF_MIN through DSFXDISTORTION_PRELOWPASSCUTOFF_MAX. The default value is 8000 Hz. 
DX_ECHO
The DSFXEcho structure contains parameters for an echo effect. 
 
typedef struct _DSFXEcho { 
 FLOAT  fWetDryMix
 FLOAT  fFeedback
 FLOAT  fLeftDelay
 FLOAT  fRightDelay
 LONG   lPanDelay
} DSFXEcho, *LPDSFXEcho; 
 
fWetDryMix 
Ratio of wet (processed) signal to dry (unprocessed) signal. Must be in the range from DSFXECHO_WETDRYMIX_MIN through DSFXECHO_WETDRYMIX_MAX (all wet). The default value is 50.  
 
fFeedback 
Percentage of output fed back into input, in the range from DSFXECHO_FEEDBACK_MIN through DSFXECHO_FEEDBACK_MAX. The default value is 50. 
 
fLeftDelay 
Delay for left channel, in milliseconds, in the range from DSFXECHO_LEFTDELAY_MIN through DSFXECHO_LEFTDELAY_MAX. The default value is 500 ms. 
 
fRightDelay 
Delay for right channel, in milliseconds, in the range from DSFXECHO_RIGHTDELAY_MIN through DSFXECHO_RIGHTDELAY_MAX. The default value is 500 ms. 
 
lPanDelay 
Value that specifies whether to swap left and right delays with each successive echo. The default value is zero, meaning no swap. Possible values are defined as DSFXECHO_PANDELAY_MIN (equivalent to FALSE) and DSFXECHO_PANDELAY_MAX (equivalent to TRUE). 
DX_FLANGER
The DSFXFlanger structure contains parameters for a flange effect. 
 
typedef struct _DSFXFlanger { 
 FLOAT  fWetDryMix
 FLOAT  fDepth
 FLOAT  fFeedback
 FLOAT  fFrequency
 LONG   lWaveform
 FLOAT  fDelay
 LONG   lPhase
} DSFXFlanger, *LPDSFXFlanger; 
 
fWetDryMix 
Ratio of wet (processed) signal to dry (unprocessed) signal. Must be in the range from DSFXFLANGER_WETDRYMIX_MIN through DSFXFLANGER_WETDRYMIX_MAX (all wet). The default value is 50. 
 
fDepth 
Percentage by which the delay time is modulated by the low-frequency oscillator (LFO), in hundredths of a percentage point. Must be in the range from DSFXFLANGER_DEPTH_MIN through DSFXFLANGER_DEPTH_MAX. The default value is 100. 
 
fFeedback 
Percentage of output signal to feed back into the effect's input, in the range from DSFXFLANGER_FEEDBACK_MIN to DSFXFLANGER_FEEDBACK_MAX. The default value is -50. 
 
fFrequency 
Frequency of the LFO, in the range from DSFXFLANGER_FREQUENCY_MIN to DSFXFLANGER_FREQUENCY_MAX. The default value is 0.25. 
 
lWaveform 
Waveform of the LFO. By default, the waveform is a sine. Possible values are the following. 
- DSFXFLANGER_WAVE_TRIANGLE 
- DSFXFLANGER_WAVE_SIN 
 
fDelay 
Number of milliseconds the input is delayed before it is played back, in the range from DSFXFLANGER_DELAY_MIN to DSFXFLANGER_DELAY_MAX. The default value is 2 ms. 
 
lPhase 
Phase differential between left and right LFOs, in the range from DSFXFLANGER_PHASE_MIN through DSFXFLANGER_PHASE_MAX. Possible values are the following: 
- DSFXFLANGER_PHASE_NEG_180  
- DSFXFLANGER_PHASE_NEG_90  
- DSFXFLANGER_PHASE_ZERO  
- DSFXFLANGER_PHASE_90  
- DSFXFLANGER_PHASE_180  
The default value is DSFXFLANGER_PHASE_ZERO. 
DX_GARGLE
The DSFXGargle structure contains parameters for an amplitude modulation effect. 
 
typedef struct _DSFXGargle { 
 DWORD  dwRateHz
 DWORD  dwWaveShape
} DSFXGargle, *LPDSFXGargle; 
 
dwRateHz 
Rate of modulation, in Hertz. Must be in the range from DSFXGARGLE_RATEHZ_MIN through DSFXGARGLE_RATEHZ_MAX. The default value is 20. 
 
dwWaveShape 
Shape of the modulation wave. The following values are defined: 
DSFXGARGLE_WAVE_TRIANGLE 
DSFXGARGLE_WAVE_SQUARE 
The default value is DSFXGARGLE_WAVE_TRIANGLE. 
DX_I3DL2REVERB
The DSFXI3DL2Reverb structure contains parameters for an I3DL2 (Interactive 3D Audio Level 2) reverberation effect. 
 
typedef struct _DSFXI3DL2Reverb { 
 LONG  lRoom
 LONG  lRoomHF;  
 FLOAT flRoomRolloffFactor
 FLOAT flDecayTime
 FLOAT flDecayHFRatio
 LONG  lReflections
 FLOAT flReflectionsDelay
 LONG  lReverb
 FLOAT flReverbDelay;  
 FLOAT flDiffusion
 FLOAT flDensity
 FLOAT flHFReference
} DSFXI3DL2Reverb, *LPDSFXI3DL2Reverb; 
 
lRoom 
Attenuation of the room effect, in millibels (mB), in the range from DSFX_I3DL2REVERB_ROOM_MIN to DSFX_I3DL2REVERB_ROOM_MAX. The default value is DSFX_I3DL2REVERB_ROOM_DEFAULT, or -1000 mB. 
 
lRoomHF 
Attenuation of the room high-frequency effect, in mB, in the range from DSFX_I3DL2REVERB_ROOMHF_MIN to DSFX_I3DL2REVERB_ROOMHF_MAX. The default value is DSFX_I3DL2REVERB_ROOMHF_DEFAULT, or -100 mB. 
 
flRoomRolloffFactor 
Rolloff factor for the reflected signals, in the range from DSFX_I3DL2REVERB_ROOMROLLOFFFACTOR_MIN to DSFX_I3DL2REVERB_ROOMROLLOFFFACTOR_MAX. The default value is DSFX_I3DL2REVERB_ROOMROLLOFFFACTOR_DEFAULT, or 0.0. The rolloff factor for the direct path is controlled by the DirectSound listener. 
 
flDecayTime 
Decay time, in seconds, in the range from DSFX_I3DL2REVERB_DECAYTIME_MIN to DSFX_I3DL2REVERB_DECAYTIME_MAX. The default value is DSFX_I3DL2REVERB_DECAYTIME_DEFAULT, or 1.49 second. 
 
flDecayHFRatio 
Ratio of the decay time at high frequencies to the decay time at low frequencies, in the range from DSFX_I3DL2REVERB_DECAYHFRATIO_MIN to DSFX_I3DL2REVERB_DECAYHFRATIO_MAX. The default value is DSFX_I3DL2REVERB_DECAYHFRATIO_DEFAULT, or 0.83. 
 
lReflections 
Attenuation of early reflections relative to lRoom, in mB, in the range from DSFX_I3DL2REVERB_REFLECTIONS_MIN to DSFX_I3DL2REVERB_REFLECTIONS_MAX. The default value is DSFX_I3DL2REVERB_REFLECTIONS_DEFAULT, or -2602 mB. 
 
flReflectionsDelay 
Delay time of the first reflection relative to the direct path, in seconds, in the range from DSFX_I3DL2REVERB_REFLECTIONSDELAY_MIN to DSFX_I3DL2REVERB_REFLECTIONSDELAY_DEFAULT. The default value is 0.007 seconds. 
 
lReverb 
Attenuation of late reverberation relative to lRoom, in mB, in the range -from DSFX_I3DL2REVERB_REVERB_MIN to DSFX_I3DL2REVERB_REVERB_MAX. The default value is DSFX_I3DL2REVERB_REVERB_DEFAULT, or 200 mB. 
 
flReverbDelay 
Time limit between the early reflections and the late reverberation relative to the time of the first reflection, in seconds, in the range from DSFX_I3DL2REVERB_REVERBDELAY_MIN to DSFX_I3DL2REVERB_REVERBDELAY_MAX. The default value is DSFX_I3DL2REVERB_REVERBDELAY_DEFAULT, or 0.011 seconds. 
 
flDiffusion 
Echo density in the late reverberation decay, in percent, in the range from DSFX_I3DL2REVERB_DIFFUSION_MIN to DSFX_I3DL2REVERB_DIFFUSION_MAX. The default value is DSFX_I3DL2REVERB_DIFFUSION_DEFAULT, or 100.0 percent. 
 
flDensity 
Modal density in the late reverberation decay, in percent, in the range from DSFX_I3DL2REVERB_DENSITY_MIN to DSFX_I3DL2REVERB_DENSITY_MAX. The default value is DSFX_I3DL2REVERB_DENSITY_DEFAULT, or 100.0 percent. 
 
flHFReference 
Reference high frequency, in hertz, in the range from DSFX_I3DL2REVERB_HFREFERENCE_MIN to DSFX_I3DL2REVERB_HFREFERENCE_MAX. The default value is DSFX_I3DL2REVERB_HFREFERENCE_DEFAULT, or 5000.0 Hz. 
DX_PARAMEQ
The DSFXParamEq structure contains parameters for a parametric equalizer effect. 
 
typedef struct _DSFXParamEq { 
 FLOAT  fCenter
 FLOAT  fBandwidth
 FLOAT  fGain
} DSFXParamEq, *LPDSFXParamEq; 
 
fCenter 
Center frequency, in hertz, in the range from DSFXPARAMEQ_CENTER_MIN to DSFXPARAMEQ_CENTER_MAX. This value cannot exceed one-third of the frequency of the buffer. The default value is 8000. 
 
fBandwidth 
Bandwidth, in semitones, in the range from DSFXPARAMEQ_BANDWIDTH_MIN to DSFXPARAMEQ_BANDWIDTH_MAX. The default value is 12. 
 
fGain 
Gain, in the range from DSFXPARAMEQ_GAIN_MIN to DSFXPARAMEQ_GAIN_MAX. The default value is 0. 
DX_REVERB
The DSFXWavesReverb structure contains parameters for a Waves reverberation effect. 
 
typedef struct _DSFXWavesReverb { 
 FLOAT  fInGain;  
 FLOAT  fReverbMix
 FLOAT  fReverbTime
 FLOAT  fHighFreqRTRatio
} DSFXWavesReverb, *LPDSFXWavesReverb; 
 
fInGain 
Input gain of signal, in decibels (dB), in the range from DSFX_WAVESREVERB_INGAIN_MIN through DSFX_WAVESREVERB_INGAIN_MAX. The default value is DSFX_WAVESREVERB_INGAIN_DEFAULT, or 0 dB. 
 
fReverbMix 
Reverb mix, in dB, in the range from DSFX_WAVESREVERB_REVERBMIX_MIN through DSFX_WAVESREVERB_REVERBMIX_MAX. The default value is DSFX_WAVESREVERB_REVERBMIX_DEFAULT, or 0 dB. 
 
fReverbTime 
Reverb time, in milliseconds, in the range from DSFX_WAVESREVERB_REVERBTIME_MIN through DSFX_WAVESREVERB_REVERBTIME_MAX. The default value is DSFX_WAVESREVERB_REVERBTIME_DEFAULT, or 1000. 
 
fHighFreqRTRatio 
In the range from DSFX_WAVESREVERB_HIGHFREQRTRATIO_MIN through DSFX_WAVESREVERB_HIGHFREQRTRATIO_MAX. The default value is DSFX_WAVESREVERB_HIGHFREQRTRATIO_DEFAULT, or 0.001. 
 
 
Return value 
 
Value
Meaning
 
 
enumErrorCodes.NOERROR (0)
The call was successful.
Negative value
An error occurred: see the LastError property for further error details or for a list of the possible error values.
 
 
 
 
 
 
 
 
 
 
 
 
 
Copyright © 2001-2008 MultiMedia Soft 
Return to Table of contents