Sets up a user DSP function on a stream, MOD music, or recording channel.

    DWORD handle,
    DSPPROC *proc,
    void *user,
    int priority


handleThe channel handle... a HSTREAM, HMUSIC, or HRECORD.
procThe callback function.
userUser instance data to pass to the callback function.
priorityThe priority of the new DSP, which determines its position in the DSP chain. DSPs with higher priority are called before those with lower.

Return value

If successful, then the new DSP's handle is returned, else 0 is returned. Use BASS_ErrorGetCode to get the error code.

Error codes

BASS_ERROR_HANDLEhandle is not a valid channel.


DSP functions can set and removed at any time, including mid-playback. Use BASS_ChannelRemoveDSP to remove a DSP function. A DSP function's priority value can be changed via BASS_FXSetPriority.

Multiple DSP functions may be used per channel, in which case the order that the functions are called is determined by their priorities. Any DSPs that have the same priority are called in the order that they were added.

DSP functions can be applied to MOD musics and streams, but not samples. If you want to apply a DSP function to a sample, then you should stream the sample.

See also

BASS_ChannelLock, BASS_ChannelRemoveDSP, BASS_ChannelSetFX, BASS_FXSetPriority, BASS_CONFIG_FLOATDSP, DSPPROC callback