Used with BASS_FXGetParameters and BASS_FXSetParameters to retrieve and set the parameters of a volume level effect.

typedef struct {
    float fTarget;
    float fCurrent;
    float fTime;
    DWORD lCurve;


fTargetThe new volume level... 0 = silent, 1.0 = normal, above 1.0 = amplification. The default value is 1.
fCurrentThe current volume level... -1 = leave existing current level when setting parameters. The default value is 1.
fTimeThe time to take to transition from the current level to the new level, in seconds. The default value is 0.
lCurveThe curve to use in the transition... 0 = linear, 1 = logarithmic. The default value is 0.


The fTime value is based on the channel's original sample rate. If the playback rate is changed via the BASS_ATTRIB_FREQ attribute, then the transition time that is heard will be affected accordingly.

When retrieving parameters, the returned fCurrent value is the level that is currently being applied, not necessarily the level that was last set via BASS_FXSetParameters. During playback, it may not be the value that is currently being heard, due to buffering.

Unlike the BASS_ATTRIB_VOL attribute, this effect modifies the channel's sample data, so it can be used to change the level of decoding channels and recording channels. The BASS_CONFIG_CURVE_VOL setting does not affect this effect; the fTarget and fCurrent values are always linear.

See also

BASS_ChannelSetFX, BASS_FXGetParameters, BASS_FXSetParameters, BASS_ATTRIB_VOL